le-kit 0.1.12 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/custom-elements.json +1268 -1268
  2. package/dist/collection/assets/custom-elements.json +750 -750
  3. package/dist/components/index.d.ts +33 -0
  4. package/dist/components/index.js +113 -0
  5. package/dist/components/index.js.map +1 -0
  6. package/dist/components/le-box.d.ts +11 -0
  7. package/dist/components/le-box.js +257 -0
  8. package/dist/components/le-box.js.map +1 -0
  9. package/dist/components/le-button.d.ts +11 -0
  10. package/dist/components/le-button.js +9 -0
  11. package/dist/components/le-button.js.map +1 -0
  12. package/dist/components/le-button2.js +1149 -0
  13. package/dist/components/le-button2.js.map +1 -0
  14. package/dist/components/le-card.d.ts +11 -0
  15. package/dist/components/le-card.js +84 -0
  16. package/dist/components/le-card.js.map +1 -0
  17. package/dist/components/le-checkbox.d.ts +11 -0
  18. package/dist/components/le-checkbox.js +9 -0
  19. package/dist/components/le-checkbox.js.map +1 -0
  20. package/dist/components/le-component.d.ts +11 -0
  21. package/dist/components/le-component.js +9 -0
  22. package/dist/components/le-component.js.map +1 -0
  23. package/dist/components/le-number-input.d.ts +11 -0
  24. package/dist/components/le-number-input.js +272 -0
  25. package/dist/components/le-number-input.js.map +1 -0
  26. package/dist/components/le-popover.d.ts +11 -0
  27. package/dist/components/le-popover.js +9 -0
  28. package/dist/components/le-popover.js.map +1 -0
  29. package/dist/components/le-popover2.js +382 -0
  30. package/dist/components/le-popover2.js.map +1 -0
  31. package/dist/components/le-popup.d.ts +11 -0
  32. package/dist/components/le-popup.js +279 -0
  33. package/dist/components/le-popup.js.map +1 -0
  34. package/dist/components/le-round-progress.d.ts +11 -0
  35. package/dist/components/le-round-progress.js +135 -0
  36. package/dist/components/le-round-progress.js.map +1 -0
  37. package/dist/components/le-slot.d.ts +11 -0
  38. package/dist/components/le-slot.js +9 -0
  39. package/dist/components/le-slot.js.map +1 -0
  40. package/dist/components/le-stack.d.ts +11 -0
  41. package/dist/components/le-stack.js +199 -0
  42. package/dist/components/le-stack.js.map +1 -0
  43. package/dist/components/le-string-input.d.ts +11 -0
  44. package/dist/components/le-string-input.js +9 -0
  45. package/dist/components/le-string-input.js.map +1 -0
  46. package/dist/components/le-text.d.ts +11 -0
  47. package/dist/components/le-text.js +399 -0
  48. package/dist/components/le-text.js.map +1 -0
  49. package/dist/components/le-turntable.d.ts +11 -0
  50. package/dist/components/le-turntable.js +164 -0
  51. package/dist/components/le-turntable.js.map +1 -0
  52. package/dist/components/utils.js +310 -0
  53. package/dist/components/utils.js.map +1 -0
  54. package/dist/core/collection/assets/custom-elements.json +4305 -0
  55. package/dist/core/collection/themes/base.css +89 -0
  56. package/dist/core/collection/themes/dark.css +100 -0
  57. package/dist/core/collection/themes/default.css +108 -0
  58. package/dist/core/collection/themes/gradient.css +100 -0
  59. package/dist/core/collection/themes/index.css +413 -0
  60. package/dist/core/collection/themes/minimal.css +100 -0
  61. package/dist/core/collection/themes/warm.css +100 -0
  62. package/dist/core/components/index.d.ts +33 -0
  63. package/dist/core/components/index.js +113 -0
  64. package/dist/core/components/index.js.map +1 -0
  65. package/dist/core/components/le-box.d.ts +11 -0
  66. package/dist/core/components/le-box.js +225 -0
  67. package/dist/core/components/le-box.js.map +1 -0
  68. package/dist/core/components/le-button.d.ts +11 -0
  69. package/dist/core/components/le-button.js +9 -0
  70. package/dist/core/components/le-button.js.map +1 -0
  71. package/dist/core/components/le-button2.js +121 -0
  72. package/dist/core/components/le-button2.js.map +1 -0
  73. package/dist/core/components/le-card.d.ts +11 -0
  74. package/dist/core/components/le-card.js +52 -0
  75. package/dist/core/components/le-card.js.map +1 -0
  76. package/dist/core/components/le-checkbox.d.ts +11 -0
  77. package/dist/core/components/le-checkbox.js +87 -0
  78. package/dist/core/components/le-checkbox.js.map +1 -0
  79. package/dist/core/components/le-number-input.d.ts +11 -0
  80. package/dist/core/components/le-number-input.js +246 -0
  81. package/dist/core/components/le-number-input.js.map +1 -0
  82. package/dist/core/components/le-popover.d.ts +11 -0
  83. package/dist/core/components/le-popover.js +385 -0
  84. package/dist/core/components/le-popover.js.map +1 -0
  85. package/dist/core/components/le-popup.d.ts +11 -0
  86. package/dist/core/components/le-popup.js +253 -0
  87. package/dist/core/components/le-popup.js.map +1 -0
  88. package/dist/core/components/le-round-progress.d.ts +11 -0
  89. package/dist/core/components/le-round-progress.js +135 -0
  90. package/dist/core/components/le-round-progress.js.map +1 -0
  91. package/dist/core/components/le-stack.d.ts +11 -0
  92. package/dist/core/components/le-stack.js +167 -0
  93. package/dist/core/components/le-stack.js.map +1 -0
  94. package/dist/core/components/le-string-input.d.ts +11 -0
  95. package/dist/core/components/le-string-input.js +127 -0
  96. package/dist/core/components/le-string-input.js.map +1 -0
  97. package/dist/core/components/le-text.d.ts +11 -0
  98. package/dist/core/components/le-text.js +367 -0
  99. package/dist/core/components/le-text.js.map +1 -0
  100. package/dist/core/components/le-turntable.d.ts +11 -0
  101. package/dist/core/components/le-turntable.js +164 -0
  102. package/dist/core/components/le-turntable.js.map +1 -0
  103. package/dist/core/components/utils.js +310 -0
  104. package/dist/core/components/utils.js.map +1 -0
  105. package/dist/docs.json +1 -1
  106. package/dist/le-kit/assets/custom-elements.json +750 -750
  107. package/dist/le-kit/dist/collection/themes/base.css +89 -0
  108. package/dist/le-kit/dist/collection/themes/dark.css +100 -0
  109. package/dist/le-kit/dist/collection/themes/default.css +108 -0
  110. package/dist/le-kit/dist/collection/themes/gradient.css +100 -0
  111. package/dist/le-kit/dist/collection/themes/index.css +413 -0
  112. package/dist/le-kit/dist/collection/themes/minimal.css +100 -0
  113. package/dist/le-kit/dist/collection/themes/warm.css +100 -0
  114. package/package.json +2 -2
  115. /package/dist/{le-kit → collection/dist/collection}/themes/base.css +0 -0
  116. /package/dist/{le-kit → collection/dist/collection}/themes/dark.css +0 -0
  117. /package/dist/{le-kit → collection/dist/collection}/themes/default.css +0 -0
  118. /package/dist/{le-kit → collection/dist/collection}/themes/gradient.css +0 -0
  119. /package/dist/{le-kit → collection/dist/collection}/themes/index.css +0 -0
  120. /package/dist/{le-kit → collection/dist/collection}/themes/minimal.css +0 -0
  121. /package/dist/{le-kit → collection/dist/collection}/themes/warm.css +0 -0
@@ -445,139 +445,6 @@
445
445
  }
446
446
  ]
447
447
  },
