@tekus/design-system 5.26.0 → 5.27.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.
Files changed (50) hide show
  1. package/assets/tokens/tk-foundations.json +167 -80
  2. package/fesm2022/tekus-design-system-components-badge.mjs +3 -1
  3. package/fesm2022/tekus-design-system-components-badge.mjs.map +1 -1
  4. package/fesm2022/tekus-design-system-components-button.mjs +2 -2
  5. package/fesm2022/tekus-design-system-components-button.mjs.map +1 -1
  6. package/fesm2022/tekus-design-system-components-card.mjs +2 -2
  7. package/fesm2022/tekus-design-system-components-card.mjs.map +1 -1
  8. package/fesm2022/tekus-design-system-components-date-picker.mjs +2 -2
  9. package/fesm2022/tekus-design-system-components-date-picker.mjs.map +1 -1
  10. package/fesm2022/tekus-design-system-components-drawer.mjs +2 -2
  11. package/fesm2022/tekus-design-system-components-drawer.mjs.map +1 -1
  12. package/fesm2022/tekus-design-system-components-fallback-view.mjs +2 -2
  13. package/fesm2022/tekus-design-system-components-fallback-view.mjs.map +1 -1
  14. package/fesm2022/tekus-design-system-components-input-number.mjs +2 -2
  15. package/fesm2022/tekus-design-system-components-input-number.mjs.map +1 -1
  16. package/fesm2022/tekus-design-system-components-input-text.mjs +2 -2
  17. package/fesm2022/tekus-design-system-components-input-text.mjs.map +1 -1
  18. package/fesm2022/tekus-design-system-components-menu.mjs +151 -0
  19. package/fesm2022/tekus-design-system-components-menu.mjs.map +1 -0
  20. package/fesm2022/tekus-design-system-components-modal.mjs +2 -2
  21. package/fesm2022/tekus-design-system-components-modal.mjs.map +1 -1
  22. package/fesm2022/tekus-design-system-components-multiselect.mjs +2 -2
  23. package/fesm2022/tekus-design-system-components-multiselect.mjs.map +1 -1
  24. package/fesm2022/tekus-design-system-components-pagination.mjs +2 -2
  25. package/fesm2022/tekus-design-system-components-pagination.mjs.map +1 -1
  26. package/fesm2022/tekus-design-system-components-panel-menu.mjs +54 -0
  27. package/fesm2022/tekus-design-system-components-panel-menu.mjs.map +1 -0
  28. package/fesm2022/tekus-design-system-components-panel.mjs +38 -5
  29. package/fesm2022/tekus-design-system-components-panel.mjs.map +1 -1
  30. package/fesm2022/tekus-design-system-components-select.mjs +2 -2
  31. package/fesm2022/tekus-design-system-components-select.mjs.map +1 -1
  32. package/fesm2022/tekus-design-system-components-sidebar-layout.mjs +179 -0
  33. package/fesm2022/tekus-design-system-components-sidebar-layout.mjs.map +1 -0
  34. package/fesm2022/tekus-design-system-components-table.mjs +2 -2
  35. package/fesm2022/tekus-design-system-components-table.mjs.map +1 -1
  36. package/fesm2022/tekus-design-system-components-textarea.mjs +2 -2
  37. package/fesm2022/tekus-design-system-components-textarea.mjs.map +1 -1
  38. package/fesm2022/tekus-design-system-components-topbar.mjs +2 -2
  39. package/fesm2022/tekus-design-system-components-topbar.mjs.map +1 -1
  40. package/fesm2022/tekus-design-system-core-types.mjs +69 -7
  41. package/fesm2022/tekus-design-system-core-types.mjs.map +1 -1
  42. package/fesm2022/tekus-design-system-core.mjs +69 -7
  43. package/fesm2022/tekus-design-system-core.mjs.map +1 -1
  44. package/package.json +13 -1
  45. package/styles/variables.css +38 -25
  46. package/types/tekus-design-system-components-badge.d.ts +4 -3
  47. package/types/tekus-design-system-components-menu.d.ts +71 -0
  48. package/types/tekus-design-system-components-panel-menu.d.ts +20 -0
  49. package/types/tekus-design-system-components-panel.d.ts +35 -2
  50. package/types/tekus-design-system-components-sidebar-layout.d.ts +96 -0
@@ -101,6 +101,52 @@
101
101
  "type": "color"
102
102
  }
103
103
  },
