@sky.ui/core 0.0.54 → 0.0.56

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.
@@ -488,37 +488,33 @@
488
488
  },
489
489
  {
490
490
  "kind": "javascript-module",
491
- "path": "src/sky-appbar/sky-appbar.ts",
491
+ "path": "src/sky-button/sky-button.ts",
492
492
  "declarations": [
493
493
  {
494
494
  "kind": "class",
495
495
  "description": "",
496
- "name": "SkyAppbar",
496
+ "name": "SkyButton",
497
497
  "cssParts": [
498
498
  {
499
- "description": "Wrapper that contains the leading slot, title, and actions.",
500
- "name": "content"
499
+ "description": "The native `<button>` element.",
500
+ "name": "button"
501
501
  },
502
502
  {
503
- "description": "Container for the leading slot (e.g. menu button).",
504
- "name": "leading"
503
+ "description": "The optional left/right icons.",
504
+ "name": "icon"
505
505
  },
506
506
  {
507
- "description": "The title area (contains .title-text with the title string).",
508
- "name": "title"
507
+ "description": "Overlay displayed when loading.",
508
+ "name": "loading-overlay"
509
509
  },
510
510
  {
511
- "description": "The trailing actions container.",
512
- "name": "actions"
511
+ "description": "Spinner displayed when loading.",
512
+ "name": "spinner"
513
513
  }
514
514
  ],
515
515
  "slots": [
516
516
  {
517
- "description": "Leading area (e.g., menu/back button). Defaults to a hamburger icon.",
518
- "name": "button"
519
- },
520
- {
521
- "description": "Trailing actions (icons/buttons). This is the default slot.",
517
+ "description": "Default slot for the button label (replaces `label` property if used).",
522
518
  "name": ""
523
519
  }
524
520
  ],
@@ -534,13 +530,31 @@
534
530
  },
535
531
  {
536
532
  "kind": "field",
537
- "name": "title",
533
+ "name": "formAssociated",
538
534
  "type": {
539
- "text": "string"
535
+ "text": "boolean"
540
536
  },
541
- "default": "\"App Bar\"",
542
- "description": "Title text displayed in the app bar.",
543
- "attribute": "title"
537
+ "static": true,
538
+ "default": "true"
539
+ },
540
+ {
541
+ "kind": "field",
542
+ "name": "internals",
543
+ "type": {
544
+ "text": "ElementInternals"
545
+ },
546
+ "privacy": "private"
547
+ },
548
+ {
549
+ "kind": "field",
550
+ "name": "variant",
551
+ "type": {
552
+ "text": "SkyButtonVariant"
553
+ },
554
+ "default": "\"solid\"",
555
+ "description": "Visual variant of the button. Use `\"link\"` for text-only control with underline on hover. Default: `\"solid\"`.",
556
+ "attribute": "variant",
557
+ "reflects": true
544
558
  },
545
559
  {
546
560
  "kind": "field",
@@ -548,1710 +562,1657 @@
548
562
  "type": {
549
563
  "text": "string"
550
564
  },
551
- "default": "\"default\"",
552
- "description": "Semantic token or CSS color for bar background; foreground color is derived for contrast.",
565
+ "default": "\"primary\"",
566
+ "description": "Base color token or custom CSS color. Default: `\"primary\"`.",
553
567
  "attribute": "color"
554
568
  },
555
569
  {
556
570
  "kind": "field",
557
- "name": "url",
571
+ "name": "type",
572
+ "type": {
573
+ "text": "SkyButtonType"
574
+ },
575
+ "default": "\"button\"",
576
+ "description": "Button type attribute. Default: `\"button\"`.",
577
+ "attribute": "type"
578
+ },
579
+ {
580
+ "kind": "field",
581
+ "name": "form",
558
582
  "type": {
559
583
  "text": "string"
560
584
  },
561
585
  "default": "\"\"",
562
- "description": "Background image URL.",
563
- "attribute": "url"
586
+ "description": "Associated form ID for custom submit handling.",
587
+ "attribute": "form"
564
588
  },
565
589
  {
566
590
  "kind": "field",
567
- "name": "banner",
591
+ "name": "size",
568
592
  "type": {
569
- "text": "boolean"
593
+ "text": "string"
570
594
  },
571
- "default": "true",
572
- "description": "Uses `role=\"banner\"` when true, otherwise `role=\"group\"`.",
573
- "attribute": "banner"
595
+ "default": "\"md\"",
596
+ "description": "Preset size token (`xs…xl`) or CSS size (e.g., `\"15px\"`, `\"1rem\"`). Default: `\"md\"`.",
597
+ "attribute": "size"
574
598
  },
575
599
  {
576
600
  "kind": "field",
577
- "name": "dense",
601
+ "name": "radius",
602
+ "type": {
603
+ "text": "string"
604
+ },
605
+ "default": "\"md\"",
606
+ "description": "Preset radius token (`none…full`) or CSS radius (e.g., `\"12px\"`). Default: `\"md\"`.",
607
+ "attribute": "radius"
608
+ },
609
+ {
610
+ "kind": "field",
611
+ "name": "label",
612
+ "type": {
613
+ "text": "string"
614
+ },
615
+ "default": "\"Button\"",
616
+ "description": "Text label for the button. Ignored if default slot is used. Default: `\"Button\"`.",
617
+ "attribute": "label"
618
+ },
619
+ {
620
+ "kind": "field",
621
+ "name": "disabled",
578
622
  "type": {
579
623
  "text": "boolean"
580
624
  },
581
625
  "default": "false",
582
- "description": "Enables compact vertical spacing.",
583
- "attribute": "dense"
626
+ "description": "Whether the button is disabled. Default: `false`.",
627
+ "attribute": "disabled",
628
+ "reflects": true
584
629
  },
585
630
  {
586
631
  "kind": "field",
587
- "name": "elevated",
632
+ "name": "loading",
588
633
  "type": {
589
634
  "text": "boolean"
590
635
  },
591
636
  "default": "false",
592
- "description": "Applies elevated shadow styling.",
593
- "attribute": "elevated"
637
+ "description": "Shows a loading overlay when true. Default: `false`.",
638
+ "attribute": "loading",
639
+ "reflects": true
594
640
  },
595
641
  {
596
642
  "kind": "field",
597
- "name": "leadingLabel",
643
+ "name": "iconL",
598
644
  "type": {
599
645
  "text": "string"
600
646
  },
601
- "default": "\"Open menu\"",
602
- "description": "Accessible label for default leading button fallback.",
603
- "attribute": "leadingLabel"
647
+ "default": "\"\"",
648
+ "description": "Optional left-side icon (Iconify name). Default: `\"\"`.",
649
+ "attribute": "iconL"
604
650
  },
605
651
  {
606
652
  "kind": "field",
607
- "name": "preset",
653
+ "name": "iconR",
608
654
  "type": {
609
655
  "text": "string"
610
656
  },
611
657
  "default": "\"\"",
612
- "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
613
- "attribute": "preset",
614
- "reflects": true
658
+ "description": "Optional right-side icon (Iconify name). Default: `\"\"`.",
659
+ "attribute": "iconR"
615
660
  },
616
661
  {
617
662
  "kind": "field",
618
- "name": "_presets",
619
- "privacy": "private",
620
- "default": "new PresetController(this)"
621
- },
622
- {
623
- "kind": "method",
624
- "name": "_applyColorSurface",
625
- "privacy": "private",
626
- "return": {
627
- "type": {
628
- "text": "void"
629
- }
663
+ "name": "iconOnly",
664
+ "type": {
665
+ "text": "boolean"
630
666
  },
631
- "description": "Applies glass vs solid surface tokens from `color`."
667
+ "default": "false",
668
+ "description": "Square padding for icon-only buttons; hides label text. Default: `false`.",
669
+ "attribute": "iconOnly",
670
+ "reflects": true
632
671
  },
633
672
  {
634
- "kind": "method",
635
- "name": "_applyBackgroundImage",
636
- "privacy": "private",
637
- "return": {
638
- "type": {
639
- "text": "void"
640
- }
641
- },
642
- "description": "Sets background image CSS variable from `url`."
643
- }
644
- ],
645
- "attributes": [
646
- {
647
- "name": "title",
673
+ "kind": "field",
674
+ "name": "colors",
648
675
  "type": {
649
676
  "text": "string"
650
677
  },
651
- "default": "\"App Bar\"",
652
- "description": "Title text displayed in the app bar.",
653
- "fieldName": "title"
678
+ "default": "\"\"",
679
+ "description": "Comma-separated color stops for gradient variant. Default: `\"\"`.",
680
+ "attribute": "colors"
654
681
  },
655
682
  {
656
- "name": "color",
683
+ "kind": "field",
684
+ "name": "animation",
657
685
  "type": {
658
- "text": "string"
686
+ "text": "SkyButtonAnimation"
659
687
  },
660
- "default": "\"default\"",
661
- "description": "Semantic token or CSS color for bar background; foreground color is derived for contrast.",
662
- "fieldName": "color"
688
+ "default": "\"auto\"",
689
+ "description": "Transform animation style. Default: `\"auto\"`.",
690
+ "attribute": "animation",
691
+ "reflects": true
663
692
  },
664
693
  {
665
- "name": "url",
694
+ "kind": "field",
695
+ "name": "preset",
666
696
  "type": {
667
697
  "text": "string"
668
698
  },
669
699
  "default": "\"\"",
670
- "description": "Background image URL.",
671
- "fieldName": "url"
700
+ "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
701
+ "attribute": "preset",
702
+ "reflects": true
672
703
  },
673
704
  {
674
- "name": "banner",
705
+ "kind": "field",
706
+ "name": "_hasMeaningfulSlot",
675
707
  "type": {
676
708
  "text": "boolean"
677
709
  },
678
- "default": "true",
679
- "description": "Uses `role=\"banner\"` when true, otherwise `role=\"group\"`.",
680
- "fieldName": "banner"
710
+ "privacy": "private",
711
+ "default": "false"
681
712
  },
682
713
  {
683
- "name": "dense",
714
+ "kind": "field",
715
+ "name": "_styleVars",
684
716
  "type": {
685
- "text": "boolean"
717
+ "text": "Record<string, string>"
686
718
  },
687
- "default": "false",
688
- "description": "Enables compact vertical spacing.",
689
- "fieldName": "dense"
719
+ "privacy": "private",
720
+ "default": "{}",
721
+ "description": "Inline CSS variable cache."
690
722
  },
691
723
  {
692
- "name": "elevated",
724
+ "kind": "field",
725
+ "name": "_presets",
726
+ "privacy": "private",
727
+ "default": "new PresetController(this, { isPaused: () => this.inGroup, onChange: () => { this._styleDirty = true; }, })"
728
+ },
729
+ {
730
+ "kind": "field",
731
+ "name": "_lastPresetRevision",
693
732
  "type": {
694
- "text": "boolean"
733
+ "text": "number"
695
734
  },
696
- "default": "false",
697
- "description": "Applies elevated shadow styling.",
698
- "fieldName": "elevated"
735
+ "privacy": "private",
736
+ "default": "-1"
699
737
  },
700
738
  {
701
- "name": "leadingLabel",
739
+ "kind": "field",
740
+ "name": "_styleDirty",
702
741
  "type": {
703
- "text": "string"
742
+ "text": "boolean"
704
743
  },
705
- "default": "\"Open menu\"",
706
- "description": "Accessible label for default leading button fallback.",
707
- "fieldName": "leadingLabel"
744
+ "privacy": "private",
745
+ "default": "true",
746
+ "description": "Set when presets change so `update()` rebuilds CSS vars after hostUpdate."
708
747
  },
709
748
  {
710
- "name": "preset",
711
- "type": {
712
- "text": "string"
749
+ "kind": "method",
750
+ "name": "_slotHasMeaningfulContent",
751
+ "privacy": "private",
752
+ "return": {
753
+ "type": {
754
+ "text": "boolean"
755
+ }
713
756
  },
714
- "default": "\"\"",
715
- "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
716
- "fieldName": "preset"
717
- }
718
- ],
719
- "superclass": {
720
- "name": "LitElement",
721
- "package": "lit"
722
- },
723
- "tagName": "sky-appbar",
724
- "customElement": true,
725
- "summary": "Application top bar with title, optional leading control, trailing actions, and optional color/image background."
726
- }
727
- ],
728
- "exports": [
729
- {
730
- "kind": "js",
731
- "name": "SkyAppbar",
732
- "declaration": {
733
- "name": "SkyAppbar",
734
- "module": "src/sky-appbar/sky-appbar.ts"
735
- }
736
- },
737
- {
738
- "kind": "custom-element-definition",
739
- "name": "sky-appbar",
740
- "declaration": {
741
- "name": "SkyAppbar",
742
- "module": "src/sky-appbar/sky-appbar.ts"
743
- }
744
- }
745
- ]
746
- },
747
- {
748
- "kind": "javascript-module",
749
- "path": "src/sky-avatar/sky-avatar.ts",
750
- "declarations": [
751
- {
752
- "kind": "class",
753
- "description": "",
754
- "name": "SkyAvatar",
755
- "cssParts": [
756
- {
757
- "description": "The avatar container element.",
758
- "name": "avatar"
759
- },
760
- {
761
- "description": "The loading overlay container (shown when `loading` is true).",
762
- "name": "loading-overlay"
763
- },
764
- {
765
- "description": "The spinner element shown when loading.",
766
- "name": "spinner"
767
- }
768
- ],
769
- "slots": [
770
- {
771
- "description": "Fallback content (e.g., initials or an icon) rendered when `image` is empty.",
772
- "name": ""
773
- }
774
- ],
775
- "members": [
776
- {
777
- "kind": "field",
778
- "name": "size",
779
- "type": {
780
- "text": "string"
781
- },
782
- "default": "\"50px\"",
783
- "description": "Avatar size: preset `sm` | `md` | `lg` or CSS length (for example `50px`).",
784
- "attribute": "size"
785
- },
786
- {
787
- "kind": "field",
788
- "name": "image",
789
- "type": {
790
- "text": "string"
791
- },
792
- "default": "\"\"",
793
- "description": "Image URL; fallback slot is shown on load error.",
794
- "attribute": "image"
795
- },
796
- {
797
- "kind": "field",
798
- "name": "fit",
799
- "type": {
800
- "text": "SkyAvatarFit"
801
- },
802
- "default": "\"cover\"",
803
- "description": "Image fill mode: `cover` (default) or `contain`.",
804
- "attribute": "fit",
805
- "reflects": true
806
- },
807
- {
808
- "kind": "field",
809
- "name": "radius",
810
- "type": {
811
- "text": "string"
812
- },
813
- "default": "\"md\"",
814
- "description": "Border radius token or CSS value.",
815
- "attribute": "radius"
816
- },
817
- {
818
- "kind": "field",
819
- "name": "alt",
820
- "type": {
821
- "text": "string"
822
- },
823
- "default": "\"\"",
824
- "description": "Accessible name when image content conveys meaning.",
825
- "attribute": "alt"
826
- },
827
- {
828
- "kind": "field",
829
- "name": "color",
830
- "type": {
831
- "text": "string"
832
- },
833
- "default": "\"dark\"",
834
- "description": "Token or CSS color applied to fallback slot content.",
835
- "attribute": "color"
836
- },
837
- {
838
- "kind": "field",
839
- "name": "outline",
840
- "type": {
841
- "text": "string"
842
- },
843
- "default": "\"\"",
844
- "description": "CSS `outline` value.",
845
- "attribute": "outline"
846
- },
847
- {
848
- "kind": "field",
849
- "name": "outlineOffset",
850
- "type": {
851
- "text": "string"
852
- },
853
- "default": "\"2px\"",
854
- "description": "CSS `outline-offset` value.",
855
- "attribute": "outlineOffset"
856
- },
857
- {
858
- "kind": "field",
859
- "name": "loading",
860
- "type": {
861
- "text": "boolean"
862
- },
863
- "default": "false",
864
- "description": "Shows loading overlay when true.",
865
- "attribute": "loading",
866
- "reflects": true
867
- },
868
- {
869
- "kind": "field",
870
- "name": "disabled",
871
- "type": {
872
- "text": "boolean"
873
- },
874
- "default": "false",
875
- "description": "Dims and disables pointer interactions.",
876
- "attribute": "disabled",
877
- "reflects": true
878
- },
879
- {
880
- "kind": "field",
881
- "name": "interactive",
882
- "type": {
883
- "text": "boolean"
884
- },
885
- "default": "false",
886
- "description": "Enables interactive behavior with keyboard/click activation.",
887
- "attribute": "interactive"
757
+ "parameters": [
758
+ {
759
+ "name": "slotEl",
760
+ "type": {
761
+ "text": "HTMLSlotElement"
762
+ }
763
+ }
764
+ ]
888
765
  },
889
766
  {
890
767
  "kind": "field",
891
- "name": "shadow",
892
- "type": {
893
- "text": "boolean"
894
- },
895
- "default": "false",
896
- "description": "When true, applies solid surface, border ring, and elevation; no backdrop blur.",
897
- "attribute": "shadow",
898
- "reflects": true
768
+ "name": "_onSlotChange",
769
+ "privacy": "private"
899
770
  },
900
771
  {
901
- "kind": "field",
902
- "name": "_imageError",
903
- "type": {
904
- "text": "boolean"
905
- },
772
+ "kind": "method",
773
+ "name": "_toSquarePadding",
906
774
  "privacy": "private",
907
- "default": "false",
908
- "description": "True when image failed to load; show slot instead."
909
- },
910
- {
911
- "kind": "field",
912
- "name": "preset",
913
- "type": {
914
- "text": "string"
775
+ "return": {
776
+ "type": {
777
+ "text": "string"
778
+ }
915
779
  },
916
- "default": "\"\"",
917
- "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
918
- "attribute": "preset",
919
- "reflects": true
920
- },
921
- {
922
- "kind": "field",
923
- "name": "_presets",
924
- "privacy": "private",
925
- "default": "new PresetController(this)"
926
- },
927
- {
928
- "kind": "field",
929
- "name": "_onImageLoad",
930
- "privacy": "private",
931
- "description": "Marks image load success and keeps image rendering active."
780
+ "parameters": [
781
+ {
782
+ "name": "padding",
783
+ "type": {
784
+ "text": "string"
785
+ }
786
+ }
787
+ ],
788
+ "description": "Uses vertical padding for equal sides (icon-only square control)."
932
789
  },
933
790
  {
934
- "kind": "field",
935
- "name": "_onImageError",
791
+ "kind": "method",
792
+ "name": "_resolveSize",
936
793
  "privacy": "private",
937
- "description": "Marks image load failure and enables fallback slot rendering."
794
+ "return": {
795
+ "type": {
796
+ "text": "{\r\n padding: string;\r\n fontSize: string;\r\n gap: string;\r\n icon: string;\r\n spinner: string;\r\n }"
797
+ }
798
+ },
799
+ "parameters": [
800
+ {
801
+ "name": "input",
802
+ "type": {
803
+ "text": "string"
804
+ }
805
+ }
806
+ ]
938
807
  },
939
808
  {
940
809
  "kind": "method",
941
- "name": "_handleInteractiveClick",
810
+ "name": "_isThemeBorderShorthand",
942
811
  "privacy": "private",
943
812
  "return": {
944
813
  "type": {
945
- "text": "void"
814
+ "text": "boolean"
946
815
  }
947
816
  },
948
817
  "parameters": [
949
818
  {
950
- "name": "e",
819
+ "name": "border",
951
820
  "type": {
952
- "text": "Event"
821
+ "text": "string | undefined"
953
822
  }
954
823
  }
955
824
  ],
956
- "description": "Re-dispatches click in interactive mode for host-level consumers."
825
+ "description": "Theme tokens like `var(--sky-border-primary)` are full border shorthands, not colors."
957
826
  },
958
827
  {
959
828
  "kind": "method",
960
- "name": "_handleInteractiveKeydown",
829
+ "name": "_borderColorFromShorthand",
961
830
  "privacy": "private",
962
831
  "return": {
963
832
  "type": {
964
- "text": "void"
833
+ "text": "string"
965
834
  }
966
835
  },
967
836
  "parameters": [
968
837
  {
969
- "name": "e",
838
+ "name": "border",
970
839
  "type": {
971
- "text": "KeyboardEvent"
840
+ "text": "string | undefined"
972
841
  }
973
842
  }
974
843
  ],
975
- "description": "Handles keyboard activation in interactive mode."
844
+ "description": "Extracts the color token from a `Npx solid …` border shorthand."
976
845
  },
977
846
  {
978
847
  "kind": "method",
979
- "name": "adjustSpinnerSize",
848
+ "name": "_rebuildStyleVars",
980
849
  "privacy": "private",
981
850
  "return": {
982
851
  "type": {
983
852
  "text": "void"
984
853
  }
985
854
  },
986
- "description": "Derives spinner dimensions from current avatar size."
987
- }
988
- ],
989
- "events": [
990
- {
991
- "name": "click",
992
- "type": {
993
- "text": "Event"
994
- }
995
- }
996
- ],
997
- "attributes": [
998
- {
999
- "name": "size",
1000
- "type": {
1001
- "text": "string"
1002
- },
1003
- "default": "\"50px\"",
1004
- "description": "Avatar size: preset `sm` | `md` | `lg` or CSS length (for example `50px`).",
1005
- "fieldName": "size"
1006
- },
1007
- {
1008
- "name": "image",
1009
- "type": {
1010
- "text": "string"
1011
- },
1012
- "default": "\"\"",
1013
- "description": "Image URL; fallback slot is shown on load error.",
1014
- "fieldName": "image"
1015
- },
1016
- {
1017
- "name": "fit",
1018
- "type": {
1019
- "text": "SkyAvatarFit"
1020
- },
1021
- "default": "\"cover\"",
1022
- "description": "Image fill mode: `cover` (default) or `contain`.",
1023
- "fieldName": "fit"
1024
- },
1025
- {
1026
- "name": "radius",
1027
- "type": {
1028
- "text": "string"
1029
- },
1030
- "default": "\"md\"",
1031
- "description": "Border radius token or CSS value.",
1032
- "fieldName": "radius"
1033
- },
1034
- {
1035
- "name": "alt",
1036
- "type": {
1037
- "text": "string"
1038
- },
1039
- "default": "\"\"",
1040
- "description": "Accessible name when image content conveys meaning.",
1041
- "fieldName": "alt"
1042
- },
1043
- {
1044
- "name": "color",
1045
- "type": {
1046
- "text": "string"
1047
- },
1048
- "default": "\"dark\"",
1049
- "description": "Token or CSS color applied to fallback slot content.",
1050
- "fieldName": "color"
1051
- },
1052
- {
1053
- "name": "outline",
1054
- "type": {
1055
- "text": "string"
1056
- },
1057
- "default": "\"\"",
1058
- "description": "CSS `outline` value.",
1059
- "fieldName": "outline"
1060
- },
1061
- {
1062
- "name": "outlineOffset",
1063
- "type": {
1064
- "text": "string"
1065
- },
1066
- "default": "\"2px\"",
1067
- "description": "CSS `outline-offset` value.",
1068
- "fieldName": "outlineOffset"
1069
- },
1070
- {
1071
- "name": "loading",
1072
- "type": {
1073
- "text": "boolean"
1074
- },
1075
- "default": "false",
1076
- "description": "Shows loading overlay when true.",
1077
- "fieldName": "loading"
1078
- },
1079
- {
1080
- "name": "disabled",
1081
- "type": {
1082
- "text": "boolean"
1083
- },
1084
- "default": "false",
1085
- "description": "Dims and disables pointer interactions.",
1086
- "fieldName": "disabled"
1087
- },
1088
- {
1089
- "name": "interactive",
1090
- "type": {
1091
- "text": "boolean"
1092
- },
1093
- "default": "false",
1094
- "description": "Enables interactive behavior with keyboard/click activation.",
1095
- "fieldName": "interactive"
855
+ "parameters": [
856
+ {
857
+ "name": "changedProperties",
858
+ "type": {
859
+ "text": "Map<string, unknown>"
860
+ }
861
+ }
862
+ ]
1096
863
  },
1097
864
  {
1098
- "name": "shadow",
1099
- "type": {
1100
- "text": "boolean"
865
+ "kind": "method",
866
+ "name": "focusButton",
867
+ "privacy": "public",
868
+ "return": {
869
+ "type": {
870
+ "text": "void"
871
+ }
1101
872
  },
1102
- "default": "false",
1103
- "description": "When true, applies solid surface, border ring, and elevation; no backdrop blur.",
1104
- "fieldName": "shadow"
873
+ "description": "Focuses the internal native button."
1105
874
  },
1106
875
  {
1107
- "name": "preset",
1108
- "type": {
1109
- "text": "string"
876
+ "kind": "method",
877
+ "name": "clickButton",
878
+ "privacy": "public",
879
+ "return": {
880
+ "type": {
881
+ "text": "void"
882
+ }
1110
883
  },
1111
- "default": "\"\"",
1112
- "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
1113
- "fieldName": "preset"
1114
- }
1115
- ],
1116
- "superclass": {
1117
- "name": "LitElement",
1118
- "package": "lit"
1119
- },
1120
- "tagName": "sky-avatar",
1121
- "customElement": true,
1122
- "summary": "Avatar that renders image content or fallback slot content with configurable size, radius, outline, and loading state."
1123
- }
1124
- ],
1125
- "exports": [
1126
- {
1127
- "kind": "js",
1128
- "name": "SkyAvatar",
1129
- "declaration": {
1130
- "name": "SkyAvatar",
1131
- "module": "src/sky-avatar/sky-avatar.ts"
1132
- }
1133
- },
1134
- {
1135
- "kind": "custom-element-definition",
1136
- "name": "sky-avatar",
1137
- "declaration": {
1138
- "name": "SkyAvatar",
1139
- "module": "src/sky-avatar/sky-avatar.ts"
1140
- }
1141
- }
1142
- ]
1143
- },
1144
- {
1145
- "kind": "javascript-module",
1146
- "path": "src/sky-button/sky-button.ts",
1147
- "declarations": [
1148
- {
1149
- "kind": "class",
1150
- "description": "",
1151
- "name": "SkyButton",
1152
- "cssParts": [
1153
- {
1154
- "description": "The native `<button>` element.",
1155
- "name": "button"
1156
- },
1157
- {
1158
- "description": "The optional left/right icons.",
1159
- "name": "icon"
884
+ "description": "Triggers a click on the internal native button when enabled."
1160
885
  },
1161
886
  {
1162
- "description": "Overlay displayed when loading.",
1163
- "name": "loading-overlay"
887
+ "kind": "method",
888
+ "name": "_createRipple",
889
+ "privacy": "private",
890
+ "return": {
891
+ "type": {
892
+ "text": "void"
893
+ }
894
+ },
895
+ "parameters": [
896
+ {
897
+ "name": "event",
898
+ "type": {
899
+ "text": "MouseEvent"
900
+ }
901
+ }
902
+ ]
1164
903
  },
1165
904
  {
1166
- "description": "Spinner displayed when loading.",
1167
- "name": "spinner"
1168
- }
1169
- ],
1170
- "slots": [
1171
- {
1172
- "description": "Default slot for the button label (replaces `label` property if used).",
1173
- "name": ""
1174
- }
1175
- ],
1176
- "members": [
1177
- {
1178
- "kind": "field",
1179
- "name": "dependencies",
1180
- "type": {
1181
- "text": "Record<string, CustomElementConstructor>"
905
+ "kind": "method",
906
+ "name": "formDisabledCallback",
907
+ "return": {
908
+ "type": {
909
+ "text": "void"
910
+ }
1182
911
  },
1183
- "static": true,
1184
- "default": "{ \"sky-icon\": SkyIcon, }"
912
+ "parameters": [
913
+ {
914
+ "name": "disabled",
915
+ "type": {
916
+ "text": "boolean"
917
+ }
918
+ }
919
+ ]
1185
920
  },
1186
921
  {
1187
922
  "kind": "field",
1188
- "name": "formAssociated",
923
+ "name": "formOwner",
1189
924
  "type": {
1190
- "text": "boolean"
925
+ "text": "HTMLFormElement | null"
1191
926
  },
1192
- "static": true,
1193
- "default": "true"
927
+ "readonly": true
1194
928
  },
1195
929
  {
1196
- "kind": "field",
1197
- "name": "internals",
1198
- "type": {
1199
- "text": "ElementInternals"
930
+ "kind": "method",
931
+ "name": "_handleClick",
932
+ "privacy": "private",
933
+ "return": {
934
+ "type": {
935
+ "text": "void"
936
+ }
1200
937
  },
1201
- "privacy": "private"
938
+ "parameters": [
939
+ {
940
+ "name": "event",
941
+ "type": {
942
+ "text": "MouseEvent"
943
+ }
944
+ }
945
+ ]
1202
946
  },
1203
947
  {
1204
- "kind": "field",
948
+ "kind": "method",
949
+ "name": "_iconOnlyName",
950
+ "privacy": "private",
951
+ "return": {
952
+ "type": {
953
+ "text": "string"
954
+ }
955
+ }
956
+ }
957
+ ],
958
+ "attributes": [
959
+ {
1205
960
  "name": "variant",
1206
961
  "type": {
1207
962
  "text": "SkyButtonVariant"
1208
963
  },
1209
964
  "default": "\"solid\"",
1210
965
  "description": "Visual variant of the button. Use `\"link\"` for text-only control with underline on hover. Default: `\"solid\"`.",
1211
- "attribute": "variant",
1212
- "reflects": true
966
+ "fieldName": "variant"
1213
967
  },
1214
968
  {
1215
- "kind": "field",
1216
969
  "name": "color",
1217
970
  "type": {
1218
971
  "text": "string"
1219
972
  },
1220
973
  "default": "\"primary\"",
1221
974
  "description": "Base color token or custom CSS color. Default: `\"primary\"`.",
1222
- "attribute": "color"
975
+ "fieldName": "color"
1223
976
  },
1224
977
  {
1225
- "kind": "field",
1226
978
  "name": "type",
1227
979
  "type": {
1228
980
  "text": "SkyButtonType"
1229
981
  },
1230
982
  "default": "\"button\"",
1231
983
  "description": "Button type attribute. Default: `\"button\"`.",
1232
- "attribute": "type"
984
+ "fieldName": "type"
1233
985
  },
1234
986
  {
1235
- "kind": "field",
1236
987
  "name": "form",
1237
988
  "type": {
1238
989
  "text": "string"
1239
990
  },
1240
991
  "default": "\"\"",
1241
992
  "description": "Associated form ID for custom submit handling.",
1242
- "attribute": "form"
993
+ "fieldName": "form"
1243
994
  },
1244
995
  {
1245
- "kind": "field",
1246
996
  "name": "size",
1247
997
  "type": {
1248
998
  "text": "string"
1249
999
  },
1250
1000
  "default": "\"md\"",
1251
1001
  "description": "Preset size token (`xs…xl`) or CSS size (e.g., `\"15px\"`, `\"1rem\"`). Default: `\"md\"`.",
1252
- "attribute": "size"
1002
+ "fieldName": "size"
1253
1003
  },
1254
1004
  {
1255
- "kind": "field",
1256
1005
  "name": "radius",
1257
1006
  "type": {
1258
1007
  "text": "string"
1259
1008
  },
1260
1009
  "default": "\"md\"",
1261
1010
  "description": "Preset radius token (`none…full`) or CSS radius (e.g., `\"12px\"`). Default: `\"md\"`.",
1262
- "attribute": "radius"
1011
+ "fieldName": "radius"
1263
1012
  },
1264
1013
  {
1265
- "kind": "field",
1266
1014
  "name": "label",
1267
1015
  "type": {
1268
1016
  "text": "string"
1269
1017
  },
1270
1018
  "default": "\"Button\"",
1271
1019
  "description": "Text label for the button. Ignored if default slot is used. Default: `\"Button\"`.",
1272
- "attribute": "label"
1020
+ "fieldName": "label"
1273
1021
  },
1274
1022
  {
1275
- "kind": "field",
1276
1023
  "name": "disabled",
1277
1024
  "type": {
1278
1025
  "text": "boolean"
1279
1026
  },
1280
1027
  "default": "false",
1281
1028
  "description": "Whether the button is disabled. Default: `false`.",
1282
- "attribute": "disabled",
1283
- "reflects": true
1029
+ "fieldName": "disabled"
1284
1030
  },
1285
1031
  {
1286
- "kind": "field",
1287
1032
  "name": "loading",
1288
1033
  "type": {
1289
1034
  "text": "boolean"
1290
1035
  },
1291
1036
  "default": "false",
1292
1037
  "description": "Shows a loading overlay when true. Default: `false`.",
1293
- "attribute": "loading",
1294
- "reflects": true
1038
+ "fieldName": "loading"
1295
1039
  },
1296
1040
  {
1297
- "kind": "field",
1298
1041
  "name": "iconL",
1299
1042
  "type": {
1300
1043
  "text": "string"
1301
1044
  },
1302
1045
  "default": "\"\"",
1303
1046
  "description": "Optional left-side icon (Iconify name). Default: `\"\"`.",
1304
- "attribute": "iconL"
1047
+ "fieldName": "iconL"
1305
1048
  },
1306
1049
  {
1307
- "kind": "field",
1308
1050
  "name": "iconR",
1309
1051
  "type": {
1310
1052
  "text": "string"
1311
1053
  },
1312
1054
  "default": "\"\"",
1313
1055
  "description": "Optional right-side icon (Iconify name). Default: `\"\"`.",
1314
- "attribute": "iconR"
1056
+ "fieldName": "iconR"
1315
1057
  },
1316
1058
  {
1317
- "kind": "field",
1318
1059
  "name": "iconOnly",
1319
1060
  "type": {
1320
1061
  "text": "boolean"
1321
1062
  },
1322
1063
  "default": "false",
1323
1064
  "description": "Square padding for icon-only buttons; hides label text. Default: `false`.",
1324
- "attribute": "iconOnly",
1325
- "reflects": true
1065
+ "fieldName": "iconOnly"
1326
1066
  },
1327
1067
  {
1328
- "kind": "field",
1329
1068
  "name": "colors",
1330
1069
  "type": {
1331
1070
  "text": "string"
1332
1071
  },
1333
1072
  "default": "\"\"",
1334
1073
  "description": "Comma-separated color stops for gradient variant. Default: `\"\"`.",
1335
- "attribute": "colors"
1074
+ "fieldName": "colors"
1336
1075
  },
1337
1076
  {
1338
- "kind": "field",
1339
1077
  "name": "animation",
1340
1078
  "type": {
1341
1079
  "text": "SkyButtonAnimation"
1342
1080
  },
1343
1081
  "default": "\"auto\"",
1344
1082
  "description": "Transform animation style. Default: `\"auto\"`.",
1345
- "attribute": "animation",
1346
- "reflects": true
1083
+ "fieldName": "animation"
1347
1084
  },
1348
1085
  {
1349
- "kind": "field",
1350
1086
  "name": "preset",
1351
1087
  "type": {
1352
1088
  "text": "string"
1353
1089
  },
1354
1090
  "default": "\"\"",
1355
1091
  "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
1356
- "attribute": "preset",
1092
+ "fieldName": "preset"
1093
+ }
1094
+ ],
1095
+ "superclass": {
1096
+ "name": "LitElement",
1097
+ "package": "lit"
1098
+ },
1099
+ "tagName": "sky-button",
1100
+ "customElement": true,
1101
+ "summary": "Styled button supporting variants, icons, loading state, ripple feedback, and form-associated behavior."
1102
+ }
1103
+ ],
1104
+ "exports": [
1105
+ {
1106
+ "kind": "js",
1107
+ "name": "SkyButton",
1108
+ "declaration": {
1109
+ "name": "SkyButton",
1110
+ "module": "src/sky-button/sky-button.ts"
1111
+ }
1112
+ },
1113
+ {
1114
+ "kind": "custom-element-definition",
1115
+ "name": "sky-button",
1116
+ "declaration": {
1117
+ "name": "SkyButton",
1118
+ "module": "src/sky-button/sky-button.ts"
1119
+ }
1120
+ }
1121
+ ]
1122
+ },
1123
+ {
1124
+ "kind": "javascript-module",
1125
+ "path": "src/sky-card/sky-card.ts",
1126
+ "declarations": [
1127
+ {
1128
+ "kind": "class",
1129
+ "description": "",
1130
+ "name": "SkyCard",
1131
+ "cssParts": [
1132
+ {
1133
+ "description": "The main card container element.",
1134
+ "name": "card"
1135
+ },
1136
+ {
1137
+ "description": "The card header section.",
1138
+ "name": "header"
1139
+ },
1140
+ {
1141
+ "description": "The card footer section.",
1142
+ "name": "footer"
1143
+ },
1144
+ {
1145
+ "description": "The ripple animation element injected when the card is clicked.",
1146
+ "name": "ripple"
1147
+ }
1148
+ ],
1149
+ "slots": [
1150
+ {
1151
+ "description": "Default slot for the card body content (replaces `bodyPadding` property if used).",
1152
+ "name": ""
1153
+ },
1154
+ {
1155
+ "description": "Slot for the card title.",
1156
+ "name": "title"
1157
+ },
1158
+ {
1159
+ "description": "Slot for the card subtitle.",
1160
+ "name": "subtitle"
1161
+ },
1162
+ {
1163
+ "description": "Slot for the card actions (usually buttons).",
1164
+ "name": "actions"
1165
+ },
1166
+ {
1167
+ "description": "Slot for the footer title.",
1168
+ "name": "footer-title"
1169
+ },
1170
+ {
1171
+ "description": "Slot for the footer subtitle.",
1172
+ "name": "footer-subtitle"
1173
+ },
1174
+ {
1175
+ "description": "Slot for the footer actions (usually buttons).",
1176
+ "name": "footer-actions"
1177
+ }
1178
+ ],
1179
+ "members": [
1180
+ {
1181
+ "kind": "field",
1182
+ "name": "bg",
1183
+ "type": {
1184
+ "text": "string"
1185
+ },
1186
+ "default": "\"primary\"",
1187
+ "description": "Background color of the card. Accepts color tokens or custom CSS colors. Default: `\"primary\"`.",
1188
+ "attribute": "bg",
1357
1189
  "reflects": true
1358
1190
  },
1359
1191
  {
1360
1192
  "kind": "field",
1361
- "name": "_hasMeaningfulSlot",
1193
+ "name": "blurLevel",
1362
1194
  "type": {
1363
- "text": "boolean"
1195
+ "text": "string"
1364
1196
  },
1365
- "privacy": "private",
1366
- "default": "false"
1197
+ "default": "\"none\"",
1198
+ "description": "Level of blur applied to the background. Default: `\"none\"`.",
1199
+ "attribute": "blurLevel",
1200
+ "reflects": true
1367
1201
  },
1368
1202
  {
1369
1203
  "kind": "field",
1370
- "name": "_styleVars",
1204
+ "name": "radius",
1371
1205
  "type": {
1372
- "text": "Record<string, string>"
1206
+ "text": "string"
1373
1207
  },
1374
- "privacy": "private",
1375
- "default": "{}",
1376
- "description": "Inline CSS variable cache."
1208
+ "default": "\"md\"",
1209
+ "description": "Border radius of the card. Default: `\"md\"`.",
1210
+ "attribute": "radius",
1211
+ "reflects": true
1377
1212
  },
1378
1213
  {
1379
1214
  "kind": "field",
1380
- "name": "_presets",
1381
- "privacy": "private",
1382
- "default": "new PresetController(this, { isPaused: () => this.inGroup, onChange: () => { this._styleDirty = true; }, })"
1215
+ "name": "bodyPadding",
1216
+ "type": {
1217
+ "text": "string"
1218
+ },
1219
+ "default": "\"none\"",
1220
+ "description": "Padding for the card body. Default: `\"none\"`.",
1221
+ "attribute": "bodyPadding",
1222
+ "reflects": true
1383
1223
  },
1384
1224
  {
1385
1225
  "kind": "field",
1386
- "name": "_lastPresetRevision",
1226
+ "name": "elevation",
1387
1227
  "type": {
1388
- "text": "number"
1228
+ "text": "SkyCardElevation"
1389
1229
  },
1390
- "privacy": "private",
1391
- "default": "-1"
1230
+ "default": "\"md\"",
1231
+ "description": "Shadow depth of the card. Default: `\"md\"`.",
1232
+ "attribute": "elevation",
1233
+ "reflects": true
1392
1234
  },
1393
1235
  {
1394
1236
  "kind": "field",
1395
- "name": "_styleDirty",
1237
+ "name": "outlined",
1396
1238
  "type": {
1397
1239
  "text": "boolean"
1398
1240
  },
1399
- "privacy": "private",
1400
- "default": "true",
1401
- "description": "Set when presets change so `update()` rebuilds CSS vars after hostUpdate."
1241
+ "default": "false",
1242
+ "description": "Whether the card has an outline. Default: `false`.",
1243
+ "attribute": "outlined",
1244
+ "reflects": true
1402
1245
  },
1403
1246
  {
1404
- "kind": "method",
1405
- "name": "_slotHasMeaningfulContent",
1406
- "privacy": "private",
1407
- "return": {
1408
- "type": {
1409
- "text": "boolean"
1410
- }
1247
+ "kind": "field",
1248
+ "name": "clickable",
1249
+ "type": {
1250
+ "text": "boolean"
1411
1251
  },
1412
- "parameters": [
1413
- {
1414
- "name": "slotEl",
1415
- "type": {
1416
- "text": "HTMLSlotElement"
1417
- }
1418
- }
1419
- ]
1252
+ "default": "false",
1253
+ "description": "Whether the card is clickable. Default: `false`.",
1254
+ "attribute": "clickable",
1255
+ "reflects": true
1420
1256
  },
1421
1257
  {
1422
1258
  "kind": "field",
1423
- "name": "_onSlotChange",
1424
- "privacy": "private"
1259
+ "name": "headerBg",
1260
+ "type": {
1261
+ "text": "string"
1262
+ },
1263
+ "default": "\"transparent\"",
1264
+ "description": "Background color of the header. Default: `\"transparent\"`.",
1265
+ "attribute": "headerBg",
1266
+ "reflects": true
1425
1267
  },
1426
1268
  {
1427
- "kind": "method",
1428
- "name": "_toSquarePadding",
1429
- "privacy": "private",
1430
- "return": {
1431
- "type": {
1432
- "text": "string"
1433
- }
1269
+ "kind": "field",
1270
+ "name": "headerBlur",
1271
+ "type": {
1272
+ "text": "string"
1434
1273
  },
1435
- "parameters": [
1436
- {
1437
- "name": "padding",
1438
- "type": {
1439
- "text": "string"
1440
- }
1441
- }
1442
- ],
1443
- "description": "Uses vertical padding for equal sides (icon-only square control)."
1274
+ "default": "\"none\"",
1275
+ "description": "Blur level for the header background. Default: `\"none\"`.",
1276
+ "attribute": "headerBlur",
1277
+ "reflects": true
1444
1278
  },
1445
1279
  {
1446
- "kind": "method",
1447
- "name": "_resolveSize",
1448
- "privacy": "private",
1449
- "return": {
1450
- "type": {
1451
- "text": "{\r\n padding: string;\r\n fontSize: string;\r\n gap: string;\r\n icon: string;\r\n spinner: string;\r\n }"
1452
- }
1280
+ "kind": "field",
1281
+ "name": "headerPadding",
1282
+ "type": {
1283
+ "text": "string"
1453
1284
  },
1454
- "parameters": [
1455
- {
1456
- "name": "input",
1457
- "type": {
1458
- "text": "string"
1459
- }
1460
- }
1461
- ]
1285
+ "default": "\"md\"",
1286
+ "description": "Padding for the header. Default: `\"md\"`.",
1287
+ "attribute": "headerPadding",
1288
+ "reflects": true
1462
1289
  },
1463
1290
  {
1464
- "kind": "method",
1465
- "name": "_isThemeBorderShorthand",
1466
- "privacy": "private",
1467
- "return": {
1468
- "type": {
1469
- "text": "boolean"
1470
- }
1291
+ "kind": "field",
1292
+ "name": "headerLayout",
1293
+ "type": {
1294
+ "text": "SkyCardSectionLayout"
1471
1295
  },
1472
- "parameters": [
1473
- {
1474
- "name": "border",
1475
- "type": {
1476
- "text": "string | undefined"
1477
- }
1478
- }
1479
- ],
1480
- "description": "Theme tokens like `var(--sky-border-primary)` are full border shorthands, not colors."
1296
+ "default": "\"inline\"",
1297
+ "description": "Layout of the header content. Default: `\"inline\"`.",
1298
+ "attribute": "headerLayout"
1481
1299
  },
1482
1300
  {
1483
- "kind": "method",
1484
- "name": "_borderColorFromShorthand",
1485
- "privacy": "private",
1486
- "return": {
1487
- "type": {
1488
- "text": "string"
1489
- }
1301
+ "kind": "field",
1302
+ "name": "headerInsetGap",
1303
+ "type": {
1304
+ "text": "string"
1490
1305
  },
1491
- "parameters": [
1492
- {
1493
- "name": "border",
1494
- "type": {
1495
- "text": "string | undefined"
1496
- }
1497
- }
1498
- ],
1499
- "description": "Extracts the color token from a `Npx solid …` border shorthand."
1306
+ "default": "\"sm\"",
1307
+ "description": "Inset gap for the header section. Default: `\"sm\"`.",
1308
+ "attribute": "headerInsetGap",
1309
+ "reflects": true
1500
1310
  },
1501
1311
  {
1502
- "kind": "method",
1503
- "name": "_rebuildStyleVars",
1504
- "privacy": "private",
1505
- "return": {
1506
- "type": {
1507
- "text": "void"
1508
- }
1312
+ "kind": "field",
1313
+ "name": "headerRadius",
1314
+ "type": {
1315
+ "text": "string"
1509
1316
  },
1510
- "parameters": [
1511
- {
1512
- "name": "changedProperties",
1513
- "type": {
1514
- "text": "Map<string, unknown>"
1515
- }
1516
- }
1517
- ]
1317
+ "default": "\"md\"",
1318
+ "description": "Border radius for the header. Default: `\"md\"`.",
1319
+ "attribute": "headerRadius",
1320
+ "reflects": true
1518
1321
  },
1519
1322
  {
1520
- "kind": "method",
1521
- "name": "focusButton",
1522
- "privacy": "public",
1523
- "return": {
1524
- "type": {
1525
- "text": "void"
1526
- }
1323
+ "kind": "field",
1324
+ "name": "headerSeparatorColor",
1325
+ "type": {
1326
+ "text": "string"
1527
1327
  },
1528
- "description": "Focuses the internal native button."
1328
+ "default": "\"border-light\"",
1329
+ "description": "Color for the header separator. Default: `\"border-light\"`.",
1330
+ "attribute": "headerSeparatorColor"
1529
1331
  },
1530
1332
  {
1531
- "kind": "method",
1532
- "name": "clickButton",
1533
- "privacy": "public",
1534
- "return": {
1535
- "type": {
1536
- "text": "void"
1537
- }
1333
+ "kind": "field",
1334
+ "name": "footerBg",
1335
+ "type": {
1336
+ "text": "string"
1538
1337
  },
1539
- "description": "Triggers a click on the internal native button when enabled."
1338
+ "default": "\"transparent\"",
1339
+ "description": "Background color of the footer. Default: `\"transparent\"`.",
1340
+ "attribute": "footerBg",
1341
+ "reflects": true
1540
1342
  },
1541
1343
  {
1542
- "kind": "method",
1543
- "name": "_createRipple",
1544
- "privacy": "private",
1545
- "return": {
1546
- "type": {
1547
- "text": "void"
1548
- }
1344
+ "kind": "field",
1345
+ "name": "footerBlur",
1346
+ "type": {
1347
+ "text": "string"
1549
1348
  },
1550
- "parameters": [
1551
- {
1552
- "name": "event",
1553
- "type": {
1554
- "text": "MouseEvent"
1555
- }
1556
- }
1557
- ]
1349
+ "default": "\"none\"",
1350
+ "description": "Blur level for the footer background. Default: `\"none\"`.",
1351
+ "attribute": "footerBlur",
1352
+ "reflects": true
1558
1353
  },
1559
1354
  {
1560
- "kind": "method",
1561
- "name": "formDisabledCallback",
1562
- "return": {
1563
- "type": {
1564
- "text": "void"
1565
- }
1355
+ "kind": "field",
1356
+ "name": "footerPadding",
1357
+ "type": {
1358
+ "text": "string"
1566
1359
  },
1567
- "parameters": [
1568
- {
1569
- "name": "disabled",
1570
- "type": {
1571
- "text": "boolean"
1572
- }
1573
- }
1574
- ]
1360
+ "default": "\"md\"",
1361
+ "description": "Padding for the footer. Default: `\"md\"`.",
1362
+ "attribute": "footerPadding",
1363
+ "reflects": true
1575
1364
  },
1576
1365
  {
1577
1366
  "kind": "field",
1578
- "name": "formOwner",
1367
+ "name": "footerLayout",
1579
1368
  "type": {
1580
- "text": "HTMLFormElement | null"
1369
+ "text": "SkyCardSectionLayout"
1581
1370
  },
1582
- "readonly": true
1371
+ "default": "\"inline\"",
1372
+ "description": "Layout of the footer content. Default: `\"inline\"`.",
1373
+ "attribute": "footerLayout"
1583
1374
  },
1584
1375
  {
1585
- "kind": "method",
1586
- "name": "_handleClick",
1587
- "privacy": "private",
1588
- "return": {
1589
- "type": {
1590
- "text": "void"
1591
- }
1376
+ "kind": "field",
1377
+ "name": "footerInsetGap",
1378
+ "type": {
1379
+ "text": "string"
1592
1380
  },
1593
- "parameters": [
1594
- {
1595
- "name": "event",
1596
- "type": {
1597
- "text": "MouseEvent"
1598
- }
1599
- }
1600
- ]
1381
+ "default": "\"sm\"",
1382
+ "description": "Inset gap for the footer section. Default: `\"sm\"`.",
1383
+ "attribute": "footerInsetGap",
1384
+ "reflects": true
1601
1385
  },
1602
1386
  {
1603
- "kind": "method",
1604
- "name": "_iconOnlyName",
1605
- "privacy": "private",
1606
- "return": {
1607
- "type": {
1608
- "text": "string"
1609
- }
1610
- }
1611
- }
1612
- ],
1613
- "attributes": [
1614
- {
1615
- "name": "variant",
1387
+ "kind": "field",
1388
+ "name": "footerRadius",
1616
1389
  "type": {
1617
- "text": "SkyButtonVariant"
1390
+ "text": "string"
1618
1391
  },
1619
- "default": "\"solid\"",
1620
- "description": "Visual variant of the button. Use `\"link\"` for text-only control with underline on hover. Default: `\"solid\"`.",
1621
- "fieldName": "variant"
1392
+ "default": "\"md\"",
1393
+ "description": "Border radius for the footer. Default: `\"md\"`.",
1394
+ "attribute": "footerRadius",
1395
+ "reflects": true
1622
1396
  },
1623
1397
  {
1624
- "name": "color",
1398
+ "kind": "field",
1399
+ "name": "footerSeparatorColor",
1625
1400
  "type": {
1626
1401
  "text": "string"
1627
1402
  },
1628
- "default": "\"primary\"",
1629
- "description": "Base color token or custom CSS color. Default: `\"primary\"`.",
1630
- "fieldName": "color"
1403
+ "default": "\"border-light\"",
1404
+ "description": "Color for the footer separator. Default: `\"border-light\"`.",
1405
+ "attribute": "footerSeparatorColor"
1631
1406
  },
1632
1407
  {
1633
- "name": "type",
1408
+ "kind": "field",
1409
+ "name": "padRatio",
1634
1410
  "type": {
1635
- "text": "SkyButtonType"
1411
+ "text": "number"
1636
1412
  },
1637
- "default": "\"button\"",
1638
- "description": "Button type attribute. Default: `\"button\"`.",
1639
- "fieldName": "type"
1413
+ "default": "1",
1414
+ "description": "Ratio to adjust padding. Default: `1`.",
1415
+ "attribute": "padRatio"
1640
1416
  },
1641
1417
  {
1642
- "name": "form",
1418
+ "kind": "field",
1419
+ "name": "separators",
1643
1420
  "type": {
1644
- "text": "string"
1421
+ "text": "SkyCardSectionTarget"
1645
1422
  },
1646
- "default": "\"\"",
1647
- "description": "Associated form ID for custom submit handling.",
1648
- "fieldName": "form"
1423
+ "default": "\"none\"",
1424
+ "description": "Determines where separators should appear. Default: `\"none\"`.",
1425
+ "attribute": "separators"
1649
1426
  },
1650
1427
  {
1651
- "name": "size",
1428
+ "kind": "field",
1429
+ "name": "overlays",
1652
1430
  "type": {
1653
- "text": "string"
1431
+ "text": "SkyCardSectionTarget"
1654
1432
  },
1655
- "default": "\"md\"",
1656
- "description": "Preset size token (`xs…xl`) or CSS size (e.g., `\"15px\"`, `\"1rem\"`). Default: `\"md\"`.",
1657
- "fieldName": "size"
1433
+ "default": "\"none\"",
1434
+ "description": "Determines where overlays should appear. Default: `\"none\"`.",
1435
+ "attribute": "overlays"
1658
1436
  },
1659
1437
  {
1660
- "name": "radius",
1438
+ "kind": "field",
1439
+ "name": "insets",
1661
1440
  "type": {
1662
- "text": "string"
1441
+ "text": "SkyCardSectionTarget"
1663
1442
  },
1664
- "default": "\"md\"",
1665
- "description": "Preset radius token (`none…full`) or CSS radius (e.g., `\"12px\"`). Default: `\"md\"`.",
1666
- "fieldName": "radius"
1443
+ "default": "\"none\"",
1444
+ "description": "Determines where insets should appear. Default: `\"none\"`.",
1445
+ "attribute": "insets"
1667
1446
  },
1668
1447
  {
1669
- "name": "label",
1448
+ "kind": "field",
1449
+ "name": "_effHeaderSeparator",
1670
1450
  "type": {
1671
- "text": "string"
1451
+ "text": "boolean"
1672
1452
  },
1673
- "default": "\"Button\"",
1674
- "description": "Text label for the button. Ignored if default slot is used. Default: `\"Button\"`.",
1675
- "fieldName": "label"
1453
+ "privacy": "private",
1454
+ "default": "false"
1676
1455
  },
1677
1456
  {
1678
- "name": "disabled",
1457
+ "kind": "field",
1458
+ "name": "_effFooterSeparator",
1679
1459
  "type": {
1680
1460
  "text": "boolean"
1681
1461
  },
1682
- "default": "false",
1683
- "description": "Whether the button is disabled. Default: `false`.",
1684
- "fieldName": "disabled"
1462
+ "privacy": "private",
1463
+ "default": "false"
1685
1464
  },
1686
1465
  {
1687
- "name": "loading",
1466
+ "kind": "field",
1467
+ "name": "_effHeaderOverlay",
1688
1468
  "type": {
1689
1469
  "text": "boolean"
1690
1470
  },
1691
- "default": "false",
1692
- "description": "Shows a loading overlay when true. Default: `false`.",
1693
- "fieldName": "loading"
1471
+ "privacy": "private",
1472
+ "default": "false"
1694
1473
  },
1695
1474
  {
1696
- "name": "iconL",
1475
+ "kind": "field",
1476
+ "name": "_effFooterOverlay",
1697
1477
  "type": {
1698
- "text": "string"
1478
+ "text": "boolean"
1699
1479
  },
1700
- "default": "\"\"",
1701
- "description": "Optional left-side icon (Iconify name). Default: `\"\"`.",
1702
- "fieldName": "iconL"
1480
+ "privacy": "private",
1481
+ "default": "false"
1703
1482
  },
1704
1483
  {
1705
- "name": "iconR",
1484
+ "kind": "field",
1485
+ "name": "_effHeaderInset",
1706
1486
  "type": {
1707
- "text": "string"
1487
+ "text": "boolean"
1708
1488
  },
1709
- "default": "\"\"",
1710
- "description": "Optional right-side icon (Iconify name). Default: `\"\"`.",
1711
- "fieldName": "iconR"
1489
+ "privacy": "private",
1490
+ "default": "false"
1712
1491
  },
1713
1492
  {
1714
- "name": "iconOnly",
1493
+ "kind": "field",
1494
+ "name": "_effFooterInset",
1715
1495
  "type": {
1716
1496
  "text": "boolean"
1717
1497
  },
1718
- "default": "false",
1719
- "description": "Square padding for icon-only buttons; hides label text. Default: `false`.",
1720
- "fieldName": "iconOnly"
1498
+ "privacy": "private",
1499
+ "default": "false"
1500
+ },
1501
+ {
1502
+ "kind": "field",
1503
+ "name": "_varsCache",
1504
+ "type": {
1505
+ "text": "Record<string, string>"
1506
+ },
1507
+ "privacy": "private",
1508
+ "default": "{}"
1509
+ },
1510
+ {
1511
+ "kind": "field",
1512
+ "name": "BG_MAP",
1513
+ "privacy": "private",
1514
+ "static": true,
1515
+ "readonly": true,
1516
+ "default": "{ primary: \"var(--sky-glass-primary)\", secondary: \"var(--sky-glass-secondary)\", tertiary: \"var(--sky-glass-tertiary)\", transparent: \"transparent\", }",
1517
+ "type": {
1518
+ "text": "{\r\n primary: \"var(--sky-glass-primary)\",\r\n secondary: \"var(--sky-glass-secondary)\",\r\n tertiary: \"var(--sky-glass-tertiary)\",\r\n transparent: \"transparent\",\r\n }"
1519
+ }
1520
+ },
1521
+ {
1522
+ "kind": "field",
1523
+ "name": "BLUR_MAP",
1524
+ "privacy": "private",
1525
+ "static": true,
1526
+ "readonly": true,
1527
+ "default": "{ none: \"none\", xs: \"blur(2px)\", sm: \"var(--sky-blur-secondary)\", md: \"var(--sky-blur-secondary)\", lg: \"var(--sky-blur-tertiary)\", }",
1528
+ "type": {
1529
+ "text": "{\r\n none: \"none\",\r\n xs: \"blur(2px)\",\r\n sm: \"var(--sky-blur-secondary)\",\r\n md: \"var(--sky-blur-secondary)\",\r\n lg: \"var(--sky-blur-tertiary)\",\r\n }"
1530
+ }
1531
+ },
1532
+ {
1533
+ "kind": "field",
1534
+ "name": "SIZE_MAP",
1535
+ "privacy": "private",
1536
+ "static": true,
1537
+ "readonly": true,
1538
+ "default": "{ none: \"0\", sm: \"var(--sky-space-1\\\\.5, 6px)\", md: \"var(--sky-space-4, 16px)\", lg: \"var(--sky-space-6, 24px)\", xl: \"var(--sky-space-8, 32px)\", }",
1539
+ "type": {
1540
+ "text": "{\r\n none: \"0\",\r\n sm: \"var(--sky-space-1\\\\.5, 6px)\",\r\n md: \"var(--sky-space-4, 16px)\",\r\n lg: \"var(--sky-space-6, 24px)\",\r\n xl: \"var(--sky-space-8, 32px)\",\r\n }"
1541
+ }
1542
+ },
1543
+ {
1544
+ "kind": "field",
1545
+ "name": "GLASS_BG_TIERS",
1546
+ "privacy": "private",
1547
+ "static": true,
1548
+ "readonly": true,
1549
+ "default": "new Set([ \"primary\", \"secondary\", \"tertiary\", ])"
1550
+ },
1551
+ {
1552
+ "kind": "field",
1553
+ "name": "SECTION_INSET_BG_MAP",
1554
+ "privacy": "private",
1555
+ "static": true,
1556
+ "readonly": true,
1557
+ "default": "{ primary: \"var(--sky-hover-primary)\", secondary: \"var(--sky-hover-secondary)\", tertiary: \"var(--sky-hover-tertiary)\", transparent: \"transparent\", }",
1558
+ "type": {
1559
+ "text": "{\r\n primary: \"var(--sky-hover-primary)\",\r\n secondary: \"var(--sky-hover-secondary)\",\r\n tertiary: \"var(--sky-hover-tertiary)\",\r\n transparent: \"transparent\",\r\n }"
1560
+ },
1561
+ "description": "Non-overlay inset bars use hover tints — overlay sections own their own blur."
1562
+ },
1563
+ {
1564
+ "kind": "method",
1565
+ "name": "_composeBackdrop",
1566
+ "privacy": "private",
1567
+ "static": true,
1568
+ "return": {
1569
+ "type": {
1570
+ "text": "string"
1571
+ }
1572
+ },
1573
+ "parameters": [
1574
+ {
1575
+ "name": "blurLevel",
1576
+ "type": {
1577
+ "text": "string"
1578
+ }
1579
+ }
1580
+ ]
1581
+ },
1582
+ {
1583
+ "kind": "method",
1584
+ "name": "_composeElevation",
1585
+ "privacy": "private",
1586
+ "static": true,
1587
+ "return": {
1588
+ "type": {
1589
+ "text": "string"
1590
+ }
1591
+ },
1592
+ "parameters": [
1593
+ {
1594
+ "name": "level",
1595
+ "type": {
1596
+ "text": "SkyCardElevation | string"
1597
+ }
1598
+ }
1599
+ ]
1721
1600
  },
1722
1601
  {
1723
- "name": "colors",
1602
+ "kind": "field",
1603
+ "name": "preset",
1724
1604
  "type": {
1725
1605
  "text": "string"
1726
1606
  },
1727
1607
  "default": "\"\"",
1728
- "description": "Comma-separated color stops for gradient variant. Default: `\"\"`.",
1729
- "fieldName": "colors"
1608
+ "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
1609
+ "attribute": "preset",
1610
+ "reflects": true
1730
1611
  },
1731
1612
  {
1732
- "name": "animation",
1733
- "type": {
1734
- "text": "SkyButtonAnimation"
1735
- },
1736
- "default": "\"auto\"",
1737
- "description": "Transform animation style. Default: `\"auto\"`.",
1738
- "fieldName": "animation"
1613
+ "kind": "field",
1614
+ "name": "_presets",
1615
+ "privacy": "private",
1616
+ "default": "new PresetController(this)"
1739
1617
  },
1740
1618
  {
1741
- "name": "preset",
1742
- "type": {
1743
- "text": "string"
1744
- },
1745
- "default": "\"\"",
1746
- "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
1747
- "fieldName": "preset"
1748
- }
1749
- ],
1750
- "superclass": {
1751
- "name": "LitElement",
1752
- "package": "lit"
1753
- },
1754
- "tagName": "sky-button",
1755
- "customElement": true,
1756
- "summary": "Styled button supporting variants, icons, loading state, ripple feedback, and form-associated behavior."
1757
- }
1758
- ],
1759
- "exports": [
1760
- {
1761
- "kind": "js",
1762
- "name": "SkyButton",
1763
- "declaration": {
1764
- "name": "SkyButton",
1765
- "module": "src/sky-button/sky-button.ts"
1766
- }
1767
- },
1768
- {
1769
- "kind": "custom-element-definition",
1770
- "name": "sky-button",
1771
- "declaration": {
1772
- "name": "SkyButton",
1773
- "module": "src/sky-button/sky-button.ts"
1774
- }
1775
- }
1776
- ]
1777
- },
1778
- {
1779
- "kind": "javascript-module",
1780
- "path": "src/sky-card/sky-card.ts",
1781
- "declarations": [
1782
- {
1783
- "kind": "class",
1784
- "description": "",
1785
- "name": "SkyCard",
1786
- "cssParts": [
1619
+ "kind": "method",
1620
+ "name": "_wireSlotChangeHandlers",
1621
+ "privacy": "private",
1622
+ "return": {
1623
+ "type": {
1624
+ "text": "void"
1625
+ }
1626
+ }
1627
+ },
1787
1628
  {
1788
- "description": "The main card container element.",
1789
- "name": "card"
1629
+ "kind": "method",
1630
+ "name": "_syncHeader",
1631
+ "privacy": "private",
1632
+ "return": {
1633
+ "type": {
1634
+ "text": "void"
1635
+ }
1636
+ }
1790
1637
  },
1791
1638
  {
1792
- "description": "The card header section.",
1793
- "name": "header"
1639
+ "kind": "method",
1640
+ "name": "_syncFooter",
1641
+ "privacy": "private",
1642
+ "return": {
1643
+ "type": {
1644
+ "text": "void"
1645
+ }
1646
+ }
1794
1647
  },
1795
1648
  {
1796
- "description": "The card footer section.",
1797
- "name": "footer"
1649
+ "kind": "method",
1650
+ "name": "_expandPair",
1651
+ "privacy": "private",
1652
+ "return": {
1653
+ "type": {
1654
+ "text": "[boolean, boolean]"
1655
+ }
1656
+ },
1657
+ "parameters": [
1658
+ {
1659
+ "name": "sh",
1660
+ "type": {
1661
+ "text": "SkyCardSectionTarget"
1662
+ }
1663
+ }
1664
+ ]
1798
1665
  },
1799
1666
  {
1800
- "description": "The ripple animation element injected when the card is clicked.",
1801
- "name": "ripple"
1802
- }
1803
- ],
1804
- "slots": [
1667
+ "kind": "method",
1668
+ "name": "_computeEffectiveFlags",
1669
+ "privacy": "private",
1670
+ "return": {
1671
+ "type": {
1672
+ "text": "void"
1673
+ }
1674
+ }
1675
+ },
1805
1676
  {
1806
- "description": "Default slot for the card body content (replaces `bodyPadding` property if used).",
1807
- "name": ""
1677
+ "kind": "method",
1678
+ "name": "_setVar",
1679
+ "privacy": "private",
1680
+ "return": {
1681
+ "type": {
1682
+ "text": "void"
1683
+ }
1684
+ },
1685
+ "parameters": [
1686
+ {
1687
+ "name": "name",
1688
+ "type": {
1689
+ "text": "string"
1690
+ }
1691
+ },
1692
+ {
1693
+ "name": "value",
1694
+ "type": {
1695
+ "text": "string"
1696
+ }
1697
+ }
1698
+ ]
1808
1699
  },
1809
1700
  {
1810
- "description": "Slot for the card title.",
1811
- "name": "title"
1701
+ "kind": "method",
1702
+ "name": "_resolveSectionBg",
1703
+ "privacy": "private",
1704
+ "return": {
1705
+ "type": {
1706
+ "text": "string"
1707
+ }
1708
+ },
1709
+ "parameters": [
1710
+ {
1711
+ "name": "token",
1712
+ "type": {
1713
+ "text": "string"
1714
+ }
1715
+ },
1716
+ {
1717
+ "name": "isInset",
1718
+ "type": {
1719
+ "text": "boolean"
1720
+ }
1721
+ },
1722
+ {
1723
+ "name": "isOverlay",
1724
+ "type": {
1725
+ "text": "boolean"
1726
+ }
1727
+ }
1728
+ ]
1812
1729
  },
1813
1730
  {
1814
- "description": "Slot for the card subtitle.",
1815
- "name": "subtitle"
1731
+ "kind": "method",
1732
+ "name": "_resolveSectionGlassSurface",
1733
+ "privacy": "private",
1734
+ "return": {
1735
+ "type": {
1736
+ "text": "string"
1737
+ }
1738
+ },
1739
+ "parameters": [
1740
+ {
1741
+ "name": "token",
1742
+ "type": {
1743
+ "text": "string"
1744
+ }
1745
+ }
1746
+ ]
1816
1747
  },
1817
1748
  {
1818
- "description": "Slot for the card actions (usually buttons).",
1819
- "name": "actions"
1749
+ "kind": "method",
1750
+ "name": "_applyCardVars",
1751
+ "privacy": "private",
1752
+ "return": {
1753
+ "type": {
1754
+ "text": "void"
1755
+ }
1756
+ }
1820
1757
  },
1821
1758
  {
1822
- "description": "Slot for the footer title.",
1823
- "name": "footer-title"
1759
+ "kind": "method",
1760
+ "name": "_applyPaddingVars",
1761
+ "privacy": "private",
1762
+ "return": {
1763
+ "type": {
1764
+ "text": "void"
1765
+ }
1766
+ }
1824
1767
  },
1825
1768
  {
1826
- "description": "Slot for the footer subtitle.",
1827
- "name": "footer-subtitle"
1769
+ "kind": "method",
1770
+ "name": "_applySectionChrome",
1771
+ "privacy": "private",
1772
+ "return": {
1773
+ "type": {
1774
+ "text": "void"
1775
+ }
1776
+ }
1828
1777
  },
1829
1778
  {
1830
- "description": "Slot for the footer actions (usually buttons).",
1831
- "name": "footer-actions"
1779
+ "kind": "method",
1780
+ "name": "refreshLayout",
1781
+ "privacy": "public",
1782
+ "return": {
1783
+ "type": {
1784
+ "text": "void"
1785
+ }
1786
+ },
1787
+ "description": "Recomputes card variables and section synchronization."
1832
1788
  }
1833
1789
  ],
1834
- "members": [
1790
+ "attributes": [
1835
1791
  {
1836
- "kind": "field",
1837
1792
  "name": "bg",
1838
1793
  "type": {
1839
1794
  "text": "string"
1840
1795
  },
1841
1796
  "default": "\"primary\"",
1842
1797
  "description": "Background color of the card. Accepts color tokens or custom CSS colors. Default: `\"primary\"`.",
1843
- "attribute": "bg",
1844
- "reflects": true
1798
+ "fieldName": "bg"
1845
1799
  },
1846
1800
  {
1847
- "kind": "field",
1848
1801
  "name": "blurLevel",
1849
1802
  "type": {
1850
1803
  "text": "string"
1851
1804
  },
1852
1805
  "default": "\"none\"",
1853
1806
  "description": "Level of blur applied to the background. Default: `\"none\"`.",
1854
- "attribute": "blurLevel",
1855
- "reflects": true
1807
+ "fieldName": "blurLevel"
1856
1808
  },
1857
1809
  {
1858
- "kind": "field",
1859
1810
  "name": "radius",
1860
1811
  "type": {
1861
1812
  "text": "string"
1862
1813
  },
1863
1814
  "default": "\"md\"",
1864
1815
  "description": "Border radius of the card. Default: `\"md\"`.",
1865
- "attribute": "radius",
1866
- "reflects": true
1816
+ "fieldName": "radius"
1867
1817
  },
1868
1818
  {
1869
- "kind": "field",
1870
1819
  "name": "bodyPadding",
1871
1820
  "type": {
1872
1821
  "text": "string"
1873
1822
  },
1874
1823
  "default": "\"none\"",
1875
1824
  "description": "Padding for the card body. Default: `\"none\"`.",
1876
- "attribute": "bodyPadding",
1877
- "reflects": true
1825
+ "fieldName": "bodyPadding"
1878
1826
  },
1879
1827
  {
1880
- "kind": "field",
1881
1828
  "name": "elevation",
1882
1829
  "type": {
1883
1830
  "text": "SkyCardElevation"
1884
1831
  },
1885
1832
  "default": "\"md\"",
1886
1833
  "description": "Shadow depth of the card. Default: `\"md\"`.",
1887
- "attribute": "elevation",
1888
- "reflects": true
1834
+ "fieldName": "elevation"
1889
1835
  },
1890
1836
  {
1891
- "kind": "field",
1892
1837
  "name": "outlined",
1893
1838
  "type": {
1894
1839
  "text": "boolean"
1895
1840
  },
1896
1841
  "default": "false",
1897
1842
  "description": "Whether the card has an outline. Default: `false`.",
1898
- "attribute": "outlined",
1899
- "reflects": true
1843
+ "fieldName": "outlined"
1900
1844
  },
1901
1845
  {
1902
- "kind": "field",
1903
1846
  "name": "clickable",
1904
1847
  "type": {
1905
1848
  "text": "boolean"
1906
1849
  },
1907
1850
  "default": "false",
1908
1851
  "description": "Whether the card is clickable. Default: `false`.",
1909
- "attribute": "clickable",
1910
- "reflects": true
1852
+ "fieldName": "clickable"
1911
1853
  },
1912
1854
  {
1913
- "kind": "field",
1914
1855
  "name": "headerBg",
1915
1856
  "type": {
1916
1857
  "text": "string"
1917
1858
  },
1918
1859
  "default": "\"transparent\"",
1919
1860
  "description": "Background color of the header. Default: `\"transparent\"`.",
1920
- "attribute": "headerBg",
1921
- "reflects": true
1861
+ "fieldName": "headerBg"
1922
1862
  },
1923
1863
  {
1924
- "kind": "field",
1925
1864
  "name": "headerBlur",
1926
1865
  "type": {
1927
1866
  "text": "string"
1928
1867
  },
1929
1868
  "default": "\"none\"",
1930
1869
  "description": "Blur level for the header background. Default: `\"none\"`.",
1931
- "attribute": "headerBlur",
1932
- "reflects": true
1870
+ "fieldName": "headerBlur"
1933
1871
  },
1934
1872
  {
1935
- "kind": "field",
1936
1873
  "name": "headerPadding",
1937
1874
  "type": {
1938
1875
  "text": "string"
1939
1876
  },
1940
1877
  "default": "\"md\"",
1941
1878
  "description": "Padding for the header. Default: `\"md\"`.",
1942
- "attribute": "headerPadding",
1943
- "reflects": true
1879
+ "fieldName": "headerPadding"
1944
1880
  },
1945
1881
  {
1946
- "kind": "field",
1947
1882
  "name": "headerLayout",
1948
1883
  "type": {
1949
1884
  "text": "SkyCardSectionLayout"
1950
1885
  },
1951
1886
  "default": "\"inline\"",
1952
1887
  "description": "Layout of the header content. Default: `\"inline\"`.",
1953
- "attribute": "headerLayout"
1888
+ "fieldName": "headerLayout"
1954
1889
  },
1955
1890
  {
1956
- "kind": "field",
1957
1891
  "name": "headerInsetGap",
1958
1892
  "type": {
1959
1893
  "text": "string"
1960
1894
  },
1961
1895
  "default": "\"sm\"",
1962
1896
  "description": "Inset gap for the header section. Default: `\"sm\"`.",
1963
- "attribute": "headerInsetGap",
1964
- "reflects": true
1897
+ "fieldName": "headerInsetGap"
1965
1898
  },
1966
1899
  {
1967
- "kind": "field",
1968
1900
  "name": "headerRadius",
1969
1901
  "type": {
1970
1902
  "text": "string"
1971
1903
  },
1972
1904
  "default": "\"md\"",
1973
1905
  "description": "Border radius for the header. Default: `\"md\"`.",
1974
- "attribute": "headerRadius",
1975
- "reflects": true
1906
+ "fieldName": "headerRadius"
1976
1907
  },
1977
1908
  {
1978
- "kind": "field",
1979
1909
  "name": "headerSeparatorColor",
1980
1910
  "type": {
1981
1911
  "text": "string"
1982
1912
  },
1983
1913
  "default": "\"border-light\"",
1984
1914
  "description": "Color for the header separator. Default: `\"border-light\"`.",
1985
- "attribute": "headerSeparatorColor"
1915
+ "fieldName": "headerSeparatorColor"
1986
1916
  },
1987
1917
  {
1988
- "kind": "field",
1989
1918
  "name": "footerBg",
1990
1919
  "type": {
1991
1920
  "text": "string"
1992
1921
  },
1993
1922
  "default": "\"transparent\"",
1994
1923
  "description": "Background color of the footer. Default: `\"transparent\"`.",
1995
- "attribute": "footerBg",
1996
- "reflects": true
1924
+ "fieldName": "footerBg"
1997
1925
  },
1998
1926
  {
1999
- "kind": "field",
2000
1927
  "name": "footerBlur",
2001
1928
  "type": {
2002
1929
  "text": "string"
2003
1930
  },
2004
1931
  "default": "\"none\"",
2005
1932
  "description": "Blur level for the footer background. Default: `\"none\"`.",
2006
- "attribute": "footerBlur",
2007
- "reflects": true
1933
+ "fieldName": "footerBlur"
2008
1934
  },
2009
1935
  {
2010
- "kind": "field",
2011
1936
  "name": "footerPadding",
2012
1937
  "type": {
2013
1938
  "text": "string"
2014
1939
  },
2015
1940
  "default": "\"md\"",
2016
1941
  "description": "Padding for the footer. Default: `\"md\"`.",
2017
- "attribute": "footerPadding",
2018
- "reflects": true
1942
+ "fieldName": "footerPadding"
2019
1943
  },
2020
1944
  {
2021
- "kind": "field",
2022
1945
  "name": "footerLayout",
2023
1946
  "type": {
2024
1947
  "text": "SkyCardSectionLayout"
2025
1948
  },
2026
1949
  "default": "\"inline\"",
2027
1950
  "description": "Layout of the footer content. Default: `\"inline\"`.",
2028
- "attribute": "footerLayout"
1951
+ "fieldName": "footerLayout"
2029
1952
  },
2030
1953
  {
2031
- "kind": "field",
2032
1954
  "name": "footerInsetGap",
2033
1955
  "type": {
2034
1956
  "text": "string"
2035
1957
  },
2036
1958
  "default": "\"sm\"",
2037
1959
  "description": "Inset gap for the footer section. Default: `\"sm\"`.",
2038
- "attribute": "footerInsetGap",
2039
- "reflects": true
1960
+ "fieldName": "footerInsetGap"
2040
1961
  },
2041
1962
  {
2042
- "kind": "field",
2043
1963
  "name": "footerRadius",
2044
1964
  "type": {
2045
1965
  "text": "string"
2046
1966
  },
2047
1967
  "default": "\"md\"",
2048
1968
  "description": "Border radius for the footer. Default: `\"md\"`.",
2049
- "attribute": "footerRadius",
2050
- "reflects": true
1969
+ "fieldName": "footerRadius"
2051
1970
  },
2052
1971
  {
2053
- "kind": "field",
2054
1972
  "name": "footerSeparatorColor",
2055
1973
  "type": {
2056
1974
  "text": "string"
2057
1975
  },
2058
1976
  "default": "\"border-light\"",
2059
1977
  "description": "Color for the footer separator. Default: `\"border-light\"`.",
2060
- "attribute": "footerSeparatorColor"
1978
+ "fieldName": "footerSeparatorColor"
2061
1979
  },
2062
1980
  {
2063
- "kind": "field",
2064
1981
  "name": "padRatio",
2065
1982
  "type": {
2066
1983
  "text": "number"
2067
1984
  },
2068
1985
  "default": "1",
2069
1986
  "description": "Ratio to adjust padding. Default: `1`.",
2070
- "attribute": "padRatio"
1987
+ "fieldName": "padRatio"
2071
1988
  },
2072
1989
  {
2073
- "kind": "field",
2074
1990
  "name": "separators",
2075
1991
  "type": {
2076
1992
  "text": "SkyCardSectionTarget"
2077
1993
  },
2078
1994
  "default": "\"none\"",
2079
1995
  "description": "Determines where separators should appear. Default: `\"none\"`.",
2080
- "attribute": "separators"
1996
+ "fieldName": "separators"
2081
1997
  },
2082
1998
  {
2083
- "kind": "field",
2084
1999
  "name": "overlays",
2085
2000
  "type": {
2086
2001
  "text": "SkyCardSectionTarget"
2087
2002
  },
2088
2003
  "default": "\"none\"",
2089
2004
  "description": "Determines where overlays should appear. Default: `\"none\"`.",
2090
- "attribute": "overlays"
2005
+ "fieldName": "overlays"
2091
2006
  },
2092
2007
  {
2093
- "kind": "field",
2094
2008
  "name": "insets",
2095
2009
  "type": {
2096
2010
  "text": "SkyCardSectionTarget"
2097
2011
  },
2098
2012
  "default": "\"none\"",
2099
2013
  "description": "Determines where insets should appear. Default: `\"none\"`.",
2100
- "attribute": "insets"
2014
+ "fieldName": "insets"
2015
+ },
2016
+ {
2017
+ "name": "preset",
2018
+ "type": {
2019
+ "text": "string"
2020
+ },
2021
+ "default": "\"\"",
2022
+ "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
2023
+ "fieldName": "preset"
2024
+ }
2025
+ ],
2026
+ "superclass": {
2027
+ "name": "LitElement",
2028
+ "package": "lit"
2029
+ },
2030
+ "tagName": "sky-card",
2031
+ "customElement": true,
2032
+ "summary": "Customizable card with configurable header/footer sections, blur/background styles, elevation, insets, overlays, and separators."
2033
+ }
2034
+ ],
2035
+ "exports": [
2036
+ {
2037
+ "kind": "js",
2038
+ "name": "SkyCard",
2039
+ "declaration": {
2040
+ "name": "SkyCard",
2041
+ "module": "src/sky-card/sky-card.ts"
2042
+ }
2043
+ },
2044
+ {
2045
+ "kind": "custom-element-definition",
2046
+ "name": "sky-card",
2047
+ "declaration": {
2048
+ "name": "SkyCard",
2049
+ "module": "src/sky-card/sky-card.ts"
2050
+ }
2051
+ }
2052
+ ]
2053
+ },
2054
+ {
2055
+ "kind": "javascript-module",
2056
+ "path": "src/sky-avatar/sky-avatar.ts",
2057
+ "declarations": [
2058
+ {
2059
+ "kind": "class",
2060
+ "description": "",
2061
+ "name": "SkyAvatar",
2062
+ "cssParts": [
2063
+ {
2064
+ "description": "The avatar container element.",
2065
+ "name": "avatar"
2066
+ },
2067
+ {
2068
+ "description": "The loading overlay container (shown when `loading` is true).",
2069
+ "name": "loading-overlay"
2101
2070
  },
2071
+ {
2072
+ "description": "The spinner element shown when loading.",
2073
+ "name": "spinner"
2074
+ }
2075
+ ],
2076
+ "slots": [
2077
+ {
2078
+ "description": "Fallback content (e.g., initials or an icon) rendered when `image` is empty.",
2079
+ "name": ""
2080
+ }
2081
+ ],
2082
+ "members": [
2102
2083
  {
2103
2084
  "kind": "field",
2104
- "name": "_effHeaderSeparator",
2085
+ "name": "size",
2105
2086
  "type": {
2106
- "text": "boolean"
2087
+ "text": "string"
2107
2088
  },
2108
- "privacy": "private",
2109
- "default": "false"
2089
+ "default": "\"50px\"",
2090
+ "description": "Avatar size: preset `sm` | `md` | `lg` or CSS length (for example `50px`).",
2091
+ "attribute": "size"
2110
2092
  },
2111
2093
  {
2112
2094
  "kind": "field",
2113
- "name": "_effFooterSeparator",
2095
+ "name": "image",
2114
2096
  "type": {
2115
- "text": "boolean"
2097
+ "text": "string"
2116
2098
  },
2117
- "privacy": "private",
2118
- "default": "false"
2099
+ "default": "\"\"",
2100
+ "description": "Image URL; fallback slot is shown on load error.",
2101
+ "attribute": "image"
2119
2102
  },
2120
2103
  {
2121
2104
  "kind": "field",
2122
- "name": "_effHeaderOverlay",
2105
+ "name": "fit",
2123
2106
  "type": {
2124
- "text": "boolean"
2107
+ "text": "SkyAvatarFit"
2125
2108
  },
2126
- "privacy": "private",
2127
- "default": "false"
2109
+ "default": "\"cover\"",
2110
+ "description": "Image fill mode: `cover` (default) or `contain`.",
2111
+ "attribute": "fit",
2112
+ "reflects": true
2128
2113
  },
2129
2114
  {
2130
2115
  "kind": "field",
2131
- "name": "_effFooterOverlay",
2116
+ "name": "radius",
2132
2117
  "type": {
2133
- "text": "boolean"
2118
+ "text": "string"
2134
2119
  },
2135
- "privacy": "private",
2136
- "default": "false"
2120
+ "default": "\"md\"",
2121
+ "description": "Border radius token or CSS value.",
2122
+ "attribute": "radius"
2137
2123
  },
2138
2124
  {
2139
2125
  "kind": "field",
2140
- "name": "_effHeaderInset",
2126
+ "name": "alt",
2141
2127
  "type": {
2142
- "text": "boolean"
2128
+ "text": "string"
2143
2129
  },
2144
- "privacy": "private",
2145
- "default": "false"
2130
+ "default": "\"\"",
2131
+ "description": "Accessible name when image content conveys meaning.",
2132
+ "attribute": "alt"
2146
2133
  },
2147
2134
  {
2148
2135
  "kind": "field",
2149
- "name": "_effFooterInset",
2136
+ "name": "color",
2150
2137
  "type": {
2151
- "text": "boolean"
2138
+ "text": "string"
2152
2139
  },
2153
- "privacy": "private",
2154
- "default": "false"
2140
+ "default": "\"dark\"",
2141
+ "description": "Token or CSS color applied to fallback slot content.",
2142
+ "attribute": "color"
2155
2143
  },
2156
2144
  {
2157
2145
  "kind": "field",
2158
- "name": "_varsCache",
2146
+ "name": "outline",
2159
2147
  "type": {
2160
- "text": "Record<string, string>"
2148
+ "text": "string"
2161
2149
  },
2162
- "privacy": "private",
2163
- "default": "{}"
2150
+ "default": "\"\"",
2151
+ "description": "CSS `outline` value.",
2152
+ "attribute": "outline"
2164
2153
  },
2165
2154
  {
2166
2155
  "kind": "field",
2167
- "name": "BG_MAP",
2168
- "privacy": "private",
2169
- "static": true,
2170
- "readonly": true,
2171
- "default": "{ primary: \"var(--sky-glass-primary)\", secondary: \"var(--sky-glass-secondary)\", tertiary: \"var(--sky-glass-tertiary)\", transparent: \"transparent\", }",
2156
+ "name": "outlineOffset",
2172
2157
  "type": {
2173
- "text": "{\r\n primary: \"var(--sky-glass-primary)\",\r\n secondary: \"var(--sky-glass-secondary)\",\r\n tertiary: \"var(--sky-glass-tertiary)\",\r\n transparent: \"transparent\",\r\n }"
2174
- }
2158
+ "text": "string"
2159
+ },
2160
+ "default": "\"2px\"",
2161
+ "description": "CSS `outline-offset` value.",
2162
+ "attribute": "outlineOffset"
2175
2163
  },
2176
2164
  {
2177
2165
  "kind": "field",
2178
- "name": "BLUR_MAP",
2179
- "privacy": "private",
2180
- "static": true,
2181
- "readonly": true,
2182
- "default": "{ none: \"none\", xs: \"blur(2px)\", sm: \"var(--sky-blur-secondary)\", md: \"var(--sky-blur-secondary)\", lg: \"var(--sky-blur-tertiary)\", }",
2166
+ "name": "loading",
2183
2167
  "type": {
2184
- "text": "{\r\n none: \"none\",\r\n xs: \"blur(2px)\",\r\n sm: \"var(--sky-blur-secondary)\",\r\n md: \"var(--sky-blur-secondary)\",\r\n lg: \"var(--sky-blur-tertiary)\",\r\n }"
2185
- }
2168
+ "text": "boolean"
2169
+ },
2170
+ "default": "false",
2171
+ "description": "Shows loading overlay when true.",
2172
+ "attribute": "loading",
2173
+ "reflects": true
2186
2174
  },
2187
2175
  {
2188
2176
  "kind": "field",
2189
- "name": "SIZE_MAP",
2190
- "privacy": "private",
2191
- "static": true,
2192
- "readonly": true,
2193
- "default": "{ none: \"0\", sm: \"var(--sky-space-1\\\\.5, 6px)\", md: \"var(--sky-space-4, 16px)\", lg: \"var(--sky-space-6, 24px)\", xl: \"var(--sky-space-8, 32px)\", }",
2177
+ "name": "disabled",
2194
2178
  "type": {
2195
- "text": "{\r\n none: \"0\",\r\n sm: \"var(--sky-space-1\\\\.5, 6px)\",\r\n md: \"var(--sky-space-4, 16px)\",\r\n lg: \"var(--sky-space-6, 24px)\",\r\n xl: \"var(--sky-space-8, 32px)\",\r\n }"
2196
- }
2179
+ "text": "boolean"
2180
+ },
2181
+ "default": "false",
2182
+ "description": "Dims and disables pointer interactions.",
2183
+ "attribute": "disabled",
2184
+ "reflects": true
2197
2185
  },
2198
2186
  {
2199
2187
  "kind": "field",
2200
- "name": "GLASS_BG_TIERS",
2201
- "privacy": "private",
2202
- "static": true,
2203
- "readonly": true,
2204
- "default": "new Set([ \"primary\", \"secondary\", \"tertiary\", ])"
2188
+ "name": "interactive",
2189
+ "type": {
2190
+ "text": "boolean"
2191
+ },
2192
+ "default": "false",
2193
+ "description": "Enables interactive behavior with keyboard/click activation.",
2194
+ "attribute": "interactive"
2205
2195
  },
2206
2196
  {
2207
2197
  "kind": "field",
2208
- "name": "SECTION_INSET_BG_MAP",
2209
- "privacy": "private",
2210
- "static": true,
2211
- "readonly": true,
2212
- "default": "{ primary: \"var(--sky-hover-primary)\", secondary: \"var(--sky-hover-secondary)\", tertiary: \"var(--sky-hover-tertiary)\", transparent: \"transparent\", }",
2198
+ "name": "shadow",
2213
2199
  "type": {
2214
- "text": "{\r\n primary: \"var(--sky-hover-primary)\",\r\n secondary: \"var(--sky-hover-secondary)\",\r\n tertiary: \"var(--sky-hover-tertiary)\",\r\n transparent: \"transparent\",\r\n }"
2200
+ "text": "boolean"
2215
2201
  },
2216
- "description": "Non-overlay inset bars use hover tints — overlay sections own their own blur."
2202
+ "default": "false",
2203
+ "description": "When true, applies solid surface, border ring, and elevation; no backdrop blur.",
2204
+ "attribute": "shadow",
2205
+ "reflects": true
2217
2206
  },
2218
2207
  {
2219
- "kind": "method",
2220
- "name": "_composeBackdrop",
2221
- "privacy": "private",
2222
- "static": true,
2223
- "return": {
2224
- "type": {
2225
- "text": "string"
2226
- }
2208
+ "kind": "field",
2209
+ "name": "_imageError",
2210
+ "type": {
2211
+ "text": "boolean"
2227
2212
  },
2228
- "parameters": [
2229
- {
2230
- "name": "blurLevel",
2231
- "type": {
2232
- "text": "string"
2233
- }
2234
- }
2235
- ]
2236
- },
2237
- {
2238
- "kind": "method",
2239
- "name": "_composeElevation",
2240
2213
  "privacy": "private",
2241
- "static": true,
2242
- "return": {
2243
- "type": {
2244
- "text": "string"
2245
- }
2246
- },
2247
- "parameters": [
2248
- {
2249
- "name": "level",
2250
- "type": {
2251
- "text": "SkyCardElevation | string"
2252
- }
2253
- }
2254
- ]
2214
+ "default": "false",
2215
+ "description": "True when image failed to load; show slot instead."
2255
2216
  },
2256
2217
  {
2257
2218
  "kind": "field",
@@ -2271,66 +2232,39 @@
2271
2232
  "default": "new PresetController(this)"
2272
2233
  },
2273
2234
  {
2274
- "kind": "method",
2275
- "name": "_wireSlotChangeHandlers",
2235
+ "kind": "field",
2236
+ "name": "_onImageLoad",
2276
2237
  "privacy": "private",
2277
- "return": {
2278
- "type": {
2279
- "text": "void"
2280
- }
2281
- }
2238
+ "description": "Marks image load success and keeps image rendering active."
2282
2239
  },
2283
2240
  {
2284
- "kind": "method",
2285
- "name": "_syncHeader",
2241
+ "kind": "field",
2242
+ "name": "_onImageError",
2286
2243
  "privacy": "private",
2287
- "return": {
2288
- "type": {
2289
- "text": "void"
2290
- }
2291
- }
2244
+ "description": "Marks image load failure and enables fallback slot rendering."
2292
2245
  },
2293
2246
  {
2294
2247
  "kind": "method",
2295
- "name": "_syncFooter",
2248
+ "name": "_handleInteractiveClick",
2296
2249
  "privacy": "private",
2297
2250
  "return": {
2298
2251
  "type": {
2299
2252
  "text": "void"
2300
2253
  }
2301
- }
2302
- },
2303
- {
2304
- "kind": "method",
2305
- "name": "_expandPair",
2306
- "privacy": "private",
2307
- "return": {
2308
- "type": {
2309
- "text": "[boolean, boolean]"
2310
- }
2311
2254
  },
2312
2255
  "parameters": [
2313
2256
  {
2314
- "name": "sh",
2257
+ "name": "e",
2315
2258
  "type": {
2316
- "text": "SkyCardSectionTarget"
2259
+ "text": "Event"
2317
2260
  }
2318
2261
  }
2319
- ]
2320
- },
2321
- {
2322
- "kind": "method",
2323
- "name": "_computeEffectiveFlags",
2324
- "privacy": "private",
2325
- "return": {
2326
- "type": {
2327
- "text": "void"
2328
- }
2329
- }
2262
+ ],
2263
+ "description": "Re-dispatches click in interactive mode for host-level consumers."
2330
2264
  },
2331
2265
  {
2332
2266
  "kind": "method",
2333
- "name": "_setVar",
2267
+ "name": "_handleInteractiveKeydown",
2334
2268
  "privacy": "private",
2335
2269
  "return": {
2336
2270
  "type": {
@@ -2339,957 +2273,1023 @@
2339
2273
  },
2340
2274
  "parameters": [
2341
2275
  {
2342
- "name": "name",
2343
- "type": {
2344
- "text": "string"
2345
- }
2346
- },
2347
- {
2348
- "name": "value",
2276
+ "name": "e",
2349
2277
  "type": {
2350
- "text": "string"
2278
+ "text": "KeyboardEvent"
2351
2279
  }
2352
2280
  }
2353
- ]
2281
+ ],
2282
+ "description": "Handles keyboard activation in interactive mode."
2354
2283
  },
2355
2284
  {
2356
2285
  "kind": "method",
2357
- "name": "_resolveSectionBg",
2286
+ "name": "adjustSpinnerSize",
2358
2287
  "privacy": "private",
2359
2288
  "return": {
2360
2289
  "type": {
2361
- "text": "string"
2290
+ "text": "void"
2362
2291
  }
2363
2292
  },
2364
- "parameters": [
2365
- {
2366
- "name": "token",
2367
- "type": {
2368
- "text": "string"
2369
- }
2370
- },
2371
- {
2372
- "name": "isInset",
2373
- "type": {
2374
- "text": "boolean"
2375
- }
2376
- },
2377
- {
2378
- "name": "isOverlay",
2379
- "type": {
2380
- "text": "boolean"
2381
- }
2382
- }
2383
- ]
2293
+ "description": "Derives spinner dimensions from current avatar size."
2294
+ }
2295
+ ],
2296
+ "events": [
2297
+ {
2298
+ "name": "click",
2299
+ "type": {
2300
+ "text": "Event"
2301
+ }
2302
+ }
2303
+ ],
2304
+ "attributes": [
2305
+ {
2306
+ "name": "size",
2307
+ "type": {
2308
+ "text": "string"
2309
+ },
2310
+ "default": "\"50px\"",
2311
+ "description": "Avatar size: preset `sm` | `md` | `lg` or CSS length (for example `50px`).",
2312
+ "fieldName": "size"
2313
+ },
2314
+ {
2315
+ "name": "image",
2316
+ "type": {
2317
+ "text": "string"
2318
+ },
2319
+ "default": "\"\"",
2320
+ "description": "Image URL; fallback slot is shown on load error.",
2321
+ "fieldName": "image"
2322
+ },
2323
+ {
2324
+ "name": "fit",
2325
+ "type": {
2326
+ "text": "SkyAvatarFit"
2327
+ },
2328
+ "default": "\"cover\"",
2329
+ "description": "Image fill mode: `cover` (default) or `contain`.",
2330
+ "fieldName": "fit"
2331
+ },
2332
+ {
2333
+ "name": "radius",
2334
+ "type": {
2335
+ "text": "string"
2336
+ },
2337
+ "default": "\"md\"",
2338
+ "description": "Border radius token or CSS value.",
2339
+ "fieldName": "radius"
2340
+ },
2341
+ {
2342
+ "name": "alt",
2343
+ "type": {
2344
+ "text": "string"
2345
+ },
2346
+ "default": "\"\"",
2347
+ "description": "Accessible name when image content conveys meaning.",
2348
+ "fieldName": "alt"
2349
+ },
2350
+ {
2351
+ "name": "color",
2352
+ "type": {
2353
+ "text": "string"
2354
+ },
2355
+ "default": "\"dark\"",
2356
+ "description": "Token or CSS color applied to fallback slot content.",
2357
+ "fieldName": "color"
2358
+ },
2359
+ {
2360
+ "name": "outline",
2361
+ "type": {
2362
+ "text": "string"
2363
+ },
2364
+ "default": "\"\"",
2365
+ "description": "CSS `outline` value.",
2366
+ "fieldName": "outline"
2367
+ },
2368
+ {
2369
+ "name": "outlineOffset",
2370
+ "type": {
2371
+ "text": "string"
2372
+ },
2373
+ "default": "\"2px\"",
2374
+ "description": "CSS `outline-offset` value.",
2375
+ "fieldName": "outlineOffset"
2376
+ },
2377
+ {
2378
+ "name": "loading",
2379
+ "type": {
2380
+ "text": "boolean"
2381
+ },
2382
+ "default": "false",
2383
+ "description": "Shows loading overlay when true.",
2384
+ "fieldName": "loading"
2385
+ },
2386
+ {
2387
+ "name": "disabled",
2388
+ "type": {
2389
+ "text": "boolean"
2390
+ },
2391
+ "default": "false",
2392
+ "description": "Dims and disables pointer interactions.",
2393
+ "fieldName": "disabled"
2394
+ },
2395
+ {
2396
+ "name": "interactive",
2397
+ "type": {
2398
+ "text": "boolean"
2399
+ },
2400
+ "default": "false",
2401
+ "description": "Enables interactive behavior with keyboard/click activation.",
2402
+ "fieldName": "interactive"
2384
2403
  },
2385
2404
  {
2386
- "kind": "method",
2387
- "name": "_resolveSectionGlassSurface",
2388
- "privacy": "private",
2389
- "return": {
2390
- "type": {
2391
- "text": "string"
2392
- }
2405
+ "name": "shadow",
2406
+ "type": {
2407
+ "text": "boolean"
2393
2408
  },
2394
- "parameters": [
2395
- {
2396
- "name": "token",
2397
- "type": {
2398
- "text": "string"
2399
- }
2400
- }
2401
- ]
2409
+ "default": "false",
2410
+ "description": "When true, applies solid surface, border ring, and elevation; no backdrop blur.",
2411
+ "fieldName": "shadow"
2402
2412
  },
2403
2413
  {
2404
- "kind": "method",
2405
- "name": "_applyCardVars",
2406
- "privacy": "private",
2407
- "return": {
2408
- "type": {
2409
- "text": "void"
2410
- }
2411
- }
2414
+ "name": "preset",
2415
+ "type": {
2416
+ "text": "string"
2417
+ },
2418
+ "default": "\"\"",
2419
+ "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
2420
+ "fieldName": "preset"
2421
+ }
2422
+ ],
2423
+ "superclass": {
2424
+ "name": "LitElement",
2425
+ "package": "lit"
2426
+ },
2427
+ "tagName": "sky-avatar",
2428
+ "customElement": true,
2429
+ "summary": "Avatar that renders image content or fallback slot content with configurable size, radius, outline, and loading state."
2430
+ }
2431
+ ],
2432
+ "exports": [
2433
+ {
2434
+ "kind": "js",
2435
+ "name": "SkyAvatar",
2436
+ "declaration": {
2437
+ "name": "SkyAvatar",
2438
+ "module": "src/sky-avatar/sky-avatar.ts"
2439
+ }
2440
+ },
2441
+ {
2442
+ "kind": "custom-element-definition",
2443
+ "name": "sky-avatar",
2444
+ "declaration": {
2445
+ "name": "SkyAvatar",
2446
+ "module": "src/sky-avatar/sky-avatar.ts"
2447
+ }
2448
+ }
2449
+ ]
2450
+ },
2451
+ {
2452
+ "kind": "javascript-module",
2453
+ "path": "src/sky-badge/sky-badge.ts",
2454
+ "declarations": [
2455
+ {
2456
+ "kind": "class",
2457
+ "description": "",
2458
+ "name": "SkyBadge",
2459
+ "cssParts": [
2460
+ {
2461
+ "description": "Wrapper around the slotted content and the badge.",
2462
+ "name": "container"
2412
2463
  },
2413
2464
  {
2414
- "kind": "method",
2415
- "name": "_applyPaddingVars",
2416
- "privacy": "private",
2417
- "return": {
2418
- "type": {
2419
- "text": "void"
2420
- }
2421
- }
2465
+ "description": "The badge element. Use `badgeRef` for positioning (e.g. tooltip anchor).",
2466
+ "name": "badge"
2422
2467
  },
2423
2468
  {
2424
- "kind": "method",
2425
- "name": "_applySectionChrome",
2426
- "privacy": "private",
2427
- "return": {
2428
- "type": {
2429
- "text": "void"
2430
- }
2431
- }
2469
+ "description": "The icon element when `isIcon` is true.",
2470
+ "name": "icon"
2471
+ }
2472
+ ],
2473
+ "slots": [
2474
+ {
2475
+ "description": "The content the badge attaches to.",
2476
+ "name": ""
2432
2477
  },
2433
2478
  {
2434
- "kind": "method",
2435
- "name": "refreshLayout",
2436
- "privacy": "public",
2437
- "return": {
2438
- "type": {
2439
- "text": "void"
2440
- }
2441
- },
2442
- "description": "Recomputes card variables and section synchronization."
2479
+ "description": "Optional slot to override the badge content entirely.",
2480
+ "name": "badge"
2443
2481
  }
2444
2482
  ],
2445
- "attributes": [
2483
+ "members": [
2446
2484
  {
2447
- "name": "bg",
2485
+ "kind": "field",
2486
+ "name": "dependencies",
2448
2487
  "type": {
2449
- "text": "string"
2488
+ "text": "Record<string, CustomElementConstructor>"
2450
2489
  },
2451
- "default": "\"primary\"",
2452
- "description": "Background color of the card. Accepts color tokens or custom CSS colors. Default: `\"primary\"`.",
2453
- "fieldName": "bg"
2490
+ "static": true,
2491
+ "default": "{ \"sky-icon\": SkyIcon, }"
2454
2492
  },
2455
2493
  {
2456
- "name": "blurLevel",
2494
+ "kind": "field",
2495
+ "name": "statusColor",
2457
2496
  "type": {
2458
2497
  "text": "string"
2459
2498
  },
2460
- "default": "\"none\"",
2461
- "description": "Level of blur applied to the background. Default: `\"none\"`.",
2462
- "fieldName": "blurLevel"
2499
+ "default": "\"success\"",
2500
+ "description": "Badge background token or CSS color.",
2501
+ "attribute": "statusColor",
2502
+ "reflects": true
2463
2503
  },
2464
2504
  {
2465
- "name": "radius",
2505
+ "kind": "field",
2506
+ "name": "textColor",
2466
2507
  "type": {
2467
2508
  "text": "string"
2468
2509
  },
2469
- "default": "\"md\"",
2470
- "description": "Border radius of the card. Default: `\"md\"`.",
2471
- "fieldName": "radius"
2510
+ "default": "\"default\"",
2511
+ "description": "Text color token or CSS color.",
2512
+ "attribute": "textColor",
2513
+ "reflects": true
2472
2514
  },
2473
2515
  {
2474
- "name": "bodyPadding",
2516
+ "kind": "field",
2517
+ "name": "iconColor",
2475
2518
  "type": {
2476
2519
  "text": "string"
2477
2520
  },
2478
- "default": "\"none\"",
2479
- "description": "Padding for the card body. Default: `\"none\"`.",
2480
- "fieldName": "bodyPadding"
2521
+ "default": "\"\"",
2522
+ "description": "Icon color token or CSS color; falls back to `textColor` when empty.",
2523
+ "attribute": "iconColor",
2524
+ "reflects": true
2481
2525
  },
2482
2526
  {
2483
- "name": "elevation",
2527
+ "kind": "field",
2528
+ "name": "position",
2484
2529
  "type": {
2485
- "text": "SkyCardElevation"
2530
+ "text": "SkyBadgePosition"
2486
2531
  },
2487
- "default": "\"md\"",
2488
- "description": "Shadow depth of the card. Default: `\"md\"`.",
2489
- "fieldName": "elevation"
2532
+ "default": "\"default\"",
2533
+ "description": "Layout mode: `default | floating | inline`.",
2534
+ "attribute": "position",
2535
+ "reflects": true
2490
2536
  },
2491
2537
  {
2492
- "name": "outlined",
2538
+ "kind": "field",
2539
+ "name": "value",
2493
2540
  "type": {
2494
- "text": "boolean"
2541
+ "text": "string"
2495
2542
  },
2496
- "default": "false",
2497
- "description": "Whether the card has an outline. Default: `false`.",
2498
- "fieldName": "outlined"
2543
+ "default": "\"\"",
2544
+ "description": "Badge text/count or icon name in icon mode.",
2545
+ "attribute": "value"
2499
2546
  },
2500
2547
  {
2501
- "name": "clickable",
2548
+ "kind": "field",
2549
+ "name": "isIcon",
2502
2550
  "type": {
2503
2551
  "text": "boolean"
2504
2552
  },
2505
2553
  "default": "false",
2506
- "description": "Whether the card is clickable. Default: `false`.",
2507
- "fieldName": "clickable"
2554
+ "description": "Renders icon mode when true.",
2555
+ "attribute": "isIcon",
2556
+ "reflects": true
2508
2557
  },
2509
2558
  {
2510
- "name": "headerBg",
2559
+ "kind": "field",
2560
+ "name": "size",
2511
2561
  "type": {
2512
2562
  "text": "string"
2513
2563
  },
2514
- "default": "\"transparent\"",
2515
- "description": "Background color of the header. Default: `\"transparent\"`.",
2516
- "fieldName": "headerBg"
2564
+ "default": "\"\"",
2565
+ "description": "Badge and icon size CSS length.",
2566
+ "attribute": "size",
2567
+ "reflects": true
2517
2568
  },
2518
2569
  {
2519
- "name": "headerBlur",
2570
+ "kind": "field",
2571
+ "name": "shape",
2520
2572
  "type": {
2521
- "text": "string"
2573
+ "text": "SkyBadgeShape"
2522
2574
  },
2523
- "default": "\"none\"",
2524
- "description": "Blur level for the header background. Default: `\"none\"`.",
2525
- "fieldName": "headerBlur"
2575
+ "default": "\"custom\"",
2576
+ "description": "Badge shape: `circle | pill | custom`.",
2577
+ "attribute": "shape",
2578
+ "reflects": true
2526
2579
  },
2527
2580
  {
2528
- "name": "headerPadding",
2581
+ "kind": "field",
2582
+ "name": "max",
2529
2583
  "type": {
2530
- "text": "string"
2584
+ "text": "number"
2531
2585
  },
2532
- "default": "\"md\"",
2533
- "description": "Padding for the header. Default: `\"md\"`.",
2534
- "fieldName": "headerPadding"
2586
+ "default": "99",
2587
+ "description": "Maximum numeric count before rendering overflow label.",
2588
+ "attribute": "max"
2535
2589
  },
2536
2590
  {
2537
- "name": "headerLayout",
2591
+ "kind": "field",
2592
+ "name": "hideWhenZero",
2538
2593
  "type": {
2539
- "text": "SkyCardSectionLayout"
2594
+ "text": "boolean"
2540
2595
  },
2541
- "default": "\"inline\"",
2542
- "description": "Layout of the header content. Default: `\"inline\"`.",
2543
- "fieldName": "headerLayout"
2596
+ "default": "false",
2597
+ "description": "Hides badge when value resolves to numeric zero.",
2598
+ "attribute": "hideWhenZero"
2544
2599
  },
2545
2600
  {
2546
- "name": "headerInsetGap",
2601
+ "kind": "field",
2602
+ "name": "show",
2603
+ "type": {
2604
+ "text": "boolean"
2605
+ },
2606
+ "default": "true",
2607
+ "description": "Forces badge visibility independent of value.",
2608
+ "attribute": "show",
2609
+ "reflects": true
2610
+ },
2611
+ {
2612
+ "kind": "field",
2613
+ "name": "offsetX",
2547
2614
  "type": {
2548
2615
  "text": "string"
2549
2616
  },
2550
- "default": "\"sm\"",
2551
- "description": "Inset gap for the header section. Default: `\"sm\"`.",
2552
- "fieldName": "headerInsetGap"
2617
+ "default": "\"0px\"",
2618
+ "description": "Horizontal offset CSS length.",
2619
+ "attribute": "offsetX"
2553
2620
  },
2554
2621
  {
2555
- "name": "headerRadius",
2622
+ "kind": "field",
2623
+ "name": "offsetY",
2556
2624
  "type": {
2557
2625
  "text": "string"
2558
2626
  },
2559
- "default": "\"md\"",
2560
- "description": "Border radius for the header. Default: `\"md\"`.",
2561
- "fieldName": "headerRadius"
2627
+ "default": "\"0px\"",
2628
+ "description": "Vertical offset CSS length.",
2629
+ "attribute": "offsetY"
2562
2630
  },
2563
2631
  {
2564
- "name": "headerSeparatorColor",
2632
+ "kind": "field",
2633
+ "name": "ring",
2565
2634
  "type": {
2566
- "text": "string"
2635
+ "text": "boolean"
2567
2636
  },
2568
- "default": "\"border-light\"",
2569
- "description": "Color for the header separator. Default: `\"border-light\"`.",
2570
- "fieldName": "headerSeparatorColor"
2637
+ "default": "false",
2638
+ "description": "Enables visual ring around the badge.",
2639
+ "attribute": "ring"
2571
2640
  },
2572
2641
  {
2573
- "name": "footerBg",
2642
+ "kind": "field",
2643
+ "name": "ringColor",
2574
2644
  "type": {
2575
2645
  "text": "string"
2576
2646
  },
2577
- "default": "\"transparent\"",
2578
- "description": "Background color of the footer. Default: `\"transparent\"`.",
2579
- "fieldName": "footerBg"
2647
+ "default": "\"primary\"",
2648
+ "description": "Ring color token or CSS color.",
2649
+ "attribute": "ringColor"
2580
2650
  },
2581
2651
  {
2582
- "name": "footerBlur",
2652
+ "kind": "field",
2653
+ "name": "ringOffset",
2583
2654
  "type": {
2584
2655
  "text": "string"
2585
2656
  },
2586
- "default": "\"none\"",
2587
- "description": "Blur level for the footer background. Default: `\"none\"`.",
2588
- "fieldName": "footerBlur"
2657
+ "default": "\"1px\"",
2658
+ "description": "Ring offset CSS length.",
2659
+ "attribute": "ringOffset"
2589
2660
  },
2590
2661
  {
2591
- "name": "footerPadding",
2662
+ "kind": "field",
2663
+ "name": "badgeLabel",
2592
2664
  "type": {
2593
- "text": "string"
2665
+ "text": "string | null"
2594
2666
  },
2595
- "default": "\"md\"",
2596
- "description": "Padding for the footer. Default: `\"md\"`.",
2597
- "fieldName": "footerPadding"
2667
+ "default": "null",
2668
+ "description": "ARIA label override.",
2669
+ "attribute": "badgeLabel"
2598
2670
  },
2599
2671
  {
2600
- "name": "footerLayout",
2672
+ "kind": "field",
2673
+ "name": "badgeAriaHidden",
2601
2674
  "type": {
2602
- "text": "SkyCardSectionLayout"
2675
+ "text": "boolean"
2603
2676
  },
2604
- "default": "\"inline\"",
2605
- "description": "Layout of the footer content. Default: `\"inline\"`.",
2606
- "fieldName": "footerLayout"
2677
+ "default": "false",
2678
+ "description": "Hides badge from assistive technology when true.",
2679
+ "attribute": "badgeAriaHidden"
2607
2680
  },
2608
2681
  {
2609
- "name": "footerInsetGap",
2682
+ "kind": "field",
2683
+ "name": "interactive",
2610
2684
  "type": {
2611
- "text": "string"
2685
+ "text": "boolean"
2612
2686
  },
2613
- "default": "\"sm\"",
2614
- "description": "Inset gap for the footer section. Default: `\"sm\"`.",
2615
- "fieldName": "footerInsetGap"
2687
+ "default": "false",
2688
+ "description": "Enables focus/activation and `badge-click` emission.",
2689
+ "attribute": "interactive"
2616
2690
  },
2617
2691
  {
2618
- "name": "footerRadius",
2692
+ "kind": "field",
2693
+ "name": "placement",
2619
2694
  "type": {
2620
- "text": "string"
2695
+ "text": "SkyBadgePlacement"
2621
2696
  },
2622
- "default": "\"md\"",
2623
- "description": "Border radius for the footer. Default: `\"md\"`.",
2624
- "fieldName": "footerRadius"
2697
+ "default": "\"custom\"",
2698
+ "description": "Anchor placement preset for badge positioning.",
2699
+ "attribute": "placement",
2700
+ "reflects": true
2625
2701
  },
2626
2702
  {
2627
- "name": "footerSeparatorColor",
2703
+ "kind": "field",
2704
+ "name": "preset",
2628
2705
  "type": {
2629
2706
  "text": "string"
2630
2707
  },
2631
- "default": "\"border-light\"",
2632
- "description": "Color for the footer separator. Default: `\"border-light\"`.",
2633
- "fieldName": "footerSeparatorColor"
2708
+ "default": "\"\"",
2709
+ "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
2710
+ "attribute": "preset",
2711
+ "reflects": true
2634
2712
  },
2635
2713
  {
2636
- "name": "padRatio",
2714
+ "kind": "field",
2715
+ "name": "_presets",
2716
+ "privacy": "private",
2717
+ "default": "new PresetController(this)"
2718
+ },
2719
+ {
2720
+ "kind": "field",
2721
+ "name": "_badgeEl",
2637
2722
  "type": {
2638
- "text": "number"
2723
+ "text": "HTMLSpanElement"
2639
2724
  },
2640
- "default": "1",
2641
- "description": "Ratio to adjust padding. Default: `1`.",
2642
- "fieldName": "padRatio"
2725
+ "privacy": "private"
2643
2726
  },
2644
2727
  {
2645
- "name": "separators",
2728
+ "kind": "field",
2729
+ "name": "badgeRef",
2730
+ "privacy": "public",
2731
+ "description": "Ref for the badge element (e.g. for tooltip anchor or positioning)."
2732
+ },
2733
+ {
2734
+ "kind": "field",
2735
+ "name": "shadowRootOptions",
2646
2736
  "type": {
2647
- "text": "SkyCardSectionTarget"
2737
+ "text": "ShadowRootInit"
2648
2738
  },
2649
- "default": "\"none\"",
2650
- "description": "Determines where separators should appear. Default: `\"none\"`.",
2651
- "fieldName": "separators"
2739
+ "static": true,
2740
+ "default": "{ mode: \"open\", delegatesFocus: true, }"
2652
2741
  },
2653
2742
  {
2654
- "name": "overlays",
2655
- "type": {
2656
- "text": "SkyCardSectionTarget"
2743
+ "kind": "method",
2744
+ "name": "showBadge",
2745
+ "privacy": "public",
2746
+ "return": {
2747
+ "type": {
2748
+ "text": "void"
2749
+ }
2657
2750
  },
2658
- "default": "\"none\"",
2659
- "description": "Determines where overlays should appear. Default: `\"none\"`.",
2660
- "fieldName": "overlays"
2751
+ "description": "Forces badge visibility on."
2661
2752
  },
2662
2753
  {
2663
- "name": "insets",
2664
- "type": {
2665
- "text": "SkyCardSectionTarget"
2754
+ "kind": "method",
2755
+ "name": "hideBadge",
2756
+ "privacy": "public",
2757
+ "return": {
2758
+ "type": {
2759
+ "text": "void"
2760
+ }
2666
2761
  },
2667
- "default": "\"none\"",
2668
- "description": "Determines where insets should appear. Default: `\"none\"`.",
2669
- "fieldName": "insets"
2762
+ "description": "Forces badge visibility off."
2670
2763
  },
2671
2764
  {
2672
- "name": "preset",
2673
- "type": {
2674
- "text": "string"
2765
+ "kind": "method",
2766
+ "name": "setValue",
2767
+ "privacy": "public",
2768
+ "return": {
2769
+ "type": {
2770
+ "text": "void"
2771
+ }
2675
2772
  },
2676
- "default": "\"\"",
2677
- "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
2678
- "fieldName": "preset"
2679
- }
2680
- ],
2681
- "superclass": {
2682
- "name": "LitElement",
2683
- "package": "lit"
2684
- },
2685
- "tagName": "sky-card",
2686
- "customElement": true,
2687
- "summary": "Customizable card with configurable header/footer sections, blur/background styles, elevation, insets, overlays, and separators."
2688
- }
2689
- ],
2690
- "exports": [
2691
- {
2692
- "kind": "js",
2693
- "name": "SkyCard",
2694
- "declaration": {
2695
- "name": "SkyCard",
2696
- "module": "src/sky-card/sky-card.ts"
2697
- }
2698
- },
2699
- {
2700
- "kind": "custom-element-definition",
2701
- "name": "sky-card",
2702
- "declaration": {
2703
- "name": "SkyCard",
2704
- "module": "src/sky-card/sky-card.ts"
2705
- }
2706
- }
2707
- ]
2708
- },
2709
- {
2710
- "kind": "javascript-module",
2711
- "path": "src/sky-badge/sky-badge.ts",
2712
- "declarations": [
2713
- {
2714
- "kind": "class",
2715
- "description": "",
2716
- "name": "SkyBadge",
2717
- "cssParts": [
2773
+ "parameters": [
2774
+ {
2775
+ "name": "value",
2776
+ "type": {
2777
+ "text": "string"
2778
+ },
2779
+ "description": "Badge value or icon name."
2780
+ }
2781
+ ],
2782
+ "description": "Updates badge value for text/count or icon modes."
2783
+ },
2718
2784
  {
2719
- "description": "Wrapper around the slotted content and the badge.",
2720
- "name": "container"
2785
+ "kind": "field",
2786
+ "name": "_onActivate",
2787
+ "privacy": "private",
2788
+ "description": "Emits `badge-click` for interactive activation."
2721
2789
  },
2722
2790
  {
2723
- "description": "The badge element. Use `badgeRef` for positioning (e.g. tooltip anchor).",
2724
- "name": "badge"
2791
+ "kind": "field",
2792
+ "name": "_onKeydown",
2793
+ "privacy": "private",
2794
+ "description": "Handles keyboard activation with Enter and Space."
2725
2795
  },
2726
2796
  {
2727
- "description": "The icon element when `isIcon` is true.",
2728
- "name": "icon"
2729
- }
2730
- ],
2731
- "slots": [
2797
+ "kind": "method",
2798
+ "name": "_computeAriaLabel",
2799
+ "privacy": "private",
2800
+ "return": {
2801
+ "type": {
2802
+ "text": "string | null"
2803
+ }
2804
+ },
2805
+ "parameters": [
2806
+ {
2807
+ "name": "displayValue",
2808
+ "type": {
2809
+ "text": "string | null"
2810
+ }
2811
+ }
2812
+ ],
2813
+ "description": "Computes accessible badge label from current render state."
2814
+ },
2732
2815
  {
2733
- "description": "The content the badge attaches to.",
2734
- "name": ""
2816
+ "kind": "method",
2817
+ "name": "_computeAnchors",
2818
+ "privacy": "private",
2819
+ "return": {
2820
+ "type": {
2821
+ "text": "{\r\n top: string;\r\n right: string;\r\n bottom: string;\r\n left: string;\r\n }"
2822
+ }
2823
+ },
2824
+ "parameters": [
2825
+ {
2826
+ "name": "placement",
2827
+ "type": {
2828
+ "text": "SkyBadgePlacement"
2829
+ }
2830
+ }
2831
+ ],
2832
+ "description": "Resolves anchor edges from placement preset."
2735
2833
  },
2736
2834
  {
2737
- "description": "Optional slot to override the badge content entirely.",
2738
- "name": "badge"
2835
+ "kind": "method",
2836
+ "name": "_resolveBadgeSurface",
2837
+ "privacy": "private",
2838
+ "return": {
2839
+ "type": {
2840
+ "text": "{\r\n bg: string;\r\n color: string;\r\n border: string;\r\n }"
2841
+ }
2842
+ },
2843
+ "description": "Maps semantic status tokens to soft badge surface colors."
2739
2844
  }
2740
2845
  ],
2741
- "members": [
2846
+ "events": [
2742
2847
  {
2743
- "kind": "field",
2744
- "name": "dependencies",
2745
2848
  "type": {
2746
- "text": "Record<string, CustomElementConstructor>"
2849
+ "text": "CustomEvent<SkyBadgeClickEventDetail>"
2747
2850
  },
2748
- "static": true,
2749
- "default": "{ \"sky-icon\": SkyIcon, }"
2750
- },
2851
+ "description": "Emitted when badge activation occurs via click, Enter, or Space while `interactive` is true.",
2852
+ "name": "badge-click"
2853
+ }
2854
+ ],
2855
+ "attributes": [
2751
2856
  {
2752
- "kind": "field",
2753
2857
  "name": "statusColor",
2754
2858
  "type": {
2755
2859
  "text": "string"
2756
2860
  },
2757
2861
  "default": "\"success\"",
2758
2862
  "description": "Badge background token or CSS color.",
2759
- "attribute": "statusColor",
2760
- "reflects": true
2863
+ "fieldName": "statusColor"
2761
2864
  },
2762
2865
  {
2763
- "kind": "field",
2764
2866
  "name": "textColor",
2765
2867
  "type": {
2766
2868
  "text": "string"
2767
2869
  },
2768
2870
  "default": "\"default\"",
2769
2871
  "description": "Text color token or CSS color.",
2770
- "attribute": "textColor",
2771
- "reflects": true
2872
+ "fieldName": "textColor"
2772
2873
  },
2773
2874
  {
2774
- "kind": "field",
2775
2875
  "name": "iconColor",
2776
2876
  "type": {
2777
2877
  "text": "string"
2778
2878
  },
2779
2879
  "default": "\"\"",
2780
2880
  "description": "Icon color token or CSS color; falls back to `textColor` when empty.",
2781
- "attribute": "iconColor",
2782
- "reflects": true
2881
+ "fieldName": "iconColor"
2783
2882
  },
2784
2883
  {
2785
- "kind": "field",
2786
2884
  "name": "position",
2787
2885
  "type": {
2788
2886
  "text": "SkyBadgePosition"
2789
2887
  },
2790
2888
  "default": "\"default\"",
2791
2889
  "description": "Layout mode: `default | floating | inline`.",
2792
- "attribute": "position",
2793
- "reflects": true
2890
+ "fieldName": "position"
2794
2891
  },
2795
2892
  {
2796
- "kind": "field",
2797
2893
  "name": "value",
2798
2894
  "type": {
2799
2895
  "text": "string"
2800
2896
  },
2801
2897
  "default": "\"\"",
2802
2898
  "description": "Badge text/count or icon name in icon mode.",
2803
- "attribute": "value"
2899
+ "fieldName": "value"
2804
2900
  },
2805
2901
  {
2806
- "kind": "field",
2807
2902
  "name": "isIcon",
2808
2903
  "type": {
2809
2904
  "text": "boolean"
2810
2905
  },
2811
2906
  "default": "false",
2812
2907
  "description": "Renders icon mode when true.",
2813
- "attribute": "isIcon",
2814
- "reflects": true
2908
+ "fieldName": "isIcon"
2815
2909
  },
2816
2910
  {
2817
- "kind": "field",
2818
2911
  "name": "size",
2819
2912
  "type": {
2820
2913
  "text": "string"
2821
2914
  },
2822
2915
  "default": "\"\"",
2823
2916
  "description": "Badge and icon size CSS length.",
2824
- "attribute": "size",
2825
- "reflects": true
2917
+ "fieldName": "size"
2826
2918
  },
2827
2919
  {
2828
- "kind": "field",
2829
2920
  "name": "shape",
2830
2921
  "type": {
2831
2922
  "text": "SkyBadgeShape"
2832
2923
  },
2833
2924
  "default": "\"custom\"",
2834
2925
  "description": "Badge shape: `circle | pill | custom`.",
2835
- "attribute": "shape",
2836
- "reflects": true
2926
+ "fieldName": "shape"
2837
2927
  },
2838
2928
  {
2839
- "kind": "field",
2840
2929
  "name": "max",
2841
2930
  "type": {
2842
2931
  "text": "number"
2843
2932
  },
2844
2933
  "default": "99",
2845
2934
  "description": "Maximum numeric count before rendering overflow label.",
2846
- "attribute": "max"
2935
+ "fieldName": "max"
2847
2936
  },
2848
2937
  {
2849
- "kind": "field",
2850
2938
  "name": "hideWhenZero",
2851
2939
  "type": {
2852
2940
  "text": "boolean"
2853
2941
  },
2854
2942
  "default": "false",
2855
2943
  "description": "Hides badge when value resolves to numeric zero.",
2856
- "attribute": "hideWhenZero"
2944
+ "fieldName": "hideWhenZero"
2857
2945
  },
2858
2946
  {
2859
- "kind": "field",
2860
2947
  "name": "show",
2861
2948
  "type": {
2862
2949
  "text": "boolean"
2863
2950
  },
2864
2951
  "default": "true",
2865
2952
  "description": "Forces badge visibility independent of value.",
2866
- "attribute": "show",
2867
- "reflects": true
2953
+ "fieldName": "show"
2868
2954
  },
2869
2955
  {
2870
- "kind": "field",
2871
2956
  "name": "offsetX",
2872
2957
  "type": {
2873
2958
  "text": "string"
2874
2959
  },
2875
2960
  "default": "\"0px\"",
2876
2961
  "description": "Horizontal offset CSS length.",
2877
- "attribute": "offsetX"
2962
+ "fieldName": "offsetX"
2878
2963
  },
2879
2964
  {
2880
- "kind": "field",
2881
2965
  "name": "offsetY",
2882
2966
  "type": {
2883
2967
  "text": "string"
2884
2968
  },
2885
2969
  "default": "\"0px\"",
2886
2970
  "description": "Vertical offset CSS length.",
2887
- "attribute": "offsetY"
2971
+ "fieldName": "offsetY"
2888
2972
  },
2889
2973
  {
2890
- "kind": "field",
2891
2974
  "name": "ring",
2892
2975
  "type": {
2893
2976
  "text": "boolean"
2894
2977
  },
2895
2978
  "default": "false",
2896
2979
  "description": "Enables visual ring around the badge.",
2897
- "attribute": "ring"
2980
+ "fieldName": "ring"
2898
2981
  },
2899
2982
  {
2900
- "kind": "field",
2901
2983
  "name": "ringColor",
2902
2984
  "type": {
2903
2985
  "text": "string"
2904
2986
  },
2905
2987
  "default": "\"primary\"",
2906
2988
  "description": "Ring color token or CSS color.",
2907
- "attribute": "ringColor"
2989
+ "fieldName": "ringColor"
2908
2990
  },
2909
2991
  {
2910
- "kind": "field",
2911
2992
  "name": "ringOffset",
2912
2993
  "type": {
2913
2994
  "text": "string"
2914
2995
  },
2915
2996
  "default": "\"1px\"",
2916
2997
  "description": "Ring offset CSS length.",
2917
- "attribute": "ringOffset"
2998
+ "fieldName": "ringOffset"
2918
2999
  },
2919
3000
  {
2920
- "kind": "field",
2921
3001
  "name": "badgeLabel",
2922
3002
  "type": {
2923
3003
  "text": "string | null"
2924
3004
  },
2925
3005
  "default": "null",
2926
3006
  "description": "ARIA label override.",
2927
- "attribute": "badgeLabel"
3007
+ "fieldName": "badgeLabel"
2928
3008
  },
2929
3009
  {
2930
- "kind": "field",
2931
3010
  "name": "badgeAriaHidden",
2932
3011
  "type": {
2933
3012
  "text": "boolean"
2934
3013
  },
2935
3014
  "default": "false",
2936
3015
  "description": "Hides badge from assistive technology when true.",
2937
- "attribute": "badgeAriaHidden"
3016
+ "fieldName": "badgeAriaHidden"
2938
3017
  },
2939
3018
  {
2940
- "kind": "field",
2941
3019
  "name": "interactive",
2942
3020
  "type": {
2943
3021
  "text": "boolean"
2944
3022
  },
2945
3023
  "default": "false",
2946
3024
  "description": "Enables focus/activation and `badge-click` emission.",
2947
- "attribute": "interactive"
3025
+ "fieldName": "interactive"
2948
3026
  },
2949
3027
  {
2950
- "kind": "field",
2951
3028
  "name": "placement",
2952
3029
  "type": {
2953
3030
  "text": "SkyBadgePlacement"
2954
3031
  },
2955
3032
  "default": "\"custom\"",
2956
3033
  "description": "Anchor placement preset for badge positioning.",
2957
- "attribute": "placement",
2958
- "reflects": true
3034
+ "fieldName": "placement"
2959
3035
  },
2960
3036
  {
2961
- "kind": "field",
2962
3037
  "name": "preset",
2963
3038
  "type": {
2964
3039
  "text": "string"
2965
3040
  },
2966
3041
  "default": "\"\"",
2967
3042
  "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
2968
- "attribute": "preset",
2969
- "reflects": true
2970
- },
2971
- {
2972
- "kind": "field",
2973
- "name": "_presets",
2974
- "privacy": "private",
2975
- "default": "new PresetController(this)"
2976
- },
2977
- {
2978
- "kind": "field",
2979
- "name": "_badgeEl",
2980
- "type": {
2981
- "text": "HTMLSpanElement"
2982
- },
2983
- "privacy": "private"
2984
- },
2985
- {
2986
- "kind": "field",
2987
- "name": "badgeRef",
2988
- "privacy": "public",
2989
- "description": "Ref for the badge element (e.g. for tooltip anchor or positioning)."
2990
- },
2991
- {
2992
- "kind": "field",
2993
- "name": "shadowRootOptions",
2994
- "type": {
2995
- "text": "ShadowRootInit"
2996
- },
2997
- "static": true,
2998
- "default": "{ mode: \"open\", delegatesFocus: true, }"
2999
- },
3000
- {
3001
- "kind": "method",
3002
- "name": "showBadge",
3003
- "privacy": "public",
3004
- "return": {
3005
- "type": {
3006
- "text": "void"
3007
- }
3008
- },
3009
- "description": "Forces badge visibility on."
3010
- },
3011
- {
3012
- "kind": "method",
3013
- "name": "hideBadge",
3014
- "privacy": "public",
3015
- "return": {
3016
- "type": {
3017
- "text": "void"
3018
- }
3019
- },
3020
- "description": "Forces badge visibility off."
3021
- },
3022
- {
3023
- "kind": "method",
3024
- "name": "setValue",
3025
- "privacy": "public",
3026
- "return": {
3027
- "type": {
3028
- "text": "void"
3029
- }
3030
- },
3031
- "parameters": [
3032
- {
3033
- "name": "value",
3034
- "type": {
3035
- "text": "string"
3036
- },
3037
- "description": "Badge value or icon name."
3038
- }
3039
- ],
3040
- "description": "Updates badge value for text/count or icon modes."
3041
- },
3043
+ "fieldName": "preset"
3044
+ }
3045
+ ],
3046
+ "superclass": {
3047
+ "name": "LitElement",
3048
+ "package": "lit"
3049
+ },
3050
+ "tagName": "sky-badge",
3051
+ "customElement": true,
3052
+ "summary": "Badge for status dots, counts, or icons anchored to slotted content."
3053
+ }
3054
+ ],
3055
+ "exports": [
3056
+ {
3057
+ "kind": "js",
3058
+ "name": "SkyBadge",
3059
+ "declaration": {
3060
+ "name": "SkyBadge",
3061
+ "module": "src/sky-badge/sky-badge.ts"
3062
+ }
3063
+ },
3064
+ {
3065
+ "kind": "custom-element-definition",
3066
+ "name": "sky-badge",
3067
+ "declaration": {
3068
+ "name": "SkyBadge",
3069
+ "module": "src/sky-badge/sky-badge.ts"
3070
+ }
3071
+ }
3072
+ ]
3073
+ },
3074
+ {
3075
+ "kind": "javascript-module",
3076
+ "path": "src/sky-appbar/sky-appbar.ts",
3077
+ "declarations": [
3078
+ {
3079
+ "kind": "class",
3080
+ "description": "",
3081
+ "name": "SkyAppbar",
3082
+ "cssParts": [
3042
3083
  {
3043
- "kind": "field",
3044
- "name": "_onActivate",
3045
- "privacy": "private",
3046
- "description": "Emits `badge-click` for interactive activation."
3084
+ "description": "Wrapper that contains the leading slot, title, and actions.",
3085
+ "name": "content"
3047
3086
  },
3048
3087
  {
3049
- "kind": "field",
3050
- "name": "_onKeydown",
3051
- "privacy": "private",
3052
- "description": "Handles keyboard activation with Enter and Space."
3088
+ "description": "Container for the leading slot (e.g. menu button).",
3089
+ "name": "leading"
3053
3090
  },
3054
3091
  {
3055
- "kind": "method",
3056
- "name": "_computeAriaLabel",
3057
- "privacy": "private",
3058
- "return": {
3059
- "type": {
3060
- "text": "string | null"
3061
- }
3062
- },
3063
- "parameters": [
3064
- {
3065
- "name": "displayValue",
3066
- "type": {
3067
- "text": "string | null"
3068
- }
3069
- }
3070
- ],
3071
- "description": "Computes accessible badge label from current render state."
3092
+ "description": "The title area (contains .title-text with the title string).",
3093
+ "name": "title"
3072
3094
  },
3073
3095
  {
3074
- "kind": "method",
3075
- "name": "_computeAnchors",
3076
- "privacy": "private",
3077
- "return": {
3078
- "type": {
3079
- "text": "{\r\n top: string;\r\n right: string;\r\n bottom: string;\r\n left: string;\r\n }"
3080
- }
3081
- },
3082
- "parameters": [
3083
- {
3084
- "name": "placement",
3085
- "type": {
3086
- "text": "SkyBadgePlacement"
3087
- }
3088
- }
3089
- ],
3090
- "description": "Resolves anchor edges from placement preset."
3096
+ "description": "The trailing actions container.",
3097
+ "name": "actions"
3098
+ }
3099
+ ],
3100
+ "slots": [
3101
+ {
3102
+ "description": "Leading area (e.g., menu/back button). Defaults to a hamburger icon.",
3103
+ "name": "button"
3091
3104
  },
3092
3105
  {
3093
- "kind": "method",
3094
- "name": "_resolveBadgeSurface",
3095
- "privacy": "private",
3096
- "return": {
3097
- "type": {
3098
- "text": "{\r\n bg: string;\r\n color: string;\r\n border: string;\r\n }"
3099
- }
3100
- },
3101
- "description": "Maps semantic status tokens to soft badge surface colors."
3106
+ "description": "Trailing actions (icons/buttons). This is the default slot.",
3107
+ "name": ""
3102
3108
  }
3103
3109
  ],
3104
- "events": [
3110
+ "members": [
3105
3111
  {
3112
+ "kind": "field",
3113
+ "name": "dependencies",
3106
3114
  "type": {
3107
- "text": "CustomEvent<SkyBadgeClickEventDetail>"
3115
+ "text": "Record<string, CustomElementConstructor>"
3108
3116
  },
3109
- "description": "Emitted when badge activation occurs via click, Enter, or Space while `interactive` is true.",
3110
- "name": "badge-click"
3111
- }
3112
- ],
3113
- "attributes": [
3117
+ "static": true,
3118
+ "default": "{ \"sky-icon\": SkyIcon, }"
3119
+ },
3114
3120
  {
3115
- "name": "statusColor",
3121
+ "kind": "field",
3122
+ "name": "title",
3116
3123
  "type": {
3117
3124
  "text": "string"
3118
3125
  },
3119
- "default": "\"success\"",
3120
- "description": "Badge background token or CSS color.",
3121
- "fieldName": "statusColor"
3126
+ "default": "\"App Bar\"",
3127
+ "description": "Title text displayed in the app bar.",
3128
+ "attribute": "title"
3122
3129
  },
3123
3130
  {
3124
- "name": "textColor",
3131
+ "kind": "field",
3132
+ "name": "color",
3125
3133
  "type": {
3126
3134
  "text": "string"
3127
3135
  },
3128
3136
  "default": "\"default\"",
3129
- "description": "Text color token or CSS color.",
3130
- "fieldName": "textColor"
3137
+ "description": "Semantic token or CSS color for bar background; foreground color is derived for contrast.",
3138
+ "attribute": "color"
3131
3139
  },
3132
3140
  {
3133
- "name": "iconColor",
3141
+ "kind": "field",
3142
+ "name": "url",
3134
3143
  "type": {
3135
3144
  "text": "string"
3136
3145
  },
3137
3146
  "default": "\"\"",
3138
- "description": "Icon color token or CSS color; falls back to `textColor` when empty.",
3139
- "fieldName": "iconColor"
3147
+ "description": "Background image URL.",
3148
+ "attribute": "url"
3140
3149
  },
3141
3150
  {
3142
- "name": "position",
3151
+ "kind": "field",
3152
+ "name": "banner",
3143
3153
  "type": {
3144
- "text": "SkyBadgePosition"
3154
+ "text": "boolean"
3145
3155
  },
3146
- "default": "\"default\"",
3147
- "description": "Layout mode: `default | floating | inline`.",
3148
- "fieldName": "position"
3156
+ "default": "true",
3157
+ "description": "Uses `role=\"banner\"` when true, otherwise `role=\"group\"`.",
3158
+ "attribute": "banner"
3149
3159
  },
3150
3160
  {
3151
- "name": "value",
3161
+ "kind": "field",
3162
+ "name": "dense",
3152
3163
  "type": {
3153
- "text": "string"
3164
+ "text": "boolean"
3154
3165
  },
3155
- "default": "\"\"",
3156
- "description": "Badge text/count or icon name in icon mode.",
3157
- "fieldName": "value"
3166
+ "default": "false",
3167
+ "description": "Enables compact vertical spacing.",
3168
+ "attribute": "dense"
3158
3169
  },
3159
3170
  {
3160
- "name": "isIcon",
3171
+ "kind": "field",
3172
+ "name": "elevated",
3161
3173
  "type": {
3162
3174
  "text": "boolean"
3163
3175
  },
3164
3176
  "default": "false",
3165
- "description": "Renders icon mode when true.",
3166
- "fieldName": "isIcon"
3177
+ "description": "Applies elevated shadow styling.",
3178
+ "attribute": "elevated"
3167
3179
  },
3168
3180
  {
3169
- "name": "size",
3181
+ "kind": "field",
3182
+ "name": "leadingLabel",
3170
3183
  "type": {
3171
3184
  "text": "string"
3172
3185
  },
3173
- "default": "\"\"",
3174
- "description": "Badge and icon size CSS length.",
3175
- "fieldName": "size"
3176
- },
3177
- {
3178
- "name": "shape",
3179
- "type": {
3180
- "text": "SkyBadgeShape"
3181
- },
3182
- "default": "\"custom\"",
3183
- "description": "Badge shape: `circle | pill | custom`.",
3184
- "fieldName": "shape"
3186
+ "default": "\"Open menu\"",
3187
+ "description": "Accessible label for default leading button fallback.",
3188
+ "attribute": "leadingLabel"
3185
3189
  },
3186
3190
  {
3187
- "name": "max",
3191
+ "kind": "field",
3192
+ "name": "preset",
3188
3193
  "type": {
3189
- "text": "number"
3194
+ "text": "string"
3190
3195
  },
3191
- "default": "99",
3192
- "description": "Maximum numeric count before rendering overflow label.",
3193
- "fieldName": "max"
3196
+ "default": "\"\"",
3197
+ "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
3198
+ "attribute": "preset",
3199
+ "reflects": true
3194
3200
  },
3195
3201
  {
3196
- "name": "hideWhenZero",
3197
- "type": {
3198
- "text": "boolean"
3199
- },
3200
- "default": "false",
3201
- "description": "Hides badge when value resolves to numeric zero.",
3202
- "fieldName": "hideWhenZero"
3202
+ "kind": "field",
3203
+ "name": "_presets",
3204
+ "privacy": "private",
3205
+ "default": "new PresetController(this)"
3203
3206
  },
3204
3207
  {
3205
- "name": "show",
3206
- "type": {
3207
- "text": "boolean"
3208
+ "kind": "method",
3209
+ "name": "_applyColorSurface",
3210
+ "privacy": "private",
3211
+ "return": {
3212
+ "type": {
3213
+ "text": "void"
3214
+ }
3208
3215
  },
3209
- "default": "true",
3210
- "description": "Forces badge visibility independent of value.",
3211
- "fieldName": "show"
3216
+ "description": "Applies glass vs solid surface tokens from `color`."
3212
3217
  },
3213
3218
  {
3214
- "name": "offsetX",
3215
- "type": {
3216
- "text": "string"
3219
+ "kind": "method",
3220
+ "name": "_applyBackgroundImage",
3221
+ "privacy": "private",
3222
+ "return": {
3223
+ "type": {
3224
+ "text": "void"
3225
+ }
3217
3226
  },
3218
- "default": "\"0px\"",
3219
- "description": "Horizontal offset CSS length.",
3220
- "fieldName": "offsetX"
3221
- },
3227
+ "description": "Sets background image CSS variable from `url`."
3228
+ }
3229
+ ],
3230
+ "attributes": [
3222
3231
  {
3223
- "name": "offsetY",
3232
+ "name": "title",
3224
3233
  "type": {
3225
3234
  "text": "string"
3226
3235
  },
3227
- "default": "\"0px\"",
3228
- "description": "Vertical offset CSS length.",
3229
- "fieldName": "offsetY"
3230
- },
3231
- {
3232
- "name": "ring",
3233
- "type": {
3234
- "text": "boolean"
3235
- },
3236
- "default": "false",
3237
- "description": "Enables visual ring around the badge.",
3238
- "fieldName": "ring"
3236
+ "default": "\"App Bar\"",
3237
+ "description": "Title text displayed in the app bar.",
3238
+ "fieldName": "title"
3239
3239
  },
3240
3240
  {
3241
- "name": "ringColor",
3241
+ "name": "color",
3242
3242
  "type": {
3243
3243
  "text": "string"
3244
3244
  },
3245
- "default": "\"primary\"",
3246
- "description": "Ring color token or CSS color.",
3247
- "fieldName": "ringColor"
3245
+ "default": "\"default\"",
3246
+ "description": "Semantic token or CSS color for bar background; foreground color is derived for contrast.",
3247
+ "fieldName": "color"
3248
3248
  },
3249
3249
  {
3250
- "name": "ringOffset",
3250
+ "name": "url",
3251
3251
  "type": {
3252
3252
  "text": "string"
3253
3253
  },
3254
- "default": "\"1px\"",
3255
- "description": "Ring offset CSS length.",
3256
- "fieldName": "ringOffset"
3254
+ "default": "\"\"",
3255
+ "description": "Background image URL.",
3256
+ "fieldName": "url"
3257
3257
  },
3258
3258
  {
3259
- "name": "badgeLabel",
3259
+ "name": "banner",
3260
3260
  "type": {
3261
- "text": "string | null"
3261
+ "text": "boolean"
3262
3262
  },
3263
- "default": "null",
3264
- "description": "ARIA label override.",
3265
- "fieldName": "badgeLabel"
3263
+ "default": "true",
3264
+ "description": "Uses `role=\"banner\"` when true, otherwise `role=\"group\"`.",
3265
+ "fieldName": "banner"
3266
3266
  },
3267
3267
  {
3268
- "name": "badgeAriaHidden",
3268
+ "name": "dense",
3269
3269
  "type": {
3270
3270
  "text": "boolean"
3271
3271
  },
3272
3272
  "default": "false",
3273
- "description": "Hides badge from assistive technology when true.",
3274
- "fieldName": "badgeAriaHidden"
3273
+ "description": "Enables compact vertical spacing.",
3274
+ "fieldName": "dense"
3275
3275
  },
3276
3276
  {
3277
- "name": "interactive",
3277
+ "name": "elevated",
3278
3278
  "type": {
3279
3279
  "text": "boolean"
3280
3280
  },
3281
3281
  "default": "false",
3282
- "description": "Enables focus/activation and `badge-click` emission.",
3283
- "fieldName": "interactive"
3282
+ "description": "Applies elevated shadow styling.",
3283
+ "fieldName": "elevated"
3284
3284
  },
3285
3285
  {
3286
- "name": "placement",
3286
+ "name": "leadingLabel",
3287
3287
  "type": {
3288
- "text": "SkyBadgePlacement"
3288
+ "text": "string"
3289
3289
  },
3290
- "default": "\"custom\"",
3291
- "description": "Anchor placement preset for badge positioning.",
3292
- "fieldName": "placement"
3290
+ "default": "\"Open menu\"",
3291
+ "description": "Accessible label for default leading button fallback.",
3292
+ "fieldName": "leadingLabel"
3293
3293
  },
3294
3294
  {
3295
3295
  "name": "preset",
@@ -3305,26 +3305,26 @@
3305
3305
  "name": "LitElement",
3306
3306
  "package": "lit"
3307
3307
  },
3308
- "tagName": "sky-badge",
3308
+ "tagName": "sky-appbar",
3309
3309
  "customElement": true,
3310
- "summary": "Badge for status dots, counts, or icons anchored to slotted content."
3310
+ "summary": "Application top bar with title, optional leading control, trailing actions, and optional color/image background."
3311
3311
  }
3312
3312
  ],
3313
3313
  "exports": [
3314
3314
  {
3315
3315
  "kind": "js",
3316
- "name": "SkyBadge",
3316
+ "name": "SkyAppbar",
3317
3317
  "declaration": {
3318
- "name": "SkyBadge",
3319
- "module": "src/sky-badge/sky-badge.ts"
3318
+ "name": "SkyAppbar",
3319
+ "module": "src/sky-appbar/sky-appbar.ts"
3320
3320
  }
3321
3321
  },
3322
3322
  {
3323
3323
  "kind": "custom-element-definition",
3324
- "name": "sky-badge",
3324
+ "name": "sky-appbar",
3325
3325
  "declaration": {
3326
- "name": "SkyBadge",
3327
- "module": "src/sky-badge/sky-badge.ts"
3326
+ "name": "SkyAppbar",
3327
+ "module": "src/sky-appbar/sky-appbar.ts"
3328
3328
  }
3329
3329
  }
3330
3330
  ]