448
- {
449
- "kind": "javascript-module",
450
- "path": "src/components/le-card/le-card.tsx",
451
- "declarations": [
452
- {
453
- "kind": "class",
454
- "description": "A flexible card component with header, content, and footer slots.\n\nThe card uses le-slot wrappers for each slot area. In admin mode,\nle-slot shows placeholders for CMS editing. In default mode,\nle-slot acts as a transparent passthrough.",
455
- "name": "LeCard",
456
- "cssProperties": [
457
- {
458
- "description": "Card background color",
459
- "name": "--le-card-bg"
460
- },
461
- {
462
- "description": "Card border radius",
463
- "name": "--le-card-border-radius"
464
- },
465
- {
466
- "description": "Card box shadow",
467
- "name": "--le-card-shadow"
468
- },
469
- {
470
- "description": "Card content padding",
471
- "name": "--le-card-padding"
472
- }
473
- ],
474
- "cssParts": [
475
- {
476
- "description": "The main card container",
477
- "name": "card"
478
- },
479
- {
480
- "description": "The card header section",
481
- "name": "header"
482
- },
483
- {
484
- "description": "The card content section",
485
- "name": "content"
486
- },
487
- {
488
- "description": "The card footer section",
489
- "name": "footer"
490
- }
491
- ],
492
- "slots": [
493
- {
494
- "description": "Card header content (title, actions)",
495
- "name": "header"
496
- },
497
- {
498
- "description": "Default slot for main card content",
499
- "name": ""
500
- },
501
- {
502
- "description": "Card footer content (buttons, links)",
503
- "name": "footer"
504
- }
505
- ],
506
- "members": [
507
- {
508
- "kind": "field",
509
- "name": "el",
510
- "type": {
511
- "text": "HTMLElement"
512
- }
513
- },
514
- {
515
- "kind": "field",
516
- "name": "variant",
517
- "type": {
518
- "text": "'default' | 'outlined' | 'elevated'"
519
- },
520
- "default": "'default'",
521
- "description": "Card variant style"
522
- },
523
- {
524
- "kind": "field",
525
- "name": "interactive",
526
- "type": {
527
- "text": "boolean"
528
- },
529
- "default": "false",
530
- "description": "Whether the card is interactive (clickable)"
531
- },
532
- {
533
- "kind": "method",
534
- "name": "render"
535
- }
536
- ],
537
- "attributes": [
538
- {
539
- "name": "variant",
540
- "fieldName": "variant",
541
- "default": "'default'",
542
- "description": "Card variant style",
543
- "type": {
544
- "text": "'default' | 'outlined' | 'elevated'"
545
- }
546
- },
547
- {
548
- "name": "interactive",
549
- "fieldName": "interactive",
550
- "default": "false",
551
- "description": "Whether the card is interactive (clickable)",
552
- "type": {
553
- "text": "boolean"
554
- }
555
- }
556
- ],
557
- "tagName": "le-card",
558
- "events": [],
559
- "customElement": true
560
- }
561
- ],
562
- "exports": [
563
- {
564
- "kind": "js",
565
- "name": "LeCard",
566
- "declaration": {
567
- "name": "LeCard",
568
- "module": "src/components/le-card/le-card.tsx"
569
- }
570
- },
571
- {
572
- "kind": "custom-element-definition",
573
- "name": "le-card",
574
- "declaration": {
575
- "name": "LeCard",
576
- "module": "src/components/le-card/le-card.tsx"
577
- }
578
- }
579
- ]
580
- },
581
448
  {
582
449
  "kind": "javascript-module",
583
450
  "path": "src/components/le-button/le-button.tsx",
@@ -878,38 +745,60 @@
878
745
  },
879
746
  {
880
747
  "kind": "javascript-module",
881
- "path": "src/components/le-checkbox/le-checkbox.tsx",
748
+ "path": "src/components/le-card/le-card.tsx",
882
749
  "declarations": [
883
750
  {
884
751
  "kind": "class",
885
- "description": "A checkbox component with support for labels, descriptions, and external IDs.",
886
- "name": "LeCheckbox",
752
+ "description": "A flexible card component with header, content, and footer slots.\n\nThe card uses le-slot wrappers for each slot area. In admin mode,\nle-slot shows placeholders for CMS editing. In default mode,\nle-slot acts as a transparent passthrough.",
753
+ "name": "LeCard",
887
754
  "cssProperties": [
888
755
  {
889
- "description": "Size of the checkbox input",
890
- "name": "--le-checkbox-size"
756
+ "description": "Card background color",
757
+ "name": "--le-card-bg"
891
758
  },
892
759
  {
893
- "description": "Color of the checkbox when checked",
894
- "name": "--le-checkbox-color"
760
+ "description": "Card border radius",
761
+ "name": "--le-card-border-radius"
895
762
  },
896
763
  {
897
- "description": "Color of the label text",
898
- "name": "--le-checkbox-label-color"
764
+ "description": "Card box shadow",
765
+ "name": "--le-card-shadow"
899
766
  },
900
767
  {
901
- "description": "Color of the description text",
902
- "name": "--le-checkbox-desc-color"
768
+ "description": "Card content padding",
769
+ "name": "--le-card-padding"
770
+ }
771
+ ],
772
+ "cssParts": [
773
+ {
774
+ "description": "The main card container",
775
+ "name": "card"
776
+ },
777
+ {
778
+ "description": "The card header section",
779
+ "name": "header"
780
+ },
781
+ {
782
+ "description": "The card content section",
783
+ "name": "content"
784
+ },
785
+ {
786
+ "description": "The card footer section",
787
+ "name": "footer"
903
788
  }
904
789
  ],
905
790
  "slots": [
906
791
  {
907
- "description": "The label text for the checkbox",
792
+ "description": "Card header content (title, actions)",
793
+ "name": "header"
794
+ },
795
+ {
796
+ "description": "Default slot for main card content",
908
797
  "name": ""
909
798
  },
910
799
  {
911
- "description": "Additional description text displayed below the label",
912
- "name": "description"
800
+ "description": "Card footer content (buttons, links)",
801
+ "name": "footer"
913
802
  }
914
803
  ],
915
804
  "members": [
@@ -922,50 +811,21 @@
922
811
  },
923
812
  {
924
813
  "kind": "field",
925
- "name": "checked",
814
+ "name": "variant",
926
815
  "type": {
927
- "text": "boolean"
816
+ "text": "'default' | 'outlined' | 'elevated'"
928
817
  },
929
- "default": "false",
930
- "description": "Whether the checkbox is checked"
818
+ "default": "'default'",
819
+ "description": "Card variant style"
931
820
  },
932
821
  {
933
822
  "kind": "field",
934
- "name": "disabled",
823
+ "name": "interactive",
935
824
  "type": {
936
825
  "text": "boolean"
937
826
  },
938
827
  "default": "false",
939
- "description": "Whether the checkbox is disabled"
940
- },
941
- {
942
- "kind": "field",
943
- "name": "name",
944
- "type": {
945
- "text": "string"
946
- },
947
- "description": "The name of the checkbox input"
948
- },
949
- {
950
- "kind": "field",
951
- "name": "value",
952
- "type": {
953
- "text": "string"
954
- },
955
- "description": "The value of the checkbox input"
956
- },
957
- {
958
- "kind": "field",
959
- "name": "externalId",
960
- "type": {
961
- "text": "string"
962
- },
963
- "description": "External ID for linking with external systems (e.g. database ID, PDF form field ID)"
964
- },
965
- {
966
- "kind": "field",
967
- "name": "handleChange",
968
- "privacy": "private"
828
+ "description": "Whether the card is interactive (clickable)"
969
829
  },
970
830
  {
971
831
  "kind": "method",
@@ -974,76 +834,44 @@
974
834
  ],
975
835
  "attributes": [
976
836
  {
977
- "name": "checked",
978
- "fieldName": "checked",
979
- "default": "false",
980
- "description": "Whether the checkbox is checked",
837
+ "name": "variant",
838
+ "fieldName": "variant",
839
+ "default": "'default'",
840
+ "description": "Card variant style",
981
841
  "type": {
982
- "text": "boolean"
842
+ "text": "'default' | 'outlined' | 'elevated'"
983
843
  }
984
844
  },
985
845
  {
986
- "name": "disabled",
987
- "fieldName": "disabled",
846
+ "name": "interactive",
847
+ "fieldName": "interactive",
988
848
  "default": "false",
989
- "description": "Whether the checkbox is disabled",
849
+ "description": "Whether the card is interactive (clickable)",
990
850
  "type": {
991
851
  "text": "boolean"
992
852
  }
993
- },
994
- {
995
- "name": "name",
996
- "fieldName": "name",
997
- "description": "The name of the checkbox input",
998
- "type": {
999
- "text": "string"
1000
- }
1001
- },
1002
- {
1003
- "name": "value",
1004
- "fieldName": "value",
1005
- "description": "The value of the checkbox input",
1006
- "type": {
1007
- "text": "string"
1008
- }
1009
- },
1010
- {
1011
- "name": "external-id",
1012
- "fieldName": "externalId",
1013
- "description": "External ID for linking with external systems (e.g. database ID, PDF form field ID)",
1014
- "type": {
1015
- "text": "string"
1016
- }
1017
- }
1018
- ],
1019
- "tagName": "le-checkbox",
1020
- "events": [
1021
- {
1022
- "name": "change",
1023
- "type": {
1024
- "text": "EventEmitter<{ checked: boolean; value: string; name: string; externalId: string }>"
1025
- },
1026
- "description": "Emitted when the checked state changes"
1027
853
  }
1028
854
  ],
855
+ "tagName": "le-card",
856
+ "events": [],
1029
857
  "customElement": true
1030
858
  }
1031
859
  ],
1032
860
  "exports": [
1033
861
  {
1034
862
  "kind": "js",
1035
- "name": "LeCheckbox",
863
+ "name": "LeCard",
1036
864
  "declaration": {
1037
- "name": "LeCheckbox",
1038
- "module": "src/components/le-checkbox/le-checkbox.tsx"
865
+ "name": "LeCard",
866
+ "module": "src/components/le-card/le-card.tsx"
1039
867
  }
1040
868
  },
1041
869
  {
1042
870
  "kind": "custom-element-definition",
1043
- "name": "le-checkbox",
871
+ "name": "le-card",
1044
872
  "declaration": {
1045
- "name": "LeCheckbox",
1046
- "module": "src/components/le-checkbox/le-checkbox.tsx"
873
+ "name": "LeCard",
874
+ "module": "src/components/le-card/le-card.tsx"
1047
875
  }
1048
876
  }
1049
877
  ]
@@ -1347,6 +1175,178 @@
1347
1175
  }