104
+ "accent": {
105
+ "50": {
106
+ "value": "#edfcf9",
107
+ "type": "color"
108
+ },
109
+ "100": {
110
+ "value": "#d4f7f0",
111
+ "type": "color"
112
+ },
113
+ "200": {
114
+ "value": "#acecdf",
115
+ "type": "color"
116
+ },
117
+ "300": {
118
+ "value": "#8ee1d0",
119
+ "type": "color"
120
+ },
121
+ "400": {
122
+ "value": "#7dd8c6",
123
+ "type": "color"
124
+ },
125
+ "500": {
126
+ "value": "#6ad0bc",
127
+ "type": "color"
128
+ },
129
+ "600": {
130
+ "value": "#3bc4a9",
131
+ "type": "color"
132
+ },
133
+ "700": {
134
+ "value": "#2b9c85",
135
+ "type": "color"
136
+ },
137
+ "800": {
138
+ "value": "#1d7261",
139
+ "type": "color"
140
+ },
141
+ "900": {
142
+ "value": "#114a3f",
143
+ "type": "color"
144
+ },
145
+ "950": {
146
+ "value": "#0a2e27",
147
+ "type": "color"
148
+ }
149
+ },
104
150
  "red": {
105
151
  "50": {
106
152
  "value": "#feede8",
@@ -335,126 +381,193 @@
335
381
  "background": {
336
382
  "default": {
337
383
  "value": "{tk-color.base.surface.0}",
338
- "type": "color"
384
+ "type": "color",
385
+ "$dark": "{tk-color.base.surface.950}"
339
386
  },
340
387
  "soft": {
341
388
  "value": "{tk-color.base.surface.100}",
342
- "type": "color"
389
+ "type": "color",
390
+ "$dark": "{tk-color.base.surface.800}"
343
391
  },
344
392
  "medium": {
345
393
  "value": "{tk-color.base.surface.300}",
346
- "type": "color"
394
+ "type": "color",
395
+ "$dark": "{tk-color.base.surface.700}"
347
396
  },
348
397
  "inverse": {
349
398
  "value": "{tk-color.base.surface.950}",
399
+ "type": "color",
400
+ "$dark": "{tk-color.base.surface.0}"
401
+ },
402
+ "strong": {
403
+ "value": "{tk-color.base.surface.500}",
350
404
  "type": "color"
405
+ },
406
+ "bold": {
407
+ "value": "{tk-color.base.surface.700}",
408
+ "type": "color",
409
+ "$dark": "{tk-color.base.surface.300}"
351
410
  }
352
411
  },
353
412
  "text": {
354
413
  "default": {
355
414
  "value": "{tk-color.base.surface.950}",
356
- "type": "color"
415
+ "type": "color",
416
+ "$dark": "{tk-color.base.surface.0}"
357
417
  },
358
418
  "muted": {
359
419
  "value": "{tk-color.base.surface.500}",
360
- "type": "color"
361
- },
362
- "inverted": {
363
- "value": "#ffffff",
364
- "type": "color"
365
- },
366
- "inverse": {
367
- "value": "{tk-color.base.surface.0}",
368
- "type": "color"
420
+ "type": "color",
421
+ "$dark": "{tk-color.base.surface.400}"
369
422
  },
370
423
  "subtle": {
371
424
  "value": "{tk-color.base.surface.600}",
372
- "type": "color"
425
+ "type": "color",
426
+ "$dark": "{tk-color.base.surface.500}"
373
427
  },
374
428
  "surface": {
375
429
  "value": "{tk-color.base.surface.400}",
376
- "type": "color"
430
+ "type": "color",
431
+ "$dark": "{tk-color.base.surface.500}"
432
+ },
433
+ "inverse": {
434
+ "value": "{tk-color.base.surface.0}",
435
+ "type": "color",
436
+ "$dark": "{tk-color.base.surface.950}"
437
+ },
438
+ "inverted": {
439
+ "value": "{tk-color.base.surface.0}",
440
+ "type": "color",
441
+ "$dark": "{tk-color.base.surface.950}"
377
442
  }
378
443
  },
379
444
  "transparent": {
380
445
  "value": "#ffffff00",
381
- "type": "color"
446
+ "type": "color",
447
+ "$dark": "#00000000"
382
448
  },
383
- "accent": {
449
+ "primary": {
384
450
  "default": {
385
451
  "value": "{tk-color.base.primary.500}",
386
- "type": "color"
452
+ "type": "color",
453
+ "$dark": "{tk-color.base.primary.400}"
387
454
  },
388
455
  "muted": {
389
456
  "value": "{tk-color.base.primary.100}",
390
- "type": "color"
457
+ "type": "color",
458
+ "$dark": "{tk-color.base.primary.900}"
391
459
  },
392
460
  "strong": {
393
461
  "value": "{tk-color.base.primary.700}",
394
- "type": "color"
462
+ "type": "color",
463
+ "$dark": "{tk-color.base.primary.200}"
464
+ }
465
+ },
466
+ "accent": {
467
+ "default": {
468
+ "value": "{tk-color.base.accent.500}",
469
+ "type": "color",
470
+ "$dark": "{tk-color.base.accent.400}"
471
+ },
472
+ "muted": {
473
+ "value": "{tk-color.base.accent.100}",
474
+ "type": "color",
475
+ "$dark": "{tk-color.base.accent.900}"
476
+ },
477
+ "strong": {
478
+ "value": "{tk-color.base.accent.700}",
479
+ "type": "color",
480
+ "$dark": "{tk-color.base.accent.200}"
395
481
  }
396
482
  },
397
483
  "feedback": {
398
484
  "danger": {
399
485
  "default": {
400
486
  "value": "{tk-color.base.red.500}",
401
- "type": "color"
487
+ "type": "color",
488
+ "$dark": "{tk-color.base.red.400}"
402
489
  },
403
490
  "muted": {
404
491
  "value": "{tk-color.base.red.100}",
405
- "type": "color"
492
+ "type": "color",
493
+ "$dark": "{tk-color.base.red.950}"
406
494
  },
407
495
  "strong": {
408
496
  "value": "{tk-color.base.red.700}",
409
- "type": "color"
497
+ "type": "color",
498
+ "$dark": "{tk-color.base.red.200}"
410
499
  }
411
500
  },
412
501
  "warn": {
413
502
  "default": {
414
503
  "value": "{tk-color.base.yellow.500}",
415
- "type": "color"
504
+ "type": "color",
505
+ "$dark": "{tk-color.base.yellow.400}"
416
506
  },
417
507
  "muted": {
418
508
  "value": "{tk-color.base.yellow.100}",
419
- "type": "color"
509
+ "type": "color",
510
+ "$dark": "{tk-color.base.yellow.950}"
420
511
  },
421
512
  "strong": {
422
513
  "value": "{tk-color.base.yellow.700}",
423
- "type": "color"
514
+ "type": "color",
515
+ "$dark": "{tk-color.base.yellow.200}"
424
516
  }
425
517
  },
426
518
  "success": {
427
519
  "default": {
428
520
  "value": "{tk-color.base.green.500}",
429
- "type": "color"
521
+ "type": "color",
522
+ "$dark": "{tk-color.base.green.400}"
430
523
  },
431
524
  "muted": {
432
525
  "value": "{tk-color.base.green.100}",
433
- "type": "color"
526
+ "type": "color",
527
+ "$dark": "{tk-color.base.green.950}"
434
528
  },
435
529
  "strong": {
436
530
  "value": "{tk-color.base.green.700}",
437
- "type": "color"
531
+ "type": "color",
532
+ "$dark": "{tk-color.base.green.200}"
438
533
  }
439
534
  },
440
535
  "info": {
441
536
  "default": {
442
537
  "value": "{tk-color.base.sky.500}",
443
- "type": "color"
538
+ "type": "color",
539
+ "$dark": "{tk-color.base.sky.400}"
444
540
  },
445
541
  "muted": {
446
542
  "value": "{tk-color.base.sky.100}",
447
- "type": "color"
543
+ "type": "color",
544
+ "$dark": "{tk-color.base.sky.950}"
448
545
  },
449
546
  "strong": {
450
547
  "value": "{tk-color.base.sky.700}",
451
- "type": "color"
548
+ "type": "color",
549
+ "$dark": "{tk-color.base.sky.200}"
452
550
  }
453
551
  }
454
552
  },
455
553
  "border": {
456
554
  "default": {
457
555
  "value": "{tk-color.base.surface.400}",
556
+ "type": "color",
557
+ "$dark": "{tk-color.base.surface.700}"
558
+ },
559
+ "subtle": {
560
+ "value": "{tk-color.base.surface.200}",
561
+ "type": "color",
562
+ "$dark": "{tk-color.base.surface.800}"
563
+ },
564
+ "strong": {
565
+ "value": "{tk-color.base.surface.600}",
566
+ "type": "color",
567
+ "$dark": "{tk-color.base.surface.500}"
568
+ },
569
+ "focus": {
570
+ "value": "{tk-color.primary.default}",
458
571
  "type": "color"
459
572
  }
460
573
  }
@@ -513,20 +626,12 @@
513
626
  "value": 96,
514
627
  "type": "number"
515
628
  },
516
- "700": {
517
- "value": 32,
518
- "type": "number"
519
- },
520
629
  "800": {
521
630
  "value": 128,
522
631
  "type": "number"
523
- },
524
- "900": {
525
- "value": 48,
526
- "type": "number"
527
632
  }
528
633
  },
529
- "paddingX": {
634
+ "padding": {
530
635
  "none": {
531
636
  "value": "{tk-spacing.base.0}",
532
637
  "type": "number"
@@ -552,7 +657,7 @@
552
657
  "type": "number"
553
658
  }
554
659
  },
555
- "paddingY": {
660
+ "gap": {
556
661
  "none": {
557
662
  "value": "{tk-spacing.base.0}",
558
663
  "type": "number"
@@ -569,28 +674,6 @@
569
674
  "value": "{tk-spacing.base.100}",
570
675
  "type": "number"
571
676
  },
572
- "l": {
573
- "value": "{tk-spacing.base.125}",
574
- "type": "number"
575
- },
576
- "xl": {
577
- "value": "{tk-spacing.base.150}",
578
- "type": "number"
579
- }
580
- },
581
- "gap": {
582
- "none": {
583
- "value": "{tk-spacing.base.0}",
584
- "type": "number"
585
- },
586
- "s": {
587
- "value": "{tk-spacing.base.25}",
588
- "type": "number"
589
- },
590
- "m": {
591
- "value": "{tk-spacing.base.100}",
592
- "type": "number"
593
- },
594
677
  "l": {
595
678
  "value": "{tk-spacing.base.150}",
596
679
  "type": "number"
@@ -660,30 +743,30 @@
660
743
  }
661
744
  },
662
745
  "paragraph": {
663
- "m": {
664
- "value": "{tk-font.size.base.100}",
665
- "type": "number"
666
- },
667
746
  "s": {
668
747
  "value": "{tk-font.size.base.88}",
669
748
  "type": "number"
670
749
  },
750
+ "m": {
751
+ "value": "{tk-font.size.base.100}",
752
+ "type": "number"
753
+ },
671
754
  "l": {
672
755
  "value": "{tk-font.size.base.113}",
673
756
  "type": "number"
674
757
  }
675
758
  },
676
759
  "headers": {
677
- "l": {
678
- "value": "{tk-font.size.base.200}",
760
+ "s": {
761
+ "value": "{tk-font.size.base.113}",
679
762
  "type": "number"
680
763
  },
681
764
  "m": {
682
765
  "value": "{tk-font.size.base.150}",
683
766
  "type": "number"
684
767
  },
685
- "s": {
686
- "value": "{tk-font.size.base.113}",
768
+ "l": {
769
+ "value": "{tk-font.size.base.200}",
687
770
  "type": "number"
688
771
  },
689
772
  "xl": {
@@ -692,13 +775,13 @@
692
775
  }
693
776
  },
694
777
  "legal": {
695
- "m": {
696
- "value": "{tk-font.size.base.75}",
697
- "type": "number"
698
- },
699
778
  "s": {
700
779
  "value": "{tk-font.size.base.63}",
701
780
  "type": "number"
781
+ },
782
+ "m": {
783
+ "value": "{tk-font.size.base.75}",
784
+ "type": "number"
702
785
  }
703
786
  }
704
787
  }
@@ -756,18 +839,22 @@
756
839
  }
757
840
  },
758
841
  "tk-borderRadius": {
759
- "m": {
760
- "value": 16,
761
- "type": "number"
762
- },
763
842
  "null": {
764
843
  "value": 0,
765
844
  "type": "number"
766
845
  },
846
+ "xs": {
847
+ "value": 4,
848
+ "type": "number"
849
+ },
767
850
  "s": {
768
851
  "value": 8,
769
852
  "type": "number"
770
853
  },
854
+ "m": {
855
+ "value": 16,
856
+ "type": "number"
857
+ },
771
858
  "l": {
772
859
  "value": 24,
773
860
  "type": "number"
@@ -11,13 +11,14 @@ import { BadgeModule } from 'primeng/badge';
11
11
  *
12
12
  * This component supports:
13
13
  * - `value`: The text content to be displayed in the badge
14
- * - `severity`: The color scheme of the badge. Options: `'primary' | 'secondary' | 'contrast'`
14
+ * - `severity`: The color scheme of the badge. Options: `'primary' | 'secondary' | 'contrast' | 'danger'`
15
15
  * - Automatically maps severity values to PrimeNG's badge styles
16
16
  *
17
17
  * @usage
18
18
  * ### Basic Usage
19
19
  * ```html
20
20
  * <tk-badge value="5" severity="primary"></tk-badge>
21
+ * ```
21
22
  * */
22
23
  class BadgeComponent {
23
24
  constructor() {
@@ -37,6 +38,7 @@ class BadgeComponent {
37
38
  secondary: 'secondary',
38
39
  primary: 'success',
39
40
  contrast: 'contrast',
41
+ danger: 'danger',
40
42
  };
41
43
  return severityMap[this.severity()];
42
44
  }, ...(ngDevMode ? [{ debugName: "primeSeverity" }] : /* istanbul ignore next */ []));
@@ -1 +1 @@
1
- {"version":3,"file":"tekus-design-system-components-badge.mjs","sources":["../../../projects/design-system/components/badge/src/badge.component.ts","../../../projects/design-system/components/badge/src/badge.component.html","../../../projects/design-system/components/badge/tekus-design-system-components-badge.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BadgeModule } from 'primeng/badge';\n\nexport type BadgeSeverity = 'secondary' | 'primary' | 'contrast';\n/**\n * @component BadgeComponent\n * @description\n * A component used to display numerical or textual badges.\n * It wraps PrimeNG's `p-badge` component with custom styling and behavior.\n *\n * This component supports:\n * - `value`: The text content to be displayed in the badge\n * - `severity`: The color scheme of the badge. Options: `'primary' | 'secondary' | 'contrast'`\n * - Automatically maps severity values to PrimeNG's badge styles\n *\n * @usage\n * ### Basic Usage\n * ```html\n * <tk-badge value=\"5\" severity=\"primary\"></tk-badge>\n * */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'tk-badge',\n imports: [BadgeModule],\n templateUrl: './badge.component.html',\n styleUrl: './badge.component.scss',\n})\nexport class BadgeComponent {\n /** The text content to be displayed in the badge. */\n value = input.required<string>();\n\n /**\n * The severity level of the badge, which determines its color and styling.\n * @default 'primary'\n */\n severity = input<BadgeSeverity>('primary');\n\n /**\n * Computed property that maps the custom `BadgeSeverity` to the underlying PrimeNG `severity`.\n * Returns `undefined` for 'primary' as it uses the default style, and maps others accordingly.\n */\n primeSeverity = computed((): 'success' | 'secondary' | 'contrast' => {\n const severityMap: Record<\n BadgeSeverity,\n 'success' | 'secondary' | 'contrast'\n > = {\n secondary: 'secondary',\n primary: 'success',\n contrast: 'contrast',\n };\n return severityMap[this.severity()];\n });\n}\n","<p-badge [value]=\"value()\" [severity]=\"primeSeverity()\" />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAIA;;;;;;;;;;;;;;;AAeK;MAQQ,cAAc,CAAA;AAP3B,IAAA,WAAA,GAAA;;AASE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,2EAAU;AAEhC;;;AAGG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAgB,SAAS,+EAAC;AAE1C;;;AAGG;AACH,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAA2C;AAClE,YAAA,MAAM,WAAW,GAGb;AACF,gBAAA,SAAS,EAAE,WAAW;AACtB,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,QAAQ,EAAE,UAAU;aACrB;AACD,YAAA,OAAO,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACrC,QAAA,CAAC,oFAAC;AACH,IAAA;8GAzBY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3B3B,kEACA,EAAA,MAAA,EAAA,CAAA,0lBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDsBY,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIV,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACS,YAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,UAAU,EAAA,OAAA,EACX,CAAC,WAAW,CAAC,EAAA,QAAA,EAAA,kEAAA,EAAA,MAAA,EAAA,CAAA,0lBAAA,CAAA,EAAA;;;AEvBxB;;AAEG;;;;"}
1
+ {"version":3,"file":"tekus-design-system-components-badge.mjs","sources":["../../../projects/design-system/components/badge/src/badge.component.ts","../../../projects/design-system/components/badge/src/badge.component.html","../../../projects/design-system/components/badge/tekus-design-system-components-badge.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BadgeModule } from 'primeng/badge';\n\nexport type BadgeSeverity = 'secondary' | 'primary' | 'contrast' | 'danger';\n/**\n * @component BadgeComponent\n * @description\n * A component used to display numerical or textual badges.\n * It wraps PrimeNG's `p-badge` component with custom styling and behavior.\n *\n * This component supports:\n * - `value`: The text content to be displayed in the badge\n * - `severity`: The color scheme of the badge. Options: `'primary' | 'secondary' | 'contrast' | 'danger'`\n * - Automatically maps severity values to PrimeNG's badge styles\n *\n * @usage\n * ### Basic Usage\n * ```html\n * <tk-badge value=\"5\" severity=\"primary\"></tk-badge>\n * ```\n * */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'tk-badge',\n imports: [BadgeModule],\n templateUrl: './badge.component.html',\n styleUrl: './badge.component.scss',\n})\nexport class BadgeComponent {\n /** The text content to be displayed in the badge. */\n value = input.required<string>();\n\n /**\n * The severity level of the badge, which determines its color and styling.\n * @default 'primary'\n */\n severity = input<BadgeSeverity>('primary');\n\n /**\n * Computed property that maps the custom `BadgeSeverity` to the underlying PrimeNG `severity`.\n * Returns `undefined` for 'primary' as it uses the default style, and maps others accordingly.\n */\n primeSeverity = computed((): 'success' | 'secondary' | 'contrast' | 'danger' => {\n const severityMap: Record<\n BadgeSeverity,\n 'success' | 'secondary' | 'contrast' | 'danger'\n > = {\n secondary: 'secondary',\n primary: 'success',\n contrast: 'contrast',\n danger: 'danger',\n };\n return severityMap[this.severity()];\n });\n}\n","<p-badge [value]=\"value()\" [severity]=\"primeSeverity()\" />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAIA;;;;;;;;;;;;;;;;AAgBK;MAQQ,cAAc,CAAA;AAP3B,IAAA,WAAA,GAAA;;AASE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,2EAAU;AAEhC;;;AAGG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAgB,SAAS,+EAAC;AAE1C;;;AAGG;AACH,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAsD;AAC7E,YAAA,MAAM,WAAW,GAGb;AACF,gBAAA,SAAS,EAAE,WAAW;AACtB,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,MAAM,EAAE,QAAQ;aACjB;AACD,YAAA,OAAO,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACrC,QAAA,CAAC,oFAAC;AACH,IAAA;8GA1BY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5B3B,kEACA,EAAA,MAAA,EAAA,CAAA,0lBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDuBY,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIV,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACS,YAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,UAAU,EAAA,OAAA,EACX,CAAC,WAAW,CAAC,EAAA,QAAA,EAAA,kEAAA,EAAA,MAAA,EAAA,CAAA,0lBAAA,CAAA,EAAA;;;AExBxB;;AAEG;;;;"}
@@ -142,11 +142,11 @@ class ButtonComponent {
142
142
  this.clicked.emit('mouse');
143
143
  }
144
144
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
145
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: ButtonComponent, isStandalone: true, selector: "tk-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, tooltipText: { classPropertyName: "tooltipText", publicName: "tooltipText", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<p-button\n class=\"tk-button\"\n [label]=\"label()\"\n [disabled]=\"disabled()\"\n [type]=\"type()\"\n [severity]=\"link() ? undefined : severity()\"\n [variant]=\"variant()\"\n [link]=\"link()\"\n [size]=\"size()\"\n [pTooltip]=\"tooltipText()\"\n tooltipPosition=\"top\"\n (click)=\"onButtonClick()\"\n (keydown.enter)=\"onButtonClick()\"\n (keydown.space)=\"onButtonClick()\">\n\n @if (icon()) {\n <tk-icon [icon]=\"icon()!\"></tk-icon>\n }\n</p-button>\n", styles: [":host{display:inline-flex;vertical-align:middle}:host ::ng-deep .p-button{min-width:var(--tk-size-base-250, 2.5rem)}:host ::ng-deep .p-button.p-button-sm{min-width:var(--tk-spacing-paddingX-xl, 1.5rem);height:var(--tk-spacing-paddingY-xl, 1.5rem);padding:0;display:flex;align-items:center;justify-content:center;line-height:1}:host ::ng-deep .p-button.p-button-sm.p-button-icon-only{width:var(--tk-spacing-paddingX-xl, 1.5rem)}:host ::ng-deep .p-button.p-button-sm ::ng-deep tk-icon{display:flex;align-items:center;justify-content:center}:host ::ng-deep .p-button.p-button-sm ::ng-deep tk-icon svg{width:1rem;height:1rem}:host ::ng-deep .p-button.p-button-primary .p-button-label,:host ::ng-deep .p-button.p-button-danger .p-button-label{color:var(--tk-color-base-surface-0, #ffffff)!important}:host ::ng-deep .p-button.p-button-link .p-button-label{color:var(--tk-color-base-primary-500, #16006f)!important}:host ::ng-deep .p-button.p-button-link:hover .p-button-label{color:var(--tk-color-base-primary-400, #45338c)!important}:host ::ng-deep .p-button.p-button-secondary .p-button-label{color:var(--tk-color-base-surface-900, #191A1B)!important}:host ::ng-deep .p-button.p-button-secondary.p-button-outlined .p-button-label{color:var(--tk-color-base-surface-500, #8a8a8b)!important}:host ::ng-deep .p-button.p-button-secondary .p-button-label,:host ::ng-deep .p-button.p-button-danger .p-button-label{font-weight:var(--tk-font-weight-400, 400)}:host ::ng-deep .p-button-label{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: IconComponent, selector: "tk-icon", inputs: ["icon", "styleIcon", "color", "size", "disabled"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
145
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: ButtonComponent, isStandalone: true, selector: "tk-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, tooltipText: { classPropertyName: "tooltipText", publicName: "tooltipText", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<p-button\n class=\"tk-button\"\n [label]=\"label()\"\n [disabled]=\"disabled()\"\n [type]=\"type()\"\n [severity]=\"link() ? undefined : severity()\"\n [variant]=\"variant()\"\n [link]=\"link()\"\n [size]=\"size()\"\n [pTooltip]=\"tooltipText()\"\n tooltipPosition=\"top\"\n (click)=\"onButtonClick()\"\n (keydown.enter)=\"onButtonClick()\"\n (keydown.space)=\"onButtonClick()\">\n\n @if (icon()) {\n <tk-icon [icon]=\"icon()!\"></tk-icon>\n }\n</p-button>\n", styles: [":host{display:inline-flex;vertical-align:middle}:host ::ng-deep .p-button{min-width:var(--tk-size-base-250, 2.5rem)}:host ::ng-deep .p-button.p-button-sm{min-width:var(--tk-spacing-padding-xl, 1.5rem);height:var(--tk-spacing-padding-xl, 1.5rem);padding:0;display:flex;align-items:center;justify-content:center;line-height:1}:host ::ng-deep .p-button.p-button-sm.p-button-icon-only{width:var(--tk-spacing-padding-xl, 1.5rem)}:host ::ng-deep .p-button.p-button-sm ::ng-deep tk-icon{display:flex;align-items:center;justify-content:center}:host ::ng-deep .p-button.p-button-sm ::ng-deep tk-icon svg{width:1rem;height:1rem}:host ::ng-deep .p-button.p-button-primary .p-button-label,:host ::ng-deep .p-button.p-button-danger .p-button-label{color:var(--tk-color-base-surface-0, #ffffff)!important}:host ::ng-deep .p-button.p-button-link .p-button-label{color:var(--tk-color-base-primary-500, #16006f)!important}:host ::ng-deep .p-button.p-button-link:hover .p-button-label{color:var(--tk-color-base-primary-400, #45338c)!important}:host ::ng-deep .p-button.p-button-secondary .p-button-label{color:var(--tk-color-base-surface-900, #191A1B)!important}:host ::ng-deep .p-button.p-button-secondary.p-button-outlined .p-button-label{color:var(--tk-color-base-surface-500, #8a8a8b)!important}:host ::ng-deep .p-button.p-button-secondary .p-button-label,:host ::ng-deep .p-button.p-button-danger .p-button-label{font-weight:var(--tk-font-weight-400, 400)}:host ::ng-deep .p-button-label{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: IconComponent, selector: "tk-icon", inputs: ["icon", "styleIcon", "color", "size", "disabled"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
146
146
  }
147
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: ButtonComponent, decorators: [{
148
148
  type: Component,
149
- args: [{ selector: 'tk-button', imports: [ButtonModule, IconComponent, Tooltip], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-button\n class=\"tk-button\"\n [label]=\"label()\"\n [disabled]=\"disabled()\"\n [type]=\"type()\"\n [severity]=\"link() ? undefined : severity()\"\n [variant]=\"variant()\"\n [link]=\"link()\"\n [size]=\"size()\"\n [pTooltip]=\"tooltipText()\"\n tooltipPosition=\"top\"\n (click)=\"onButtonClick()\"\n (keydown.enter)=\"onButtonClick()\"\n (keydown.space)=\"onButtonClick()\">\n\n @if (icon()) {\n <tk-icon [icon]=\"icon()!\"></tk-icon>\n }\n</p-button>\n", styles: [":host{display:inline-flex;vertical-align:middle}:host ::ng-deep .p-button{min-width:var(--tk-size-base-250, 2.5rem)}:host ::ng-deep .p-button.p-button-sm{min-width:var(--tk-spacing-paddingX-xl, 1.5rem);height:var(--tk-spacing-paddingY-xl, 1.5rem);padding:0;display:flex;align-items:center;justify-content:center;line-height:1}:host ::ng-deep .p-button.p-button-sm.p-button-icon-only{width:var(--tk-spacing-paddingX-xl, 1.5rem)}:host ::ng-deep .p-button.p-button-sm ::ng-deep tk-icon{display:flex;align-items:center;justify-content:center}:host ::ng-deep .p-button.p-button-sm ::ng-deep tk-icon svg{width:1rem;height:1rem}:host ::ng-deep .p-button.p-button-primary .p-button-label,:host ::ng-deep .p-button.p-button-danger .p-button-label{color:var(--tk-color-base-surface-0, #ffffff)!important}:host ::ng-deep .p-button.p-button-link .p-button-label{color:var(--tk-color-base-primary-500, #16006f)!important}:host ::ng-deep .p-button.p-button-link:hover .p-button-label{color:var(--tk-color-base-primary-400, #45338c)!important}:host ::ng-deep .p-button.p-button-secondary .p-button-label{color:var(--tk-color-base-surface-900, #191A1B)!important}:host ::ng-deep .p-button.p-button-secondary.p-button-outlined .p-button-label{color:var(--tk-color-base-surface-500, #8a8a8b)!important}:host ::ng-deep .p-button.p-button-secondary .p-button-label,:host ::ng-deep .p-button.p-button-danger .p-button-label{font-weight:var(--tk-font-weight-400, 400)}:host ::ng-deep .p-button-label{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"] }]
149
+ args: [{ selector: 'tk-button', imports: [ButtonModule, IconComponent, Tooltip], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-button\n class=\"tk-button\"\n [label]=\"label()\"\n [disabled]=\"disabled()\"\n [type]=\"type()\"\n [severity]=\"link() ? undefined : severity()\"\n [variant]=\"variant()\"\n [link]=\"link()\"\n [size]=\"size()\"\n [pTooltip]=\"tooltipText()\"\n tooltipPosition=\"top\"\n (click)=\"onButtonClick()\"\n (keydown.enter)=\"onButtonClick()\"\n (keydown.space)=\"onButtonClick()\">\n\n @if (icon()) {\n <tk-icon [icon]=\"icon()!\"></tk-icon>\n }\n</p-button>\n", styles: [":host{display:inline-flex;vertical-align:middle}:host ::ng-deep .p-button{min-width:var(--tk-size-base-250, 2.5rem)}:host ::ng-deep .p-button.p-button-sm{min-width:var(--tk-spacing-padding-xl, 1.5rem);height:var(--tk-spacing-padding-xl, 1.5rem);padding:0;display:flex;align-items:center;justify-content:center;line-height:1}:host ::ng-deep .p-button.p-button-sm.p-button-icon-only{width:var(--tk-spacing-padding-xl, 1.5rem)}:host ::ng-deep .p-button.p-button-sm ::ng-deep tk-icon{display:flex;align-items:center;justify-content:center}:host ::ng-deep .p-button.p-button-sm ::ng-deep tk-icon svg{width:1rem;height:1rem}:host ::ng-deep .p-button.p-button-primary .p-button-label,:host ::ng-deep .p-button.p-button-danger .p-button-label{color:var(--tk-color-base-surface-0, #ffffff)!important}:host ::ng-deep .p-button.p-button-link .p-button-label{color:var(--tk-color-base-primary-500, #16006f)!important}:host ::ng-deep .p-button.p-button-link:hover .p-button-label{color:var(--tk-color-base-primary-400, #45338c)!important}:host ::ng-deep .p-button.p-button-secondary .p-button-label{color:var(--tk-color-base-surface-900, #191A1B)!important}:host ::ng-deep .p-button.p-button-secondary.p-button-outlined .p-button-label{color:var(--tk-color-base-surface-500, #8a8a8b)!important}:host ::ng-deep .p-button.p-button-secondary .p-button-label,:host ::ng-deep .p-button.p-button-danger .p-button-label{font-weight:var(--tk-font-weight-400, 400)}:host ::ng-deep .p-button-label{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"] }]
150
150
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], severity: [{ type: i0.Input, args: [{ isSignal: true, alias: "severity", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], clicked: [{ type: i0.Output, args: ["clicked"] }], tooltipText: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipText", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
151
151
 
152
152
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tekus-design-system-components-button.mjs","sources":["../../../projects/design-system/components/button/src/button.component.ts","../../../projects/design-system/components/button/src/button.component.html","../../../projects/design-system/components/button/tekus-design-system-components-button.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { ButtonModule } from 'primeng/button';\nimport { IconComponent } from '@tekus/design-system/components/icon';\nimport { Tooltip } from 'primeng/tooltip';\n\n\nexport type ButtonSeverity = 'primary' | 'secondary' | 'danger';\nexport type Variant = 'text' | 'outlined';\n/**\n * @component ButtonComponent\n * @description\n * Atomic button component that provides a reusable and customizable button element\n * across the application.\n * It uses PrimeNG's `ButtonModule` under the hood and allows setting different visual\n * variants (severity), button types, and disabled states.\n *\n * This component ensures consistent design and behavior in all button interactions.\n * It is accessible via both mouse clicks and keyboard actions (Enter/Space).\n *\n * @usage\n * ```html\n * <tk-button\n * label=\"Save\"\n * [severity]=\"'primary'\"\n * [type]=\"'submit'\"\n * (clicked)=\"handleSave()\">\n * </tk-button>\n *\n * <tk-button\n * label=\"Cancel\"\n * [severity]=\"'secondary'\"\n * [disabled]=\"true\">\n * </tk-button>\n * ```\n */\n@Component({\n selector: 'tk-button',\n imports: [ButtonModule, IconComponent, Tooltip],\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonComponent {\n /**\n * @property {string} label\n * @description\n * Text displayed inside the button.\n *\n * @default `undefined`\n */\n label = input<string>();\n\n /**\n * @property {boolean} disabled\n * @description\n * Disables the button, preventing user interaction and applying a visual style\n * that indicates the inactive state.\n *\n * @default `false`\n */\n disabled = input<boolean>(false);\n\n /**\n * @property {'button' | 'submit'} type\n * @description\n * Defines the button's HTML type attribute.\n * - `'button'`: Standard clickable button (default).\n * - `'submit'`: Used to submit forms.\n *\n * @default `'button'`\n */\n type = input<'button' | 'submit'>('button');\n\n /**\n * @property {ButtonSeverity} severity\n * @description\n * Defines the visual importance or style of the button.\n * - `'primary'`: Default, neutral action.\n * - `'secondary'`: Secondary option.\n * - `'danger'`: Destructive or warning actions.\n *\n * @default `'primary'`\n */\n severity = input<ButtonSeverity>('primary');\n\n /**\n * @property {'text' | 'outlined'} variant\n * @description\n * Defines the variant of the button.\n * - `'text'`: Text-only button.\n * - `'outlined'`: Outlined button.\n *\n * @default `undefined`\n */\n variant = input<Variant>();\n\n /**\n * @property {boolean} link\n * @description\n * When true, the button will be styled as a link (text only with underline).\n *\n * @default false\n */\n link = input<boolean>(false);\n\n /**\n * @property {string} icon\n * @description\n * - If `label` is provided, the icon is displayed to the left.\n * - If `label` is empty, the button is rendered as an icon-only button.\n *\n * @default `undefined`\n */\n icon = input<string>();\n\n /**\n * @event clicked\n * @description\n * Emits when the button is activated via click or keyboard (Enter/Space),\n * unless the button is disabled.\n *\n * @example\n * ```html\n * <tk-button label=\"Click me\" (clicked)=\"handleClick()\"></tk-button>\n * ```\n */\n clicked = output<'mouse' | 'keyboard'>();\n\n /**\n * @property {string} tooltipText\n * @description\n * Tooltip text to be displayed when the user hovers over the button.\n *\n * @default `undefined`\n */\n tooltipText = input<string>();\n\n /**\n * @property {'small' | 'large' | undefined} size\n * @description\n * Defines the size of the button.\n * - `'small'`: Small button.\n * - `'large'`: Large button.\n * - `undefined`: Default size.\n *\n * @default `undefined`\n */\n size = input<'small' | 'large' | undefined>();\n\n /**\n * @method onButtonClick\n * @description\n * Handles the native click event. Emits the `clicked` event if the button\n * is not disabled.\n */\n onButtonClick(): void {\n if (!this.disabled()) this.clicked.emit('mouse');\n }\n}\n","<p-button\n class=\"tk-button\"\n [label]=\"label()\"\n [disabled]=\"disabled()\"\n [type]=\"type()\"\n [severity]=\"link() ? undefined : severity()\"\n [variant]=\"variant()\"\n [link]=\"link()\"\n [size]=\"size()\"\n [pTooltip]=\"tooltipText()\"\n tooltipPosition=\"top\"\n (click)=\"onButtonClick()\"\n (keydown.enter)=\"onButtonClick()\"\n (keydown.space)=\"onButtonClick()\">\n\n @if (icon()) {\n <tk-icon [icon]=\"icon()!\"></tk-icon>\n }\n</p-button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tekus-design-system-components-button.mjs","sources":["../../../projects/design-system/components/button/src/button.component.ts","../../../projects/design-system/components/button/src/button.component.html","../../../projects/design-system/components/button/tekus-design-system-components-button.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { ButtonModule } from 'primeng/button';\nimport { IconComponent } from '@tekus/design-system/components/icon';\nimport { Tooltip } from 'primeng/tooltip';\n\n\nexport type ButtonSeverity = 'primary' | 'secondary' | 'danger';\nexport type Variant = 'text' | 'outlined';\n/**\n * @component ButtonComponent\n * @description\n * Atomic button component that provides a reusable and customizable button element\n * across the application.\n * It uses PrimeNG's `ButtonModule` under the hood and allows setting different visual\n * variants (severity), button types, and disabled states.\n *\n * This component ensures consistent design and behavior in all button interactions.\n * It is accessible via both mouse clicks and keyboard actions (Enter/Space).\n *\n * @usage\n * ```html\n * <tk-button\n * label=\"Save\"\n * [severity]=\"'primary'\"\n * [type]=\"'submit'\"\n * (clicked)=\"handleSave()\">\n * </tk-button>\n *\n * <tk-button\n * label=\"Cancel\"\n * [severity]=\"'secondary'\"\n * [disabled]=\"true\">\n * </tk-button>\n * ```\n */\n@Component({\n selector: 'tk-button',\n imports: [ButtonModule, IconComponent, Tooltip],\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonComponent {\n /**\n * @property {string} label\n * @description\n * Text displayed inside the button.\n *\n * @default `undefined`\n */\n label = input<string>();\n\n /**\n * @property {boolean} disabled\n * @description\n * Disables the button, preventing user interaction and applying a visual style\n * that indicates the inactive state.\n *\n * @default `false`\n */\n disabled = input<boolean>(false);\n\n /**\n * @property {'button' | 'submit'} type\n * @description\n * Defines the button's HTML type attribute.\n * - `'button'`: Standard clickable button (default).\n * - `'submit'`: Used to submit forms.\n *\n * @default `'button'`\n */\n type = input<'button' | 'submit'>('button');\n\n /**\n * @property {ButtonSeverity} severity\n * @description\n * Defines the visual importance or style of the button.\n * - `'primary'`: Default, neutral action.\n * - `'secondary'`: Secondary option.\n * - `'danger'`: Destructive or warning actions.\n *\n * @default `'primary'`\n */\n severity = input<ButtonSeverity>('primary');\n\n /**\n * @property {'text' | 'outlined'} variant\n * @description\n * Defines the variant of the button.\n * - `'text'`: Text-only button.\n * - `'outlined'`: Outlined button.\n *\n * @default `undefined`\n */\n variant = input<Variant>();\n\n /**\n * @property {boolean} link\n * @description\n * When true, the button will be styled as a link (text only with underline).\n *\n * @default false\n */\n link = input<boolean>(false);\n\n /**\n * @property {string} icon\n * @description\n * - If `label` is provided, the icon is displayed to the left.\n * - If `label` is empty, the button is rendered as an icon-only button.\n *\n * @default `undefined`\n */\n icon = input<string>();\n\n /**\n * @event clicked\n * @description\n * Emits when the button is activated via click or keyboard (Enter/Space),\n * unless the button is disabled.\n *\n * @example\n * ```html\n * <tk-button label=\"Click me\" (clicked)=\"handleClick()\"></tk-button>\n * ```\n */\n clicked = output<'mouse' | 'keyboard'>();\n\n /**\n * @property {string} tooltipText\n * @description\n * Tooltip text to be displayed when the user hovers over the button.\n *\n * @default `undefined`\n */\n tooltipText = input<string>();\n\n /**\n * @property {'small' | 'large' | undefined} size\n * @description\n * Defines the size of the button.\n * - `'small'`: Small button.\n * - `'large'`: Large button.\n * - `undefined`: Default size.\n *\n * @default `undefined`\n */\n size = input<'small' | 'large' | undefined>();\n\n /**\n * @method onButtonClick\n * @description\n * Handles the native click event. Emits the `clicked` event if the button\n * is not disabled.\n */\n onButtonClick(): void {\n if (!this.disabled()) this.clicked.emit('mouse');\n }\n}\n","<p-button\n class=\"tk-button\"\n [label]=\"label()\"\n [disabled]=\"disabled()\"\n [type]=\"type()\"\n [severity]=\"link() ? undefined : severity()\"\n [variant]=\"variant()\"\n [link]=\"link()\"\n [size]=\"size()\"\n [pTooltip]=\"tooltipText()\"\n tooltipPosition=\"top\"\n (click)=\"onButtonClick()\"\n (keydown.enter)=\"onButtonClick()\"\n (keydown.space)=\"onButtonClick()\">\n\n @if (icon()) {\n <tk-icon [icon]=\"icon()!\"></tk-icon>\n }\n</p-button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}