1348
1176
  ]
1349
1177
  },
1178
+ {
1179
+ "kind": "javascript-module",
1180
+ "path": "src/components/le-checkbox/le-checkbox.tsx",
1181
+ "declarations": [
1182
+ {
1183
+ "kind": "class",
1184
+ "description": "A checkbox component with support for labels, descriptions, and external IDs.",
1185
+ "name": "LeCheckbox",
1186
+ "cssProperties": [
1187
+ {
1188
+ "description": "Size of the checkbox input",
1189
+ "name": "--le-checkbox-size"
1190
+ },
1191
+ {
1192
+ "description": "Color of the checkbox when checked",
1193
+ "name": "--le-checkbox-color"
1194
+ },
1195
+ {
1196
+ "description": "Color of the label text",
1197
+ "name": "--le-checkbox-label-color"
1198
+ },
1199
+ {
1200
+ "description": "Color of the description text",
1201
+ "name": "--le-checkbox-desc-color"
1202
+ }
1203
+ ],
1204
+ "slots": [
1205
+ {
1206
+ "description": "The label text for the checkbox",
1207
+ "name": ""
1208
+ },
1209
+ {
1210
+ "description": "Additional description text displayed below the label",
1211
+ "name": "description"
1212
+ }
1213
+ ],
1214
+ "members": [
1215
+ {
1216
+ "kind": "field",
1217
+ "name": "el",
1218
+ "type": {
1219
+ "text": "HTMLElement"
1220
+ }
1221
+ },
1222
+ {
1223
+ "kind": "field",
1224
+ "name": "checked",
1225
+ "type": {
1226
+ "text": "boolean"
1227
+ },
1228
+ "default": "false",
1229
+ "description": "Whether the checkbox is checked"
1230
+ },
1231
+ {
1232
+ "kind": "field",
1233
+ "name": "disabled",
1234
+ "type": {
1235
+ "text": "boolean"
1236
+ },
1237
+ "default": "false",
1238
+ "description": "Whether the checkbox is disabled"
1239
+ },
1240
+ {
1241
+ "kind": "field",
1242
+ "name": "name",
1243
+ "type": {
1244
+ "text": "string"
1245
+ },
1246
+ "description": "The name of the checkbox input"
1247
+ },
1248
+ {
1249
+ "kind": "field",
1250
+ "name": "value",
1251
+ "type": {
1252
+ "text": "string"
1253
+ },
1254
+ "description": "The value of the checkbox input"
1255
+ },
1256
+ {
1257
+ "kind": "field",
1258
+ "name": "externalId",
1259
+ "type": {
1260
+ "text": "string"
1261
+ },
1262
+ "description": "External ID for linking with external systems (e.g. database ID, PDF form field ID)"
1263
+ },
1264
+ {
1265
+ "kind": "field",
1266
+ "name": "handleChange",
1267
+ "privacy": "private"
1268
+ },
1269
+ {
1270
+ "kind": "method",
1271
+ "name": "render"
1272
+ }
1273
+ ],
1274
+ "attributes": [
1275
+ {
1276
+ "name": "checked",
1277
+ "fieldName": "checked",
1278
+ "default": "false",
1279
+ "description": "Whether the checkbox is checked",
1280
+ "type": {
1281
+ "text": "boolean"
1282
+ }
1283
+ },
1284
+ {
1285
+ "name": "disabled",
1286
+ "fieldName": "disabled",
1287
+ "default": "false",
1288
+ "description": "Whether the checkbox is disabled",
1289
+ "type": {
1290
+ "text": "boolean"
1291
+ }
1292
+ },
1293
+ {
1294
+ "name": "name",
1295
+ "fieldName": "name",
1296
+ "description": "The name of the checkbox input",
1297
+ "type": {
1298
+ "text": "string"
1299
+ }
1300
+ },
1301
+ {
1302
+ "name": "value",
1303
+ "fieldName": "value",
1304
+ "description": "The value of the checkbox input",
1305
+ "type": {
1306
+ "text": "string"
1307
+ }
1308
+ },
1309
+ {
1310
+ "name": "external-id",
1311
+ "fieldName": "externalId",
1312
+ "description": "External ID for linking with external systems (e.g. database ID, PDF form field ID)",
1313
+ "type": {
1314
+ "text": "string"
1315
+ }
1316
+ }
1317
+ ],
1318
+ "tagName": "le-checkbox",
1319
+ "events": [
1320
+ {
1321
+ "name": "change",
1322
+ "type": {
1323
+ "text": "EventEmitter<{ checked: boolean; value: string; name: string; externalId: string }>"
1324
+ },
1325
+ "description": "Emitted when the checked state changes"
1326
+ }
1327
+ ],
1328
+ "customElement": true
1329
+ }
1330
+ ],
1331
+ "exports": [
1332
+ {
1333
+ "kind": "js",
1334
+ "name": "LeCheckbox",
1335
+ "declaration": {
1336
+ "name": "LeCheckbox",
1337
+ "module": "src/components/le-checkbox/le-checkbox.tsx"
1338
+ }
1339
+ },
1340
+ {
1341
+ "kind": "custom-element-definition",
1342
+ "name": "le-checkbox",
1343
+ "declaration": {
1344
+ "name": "LeCheckbox",
1345
+ "module": "src/components/le-checkbox/le-checkbox.tsx"
1346
+ }
1347
+ }
1348
+ ]
1349
+ },
1350
1350
  {
1351
1351
  "kind": "javascript-module",
1352
1352
  "path": "src/components/le-number-input/le-number-input.tsx",
@@ -2148,26 +2148,12 @@
2148
2148
  },
2149
2149
  {
2150
2150
  "kind": "javascript-module",
2151
- "path": "src/components/le-popup/le-popup.tsx",
2151
+ "path": "src/components/le-round-progress/le-round-progress.tsx",
2152
2152
  "declarations": [
2153
2153
  {
2154
2154
  "kind": "class",
2155
- "description": "A flexible popup/dialog component for alerts, confirms, prompts, and custom content.\n\nUses the native HTML <dialog> element for proper modal behavior, accessibility,\nand focus management. Can be used declaratively in HTML or programmatically \nvia leAlert(), leConfirm(), lePrompt().",
2156
- "name": "LePopup",
2157
- "slots": [
2158
- {
2159
- "description": "Default slot for custom body content",
2160
- "name": ""
2161
- },
2162
- {
2163
- "description": "Custom header content (replaces title)",
2164
- "name": "header"
2165
- },
2166
- {
2167
- "description": "Custom footer content (replaces default buttons)",
2168
- "name": "footer"
2169
- }
2170
- ],
2155
+ "description": "",
2156
+ "name": "LeRoundProgress",
2171
2157
  "members": [
2172
2158
  {
2173
2159
  "kind": "field",
@@ -2178,220 +2164,98 @@
2178
2164
  },
2179
2165
  {
2180
2166
  "kind": "field",
2181
- "name": "open",
2167
+ "name": "value",
2182
2168
  "type": {
2183
- "text": "boolean"
2169
+ "text": "number"
2184
2170
  },
2185
- "default": "false",
2186
- "description": "Whether the popup is currently visible"
2171
+ "default": "0"
2187
2172
  },
2188
2173
  {
2189
- "kind": "field",
2190
- "name": "type",
2191
- "type": {
2192
- "text": "PopupType"
2193
- },
2194
- "default": "'alert'",
2195
- "description": "Type of popup: alert (OK only), confirm (OK/Cancel), prompt (input + OK/Cancel), custom"
2174
+ "kind": "method",
2175
+ "name": "updateValue",
2176
+ "parameters": [
2177
+ {
2178
+ "name": "newValue",
2179
+ "type": {
2180
+ "text": "string"
2181
+ }
2182
+ }
2183
+ ]
2196
2184
  },
2197
2185
  {
2198
2186
  "kind": "field",
2199
- "name": "popupTitle",
2187
+ "name": "padding",
2200
2188
  "type": {
2201
- "text": "string | undefined"
2189
+ "text": "number"
2202
2190
  },
2203
- "description": "Optional title for the popup header"
2191
+ "default": "0"
2204
2192
  },
2205
2193
  {
2206
- "kind": "field",
2207
- "name": "message",
2208
- "type": {
2209
- "text": "string | undefined"
2210
- },
2211
- "description": "Message text to display (for alert/confirm/prompt types)"
2212
- },
2213
- {
2214
- "kind": "field",
2215
- "name": "modal",
2216
- "type": {
2217
- "text": "boolean"
2218
- },
2219
- "default": "true",
2220
- "description": "Whether the popup is modal (blocks interaction with page behind)"
2221
- },
2222
- {
2223
- "kind": "field",
2224
- "name": "position",
2225
- "type": {
2226
- "text": "PopupPosition"
2227
- },
2228
- "default": "'center'",
2229
- "description": "Position of the popup on screen"
2230
- },
2231
- {
2232
- "kind": "field",
2233
- "name": "confirmText",
2234
- "type": {
2235
- "text": "string"
2236
- },
2237
- "default": "'OK'",
2238
- "description": "Text for the confirm/OK button"
2239
- },
2240
- {
2241
- "kind": "field",
2242
- "name": "cancelText",
2243
- "type": {
2244
- "text": "string"
2245
- },
2246
- "default": "'Cancel'",
2247
- "description": "Text for the cancel button"
2248
- },
2249
- {
2250
- "kind": "field",
2251
- "name": "placeholder",
2252
- "type": {
2253
- "text": "string"
2254
- },
2255
- "default": "''",
2256
- "description": "Placeholder text for prompt input"
2257
- },
2258
- {
2259
- "kind": "field",
2260
- "name": "defaultValue",
2261
- "type": {
2262
- "text": "string"
2263
- },
2264
- "default": "''",
2265
- "description": "Default value for prompt input"
2266
- },
2267
- {
2268
- "kind": "field",
2269
- "name": "closeOnBackdrop",
2270
- "type": {
2271
- "text": "boolean"
2272
- },
2273
- "default": "true",
2274
- "description": "Whether clicking the backdrop closes the popup (modal only)"
2194
+ "kind": "method",
2195
+ "name": "updatePadding",
2196
+ "parameters": [
2197
+ {
2198
+ "name": "newValue",
2199
+ "type": {
2200
+ "text": "string"
2201
+ }
2202
+ }
2203
+ ]
2275
2204
  },
2276
2205
  {
2277
2206
  "kind": "field",
2278
- "name": "inputValue",
2207
+ "name": "paths",
2279
2208
  "type": {
2280
2209
  "text": "string"
2281
- },
2282
- "default": "''",
2283
- "description": "Internal state for prompt input value"
2284
- },
2285
- {
2286
- "kind": "field",
2287
- "name": "dialogEl",
2288
- "type": {
2289
- "text": "HTMLDialogElement | undefined"
2290
- },
2291
- "privacy": "private"
2292
- },
2293
- {
2294
- "kind": "field",
2295
- "name": "inputEl",
2296
- "type": {
2297
- "text": "HTMLInputElement | undefined"
2298
- },
2299
- "privacy": "private"
2300
- },
2301
- {
2302
- "kind": "field",
2303
- "name": "resolvePromise",
2304
- "type": {
2305
- "text": "(result: PopupResult) => void | undefined"
2306
- },
2307
- "privacy": "private"
2308
- },
2309
- {
2310
- "kind": "field",
2311
- "name": "handleDialogCancel",
2312
- "privacy": "private"
2313
- },
2314
- {
2315
- "kind": "method",
2316
- "name": "show",
2317
- "return": {
2318
- "type": {
2319
- "text": "Promise<PopupResult>"
2320
- }
2321
- },
2322
- "description": "Opens the popup and returns a promise that resolves when closed"
2210
+ }
2323
2211
  },
2324
2212
  {
2325
2213
  "kind": "method",
2326
- "name": "hide",
2214
+ "name": "updateProgressBackgrounds",
2327
2215
  "parameters": [
2328
2216
  {
2329
- "name": "confirmed",
2330
- "default": "false",
2217
+ "name": "newValue",
2331
2218
  "type": {
2332
- "text": "boolean"
2219
+ "text": "string"
2333
2220
  }
2334
2221
  }
2335
- ],
2336
- "description": "Closes the popup with a result"
2337
- },
2338
- {
2339
- "kind": "field",
2340
- "name": "handleConfirm",
2341
- "privacy": "private"
2342
- },
2343
- {
2344
- "kind": "field",
2345
- "name": "handleCancel",
2346
- "privacy": "private"
2222
+ ]
2347
2223
  },
2348
2224
  {
2349
2225
  "kind": "field",
2350
- "name": "handleBackdropClick",
2351
- "privacy": "private"
2226
+ "name": "progressPaths",
2227
+ "type": {
2228
+ "text": "any[]"
2229
+ }
2352
2230
  },
2353
2231
  {
2354
2232
  "kind": "field",
2355
- "name": "handleInputChange",
2356
- "privacy": "private"
2233
+ "name": "params",
2234
+ "type": {
2235
+ "text": "{\n width: number;\n diameter: number;\n circumference: number;\n }"
2236
+ }
2357
2237
  },
2358
2238
  {
2359
- "kind": "field",
2360
- "name": "handleKeyDown",
2361
- "privacy": "private"
2239
+ "kind": "method",
2240
+ "name": "calcParams"
2362
2241
  },
2363
2242
  {
2364
2243
  "kind": "method",
2365
- "name": "hasSlot",
2366
- "privacy": "private",
2367
- "return": {
2368
- "type": {
2369
- "text": "boolean"
2370
- }
2371
- },
2372
- "parameters": [
2373
- {
2374
- "name": "name",
2375
- "type": {
2376
- "text": "string"
2377
- }
2378
- }
2379
- ]
2244
+ "name": "getViewBox",
2245
+ "description": "Returns the viewPath attribute value for the SVG\nbased on the width of the parent element"
2380
2246
  },
2381
2247
  {
2382
2248
  "kind": "method",
2383
- "name": "renderHeader",
2384
- "privacy": "private"
2249
+ "name": "getPath",
2250
+ "description": "Returns the circular path for the progress stroke\nand additional paths in the background"
2385
2251
  },
2386
2252
  {
2387
2253
  "kind": "method",
2388
- "name": "renderBody",
2389
- "privacy": "private"
2254
+ "name": "getStrokeDashArray"
2390
2255
  },
2391
2256
  {
2392
2257
  "kind": "method",
2393
- "name": "renderFooter",
2394
- "privacy": "private"
2258
+ "name": "getPaths"
2395
2259
  },
2396
2260
  {
2397
2261
  "kind": "method",
@@ -2400,152 +2264,49 @@
2400
2264
  ],
2401
2265
  "attributes": [
2402
2266
  {
2403
- "name": "open",
2404
- "fieldName": "open",
2405
- "default": "false",
2406
- "description": "Whether the popup is currently visible",
2407
- "type": {
2408
- "text": "boolean"
2409
- }
2410
- },
2411
- {
2412
- "name": "type",
2413
- "fieldName": "type",
2414
- "default": "'alert'",
2415
- "description": "Type of popup: alert (OK only), confirm (OK/Cancel), prompt (input + OK/Cancel), custom",
2416
- "type": {
2417
- "text": "PopupType"
2418
- }
2419
- },
2420
- {
2421
- "name": "popup-title",
2422
- "fieldName": "popupTitle",
2423
- "description": "Optional title for the popup header",
2424
- "type": {
2425
- "text": "string"
2426
- }
2427
- },
2428
- {
2429
- "name": "message",
2430
- "fieldName": "message",
2431
- "description": "Message text to display (for alert/confirm/prompt types)",
2432
- "type": {
2433
- "text": "string"
2434
- }
2435
- },
2436
- {
2437
- "name": "modal",
2438
- "fieldName": "modal",
2439
- "default": "true",
2440
- "description": "Whether the popup is modal (blocks interaction with page behind)",
2441
- "type": {
2442
- "text": "boolean"
2443
- }
2444
- },
2445
- {
2446
- "name": "position",
2447
- "fieldName": "position",
2448
- "default": "'center'",
2449
- "description": "Position of the popup on screen",
2450
- "type": {
2451
- "text": "PopupPosition"
2452
- }
2453
- },
2454
- {
2455
- "name": "confirm-text",
2456
- "fieldName": "confirmText",
2457
- "default": "'OK'",
2458
- "description": "Text for the confirm/OK button",
2459
- "type": {
2460
- "text": "string"
2461
- }
2462
- },
2463
- {
2464
- "name": "cancel-text",
2465
- "fieldName": "cancelText",
2466
- "default": "'Cancel'",
2467
- "description": "Text for the cancel button",
2267
+ "name": "value",
2268
+ "fieldName": "value",
2269
+ "default": "0",
2468
2270
  "type": {
2469
- "text": "string"
2271
+ "text": "number"
2470
2272
  }
2471
2273
  },
2472
2274
  {
2473
- "name": "placeholder",
2474
- "fieldName": "placeholder",
2475
- "default": "''",
2476
- "description": "Placeholder text for prompt input",
2275
+ "name": "padding",
2276
+ "fieldName": "padding",
2277
+ "default": "0",
2477
2278
  "type": {
2478
- "text": "string"
2279
+ "text": "number"
2479
2280
  }
2480
2281
  },
2481
2282
  {
2482
- "name": "default-value",
2483
- "fieldName": "defaultValue",
2484
- "default": "''",
2485
- "description": "Default value for prompt input",
2283
+ "name": "paths",
2284
+ "fieldName": "paths",
2486
2285
  "type": {
2487
2286
  "text": "string"
2488
2287
  }
2489
- },
2490
- {
2491
- "name": "close-on-backdrop",
2492
- "fieldName": "closeOnBackdrop",
2493
- "default": "true",
2494
- "description": "Whether clicking the backdrop closes the popup (modal only)",
2495
- "type": {
2496
- "text": "boolean"
2497
- }
2498
- }
2499
- ],
2500
- "tagName": "le-popup",
2501
- "events": [
2502
- {
2503
- "name": "leConfirm",
2504
- "type": {
2505
- "text": "EventEmitter<PopupResult>"
2506
- },
2507
- "description": "Emitted when the popup is confirmed (OK clicked)"
2508
- },
2509
- {
2510
- "name": "leCancel",
2511
- "type": {
2512
- "text": "EventEmitter<PopupResult>"
2513
- },
2514
- "description": "Emitted when the popup is cancelled (Cancel clicked or dismissed)"
2515
- },
2516
- {
2517
- "name": "leOpen",
2518
- "type": {
2519
- "text": "EventEmitter<void>"
2520
- },
2521
- "description": "Emitted when the popup opens"
2522
- },
2523
- {
2524
- "name": "leClose",
2525
- "type": {
2526
- "text": "EventEmitter<PopupResult>"
2527
- },
2528
- "description": "Emitted when the popup closes"
2529
2288
  }
2530
2289
  ],
2290
+ "tagName": "le-round-progress",
2291
+ "events": [],
2531
2292
  "customElement": true
2532
2293
  }
2533
2294
  ],
2534
2295
  "exports": [
2535
2296
  {
2536
2297
  "kind": "js",
2537
- "name": "LePopup",
2298
+ "name": "LeRoundProgress",
2538
2299
  "declaration": {
2539
- "name": "LePopup",
2540
- "module": "src/components/le-popup/le-popup.tsx"
2300
+ "name": "LeRoundProgress",
2301
+ "module": "src/components/le-round-progress/le-round-progress.tsx"
2541
2302
  }
2542
2303
  },
2543
2304
  {
2544
2305
  "kind": "custom-element-definition",
2545
- "name": "le-popup",
2306
+ "name": "le-round-progress",
2546
2307
  "declaration": {
2547
- "name": "LePopup",
2548
- "module": "src/components/le-popup/le-popup.tsx"
2308
+ "name": "LeRoundProgress",
2309
+ "module": "src/components/le-round-progress/le-round-progress.tsx"
2549
2310
  }
2550
2311
  }
2551
2312
  ]
@@ -2953,12 +2714,30 @@
2953
2714
  },
2954
2715
  {
2955
2716
  "kind": "javascript-module",
2956
- "path": "src/components/le-round-progress/le-round-progress.tsx",
2717
+ "path": "src/components/le-stack/le-stack.tsx",
2957
2718
  "declarations": [
2958
2719
  {
2959
2720
  "kind": "class",
2960
- "description": "",
2961
- "name": "LeRoundProgress",
2721
+ "description": "A flexible stack layout component using CSS flexbox.\n\n`le-stack` arranges its children in a row (horizontal) or column (vertical)\nwith configurable spacing, alignment, and wrapping behavior. Perfect for\ncreating responsive layouts.",
2722
+ "name": "LeStack",
2723
+ "cssProperties": [
2724
+ {
2725
+ "description": "Gap between items (defaults to var(--le-space-md))",
2726
+ "name": "--le-stack-gap"
2727
+ }
2728
+ ],
2729
+ "cssParts": [
2730
+ {
2731
+ "description": "The main stack container",
2732
+ "name": "stack"
2733
+ }
2734
+ ],
2735
+ "slots": [
2736
+ {
2737
+ "description": "Default slot for stack items (le-box components recommended)",
2738
+ "name": ""
2739
+ }
2740
+ ],
2962
2741
  "members": [
2963
2742
  {
2964
2743
  "kind": "field",
@@ -2969,130 +2748,244 @@
2969
2748
  },
2970
2749
  {
2971
2750
  "kind": "field",
2972
- "name": "value",
2751
+ "name": "direction",
2973
2752
  "type": {
2974
- "text": "number"
2753
+ "text": "'horizontal' | 'vertical'"
2975
2754
  },
2976
- "default": "0"
2755
+ "default": "'horizontal'",
2756
+ "description": "Direction of the stack layout"
2977
2757
  },
2978
2758
  {
2979
- "kind": "method",
2980
- "name": "updateValue",
2981
- "parameters": [
2982
- {
2983
- "name": "newValue",
2984
- "type": {
2985
- "text": "string"
2986
- }
2987
- }
2988
- ]
2759
+ "kind": "field",
2760
+ "name": "gap",
2761
+ "type": {
2762
+ "text": "string | undefined"
2763
+ },
2764
+ "description": "Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')"
2765
+ },
2766
+ {
2767
+ "kind": "field",
2768
+ "name": "align",
2769
+ "type": {
2770
+ "text": "'start' | 'center' | 'end' | 'stretch' | 'baseline'"
2771
+ },
2772
+ "default": "'stretch'",
2773
+ "description": "Alignment of items on the cross axis"
2774
+ },
2775
+ {
2776
+ "kind": "field",
2777
+ "name": "justify",
2778
+ "type": {
2779
+ "text": "'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'"
2780
+ },
2781
+ "default": "'start'",
2782
+ "description": "Distribution of items on the main axis"
2783
+ },
2784
+ {
2785
+ "kind": "field",
2786
+ "name": "wrap",
2787
+ "type": {
2788
+ "text": "boolean"
2789
+ },
2790
+ "default": "false",
2791
+ "description": "Whether items should wrap to multiple lines"
2792
+ },
2793
+ {
2794
+ "kind": "field",
2795
+ "name": "alignContent",
2796
+ "type": {
2797
+ "text": "'start' | 'center' | 'end' | 'stretch' | 'space-between' | 'space-around'"
2798
+ },
2799
+ "default": "'stretch'",
2800
+ "description": "Alignment of wrapped lines (only applies when wrap is true)"
2801
+ },
2802
+ {
2803
+ "kind": "field",
2804
+ "name": "reverse",
2805
+ "type": {
2806
+ "text": "boolean"
2807
+ },
2808
+ "default": "false",
2809
+ "description": "Whether to reverse the order of items"
2810
+ },
2811
+ {
2812
+ "kind": "field",
2813
+ "name": "maxItems",
2814
+ "type": {
2815
+ "text": "number | undefined"
2816
+ },
2817
+ "description": "Maximum number of items allowed in the stack (for CMS validation)"
2818
+ },
2819
+ {
2820
+ "kind": "field",
2821
+ "name": "fullWidth",
2822
+ "type": {
2823
+ "text": "boolean"
2824
+ },
2825
+ "default": "false",
2826
+ "description": "Whether the stack should take full width of its container"
2827
+ },
2828
+ {
2829
+ "kind": "field",
2830
+ "name": "fullHeight",
2831
+ "type": {
2832
+ "text": "boolean"
2833
+ },
2834
+ "default": "false",
2835
+ "description": "Whether the stack should take full height of its container"
2989
2836
  },
2990
2837
  {
2991
2838
  "kind": "field",
2992
2839
  "name": "padding",
2993
2840
  "type": {
2994
- "text": "number"
2841
+ "text": "string | undefined"
2995
2842
  },
2996
- "default": "0"
2843
+ "description": "Padding inside the stack container (CSS value)"
2997
2844
  },
2998
2845
  {
2999
2846
  "kind": "method",
3000
- "name": "updatePadding",
3001
- "parameters": [
3002
- {
3003
- "name": "newValue",
3004
- "type": {
3005
- "text": "string"
3006
- }
2847
+ "name": "getFlexDirection",
2848
+ "privacy": "private",
2849
+ "return": {
2850
+ "type": {
2851
+ "text": "string"
3007
2852
  }
3008
- ]
2853
+ }
3009
2854
  },
3010
2855
  {
3011
- "kind": "field",
3012
- "name": "paths",
3013
- "type": {
3014
- "text": "string"
2856
+ "kind": "method",
2857
+ "name": "getAlignItems",
2858
+ "privacy": "private",
2859
+ "return": {
2860
+ "type": {
2861
+ "text": "string"
2862
+ }
2863
+ }
2864
+ },
2865
+ {
2866
+ "kind": "method",
2867
+ "name": "getJustifyContent",
2868
+ "privacy": "private",
2869
+ "return": {
2870
+ "type": {
2871
+ "text": "string"
2872
+ }
3015
2873
  }
3016
2874
  },
3017
2875
  {
3018
2876
  "kind": "method",
3019
- "name": "updateProgressBackgrounds",
3020
- "parameters": [
3021
- {
3022
- "name": "newValue",
3023
- "type": {
3024
- "text": "string"
3025
- }
2877
+ "name": "getAlignContent",
2878
+ "privacy": "private",
2879
+ "return": {
2880
+ "type": {
2881
+ "text": "string"
3026
2882
  }
3027
- ]
2883
+ }
3028
2884
  },
3029
2885
  {
3030
- "kind": "field",
3031
- "name": "progressPaths",
2886
+ "kind": "method",
2887
+ "name": "render"
2888
+ }
2889
+ ],
2890
+ "attributes": [
2891
+ {
2892
+ "name": "direction",
2893
+ "fieldName": "direction",
2894
+ "default": "'horizontal'",
2895
+ "description": "Direction of the stack layout",
3032
2896
  "type": {
3033
- "text": "any[]"
2897
+ "text": "'horizontal' | 'vertical'"
3034
2898
  }
3035
2899
  },
3036
2900
  {
3037
- "kind": "field",
3038
- "name": "params",
2901
+ "name": "gap",
2902
+ "fieldName": "gap",
2903
+ "description": "Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')",
3039
2904
  "type": {
3040
- "text": "{\n width: number;\n diameter: number;\n circumference: number;\n }"
2905
+ "text": "string"
3041
2906
  }
3042
2907
  },
3043
2908
  {
3044
- "kind": "method",
3045
- "name": "calcParams"
2909
+ "name": "align",
2910
+ "fieldName": "align",
2911
+ "default": "'stretch'",
2912
+ "description": "Alignment of items on the cross axis",
2913
+ "type": {
2914
+ "text": "'start' | 'center' | 'end' | 'stretch' | 'baseline'"
2915
+ }
3046
2916
  },
3047
2917
  {
3048
- "kind": "method",
3049
- "name": "getViewBox",
3050
- "description": "Returns the viewPath attribute value for the SVG\nbased on the width of the parent element"
2918
+ "name": "justify",
2919
+ "fieldName": "justify",
2920
+ "default": "'start'",
2921
+ "description": "Distribution of items on the main axis",
2922
+ "type": {
2923
+ "text": "'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'"
2924
+ }
3051
2925
  },
3052
2926
  {
3053
- "kind": "method",
3054
- "name": "getPath",
3055
- "description": "Returns the circular path for the progress stroke\nand additional paths in the background"
2927
+ "name": "wrap",
2928
+ "fieldName": "wrap",
2929
+ "default": "false",
2930
+ "description": "Whether items should wrap to multiple lines",
2931
+ "type": {
2932
+ "text": "boolean"
2933
+ }
3056
2934
  },
3057
2935
  {
3058
- "kind": "method",
3059
- "name": "getStrokeDashArray"
2936
+ "name": "align-content",
2937
+ "fieldName": "alignContent",
2938
+ "default": "'stretch'",
2939
+ "description": "Alignment of wrapped lines (only applies when wrap is true)",
2940
+ "type": {
2941
+ "text": "'start' | 'center' | 'end' | 'stretch' | 'space-between' | 'space-around'"
2942
+ }
3060
2943
  },
3061
2944
  {
3062
- "kind": "method",
3063
- "name": "getPaths"
2945
+ "name": "reverse",
2946
+ "fieldName": "reverse",
2947
+ "default": "false",
2948
+ "description": "Whether to reverse the order of items",
2949
+ "type": {
2950
+ "text": "boolean"
2951
+ }
3064
2952
  },
3065
2953
  {
3066
- "kind": "method",
3067
- "name": "render"
3068
- }
3069
- ],
3070
- "attributes": [
3071
- {
3072
- "name": "value",
3073
- "fieldName": "value",
3074
- "default": "0",
2954
+ "name": "max-items",
2955
+ "fieldName": "maxItems",
2956
+ "description": "Maximum number of items allowed in the stack (for CMS validation)",
3075
2957
  "type": {
3076
2958
  "text": "number"
3077
2959
  }
3078
2960
  },
3079
2961
  {
3080
- "name": "padding",
3081
- "fieldName": "padding",
3082
- "default": "0",
2962
+ "name": "full-width",
2963
+ "fieldName": "fullWidth",
2964
+ "default": "false",
2965
+ "description": "Whether the stack should take full width of its container",
3083
2966
  "type": {
3084
- "text": "number"
2967
+ "text": "boolean"
3085
2968
  }
3086
2969
  },
3087
2970
  {
3088
- "name": "paths",
3089
- "fieldName": "paths",
2971
+ "name": "full-height",
2972
+ "fieldName": "fullHeight",
2973
+ "default": "false",
2974
+ "description": "Whether the stack should take full height of its container",
2975
+ "type": {
2976
+ "text": "boolean"
2977
+ }
2978
+ },
2979
+ {
2980
+ "name": "padding",
2981
+ "fieldName": "padding",
2982
+ "description": "Padding inside the stack container (CSS value)",
3090
2983
  "type": {
3091
2984
  "text": "string"
3092
2985
  }
3093
2986
  }
3094
2987
  ],
3095
- "tagName": "le-round-progress",
2988
+ "tagName": "le-stack",
3096
2989
  "events": [],
3097
2990
  "customElement": true
3098
2991
  }
@@ -3100,46 +2993,42 @@
3100
2993
  "exports": [
3101
2994
  {
3102
2995
  "kind": "js",
3103
- "name": "LeRoundProgress",
2996
+ "name": "LeStack",
3104
2997
  "declaration": {
3105
- "name": "LeRoundProgress",
3106
- "module": "src/components/le-round-progress/le-round-progress.tsx"
2998
+ "name": "LeStack",
2999
+ "module": "src/components/le-stack/le-stack.tsx"
3107
3000
  }
3108
3001
  },
3109
3002
  {
3110
3003
  "kind": "custom-element-definition",
3111
- "name": "le-round-progress",
3004
+ "name": "le-stack",
3112
3005
  "declaration": {
3113
- "name": "LeRoundProgress",
3114
- "module": "src/components/le-round-progress/le-round-progress.tsx"
3006
+ "name": "LeStack",
3007
+ "module": "src/components/le-stack/le-stack.tsx"
3115
3008
  }
3116
3009
  }
3117
3010
  ]
3118
3011
  },
3119
3012
  {
3120
3013
  "kind": "javascript-module",
3121
- "path": "src/components/le-stack/le-stack.tsx",
3014
+ "path": "src/components/le-popup/le-popup.tsx",
3122
3015
  "declarations": [
3123
3016
  {
3124
3017
  "kind": "class",
3125
- "description": "A flexible stack layout component using CSS flexbox.\n\n`le-stack` arranges its children in a row (horizontal) or column (vertical)\nwith configurable spacing, alignment, and wrapping behavior. Perfect for\ncreating responsive layouts.",
3126
- "name": "LeStack",
3127
- "cssProperties": [
3128
- {
3129
- "description": "Gap between items (defaults to var(--le-space-md))",
3130
- "name": "--le-stack-gap"
3131
- }
3132
- ],
3133
- "cssParts": [
3134
- {
3135
- "description": "The main stack container",
3136
- "name": "stack"
3137
- }
3138
- ],
3018
+ "description": "A flexible popup/dialog component for alerts, confirms, prompts, and custom content.\n\nUses the native HTML <dialog> element for proper modal behavior, accessibility,\nand focus management. Can be used declaratively in HTML or programmatically \nvia leAlert(), leConfirm(), lePrompt().",
3019
+ "name": "LePopup",
3139
3020
  "slots": [
3140
3021
  {
3141
- "description": "Default slot for stack items (le-box components recommended)",
3022
+ "description": "Default slot for custom body content",
3142
3023
  "name": ""
3024
+ },
3025
+ {
3026
+ "description": "Custom header content (replaces title)",
3027
+ "name": "header"
3028
+ },
3029
+ {
3030
+ "description": "Custom footer content (replaces default buttons)",
3031
+ "name": "footer"
3143
3032
  }
3144
3033
  ],
3145
3034
  "members": [
@@ -3152,139 +3041,220 @@
3152
3041
  },
3153
3042
  {
3154
3043
  "kind": "field",
3155
- "name": "direction",
3044
+ "name": "open",
3156
3045
  "type": {
3157
- "text": "'horizontal' | 'vertical'"
3046
+ "text": "boolean"
3158
3047
  },
3159
- "default": "'horizontal'",
3160
- "description": "Direction of the stack layout"
3048
+ "default": "false",
3049
+ "description": "Whether the popup is currently visible"
3161
3050
  },
3162
3051
  {
3163
3052
  "kind": "field",
3164
- "name": "gap",
3053
+ "name": "type",
3165
3054
  "type": {
3166
- "text": "string | undefined"
3055
+ "text": "PopupType"
3167
3056
  },
3168
- "description": "Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')"
3057
+ "default": "'alert'",
3058
+ "description": "Type of popup: alert (OK only), confirm (OK/Cancel), prompt (input + OK/Cancel), custom"
3169
3059
  },
3170
3060
  {
3171
3061
  "kind": "field",
3172
- "name": "align",
3062
+ "name": "popupTitle",
3173
3063
  "type": {
3174
- "text": "'start' | 'center' | 'end' | 'stretch' | 'baseline'"
3064
+ "text": "string | undefined"
3175
3065
  },
3176
- "default": "'stretch'",
3177
- "description": "Alignment of items on the cross axis"
3066
+ "description": "Optional title for the popup header"
3178
3067
  },
3179
3068
  {
3180
3069
  "kind": "field",
3181
- "name": "justify",
3070
+ "name": "message",
3182
3071
  "type": {
3183
- "text": "'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'"
3072
+ "text": "string | undefined"
3184
3073
  },
3185
- "default": "'start'",
3186
- "description": "Distribution of items on the main axis"
3074
+ "description": "Message text to display (for alert/confirm/prompt types)"
3187
3075
  },
3188
3076
  {
3189
3077
  "kind": "field",
3190
- "name": "wrap",
3078
+ "name": "modal",
3191
3079
  "type": {
3192
3080
  "text": "boolean"
3193
3081
  },
3194
- "default": "false",
3195
- "description": "Whether items should wrap to multiple lines"
3082
+ "default": "true",
3083
+ "description": "Whether the popup is modal (blocks interaction with page behind)"
3196
3084
  },
3197
3085
  {
3198
3086
  "kind": "field",
3199
- "name": "alignContent",
3087
+ "name": "position",
3200
3088
  "type": {
3201
- "text": "'start' | 'center' | 'end' | 'stretch' | 'space-between' | 'space-around'"
3089
+ "text": "PopupPosition"
3202
3090
  },
3203
- "default": "'stretch'",
3204
- "description": "Alignment of wrapped lines (only applies when wrap is true)"
3091
+ "default": "'center'",
3092
+ "description": "Position of the popup on screen"
3205
3093
  },
3206
3094
  {
3207
3095
  "kind": "field",
3208
- "name": "reverse",
3096
+ "name": "confirmText",
3097
+ "type": {
3098
+ "text": "string"
3099
+ },
3100
+ "default": "'OK'",
3101
+ "description": "Text for the confirm/OK button"
3102
+ },
3103
+ {
3104
+ "kind": "field",
3105
+ "name": "cancelText",
3106
+ "type": {
3107
+ "text": "string"
3108
+ },
3109
+ "default": "'Cancel'",
3110
+ "description": "Text for the cancel button"
3111
+ },
3112
+ {
3113
+ "kind": "field",
3114
+ "name": "placeholder",
3115
+ "type": {
3116
+ "text": "string"
3117
+ },
3118
+ "default": "''",
3119
+ "description": "Placeholder text for prompt input"
3120
+ },
3121
+ {
3122
+ "kind": "field",
3123
+ "name": "defaultValue",
3124
+ "type": {
3125
+ "text": "string"
3126
+ },
3127
+ "default": "''",
3128
+ "description": "Default value for prompt input"
3129
+ },
3130
+ {
3131
+ "kind": "field",
3132
+ "name": "closeOnBackdrop",
3209
3133
  "type": {
3210
3134
  "text": "boolean"
3211
3135
  },
3212
- "default": "false",
3213
- "description": "Whether to reverse the order of items"
3136
+ "default": "true",
3137
+ "description": "Whether clicking the backdrop closes the popup (modal only)"
3214
3138
  },
3215
3139
  {
3216
3140
  "kind": "field",
3217
- "name": "maxItems",
3141
+ "name": "inputValue",
3218
3142
  "type": {
3219
- "text": "number | undefined"
3143
+ "text": "string"
3220
3144
  },
3221
- "description": "Maximum number of items allowed in the stack (for CMS validation)"
3145
+ "default": "''",
3146
+ "description": "Internal state for prompt input value"
3222
3147
  },
3223
3148
  {
3224
3149
  "kind": "field",
3225
- "name": "fullWidth",
3150
+ "name": "dialogEl",
3226
3151
  "type": {
3227
- "text": "boolean"
3152
+ "text": "HTMLDialogElement | undefined"
3228
3153
  },
3229
- "default": "false",
3230
- "description": "Whether the stack should take full width of its container"
3154
+ "privacy": "private"
3231
3155
  },
3232
3156
  {
3233
3157
  "kind": "field",
3234
- "name": "fullHeight",
3158
+ "name": "inputEl",
3235
3159
  "type": {
3236
- "text": "boolean"
3160
+ "text": "HTMLInputElement | undefined"
3237
3161
  },
3238
- "default": "false",
3239
- "description": "Whether the stack should take full height of its container"
3162
+ "privacy": "private"
3240
3163
  },
3241
3164
  {
3242
3165
  "kind": "field",
3243
- "name": "padding",
3166
+ "name": "resolvePromise",
3244
3167
  "type": {
3245
- "text": "string | undefined"
3168
+ "text": "(result: PopupResult) => void | undefined"
3246
3169
  },
3247
- "description": "Padding inside the stack container (CSS value)"
3170
+ "privacy": "private"
3171
+ },
3172
+ {
3173
+ "kind": "field",
3174
+ "name": "handleDialogCancel",
3175
+ "privacy": "private"
3248
3176
  },
3249
3177
  {
3250
3178
  "kind": "method",
3251
- "name": "getFlexDirection",
3252
- "privacy": "private",
3179
+ "name": "show",
3253
3180
  "return": {
3254
3181
  "type": {
3255
- "text": "string"
3182
+ "text": "Promise<PopupResult>"
3256
3183
  }
3257
- }
3184
+ },
3185
+ "description": "Opens the popup and returns a promise that resolves when closed"
3258
3186
  },
3259
3187
  {
3260
3188
  "kind": "method",
3261
- "name": "getAlignItems",
3262
- "privacy": "private",
3263
- "return": {
3264
- "type": {
3265
- "text": "string"
3189
+ "name": "hide",
3190
+ "parameters": [
3191
+ {
3192
+ "name": "confirmed",
3193
+ "default": "false",
3194
+ "type": {
3195
+ "text": "boolean"
3196
+ }
3266
3197
  }
3267
- }
3198
+ ],
3199
+ "description": "Closes the popup with a result"
3200
+ },
3201
+ {
3202
+ "kind": "field",
3203
+ "name": "handleConfirm",
3204
+ "privacy": "private"
3205
+ },
3206
+ {
3207
+ "kind": "field",
3208
+ "name": "handleCancel",
3209
+ "privacy": "private"
3210
+ },
3211
+ {
3212
+ "kind": "field",
3213
+ "name": "handleBackdropClick",
3214
+ "privacy": "private"
3215
+ },
3216
+ {
3217
+ "kind": "field",
3218
+ "name": "handleInputChange",
3219
+ "privacy": "private"
3220
+ },
3221
+ {
3222
+ "kind": "field",
3223
+ "name": "handleKeyDown",
3224
+ "privacy": "private"
3268
3225
  },
3269
3226
  {
3270
3227
  "kind": "method",
3271
- "name": "getJustifyContent",
3228
+ "name": "hasSlot",
3272
3229
  "privacy": "private",
3273
3230
  "return": {
3274
3231
  "type": {
3275
- "text": "string"
3232
+ "text": "boolean"
3276
3233
  }
3277
- }
3234
+ },
3235
+ "parameters": [
3236
+ {
3237
+ "name": "name",
3238
+ "type": {
3239
+ "text": "string"
3240
+ }
3241
+ }
3242
+ ]
3278
3243
  },
3279
3244
  {
3280
3245
  "kind": "method",
3281
- "name": "getAlignContent",
3282
- "privacy": "private",
3283
- "return": {
3284
- "type": {
3285
- "text": "string"
3286
- }
3287
- }
3246
+ "name": "renderHeader",
3247
+ "privacy": "private"
3248
+ },
3249
+ {
3250
+ "kind": "method",
3251
+ "name": "renderBody",
3252
+ "privacy": "private"
3253
+ },
3254
+ {
3255
+ "kind": "method",
3256
+ "name": "renderFooter",
3257
+ "privacy": "private"
3288
3258
  },
3289
3259
  {
3290
3260
  "kind": "method",
@@ -3293,122 +3263,152 @@
3293
3263
  ],
3294
3264
  "attributes": [
3295
3265
  {
3296
- "name": "direction",
3297
- "fieldName": "direction",
3298
- "default": "'horizontal'",
3299
- "description": "Direction of the stack layout",
3266
+ "name": "open",
3267
+ "fieldName": "open",
3268
+ "default": "false",
3269
+ "description": "Whether the popup is currently visible",
3300
3270
  "type": {
3301
- "text": "'horizontal' | 'vertical'"
3271
+ "text": "boolean"
3302
3272
  }
3303
3273
  },
3304
3274
  {
3305
- "name": "gap",
3306
- "fieldName": "gap",
3307
- "description": "Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')",
3275
+ "name": "type",
3276
+ "fieldName": "type",
3277
+ "default": "'alert'",
3278
+ "description": "Type of popup: alert (OK only), confirm (OK/Cancel), prompt (input + OK/Cancel), custom",
3308
3279
  "type": {
3309
- "text": "string"
3280
+ "text": "PopupType"
3310
3281
  }
3311
3282
  },
3312
3283
  {
3313
- "name": "align",
3314
- "fieldName": "align",
3315
- "default": "'stretch'",
3316
- "description": "Alignment of items on the cross axis",
3284
+ "name": "popup-title",
3285
+ "fieldName": "popupTitle",
3286
+ "description": "Optional title for the popup header",
3317
3287
  "type": {
3318
- "text": "'start' | 'center' | 'end' | 'stretch' | 'baseline'"
3288
+ "text": "string"
3319
3289
  }
3320
3290
  },
3321
3291
  {
3322
- "name": "justify",
3323
- "fieldName": "justify",
3324
- "default": "'start'",
3325
- "description": "Distribution of items on the main axis",
3292
+ "name": "message",
3293
+ "fieldName": "message",
3294
+ "description": "Message text to display (for alert/confirm/prompt types)",
3326
3295
  "type": {
3327
- "text": "'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'"
3296
+ "text": "string"
3328
3297
  }
3329
3298
  },
3330
3299
  {
3331
- "name": "wrap",
3332
- "fieldName": "wrap",
3333
- "default": "false",
3334
- "description": "Whether items should wrap to multiple lines",
3300
+ "name": "modal",
3301
+ "fieldName": "modal",
3302
+ "default": "true",
3303
+ "description": "Whether the popup is modal (blocks interaction with page behind)",
3335
3304
  "type": {
3336
3305
  "text": "boolean"
3337
3306
  }
3338
3307
  },
3339
3308
  {
3340
- "name": "align-content",
3341
- "fieldName": "alignContent",
3342
- "default": "'stretch'",
3343
- "description": "Alignment of wrapped lines (only applies when wrap is true)",
3309
+ "name": "position",
3310
+ "fieldName": "position",
3311
+ "default": "'center'",
3312
+ "description": "Position of the popup on screen",
3344
3313
  "type": {
3345
- "text": "'start' | 'center' | 'end' | 'stretch' | 'space-between' | 'space-around'"
3314
+ "text": "PopupPosition"
3346
3315
  }
3347
3316
  },
3348
3317
  {
3349
- "name": "reverse",
3350
- "fieldName": "reverse",
3351
- "default": "false",
3352
- "description": "Whether to reverse the order of items",
3318
+ "name": "confirm-text",
3319
+ "fieldName": "confirmText",
3320
+ "default": "'OK'",
3321
+ "description": "Text for the confirm/OK button",
3353
3322
  "type": {
3354
- "text": "boolean"
3323
+ "text": "string"
3355
3324
  }
3356
3325
  },
3357
3326
  {
3358
- "name": "max-items",
3359
- "fieldName": "maxItems",
3360
- "description": "Maximum number of items allowed in the stack (for CMS validation)",
3327
+ "name": "cancel-text",
3328
+ "fieldName": "cancelText",
3329
+ "default": "'Cancel'",
3330
+ "description": "Text for the cancel button",
3361
3331
  "type": {
3362
- "text": "number"
3332
+ "text": "string"
3363
3333
  }
3364
3334
  },
3365
3335
  {
3366
- "name": "full-width",
3367
- "fieldName": "fullWidth",
3368
- "default": "false",
3369
- "description": "Whether the stack should take full width of its container",
3336
+ "name": "placeholder",
3337
+ "fieldName": "placeholder",
3338
+ "default": "''",
3339
+ "description": "Placeholder text for prompt input",
3370
3340
  "type": {
3371
- "text": "boolean"
3341
+ "text": "string"
3372
3342
  }
3373
3343
  },
3374
3344
  {
3375
- "name": "full-height",
3376
- "fieldName": "fullHeight",
3377
- "default": "false",
3378
- "description": "Whether the stack should take full height of its container",
3345
+ "name": "default-value",
3346
+ "fieldName": "defaultValue",
3347
+ "default": "''",
3348
+ "description": "Default value for prompt input",
3379
3349
  "type": {
3380
- "text": "boolean"
3350
+ "text": "string"
3381
3351
  }
3382
3352
  },
3383
3353
  {
3384
- "name": "padding",
3385
- "fieldName": "padding",
3386
- "description": "Padding inside the stack container (CSS value)",
3354
+ "name": "close-on-backdrop",
3355
+ "fieldName": "closeOnBackdrop",
3356
+ "default": "true",
3357
+ "description": "Whether clicking the backdrop closes the popup (modal only)",
3387
3358
  "type": {
3388
- "text": "string"
3359
+ "text": "boolean"
3389
3360
  }
3390
3361
  }
3391
3362
  ],
3392
- "tagName": "le-stack",
3393
- "events": [],
3363
+ "tagName": "le-popup",
3364
+ "events": [
3365
+ {
3366
+ "name": "leConfirm",
3367
+ "type": {
3368
+ "text": "EventEmitter<PopupResult>"
3369
+ },
3370
+ "description": "Emitted when the popup is confirmed (OK clicked)"
3371
+ },
3372
+ {
3373
+ "name": "leCancel",
3374
+ "type": {
3375
+ "text": "EventEmitter<PopupResult>"
3376
+ },
3377
+ "description": "Emitted when the popup is cancelled (Cancel clicked or dismissed)"
3378
+ },
3379
+ {
3380
+ "name": "leOpen",
3381
+ "type": {
3382
+ "text": "EventEmitter<void>"
3383
+ },
3384
+ "description": "Emitted when the popup opens"
3385
+ },
3386
+ {
3387
+ "name": "leClose",
3388
+ "type": {
3389
+ "text": "EventEmitter<PopupResult>"
3390
+ },
3391
+ "description": "Emitted when the popup closes"
3392
+ }
3393
+ ],
3394
3394
  "customElement": true
3395
3395
  }
3396
3396
  ],
3397
3397
  "exports": [
3398
3398
  {
3399
3399
  "kind": "js",
3400
- "name": "LeStack",
3400
+ "name": "LePopup",
3401
3401
  "declaration": {
3402
- "name": "LeStack",
3403
- "module": "src/components/le-stack/le-stack.tsx"
3402
+ "name": "LePopup",
3403
+ "module": "src/components/le-popup/le-popup.tsx"
3404
3404
  }
3405
3405
  },
3406
3406
  {
3407
3407
  "kind": "custom-element-definition",
3408
- "name": "le-stack",
3408
+ "name": "le-popup",
3409
3409
  "declaration": {
3410
- "name": "LeStack",
3411
- "module": "src/components/le-stack/le-stack.tsx"
3410
+ "name": "LePopup",
3411
+ "module": "src/components/le-popup/le-popup.tsx"
3412
3412
  }
3413
3413
  }
3414
3414
  ]