le-kit 0.1.9 → 0.1.11

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 (80) hide show
  1. package/custom-elements.json +993 -993
  2. package/dist/core/cjs/le-button.cjs.entry.js +1 -1
  3. package/dist/core/cjs/le-button.entry.cjs.js.map +1 -1
  4. package/dist/core/cjs/le-card.cjs.entry.js +1 -1
  5. package/dist/core/cjs/le-card.entry.cjs.js.map +1 -1
  6. package/dist/core/cjs/le-string-input.cjs.entry.js +1 -1
  7. package/dist/core/cjs/le-string-input.entry.cjs.js.map +1 -1
  8. package/dist/core/collection/components/le-button/le-button.default.css +23 -23
  9. package/dist/core/collection/components/le-card/le-card.default.css +6 -6
  10. package/dist/core/collection/components/le-string-input/le-string-input.css +1 -1
  11. package/dist/core/esm/le-button.entry.js +1 -1
  12. package/dist/core/esm/le-button.entry.js.map +1 -1
  13. package/dist/core/esm/le-card.entry.js +1 -1
  14. package/dist/core/esm/le-card.entry.js.map +1 -1
  15. package/dist/core/esm/le-string-input.entry.js +1 -1
  16. package/dist/core/esm/le-string-input.entry.js.map +1 -1
  17. package/dist/core/le-kit/le-button.entry.esm.js.map +1 -1
  18. package/dist/core/le-kit/le-card.entry.esm.js.map +1 -1
  19. package/dist/core/le-kit/le-kit.esm.js +1 -1
  20. package/dist/core/le-kit/le-string-input.entry.esm.js.map +1 -1
  21. package/dist/core/le-kit/p-4a9a9805.entry.js +2 -0
  22. package/dist/core/le-kit/{p-fb4e68e0.entry.js.map → p-4a9a9805.entry.js.map} +1 -1
  23. package/dist/core/le-kit/p-a5f1e539.entry.js +2 -0
  24. package/dist/core/le-kit/{p-86961f34.entry.js.map → p-a5f1e539.entry.js.map} +1 -1
  25. package/dist/core/le-kit/p-fd665f35.entry.js +2 -0
  26. package/dist/core/le-kit/{p-a07048f8.entry.js.map → p-fd665f35.entry.js.map} +1 -1
  27. package/dist/docs.json +1 -1
  28. package/package.json +2 -1
  29. package/dist/components/index.d.ts +0 -64
  30. package/dist/components/index.js +0 -127
  31. package/dist/components/index.js.map +0 -1
  32. package/dist/components/le-box.d.ts +0 -11
  33. package/dist/components/le-box.js +0 -256
  34. package/dist/components/le-box.js.map +0 -1
  35. package/dist/components/le-button.d.ts +0 -11
  36. package/dist/components/le-button.js +0 -9
  37. package/dist/components/le-button.js.map +0 -1
  38. package/dist/components/le-button2.js +0 -1446
  39. package/dist/components/le-button2.js.map +0 -1
  40. package/dist/components/le-card.d.ts +0 -11
  41. package/dist/components/le-card.js +0 -83
  42. package/dist/components/le-card.js.map +0 -1
  43. package/dist/components/le-checkbox.d.ts +0 -11
  44. package/dist/components/le-checkbox.js +0 -9
  45. package/dist/components/le-checkbox.js.map +0 -1
  46. package/dist/components/le-component.d.ts +0 -11
  47. package/dist/components/le-component.js +0 -9
  48. package/dist/components/le-component.js.map +0 -1
  49. package/dist/components/le-number-input.d.ts +0 -11
  50. package/dist/components/le-number-input.js +0 -271
  51. package/dist/components/le-number-input.js.map +0 -1
  52. package/dist/components/le-popover.d.ts +0 -11
  53. package/dist/components/le-popover.js +0 -9
  54. package/dist/components/le-popover.js.map +0 -1
  55. package/dist/components/le-popover2.js +0 -382
  56. package/dist/components/le-popover2.js.map +0 -1
  57. package/dist/components/le-popup.d.ts +0 -11
  58. package/dist/components/le-popup.js +0 -279
  59. package/dist/components/le-popup.js.map +0 -1
  60. package/dist/components/le-round-progress.d.ts +0 -11
  61. package/dist/components/le-round-progress.js +0 -135
  62. package/dist/components/le-round-progress.js.map +0 -1
  63. package/dist/components/le-slot.d.ts +0 -11
  64. package/dist/components/le-slot.js +0 -9
  65. package/dist/components/le-slot.js.map +0 -1
  66. package/dist/components/le-stack.d.ts +0 -11
  67. package/dist/components/le-stack.js +0 -198
  68. package/dist/components/le-stack.js.map +0 -1
  69. package/dist/components/le-string-input.d.ts +0 -11
  70. package/dist/components/le-string-input.js +0 -9
  71. package/dist/components/le-string-input.js.map +0 -1
  72. package/dist/components/le-text.d.ts +0 -11
  73. package/dist/components/le-text.js +0 -398
  74. package/dist/components/le-text.js.map +0 -1
  75. package/dist/components/le-turntable.d.ts +0 -11
  76. package/dist/components/le-turntable.js +0 -164
  77. package/dist/components/le-turntable.js.map +0 -1
  78. package/dist/core/le-kit/p-86961f34.entry.js +0 -2
  79. package/dist/core/le-kit/p-a07048f8.entry.js +0 -2
  80. package/dist/core/le-kit/p-fb4e68e0.entry.js +0 -2
@@ -876,178 +876,6 @@
876
876
  }
877
877
  ]
878
878
  },
879
- {
880
- "kind": "javascript-module",
881
- "path": "src/components/le-checkbox/le-checkbox.tsx",
882
- "declarations": [
883
- {
884
- "kind": "class",
885
- "description": "A checkbox component with support for labels, descriptions, and external IDs.",
886
- "name": "LeCheckbox",
887
- "cssProperties": [
888
- {
889
- "description": "Size of the checkbox input",
890
- "name": "--le-checkbox-size"
891
- },
892
- {
893
- "description": "Color of the checkbox when checked",
894
- "name": "--le-checkbox-color"
895
- },
896
- {
897
- "description": "Color of the label text",
898
- "name": "--le-checkbox-label-color"
899
- },
900
- {
901
- "description": "Color of the description text",
902
- "name": "--le-checkbox-desc-color"
903
- }
904
- ],
905
- "slots": [
906
- {
907
- "description": "The label text for the checkbox",
908
- "name": ""
909
- },
910
- {
911
- "description": "Additional description text displayed below the label",
912
- "name": "description"
913
- }
914
- ],
915
- "members": [
916
- {
917
- "kind": "field",
918
- "name": "el",
919
- "type": {
920
- "text": "HTMLElement"
921
- }
922
- },
923
- {
924
- "kind": "field",
925
- "name": "checked",
926
- "type": {
927
- "text": "boolean"
928
- },
929
- "default": "false",
930
- "description": "Whether the checkbox is checked"
931
- },
932
- {
933
- "kind": "field",
934
- "name": "disabled",
935
- "type": {
936
- "text": "boolean"
937
- },
938
- "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"
969
- },
970
- {
971
- "kind": "method",
972
- "name": "render"
973
- }
974
- ],
975
- "attributes": [
976
- {
977
- "name": "checked",
978
- "fieldName": "checked",
979
- "default": "false",
980
- "description": "Whether the checkbox is checked",
981
- "type": {
982
- "text": "boolean"
983
- }
984
- },
985
- {
986
- "name": "disabled",
987
- "fieldName": "disabled",
988
- "default": "false",
989
- "description": "Whether the checkbox is disabled",
990
- "type": {
991
- "text": "boolean"
992
- }
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
- }
1028
- ],
1029
- "customElement": true
1030
- }
1031
- ],
1032
- "exports": [
1033
- {
1034
- "kind": "js",
1035
- "name": "LeCheckbox",
1036
- "declaration": {
1037
- "name": "LeCheckbox",
1038
- "module": "src/components/le-checkbox/le-checkbox.tsx"
1039
- }
1040
- },
1041
- {
1042
- "kind": "custom-element-definition",
1043
- "name": "le-checkbox",
1044
- "declaration": {
1045
- "name": "LeCheckbox",
1046
- "module": "src/components/le-checkbox/le-checkbox.tsx"
1047
- }
1048
- }
1049
- ]
1050
- },
1051
879
  {
1052
880
  "kind": "javascript-module",
1053
881
  "path": "src/components/le-component/le-component.tsx",
@@ -1349,12 +1177,40 @@
1349
1177
  },
1350
1178
  {
1351
1179
  "kind": "javascript-module",
1352
- "path": "src/components/le-round-progress/le-round-progress.tsx",
1180
+ "path": "src/components/le-checkbox/le-checkbox.tsx",
1353
1181
  "declarations": [
1354
1182
  {
1355
1183
  "kind": "class",
1356
- "description": "",
1357
- "name": "LeRoundProgress",
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
+ ],
1358
1214
  "members": [
1359
1215
  {
1360
1216
  "kind": "field",
@@ -1365,173 +1221,182 @@
1365
1221
  },
1366
1222
  {
1367
1223
  "kind": "field",
1368
- "name": "value",
1224
+ "name": "checked",
1369
1225
  "type": {
1370
- "text": "number"
1226
+ "text": "boolean"
1371
1227
  },
1372
- "default": "0"
1373
- },
1374
- {
1375
- "kind": "method",
1376
- "name": "updateValue",
1377
- "parameters": [
1378
- {
1379
- "name": "newValue",
1380
- "type": {
1381
- "text": "string"
1382
- }
1383
- }
1384
- ]
1228
+ "default": "false",
1229
+ "description": "Whether the checkbox is checked"
1385
1230
  },
1386
1231
  {
1387
1232
  "kind": "field",
1388
- "name": "padding",
1233
+ "name": "disabled",
1389
1234
  "type": {
1390
- "text": "number"
1235
+ "text": "boolean"
1391
1236
  },
1392
- "default": "0"
1237
+ "default": "false",
1238
+ "description": "Whether the checkbox is disabled"
1393
1239
  },
1394
1240
  {
1395
- "kind": "method",
1396
- "name": "updatePadding",
1397
- "parameters": [
1398
- {
1399
- "name": "newValue",
1400
- "type": {
1401
- "text": "string"
1402
- }
1403
- }
1404
- ]
1241
+ "kind": "field",
1242
+ "name": "name",
1243
+ "type": {
1244
+ "text": "string"
1245
+ },
1246
+ "description": "The name of the checkbox input"
1405
1247
  },
1406
1248
  {
1407
1249
  "kind": "field",
1408
- "name": "paths",
1250
+ "name": "value",
1409
1251
  "type": {
1410
1252
  "text": "string"
1411
- }
1412
- },
1413
- {
1414
- "kind": "method",
1415
- "name": "updateProgressBackgrounds",
1416
- "parameters": [
1417
- {
1418
- "name": "newValue",
1419
- "type": {
1420
- "text": "string"
1421
- }
1422
- }
1423
- ]
1253
+ },
1254
+ "description": "The value of the checkbox input"
1424
1255
  },
1425
1256
  {
1426
1257
  "kind": "field",
1427
- "name": "progressPaths",
1258
+ "name": "externalId",
1428
1259
  "type": {
1429
- "text": "any[]"
1430
- }
1260
+ "text": "string"
1261
+ },
1262
+ "description": "External ID for linking with external systems (e.g. database ID, PDF form field ID)"
1431
1263
  },
1432
1264
  {
1433
1265
  "kind": "field",
1434
- "name": "params",
1435
- "type": {
1436
- "text": "{\n width: number;\n diameter: number;\n circumference: number;\n }"
1437
- }
1438
- },
1439
- {
1440
- "kind": "method",
1441
- "name": "calcParams"
1266
+ "name": "handleChange",
1267
+ "privacy": "private"
1442
1268
  },
1443
1269
  {
1444
1270
  "kind": "method",
1445
- "name": "getViewBox",
1446
- "description": "Returns the viewPath attribute value for the SVG\nbased on the width of the parent element"
1447
- },
1271
+ "name": "render"
1272
+ }
1273
+ ],
1274
+ "attributes": [
1448
1275
  {
1449
- "kind": "method",
1450
- "name": "getPath",
1451
- "description": "Returns the circular path for the progress stroke\nand additional paths in the background"
1276
+ "name": "checked",
1277
+ "fieldName": "checked",
1278
+ "default": "false",
1279
+ "description": "Whether the checkbox is checked",
1280
+ "type": {
1281
+ "text": "boolean"
1282
+ }
1452
1283
  },
1453
1284
  {
1454
- "kind": "method",
1455
- "name": "getStrokeDashArray"
1285
+ "name": "disabled",
1286
+ "fieldName": "disabled",
1287
+ "default": "false",
1288
+ "description": "Whether the checkbox is disabled",
1289
+ "type": {
1290
+ "text": "boolean"
1291
+ }
1456
1292
  },
1457
1293
  {
1458
- "kind": "method",
1459
- "name": "getPaths"
1294
+ "name": "name",
1295
+ "fieldName": "name",
1296
+ "description": "The name of the checkbox input",
1297
+ "type": {
1298
+ "text": "string"
1299
+ }
1460
1300
  },
1461
- {
1462
- "kind": "method",
1463
- "name": "render"
1464
- }
1465
- ],
1466
- "attributes": [
1467
1301
  {
1468
1302
  "name": "value",
1469
1303
  "fieldName": "value",
1470
- "default": "0",
1304
+ "description": "The value of the checkbox input",
1471
1305
  "type": {
1472
- "text": "number"
1306
+ "text": "string"
1473
1307
  }
1474
1308
  },
1475
1309
  {
1476
- "name": "padding",
1477
- "fieldName": "padding",
1478
- "default": "0",
1310
+ "name": "external-id",
1311
+ "fieldName": "externalId",
1312
+ "description": "External ID for linking with external systems (e.g. database ID, PDF form field ID)",
1479
1313
  "type": {
1480
- "text": "number"
1314
+ "text": "string"
1481
1315
  }
1482
- },
1316
+ }
1317
+ ],
1318
+ "tagName": "le-checkbox",
1319
+ "events": [
1483
1320
  {
1484
- "name": "paths",
1485
- "fieldName": "paths",
1321
+ "name": "change",
1486
1322
  "type": {
1487
- "text": "string"
1488
- }
1323
+ "text": "EventEmitter<{ checked: boolean; value: string; name: string; externalId: string }>"
1324
+ },
1325
+ "description": "Emitted when the checked state changes"
1489
1326
  }
1490
1327
  ],
1491
- "tagName": "le-round-progress",
1492
- "events": [],
1493
1328
  "customElement": true
1494
1329
  }
1495
1330
  ],
1496
1331
  "exports": [
1497
1332
  {
1498
1333
  "kind": "js",
1499
- "name": "LeRoundProgress",
1334
+ "name": "LeCheckbox",
1500
1335
  "declaration": {
1501
- "name": "LeRoundProgress",
1502
- "module": "src/components/le-round-progress/le-round-progress.tsx"
1336
+ "name": "LeCheckbox",
1337
+ "module": "src/components/le-checkbox/le-checkbox.tsx"
1503
1338
  }
1504
1339
  },
1505
1340
  {
1506
1341
  "kind": "custom-element-definition",
1507
- "name": "le-round-progress",
1342
+ "name": "le-checkbox",
1508
1343
  "declaration": {
1509
- "name": "LeRoundProgress",
1510
- "module": "src/components/le-round-progress/le-round-progress.tsx"
1344
+ "name": "LeCheckbox",
1345
+ "module": "src/components/le-checkbox/le-checkbox.tsx"
1511
1346
  }
1512
1347
  }
1513
1348
  ]
1514
1349
  },
1515
1350
  {
1516
1351
  "kind": "javascript-module",
1517
- "path": "src/components/le-popup/le-popup.tsx",
1352
+ "path": "src/components/le-number-input/le-number-input.tsx",
1518
1353
  "declarations": [
1519
1354
  {
1520
1355
  "kind": "class",
1521
- "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().",
1522
- "name": "LePopup",
1356
+ "description": "A number input component with validation, keyboard controls, and custom spinners.",
1357
+ "name": "LeNumberInput",
1358
+ "cssProperties": [
1359
+ {
1360
+ "description": "Input background color",
1361
+ "name": "--le-input-bg"
1362
+ },
1363
+ {
1364
+ "description": "Input text color",
1365
+ "name": "--le-input-color"
1366
+ },
1367
+ {
1368
+ "description": "Input border style",
1369
+ "name": "--le-input-border"
1370
+ },
1371
+ {
1372
+ "description": "Input border style when focused",
1373
+ "name": "--le-input-border-focus"
1374
+ },
1375
+ {
1376
+ "description": "Input border style when invalid",
1377
+ "name": "--le-input-border-error"
1378
+ },
1379
+ {
1380
+ "description": "Input border radius",
1381
+ "name": "--le-input-radius"
1382
+ },
1383
+ {
1384
+ "description": "Input padding",
1385
+ "name": "--le-input-padding"
1386
+ }
1387
+ ],
1523
1388
  "slots": [
1524
1389
  {
1525
- "description": "Default slot for custom body content",
1390
+ "description": "The label text for the input",
1526
1391
  "name": ""
1527
1392
  },
1528
1393
  {
1529
- "description": "Custom header content (replaces title)",
1530
- "name": "header"
1394
+ "description": "Additional description text displayed below the input",
1395
+ "name": "description"
1531
1396
  },
1532
1397
  {
1533
- "description": "Custom footer content (replaces default buttons)",
1534
- "name": "footer"
1398
+ "description": "Icon to display at the start of the input",
1399
+ "name": "icon-start"
1535
1400
  }
1536
1401
  ],
1537
1402
  "members": [
@@ -1544,219 +1409,192 @@
1544
1409
  },
1545
1410
  {
1546
1411
  "kind": "field",
1547
- "name": "open",
1412
+ "name": "value",
1548
1413
  "type": {
1549
- "text": "boolean"
1414
+ "text": "number"
1550
1415
  },
1551
- "default": "false",
1552
- "description": "Whether the popup is currently visible"
1416
+ "description": "The value of the input"
1553
1417
  },
1554
1418
  {
1555
1419
  "kind": "field",
1556
- "name": "type",
1420
+ "name": "name",
1557
1421
  "type": {
1558
- "text": "PopupType"
1422
+ "text": "string"
1559
1423
  },
1560
- "default": "'alert'",
1561
- "description": "Type of popup: alert (OK only), confirm (OK/Cancel), prompt (input + OK/Cancel), custom"
1424
+ "description": "The name of the input"
1562
1425
  },
1563
1426
  {
1564
1427
  "kind": "field",
1565
- "name": "popupTitle",
1428
+ "name": "label",
1566
1429
  "type": {
1567
- "text": "string | undefined"
1430
+ "text": "string"
1568
1431
  },
1569
- "description": "Optional title for the popup header"
1432
+ "description": "Label for the input"
1570
1433
  },
1571
1434
  {
1572
1435
  "kind": "field",
1573
- "name": "message",
1436
+ "name": "placeholder",
1574
1437
  "type": {
1575
- "text": "string | undefined"
1438
+ "text": "string"
1576
1439
  },
1577
- "description": "Message text to display (for alert/confirm/prompt types)"
1440
+ "description": "Placeholder text"
1578
1441
  },
1579
1442
  {
1580
1443
  "kind": "field",
1581
- "name": "modal",
1444
+ "name": "min",
1582
1445
  "type": {
1583
- "text": "boolean"
1446
+ "text": "number | undefined"
1584
1447
  },
1585
- "default": "true",
1586
- "description": "Whether the popup is modal (blocks interaction with page behind)"
1448
+ "description": "Minimum allowed value"
1587
1449
  },
1588
1450
  {
1589
1451
  "kind": "field",
1590
- "name": "position",
1452
+ "name": "max",
1591
1453
  "type": {
1592
- "text": "PopupPosition"
1454
+ "text": "number | undefined"
1593
1455
  },
1594
- "default": "'center'",
1595
- "description": "Position of the popup on screen"
1456
+ "description": "Maximum allowed value"
1596
1457
  },
1597
1458
  {
1598
1459
  "kind": "field",
1599
- "name": "confirmText",
1460
+ "name": "step",
1600
1461
  "type": {
1601
- "text": "string"
1462
+ "text": "number"
1602
1463
  },
1603
- "default": "'OK'",
1604
- "description": "Text for the confirm/OK button"
1464
+ "default": "1",
1465
+ "description": "Step value for increment/decrement"
1605
1466
  },
1606
1467
  {
1607
1468
  "kind": "field",
1608
- "name": "cancelText",
1469
+ "name": "required",
1609
1470
  "type": {
1610
- "text": "string"
1471
+ "text": "boolean"
1611
1472
  },
1612
- "default": "'Cancel'",
1613
- "description": "Text for the cancel button"
1473
+ "default": "false",
1474
+ "description": "Whether the input is required"
1614
1475
  },
1615
1476
  {
1616
1477
  "kind": "field",
1617
- "name": "placeholder",
1478
+ "name": "disabled",
1618
1479
  "type": {
1619
- "text": "string"
1480
+ "text": "boolean"
1620
1481
  },
1621
- "default": "''",
1622
- "description": "Placeholder text for prompt input"
1482
+ "default": "false",
1483
+ "description": "Whether the input is disabled"
1623
1484
  },
1624
1485
  {
1625
1486
  "kind": "field",
1626
- "name": "defaultValue",
1487
+ "name": "readonly",
1627
1488
  "type": {
1628
- "text": "string"
1489
+ "text": "boolean"
1629
1490
  },
1630
- "default": "''",
1631
- "description": "Default value for prompt input"
1491
+ "default": "false",
1492
+ "description": "Whether the input is read-only"
1632
1493
  },
1633
1494
  {
1634
1495
  "kind": "field",
1635
- "name": "closeOnBackdrop",
1496
+ "name": "iconStart",
1636
1497
  "type": {
1637
- "text": "boolean"
1498
+ "text": "string | undefined"
1638
1499
  },
1639
- "default": "true",
1640
- "description": "Whether clicking the backdrop closes the popup (modal only)"
1500
+ "description": "Icon for the start icon"
1641
1501
  },
1642
1502
  {
1643
1503
  "kind": "field",
1644
- "name": "inputValue",
1504
+ "name": "showSpinners",
1645
1505
  "type": {
1646
- "text": "string"
1506
+ "text": "boolean"
1647
1507
  },
1648
- "default": "''",
1649
- "description": "Internal state for prompt input value"
1508
+ "default": "true",
1509
+ "description": "Whether to show the spinner controls"
1650
1510
  },
1651
1511
  {
1652
1512
  "kind": "field",
1653
- "name": "dialogEl",
1513
+ "name": "externalId",
1654
1514
  "type": {
1655
- "text": "HTMLDialogElement | undefined"
1515
+ "text": "string"
1656
1516
  },
1657
- "privacy": "private"
1517
+ "description": "External ID for linking with external systems"
1658
1518
  },
1659
1519
  {
1660
1520
  "kind": "field",
1661
- "name": "inputEl",
1521
+ "name": "isValid",
1662
1522
  "type": {
1663
- "text": "HTMLInputElement | undefined"
1523
+ "text": "boolean"
1664
1524
  },
1665
- "privacy": "private"
1525
+ "privacy": "private",
1526
+ "default": "true",
1527
+ "description": "Internal validation state"
1666
1528
  },
1667
1529
  {
1668
1530
  "kind": "field",
1669
- "name": "resolvePromise",
1531
+ "name": "validationMessage",
1670
1532
  "type": {
1671
- "text": "(result: PopupResult) => void | undefined"
1533
+ "text": "string"
1672
1534
  },
1535
+ "privacy": "private",
1536
+ "default": "''"
1537
+ },
1538
+ {
1539
+ "kind": "method",
1540
+ "name": "valueChanged"
1541
+ },
1542
+ {
1543
+ "kind": "method",
1544
+ "name": "validate",
1673
1545
  "privacy": "private"
1674
1546
  },
1675
1547
  {
1676
- "kind": "field",
1677
- "name": "handleDialogCancel",
1548
+ "kind": "method",
1549
+ "name": "emitChange",
1678
1550
  "privacy": "private"
1679
1551
  },
1680
1552
  {
1681
1553
  "kind": "method",
1682
- "name": "show",
1683
- "return": {
1684
- "type": {
1685
- "text": "Promise<PopupResult>"
1686
- }
1687
- },
1688
- "description": "Opens the popup and returns a promise that resolves when closed"
1554
+ "name": "emitInput",
1555
+ "privacy": "private"
1689
1556
  },
1690
1557
  {
1691
1558
  "kind": "method",
1692
- "name": "hide",
1559
+ "name": "updateValue",
1560
+ "privacy": "private",
1693
1561
  "parameters": [
1694
1562
  {
1695
- "name": "confirmed",
1696
- "default": "false",
1563
+ "name": "newValue",
1697
1564
  "type": {
1698
- "text": "boolean"
1565
+ "text": "number"
1699
1566
  }
1700
1567
  }
1701
- ],
1702
- "description": "Closes the popup with a result"
1568
+ ]
1703
1569
  },
1704
1570
  {
1705
1571
  "kind": "field",
1706
- "name": "handleConfirm",
1572
+ "name": "handleInput",
1707
1573
  "privacy": "private"
1708
1574
  },
1709
1575
  {
1710
1576
  "kind": "field",
1711
- "name": "handleCancel",
1577
+ "name": "handleChange",
1712
1578
  "privacy": "private"
1713
1579
  },
1714
1580
  {
1715
1581
  "kind": "field",
1716
- "name": "handleBackdropClick",
1582
+ "name": "handleKeyDown",
1717
1583
  "privacy": "private"
1718
1584
  },
1719
1585
  {
1720
1586
  "kind": "field",
1721
- "name": "handleInputChange",
1587
+ "name": "handleWheel",
1722
1588
  "privacy": "private"
1723
1589
  },
1724
1590
  {
1725
1591
  "kind": "field",
1726
- "name": "handleKeyDown",
1727
- "privacy": "private"
1728
- },
1729
- {
1730
- "kind": "method",
1731
- "name": "hasSlot",
1732
- "privacy": "private",
1733
- "return": {
1734
- "type": {
1735
- "text": "boolean"
1736
- }
1737
- },
1738
- "parameters": [
1739
- {
1740
- "name": "name",
1741
- "type": {
1742
- "text": "string"
1743
- }
1744
- }
1745
- ]
1746
- },
1747
- {
1748
- "kind": "method",
1749
- "name": "renderHeader",
1750
- "privacy": "private"
1751
- },
1752
- {
1753
- "kind": "method",
1754
- "name": "renderBody",
1592
+ "name": "increment",
1755
1593
  "privacy": "private"
1756
1594
  },
1757
1595
  {
1758
- "kind": "method",
1759
- "name": "renderFooter",
1596
+ "kind": "field",
1597
+ "name": "decrement",
1760
1598
  "privacy": "private"
1761
1599
  },
1762
1600
  {
@@ -1766,132 +1604,130 @@
1766
1604
  ],
1767
1605
  "attributes": [
1768
1606
  {
1769
- "name": "open",
1770
- "fieldName": "open",
1771
- "default": "false",
1772
- "description": "Whether the popup is currently visible",
1607
+ "name": "value",
1608
+ "fieldName": "value",
1609
+ "description": "The value of the input",
1773
1610
  "type": {
1774
- "text": "boolean"
1611
+ "text": "number"
1775
1612
  }
1776
1613
  },
1777
1614
  {
1778
- "name": "type",
1779
- "fieldName": "type",
1780
- "default": "'alert'",
1781
- "description": "Type of popup: alert (OK only), confirm (OK/Cancel), prompt (input + OK/Cancel), custom",
1615
+ "name": "name",
1616
+ "fieldName": "name",
1617
+ "description": "The name of the input",
1782
1618
  "type": {
1783
- "text": "PopupType"
1619
+ "text": "string"
1784
1620
  }
1785
1621
  },
1786
1622
  {
1787
- "name": "popup-title",
1788
- "fieldName": "popupTitle",
1789
- "description": "Optional title for the popup header",
1623
+ "name": "label",
1624
+ "fieldName": "label",
1625
+ "description": "Label for the input",
1790
1626
  "type": {
1791
1627
  "text": "string"
1792
1628
  }
1793
1629
  },
1794
1630
  {
1795
- "name": "message",
1796
- "fieldName": "message",
1797
- "description": "Message text to display (for alert/confirm/prompt types)",
1631
+ "name": "placeholder",
1632
+ "fieldName": "placeholder",
1633
+ "description": "Placeholder text",
1798
1634
  "type": {
1799
1635
  "text": "string"
1800
1636
  }
1801
1637
  },
1802
1638
  {
1803
- "name": "modal",
1804
- "fieldName": "modal",
1805
- "default": "true",
1806
- "description": "Whether the popup is modal (blocks interaction with page behind)",
1639
+ "name": "min",
1640
+ "fieldName": "min",
1641
+ "description": "Minimum allowed value",
1807
1642
  "type": {
1808
- "text": "boolean"
1643
+ "text": "number"
1809
1644
  }
1810
1645
  },
1811
1646
  {
1812
- "name": "position",
1813
- "fieldName": "position",
1814
- "default": "'center'",
1815
- "description": "Position of the popup on screen",
1647
+ "name": "max",
1648
+ "fieldName": "max",
1649
+ "description": "Maximum allowed value",
1816
1650
  "type": {
1817
- "text": "PopupPosition"
1651
+ "text": "number"
1818
1652
  }
1819
1653
  },
1820
1654
  {
1821
- "name": "confirm-text",
1822
- "fieldName": "confirmText",
1823
- "default": "'OK'",
1824
- "description": "Text for the confirm/OK button",
1655
+ "name": "step",
1656
+ "fieldName": "step",
1657
+ "default": "1",
1658
+ "description": "Step value for increment/decrement",
1825
1659
  "type": {
1826
- "text": "string"
1660
+ "text": "number"
1827
1661
  }
1828
1662
  },
1829
1663
  {
1830
- "name": "cancel-text",
1831
- "fieldName": "cancelText",
1832
- "default": "'Cancel'",
1833
- "description": "Text for the cancel button",
1664
+ "name": "required",
1665
+ "fieldName": "required",
1666
+ "default": "false",
1667
+ "description": "Whether the input is required",
1834
1668
  "type": {
1835
- "text": "string"
1669
+ "text": "boolean"
1836
1670
  }
1837
1671
  },
1838
1672
  {
1839
- "name": "placeholder",
1840
- "fieldName": "placeholder",
1841
- "default": "''",
1842
- "description": "Placeholder text for prompt input",
1673
+ "name": "disabled",
1674
+ "fieldName": "disabled",
1675
+ "default": "false",
1676
+ "description": "Whether the input is disabled",
1843
1677
  "type": {
1844
- "text": "string"
1678
+ "text": "boolean"
1845
1679
  }
1846
1680
  },
1847
1681
  {
1848
- "name": "default-value",
1849
- "fieldName": "defaultValue",
1850
- "default": "''",
1851
- "description": "Default value for prompt input",
1682
+ "name": "readonly",
1683
+ "fieldName": "readonly",
1684
+ "default": "false",
1685
+ "description": "Whether the input is read-only",
1686
+ "type": {
1687
+ "text": "boolean"
1688
+ }
1689
+ },
1690
+ {
1691
+ "name": "icon-start",
1692
+ "fieldName": "iconStart",
1693
+ "description": "Icon for the start icon",
1852
1694
  "type": {
1853
1695
  "text": "string"
1854
1696
  }
1855
1697
  },
1856
1698
  {
1857
- "name": "close-on-backdrop",
1858
- "fieldName": "closeOnBackdrop",
1699
+ "name": "show-spinners",
1700
+ "fieldName": "showSpinners",
1859
1701
  "default": "true",
1860
- "description": "Whether clicking the backdrop closes the popup (modal only)",
1702
+ "description": "Whether to show the spinner controls",
1861
1703
  "type": {
1862
1704
  "text": "boolean"
1863
1705
  }
1864
- }
1865
- ],
1866
- "tagName": "le-popup",
1867
- "events": [
1868
- {
1869
- "name": "leConfirm",
1870
- "type": {
1871
- "text": "EventEmitter<PopupResult>"
1872
- },
1873
- "description": "Emitted when the popup is confirmed (OK clicked)"
1874
1706
  },
1875
1707
  {
1876
- "name": "leCancel",
1708
+ "name": "external-id",
1709
+ "fieldName": "externalId",
1710
+ "description": "External ID for linking with external systems",
1877
1711
  "type": {
1878
- "text": "EventEmitter<PopupResult>"
1879
- },
1880
- "description": "Emitted when the popup is cancelled (Cancel clicked or dismissed)"
1881
- },
1712
+ "text": "string"
1713
+ }
1714
+ }
1715
+ ],
1716
+ "tagName": "le-number-input",
1717
+ "events": [
1882
1718
  {
1883
- "name": "leOpen",
1719
+ "name": "leChange",
1884
1720
  "type": {
1885
- "text": "EventEmitter<void>"
1721
+ "text": "EventEmitter<{ value: number; name: string; externalId: string; isValid: boolean }>"
1886
1722
  },
1887
- "description": "Emitted when the popup opens"
1723
+ "description": "Emitted when the value changes (on blur or Enter)"
1888
1724
  },
1889
1725
  {
1890
- "name": "leClose",
1726
+ "name": "leInput",
1891
1727
  "type": {
1892
- "text": "EventEmitter<PopupResult>"
1728
+ "text": "EventEmitter<{ value: number; name: string; externalId: string; isValid: boolean }>"
1893
1729
  },
1894
- "description": "Emitted when the popup closes"
1730
+ "description": "Emitted when the input value changes (on keystroke/spin)"
1895
1731
  }
1896
1732
  ],
1897
1733
  "customElement": true
@@ -1900,38 +1736,42 @@
1900
1736
  "exports": [
1901
1737
  {
1902
1738
  "kind": "js",
1903
- "name": "LePopup",
1739
+ "name": "LeNumberInput",
1904
1740
  "declaration": {
1905
- "name": "LePopup",
1906
- "module": "src/components/le-popup/le-popup.tsx"
1741
+ "name": "LeNumberInput",
1742
+ "module": "src/components/le-number-input/le-number-input.tsx"
1907
1743
  }
1908
1744
  },
1909
1745
  {
1910
1746
  "kind": "custom-element-definition",
1911
- "name": "le-popup",
1747
+ "name": "le-number-input",
1912
1748
  "declaration": {
1913
- "name": "LePopup",
1914
- "module": "src/components/le-popup/le-popup.tsx"
1749
+ "name": "LeNumberInput",
1750
+ "module": "src/components/le-number-input/le-number-input.tsx"
1915
1751
  }
1916
1752
  }
1917
1753
  ]
1918
1754
  },
1919
1755
  {
1920
1756
  "kind": "javascript-module",
1921
- "path": "src/components/le-popover/le-popover.tsx",
1757
+ "path": "src/components/le-popup/le-popup.tsx",
1922
1758
  "declarations": [
1923
1759
  {
1924
1760
  "kind": "class",
1925
- "description": "A popover component for displaying floating content.\n\nUses the native HTML Popover API for proper layering with dialogs\nand other top-layer elements. Falls back gracefully in older browsers.",
1926
- "name": "LePopover",
1761
+ "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().",
1762
+ "name": "LePopup",
1927
1763
  "slots": [
1928
1764
  {
1929
- "description": "Content to display inside the popover",
1765
+ "description": "Default slot for custom body content",
1930
1766
  "name": ""
1931
1767
  },
1932
1768
  {
1933
- "description": "Element that triggers the popover (optional)",
1934
- "name": "trigger"
1769
+ "description": "Custom header content (replaces title)",
1770
+ "name": "header"
1771
+ },
1772
+ {
1773
+ "description": "Custom footer content (replaces default buttons)",
1774
+ "name": "footer"
1935
1775
  }
1936
1776
  ],
1937
1777
  "members": [
@@ -1942,14 +1782,6 @@
1942
1782
  "text": "HTMLElement"
1943
1783
  }
1944
1784
  },
1945
- {
1946
- "kind": "field",
1947
- "name": "mode",
1948
- "type": {
1949
- "text": "'default' | 'admin'"
1950
- },
1951
- "description": "Mode of the popover should be 'default' for internal use"
1952
- },
1953
1785
  {
1954
1786
  "kind": "field",
1955
1787
  "name": "open",
@@ -1957,207 +1789,214 @@
1957
1789
  "text": "boolean"
1958
1790
  },
1959
1791
  "default": "false",
1960
- "description": "Whether the popover is currently open"
1792
+ "description": "Whether the popup is currently visible"
1961
1793
  },
1962
1794
  {
1963
1795
  "kind": "field",
1964
- "name": "position",
1796
+ "name": "type",
1965
1797
  "type": {
1966
- "text": "'top' | 'bottom' | 'left' | 'right' | 'auto'"
1798
+ "text": "PopupType"
1967
1799
  },
1968
- "default": "'bottom'",
1969
- "description": "Position of the popover relative to its trigger"
1800
+ "default": "'alert'",
1801
+ "description": "Type of popup: alert (OK only), confirm (OK/Cancel), prompt (input + OK/Cancel), custom"
1970
1802
  },
1971
1803
  {
1972
1804
  "kind": "field",
1973
- "name": "align",
1805
+ "name": "popupTitle",
1974
1806
  "type": {
1975
- "text": "'start' | 'center' | 'end'"
1807
+ "text": "string | undefined"
1976
1808
  },
1977
- "default": "'start'",
1978
- "description": "Alignment of the popover"
1809
+ "description": "Optional title for the popup header"
1979
1810
  },
1980
1811
  {
1981
1812
  "kind": "field",
1982
- "name": "popoverTitle",
1813
+ "name": "message",
1983
1814
  "type": {
1984
1815
  "text": "string | undefined"
1985
1816
  },
1986
- "description": "Optional title for the popover header"
1817
+ "description": "Message text to display (for alert/confirm/prompt types)"
1987
1818
  },
1988
1819
  {
1989
1820
  "kind": "field",
1990
- "name": "showClose",
1821
+ "name": "modal",
1991
1822
  "type": {
1992
1823
  "text": "boolean"
1993
1824
  },
1994
1825
  "default": "true",
1995
- "description": "Whether to show a close button in the header"
1826
+ "description": "Whether the popup is modal (blocks interaction with page behind)"
1996
1827
  },
1997
1828
  {
1998
1829
  "kind": "field",
1999
- "name": "closeOnClickOutside",
1830
+ "name": "position",
2000
1831
  "type": {
2001
- "text": "boolean"
1832
+ "text": "PopupPosition"
2002
1833
  },
2003
- "default": "true",
2004
- "description": "Whether clicking outside closes the popover"
1834
+ "default": "'center'",
1835
+ "description": "Position of the popup on screen"
2005
1836
  },
2006
1837
  {
2007
1838
  "kind": "field",
2008
- "name": "closeOnEscape",
1839
+ "name": "confirmText",
2009
1840
  "type": {
2010
- "text": "boolean"
1841
+ "text": "string"
2011
1842
  },
2012
- "default": "true",
2013
- "description": "Whether pressing Escape closes the popover"
1843
+ "default": "'OK'",
1844
+ "description": "Text for the confirm/OK button"
2014
1845
  },
2015
1846
  {
2016
1847
  "kind": "field",
2017
- "name": "offset",
1848
+ "name": "cancelText",
2018
1849
  "type": {
2019
- "text": "number"
1850
+ "text": "string"
2020
1851
  },
2021
- "default": "8",
2022
- "description": "Offset from the trigger element (in pixels)"
1852
+ "default": "'Cancel'",
1853
+ "description": "Text for the cancel button"
2023
1854
  },
2024
1855
  {
2025
1856
  "kind": "field",
2026
- "name": "width",
1857
+ "name": "placeholder",
2027
1858
  "type": {
2028
- "text": "string | undefined"
1859
+ "text": "string"
2029
1860
  },
2030
- "description": "Fixed width for the popover (e.g., '300px', '20rem')"
1861
+ "default": "''",
1862
+ "description": "Placeholder text for prompt input"
2031
1863
  },
2032
1864
  {
2033
1865
  "kind": "field",
2034
- "name": "minWidth",
1866
+ "name": "defaultValue",
2035
1867
  "type": {
2036
- "text": "string | undefined"
1868
+ "text": "string"
2037
1869
  },
2038
- "default": "'200px'",
2039
- "description": "Minimum width for the popover (e.g., '200px', '15rem')"
1870
+ "default": "''",
1871
+ "description": "Default value for prompt input"
2040
1872
  },
2041
1873
  {
2042
1874
  "kind": "field",
2043
- "name": "maxWidth",
1875
+ "name": "closeOnBackdrop",
2044
1876
  "type": {
2045
- "text": "string | undefined"
1877
+ "text": "boolean"
2046
1878
  },
2047
- "description": "Maximum width for the popover (e.g., '400px', '25rem')"
1879
+ "default": "true",
1880
+ "description": "Whether clicking the backdrop closes the popup (modal only)"
2048
1881
  },
2049
1882
  {
2050
1883
  "kind": "field",
2051
- "name": "isPositioned",
1884
+ "name": "inputValue",
2052
1885
  "type": {
2053
- "text": "boolean"
1886
+ "text": "string"
2054
1887
  },
2055
- "privacy": "private",
2056
- "default": "false"
1888
+ "default": "''",
1889
+ "description": "Internal state for prompt input value"
2057
1890
  },
2058
1891
  {
2059
1892
  "kind": "field",
2060
- "name": "triggerEl",
1893
+ "name": "dialogEl",
2061
1894
  "type": {
2062
- "text": "HTMLElement | undefined"
1895
+ "text": "HTMLDialogElement | undefined"
2063
1896
  },
2064
1897
  "privacy": "private"
2065
1898
  },
2066
1899
  {
2067
1900
  "kind": "field",
2068
- "name": "popoverEl",
1901
+ "name": "inputEl",
2069
1902
  "type": {
2070
- "text": "HTMLElement | undefined"
1903
+ "text": "HTMLInputElement | undefined"
2071
1904
  },
2072
1905
  "privacy": "private"
2073
1906
  },
2074
1907
  {
2075
1908
  "kind": "field",
2076
- "name": "uniqueId",
1909
+ "name": "resolvePromise",
2077
1910
  "type": {
2078
- "text": "string"
1911
+ "text": "(result: PopupResult) => void | undefined"
2079
1912
  },
2080
- "privacy": "private",
2081
- "default": "`le-popover-${Math.random().toString(36).substr(2, 9)}`"
1913
+ "privacy": "private"
2082
1914
  },
2083
1915
  {
2084
1916
  "kind": "field",
2085
- "name": "scrollParents",
2086
- "type": {
2087
- "text": "Element[]"
2088
- },
2089
- "privacy": "private",
2090
- "default": "[]"
1917
+ "name": "handleDialogCancel",
1918
+ "privacy": "private"
2091
1919
  },
2092
1920
  {
2093
1921
  "kind": "method",
2094
- "name": "getScrollParents",
2095
- "privacy": "private",
1922
+ "name": "show",
2096
1923
  "return": {
2097
1924
  "type": {
2098
- "text": "Element[]"
1925
+ "text": "Promise<PopupResult>"
2099
1926
  }
2100
1927
  },
1928
+ "description": "Opens the popup and returns a promise that resolves when closed"
1929
+ },
1930
+ {
1931
+ "kind": "method",
1932
+ "name": "hide",
2101
1933
  "parameters": [
2102
1934
  {
2103
- "name": "element",
1935
+ "name": "confirmed",
1936
+ "default": "false",
2104
1937
  "type": {
2105
- "text": "Element"
1938
+ "text": "boolean"
2106
1939
  }
2107
1940
  }
2108
1941
  ],
2109
- "description": "Find all scrollable parent elements"
1942
+ "description": "Closes the popup with a result"
2110
1943
  },
2111
1944
  {
2112
- "kind": "method",
2113
- "name": "addScrollListeners",
2114
- "privacy": "private",
2115
- "description": "Add scroll listeners to all scrollable parents"
1945
+ "kind": "field",
1946
+ "name": "handleConfirm",
1947
+ "privacy": "private"
2116
1948
  },
2117
1949
  {
2118
- "kind": "method",
2119
- "name": "removeScrollListeners",
2120
- "privacy": "private",
2121
- "description": "Remove scroll listeners"
1950
+ "kind": "field",
1951
+ "name": "handleCancel",
1952
+ "privacy": "private"
2122
1953
  },
2123
1954
  {
2124
1955
  "kind": "field",
2125
- "name": "handleScroll",
1956
+ "name": "handleBackdropClick",
2126
1957
  "privacy": "private"
2127
1958
  },
2128
1959
  {
2129
1960
  "kind": "field",
2130
- "name": "handlePopoverToggle",
1961
+ "name": "handleInputChange",
2131
1962
  "privacy": "private"
2132
1963
  },
2133
1964
  {
2134
1965
  "kind": "field",
2135
- "name": "handleOtherPopoverOpen",
1966
+ "name": "handleKeyDown",
2136
1967
  "privacy": "private"
2137
1968
  },
2138
1969
  {
2139
1970
  "kind": "method",
2140
- "name": "show",
2141
- "description": "Opens the popover"
1971
+ "name": "hasSlot",
1972
+ "privacy": "private",
1973
+ "return": {
1974
+ "type": {
1975
+ "text": "boolean"
1976
+ }
1977
+ },
1978
+ "parameters": [
1979
+ {
1980
+ "name": "name",
1981
+ "type": {
1982
+ "text": "string"
1983
+ }
1984
+ }
1985
+ ]
2142
1986
  },
2143
1987
  {
2144
1988
  "kind": "method",
2145
- "name": "hide",
2146
- "description": "Closes the popover"
1989
+ "name": "renderHeader",
1990
+ "privacy": "private"
2147
1991
  },
2148
1992
  {
2149
1993
  "kind": "method",
2150
- "name": "toggle",
2151
- "description": "Toggles the popover"
2152
- },
2153
- {
2154
- "kind": "field",
2155
- "name": "handleTriggerClick",
1994
+ "name": "renderBody",
2156
1995
  "privacy": "private"
2157
1996
  },
2158
1997
  {
2159
1998
  "kind": "method",
2160
- "name": "updatePosition",
1999
+ "name": "renderFooter",
2161
2000
  "privacy": "private"
2162
2001
  },
2163
2002
  {
@@ -2166,126 +2005,133 @@
2166
2005
  }
2167
2006
  ],
2168
2007
  "attributes": [
2169
- {
2170
- "name": "mode",
2171
- "fieldName": "mode",
2172
- "description": "Mode of the popover should be 'default' for internal use",
2173
- "type": {
2174
- "text": "'default' | 'admin'"
2175
- }
2176
- },
2177
2008
  {
2178
2009
  "name": "open",
2179
2010
  "fieldName": "open",
2180
2011
  "default": "false",
2181
- "description": "Whether the popover is currently open",
2012
+ "description": "Whether the popup is currently visible",
2182
2013
  "type": {
2183
2014
  "text": "boolean"
2184
2015
  }
2185
2016
  },
2186
2017
  {
2187
- "name": "position",
2188
- "fieldName": "position",
2189
- "default": "'bottom'",
2190
- "description": "Position of the popover relative to its trigger",
2018
+ "name": "type",
2019
+ "fieldName": "type",
2020
+ "default": "'alert'",
2021
+ "description": "Type of popup: alert (OK only), confirm (OK/Cancel), prompt (input + OK/Cancel), custom",
2191
2022
  "type": {
2192
- "text": "'top' | 'bottom' | 'left' | 'right' | 'auto'"
2023
+ "text": "PopupType"
2193
2024
  }
2194
2025
  },
2195
2026
  {
2196
- "name": "align",
2197
- "fieldName": "align",
2198
- "default": "'start'",
2199
- "description": "Alignment of the popover",
2027
+ "name": "popup-title",
2028
+ "fieldName": "popupTitle",
2029
+ "description": "Optional title for the popup header",
2200
2030
  "type": {
2201
- "text": "'start' | 'center' | 'end'"
2031
+ "text": "string"
2202
2032
  }
2203
2033
  },
2204
2034
  {
2205
- "name": "popover-title",
2206
- "fieldName": "popoverTitle",
2207
- "description": "Optional title for the popover header",
2035
+ "name": "message",
2036
+ "fieldName": "message",
2037
+ "description": "Message text to display (for alert/confirm/prompt types)",
2208
2038
  "type": {
2209
2039
  "text": "string"
2210
2040
  }
2211
2041
  },
2212
2042
  {
2213
- "name": "show-close",
2214
- "fieldName": "showClose",
2043
+ "name": "modal",
2044
+ "fieldName": "modal",
2215
2045
  "default": "true",
2216
- "description": "Whether to show a close button in the header",
2046
+ "description": "Whether the popup is modal (blocks interaction with page behind)",
2217
2047
  "type": {
2218
2048
  "text": "boolean"
2219
2049
  }
2220
2050
  },
2221
2051
  {
2222
- "name": "close-on-click-outside",
2223
- "fieldName": "closeOnClickOutside",
2224
- "default": "true",
2225
- "description": "Whether clicking outside closes the popover",
2052
+ "name": "position",
2053
+ "fieldName": "position",
2054
+ "default": "'center'",
2055
+ "description": "Position of the popup on screen",
2226
2056
  "type": {
2227
- "text": "boolean"
2057
+ "text": "PopupPosition"
2228
2058
  }
2229
2059
  },
2230
2060
  {
2231
- "name": "close-on-escape",
2232
- "fieldName": "closeOnEscape",
2233
- "default": "true",
2234
- "description": "Whether pressing Escape closes the popover",
2061
+ "name": "confirm-text",
2062
+ "fieldName": "confirmText",
2063
+ "default": "'OK'",
2064
+ "description": "Text for the confirm/OK button",
2235
2065
  "type": {
2236
- "text": "boolean"
2066
+ "text": "string"
2237
2067
  }
2238
2068
  },
2239
2069
  {
2240
- "name": "offset",
2241
- "fieldName": "offset",
2242
- "default": "8",
2243
- "description": "Offset from the trigger element (in pixels)",
2070
+ "name": "cancel-text",
2071
+ "fieldName": "cancelText",
2072
+ "default": "'Cancel'",
2073
+ "description": "Text for the cancel button",
2244
2074
  "type": {
2245
- "text": "number"
2075
+ "text": "string"
2246
2076
  }
2247
2077
  },
2248
2078
  {
2249
- "name": "width",
2250
- "fieldName": "width",
2251
- "description": "Fixed width for the popover (e.g., '300px', '20rem')",
2079
+ "name": "placeholder",
2080
+ "fieldName": "placeholder",
2081
+ "default": "''",
2082
+ "description": "Placeholder text for prompt input",
2252
2083
  "type": {
2253
2084
  "text": "string"
2254
2085
  }
2255
2086
  },
2256
2087
  {
2257
- "name": "min-width",
2258
- "fieldName": "minWidth",
2259
- "default": "'200px'",
2260
- "description": "Minimum width for the popover (e.g., '200px', '15rem')",
2088
+ "name": "default-value",
2089
+ "fieldName": "defaultValue",
2090
+ "default": "''",
2091
+ "description": "Default value for prompt input",
2261
2092
  "type": {
2262
2093
  "text": "string"
2263
2094
  }
2264
2095
  },
2265
2096
  {
2266
- "name": "max-width",
2267
- "fieldName": "maxWidth",
2268
- "description": "Maximum width for the popover (e.g., '400px', '25rem')",
2097
+ "name": "close-on-backdrop",
2098
+ "fieldName": "closeOnBackdrop",
2099
+ "default": "true",
2100
+ "description": "Whether clicking the backdrop closes the popup (modal only)",
2269
2101
  "type": {
2270
- "text": "string"
2102
+ "text": "boolean"
2271
2103
  }
2272
2104
  }
2273
2105
  ],
2274
- "tagName": "le-popover",
2106
+ "tagName": "le-popup",
2275
2107
  "events": [
2276
2108
  {
2277
- "name": "lePopoverOpen",
2109
+ "name": "leConfirm",
2278
2110
  "type": {
2279
- "text": "EventEmitter<void>"
2111
+ "text": "EventEmitter<PopupResult>"
2280
2112
  },
2281
- "description": "Emitted when the popover opens"
2113
+ "description": "Emitted when the popup is confirmed (OK clicked)"
2282
2114
  },
2283
2115
  {
2284
- "name": "lePopoverClose",
2116
+ "name": "leCancel",
2117
+ "type": {
2118
+ "text": "EventEmitter<PopupResult>"
2119
+ },
2120
+ "description": "Emitted when the popup is cancelled (Cancel clicked or dismissed)"
2121
+ },
2122
+ {
2123
+ "name": "leOpen",
2285
2124
  "type": {
2286
2125
  "text": "EventEmitter<void>"
2287
2126
  },
2288
- "description": "Emitted when the popover closes"
2127
+ "description": "Emitted when the popup opens"
2128
+ },
2129
+ {
2130
+ "name": "leClose",
2131
+ "type": {
2132
+ "text": "EventEmitter<PopupResult>"
2133
+ },
2134
+ "description": "Emitted when the popup closes"
2289
2135
  }
2290
2136
  ],
2291
2137
  "customElement": true
@@ -2294,72 +2140,34 @@
2294
2140
  "exports": [
2295
2141
  {
2296
2142
  "kind": "js",
2297
- "name": "LePopover",
2143
+ "name": "LePopup",
2298
2144
  "declaration": {
2299
- "name": "LePopover",
2300
- "module": "src/components/le-popover/le-popover.tsx"
2145
+ "name": "LePopup",
2146
+ "module": "src/components/le-popup/le-popup.tsx"
2301
2147
  }
2302
2148
  },
2303
2149
  {
2304
2150
  "kind": "custom-element-definition",
2305
- "name": "le-popover",
2151
+ "name": "le-popup",
2306
2152
  "declaration": {
2307
- "name": "LePopover",
2308
- "module": "src/components/le-popover/le-popover.tsx"
2153
+ "name": "LePopup",
2154
+ "module": "src/components/le-popup/le-popup.tsx"
2309
2155
  }
2310
2156
  }
2311
2157
  ]
2312
2158
  },
2313
2159
  {
2314
2160
  "kind": "javascript-module",
2315
- "path": "src/components/le-number-input/le-number-input.tsx",
2161
+ "path": "src/components/le-slot/le-slot.tsx",
2316
2162
  "declarations": [
2317
2163
  {
2318
2164
  "kind": "class",
2319
- "description": "A number input component with validation, keyboard controls, and custom spinners.",
2320
- "name": "LeNumberInput",
2321
- "cssProperties": [
2322
- {
2323
- "description": "Input background color",
2324
- "name": "--le-input-bg"
2325
- },
2326
- {
2327
- "description": "Input text color",
2328
- "name": "--le-input-color"
2329
- },
2330
- {
2331
- "description": "Input border style",
2332
- "name": "--le-input-border"
2333
- },
2334
- {
2335
- "description": "Input border style when focused",
2336
- "name": "--le-input-border-focus"
2337
- },
2338
- {
2339
- "description": "Input border style when invalid",
2340
- "name": "--le-input-border-error"
2341
- },
2342
- {
2343
- "description": "Input border radius",
2344
- "name": "--le-input-radius"
2345
- },
2346
- {
2347
- "description": "Input padding",
2348
- "name": "--le-input-padding"
2349
- }
2350
- ],
2165
+ "description": "Slot placeholder component for admin/CMS mode.\n\nThis component renders a visual placeholder for slots when in admin mode,\nallowing CMS systems to show available drop zones for content or inline editing.\n\nIn non-admin mode, this component renders nothing and acts as a passthrough.",
2166
+ "name": "LeSlot",
2351
2167
  "slots": [
2352
2168
  {
2353
- "description": "The label text for the input",
2169
+ "description": "Default slot for placeholder content or drop zone UI",
2354
2170
  "name": ""
2355
- },
2356
- {
2357
- "description": "Additional description text displayed below the input",
2358
- "name": "description"
2359
- },
2360
- {
2361
- "description": "Icon to display at the start of the input",
2362
- "name": "icon-start"
2363
2171
  }
2364
2172
  ],
2365
2173
  "members": [
@@ -2372,11 +2180,12 @@
2372
2180
  },
2373
2181
  {
2374
2182
  "kind": "field",
2375
- "name": "value",
2183
+ "name": "type",
2376
2184
  "type": {
2377
- "text": "number"
2185
+ "text": "'slot' | 'text' | 'textarea'"
2378
2186
  },
2379
- "description": "The value of the input"
2187
+ "default": "'slot'",
2188
+ "description": "The type of slot content.\n- `slot`: Default, shows a dropzone for components (default)\n- `text`: Shows a single-line text input\n- `textarea`: Shows a multi-line text area"
2380
2189
  },
2381
2190
  {
2382
2191
  "kind": "field",
@@ -2384,333 +2193,531 @@
2384
2193
  "type": {
2385
2194
  "text": "string"
2386
2195
  },
2387
- "description": "The name of the input"
2196
+ "default": "''",
2197
+ "description": "The name of the slot this placeholder represents.\nShould match the slot name in the parent component."
2388
2198
  },
2389
2199
  {
2390
2200
  "kind": "field",
2391
2201
  "name": "label",
2392
2202
  "type": {
2393
- "text": "string"
2203
+ "text": "string | undefined"
2394
2204
  },
2395
- "description": "Label for the input"
2205
+ "description": "Label to display in admin mode.\nIf not provided, the slot name will be used."
2396
2206
  },
2397
2207
  {
2398
2208
  "kind": "field",
2399
- "name": "placeholder",
2209
+ "name": "description",
2400
2210
  "type": {
2401
- "text": "string"
2211
+ "text": "string | undefined"
2402
2212
  },
2403
- "description": "Placeholder text"
2213
+ "description": "Description of what content this slot accepts.\nShown in admin mode to guide content editors."
2404
2214
  },
2405
2215
  {
2406
2216
  "kind": "field",
2407
- "name": "min",
2217
+ "name": "allowedComponents",
2408
2218
  "type": {
2409
- "text": "number | undefined"
2219
+ "text": "string | undefined"
2410
2220
  },
2411
- "description": "Minimum allowed value"
2221
+ "description": "Comma-separated list of allowed component tags for this slot.\nUsed by CMS to filter available components."
2412
2222
  },
2413
2223
  {
2414
2224
  "kind": "field",
2415
- "name": "max",
2225
+ "name": "multiple",
2416
2226
  "type": {
2417
- "text": "number | undefined"
2227
+ "text": "boolean"
2418
2228
  },
2419
- "description": "Maximum allowed value"
2229
+ "default": "true",
2230
+ "description": "Whether multiple components can be dropped in this slot."
2420
2231
  },
2421
2232
  {
2422
2233
  "kind": "field",
2423
- "name": "step",
2234
+ "name": "required",
2424
2235
  "type": {
2425
- "text": "number"
2236
+ "text": "boolean"
2426
2237
  },
2427
- "default": "1",
2428
- "description": "Step value for increment/decrement"
2238
+ "default": "false",
2239
+ "description": "Whether this slot is required to have content."
2429
2240
  },
2430
2241
  {
2431
2242
  "kind": "field",
2432
- "name": "required",
2243
+ "name": "placeholder",
2433
2244
  "type": {
2434
- "text": "boolean"
2245
+ "text": "string | undefined"
2435
2246
  },
2436
- "default": "false",
2437
- "description": "Whether the input is required"
2247
+ "description": "Placeholder text for text/textarea inputs in admin mode."
2438
2248
  },
2439
2249
  {
2440
2250
  "kind": "field",
2441
- "name": "disabled",
2251
+ "name": "tag",
2442
2252
  "type": {
2443
- "text": "boolean"
2253
+ "text": "string | undefined"
2444
2254
  },
2445
- "default": "false",
2446
- "description": "Whether the input is disabled"
2255
+ "description": "The HTML tag to create when there's no slotted element.\nUsed with type=\"text\" or type=\"textarea\" to auto-create elements."
2447
2256
  },
2448
2257
  {
2449
2258
  "kind": "field",
2450
- "name": "readonly",
2259
+ "name": "slotStyle",
2260
+ "type": {
2261
+ "text": "string | undefined"
2262
+ },
2263
+ "description": "CSS styles for the slot dropzone container.\nUseful for layouts - e.g., \"flex-direction: row\" for horizontal stacks.\nOnly applies in admin mode for type=\"slot\"."
2264
+ },
2265
+ {
2266
+ "kind": "field",
2267
+ "name": "adminMode",
2451
2268
  "type": {
2452
2269
  "text": "boolean"
2453
2270
  },
2271
+ "privacy": "private",
2454
2272
  "default": "false",
2455
- "description": "Whether the input is read-only"
2273
+ "description": "Internal state to track admin mode"
2456
2274
  },
2457
2275
  {
2458
2276
  "kind": "field",
2459
- "name": "iconStart",
2277
+ "name": "textValue",
2460
2278
  "type": {
2461
- "text": "string | undefined"
2279
+ "text": "string"
2462
2280
  },
2463
- "description": "Icon for the start icon"
2281
+ "privacy": "private",
2282
+ "default": "''",
2283
+ "description": "Internal state for text input value (synced from slot content)"
2464
2284
  },
2465
2285
  {
2466
2286
  "kind": "field",
2467
- "name": "showSpinners",
2287
+ "name": "isValidHtml",
2468
2288
  "type": {
2469
2289
  "text": "boolean"
2470
2290
  },
2291
+ "privacy": "private",
2471
2292
  "default": "true",
2472
- "description": "Whether to show the spinner controls"
2293
+ "description": "Whether the current textValue contains valid HTML"
2473
2294
  },
2474
2295
  {
2475
2296
  "kind": "field",
2476
- "name": "externalId",
2297
+ "name": "availableComponents",
2477
2298
  "type": {
2478
- "text": "string"
2299
+ "text": "ComponentInfo[]"
2479
2300
  },
2480
- "description": "External ID for linking with external systems"
2301
+ "privacy": "private",
2302
+ "default": "[]",
2303
+ "description": "Available components loaded from Custom Elements Manifest"
2481
2304
  },
2482
2305
  {
2483
2306
  "kind": "field",
2484
- "name": "isValid",
2307
+ "name": "pickerOpen",
2485
2308
  "type": {
2486
2309
  "text": "boolean"
2487
2310
  },
2488
2311
  "privacy": "private",
2489
- "default": "true",
2490
- "description": "Internal validation state"
2312
+ "default": "false",
2313
+ "description": "Whether the component picker popover is open"
2491
2314
  },
2492
2315
  {
2493
2316
  "kind": "field",
2494
- "name": "validationMessage",
2317
+ "name": "slotRef",
2495
2318
  "type": {
2496
- "text": "string"
2319
+ "text": "HTMLSlotElement | undefined"
2497
2320
  },
2498
2321
  "privacy": "private",
2499
- "default": "''"
2322
+ "description": "Reference to the slot element to access assignedNodes"
2500
2323
  },
2501
2324
  {
2502
- "kind": "method",
2503
- "name": "valueChanged"
2325
+ "kind": "field",
2326
+ "name": "slottedElement",
2327
+ "type": {
2328
+ "text": "Element | undefined"
2329
+ },
2330
+ "privacy": "private",
2331
+ "description": "The original slotted element (e.g., <h3 slot=\"header\">)"
2504
2332
  },
2505
2333
  {
2506
- "kind": "method",
2507
- "name": "validate",
2334
+ "kind": "field",
2335
+ "name": "disconnectModeObserver",
2336
+ "type": {
2337
+ "text": "() => void | undefined"
2338
+ },
2508
2339
  "privacy": "private"
2509
2340
  },
2510
2341
  {
2511
- "kind": "method",
2512
- "name": "emitChange",
2513
- "privacy": "private"
2342
+ "kind": "field",
2343
+ "name": "isUpdating",
2344
+ "type": {
2345
+ "text": "boolean"
2346
+ },
2347
+ "privacy": "private",
2348
+ "default": "false",
2349
+ "description": "Flag to prevent re-reading content right after we updated it"
2514
2350
  },
2515
2351
  {
2516
2352
  "kind": "method",
2517
- "name": "emitInput",
2518
- "privacy": "private"
2353
+ "name": "readSlottedContent",
2354
+ "privacy": "private",
2355
+ "description": "Read content from slotted elements via assignedNodes()"
2519
2356
  },
2520
2357
  {
2521
2358
  "kind": "method",
2522
- "name": "updateValue",
2359
+ "name": "validateHtml",
2523
2360
  "privacy": "private",
2361
+ "return": {
2362
+ "type": {
2363
+ "text": "boolean"
2364
+ }
2365
+ },
2524
2366
  "parameters": [
2525
2367
  {
2526
- "name": "newValue",
2368
+ "name": "html",
2527
2369
  "type": {
2528
- "text": "number"
2370
+ "text": "string"
2529
2371
  }
2530
2372
  }
2531
- ]
2373
+ ],
2374
+ "description": "Validates if a string contains valid HTML"
2532
2375
  },
2533
2376
  {
2534
2377
  "kind": "field",
2535
- "name": "handleInput",
2378
+ "name": "handleTextInput",
2536
2379
  "privacy": "private"
2537
2380
  },
2538
2381
  {
2539
- "kind": "field",
2540
- "name": "handleChange",
2541
- "privacy": "private"
2382
+ "kind": "method",
2383
+ "name": "createSlottedElement",
2384
+ "privacy": "private",
2385
+ "description": "Create a new slotted element when none exists.\nThe element is appended to the host component's light DOM."
2542
2386
  },
2543
2387
  {
2544
- "kind": "field",
2545
- "name": "handleKeyDown",
2546
- "privacy": "private"
2388
+ "kind": "method",
2389
+ "name": "loadAvailableComponents",
2390
+ "privacy": "private",
2391
+ "description": "Load available components from Custom Elements Manifest"
2547
2392
  },
2548
2393
  {
2549
- "kind": "field",
2550
- "name": "handleWheel",
2551
- "privacy": "private"
2394
+ "kind": "method",
2395
+ "name": "formatComponentName",
2396
+ "privacy": "private",
2397
+ "return": {
2398
+ "type": {
2399
+ "text": "string"
2400
+ }
2401
+ },
2402
+ "parameters": [
2403
+ {
2404
+ "name": "tagName",
2405
+ "type": {
2406
+ "text": "string"
2407
+ }
2408
+ }
2409
+ ],
2410
+ "description": "Format a tag name into a display name\ne.g., 'le-card' -> 'Card'"
2552
2411
  },
2553
2412
  {
2554
- "kind": "field",
2555
- "name": "increment",
2556
- "privacy": "private"
2413
+ "kind": "method",
2414
+ "name": "addComponent",
2415
+ "privacy": "private",
2416
+ "parameters": [
2417
+ {
2418
+ "name": "tagName",
2419
+ "type": {
2420
+ "text": "string"
2421
+ }
2422
+ }
2423
+ ],
2424
+ "description": "Add a new component to the slot"
2557
2425
  },
2558
2426
  {
2559
2427
  "kind": "field",
2560
- "name": "decrement",
2561
- "privacy": "private"
2428
+ "name": "handleSlotChange",
2429
+ "privacy": "private",
2430
+ "description": "Handle slot change event to re-read content when nodes are assigned"
2562
2431
  },
2563
2432
  {
2564
2433
  "kind": "method",
2565
2434
  "name": "render"
2435
+ },
2436
+ {
2437
+ "kind": "method",
2438
+ "name": "renderContent",
2439
+ "privacy": "private"
2566
2440
  }
2567
2441
  ],
2568
2442
  "attributes": [
2569
2443
  {
2444
+ "name": "type",
2445
+ "fieldName": "type",
2446
+ "default": "'slot'",
2447
+ "description": "The type of slot content.\n- `slot`: Default, shows a dropzone for components (default)\n- `text`: Shows a single-line text input\n- `textarea`: Shows a multi-line text area",
2448
+ "type": {
2449
+ "text": "'slot' | 'text' | 'textarea'"
2450
+ }
2451
+ },
2452
+ {
2453
+ "name": "name",
2454
+ "fieldName": "name",
2455
+ "default": "''",
2456
+ "description": "The name of the slot this placeholder represents.\nShould match the slot name in the parent component.",
2457
+ "type": {
2458
+ "text": "string"
2459
+ }
2460
+ },
2461
+ {
2462
+ "name": "label",
2463
+ "fieldName": "label",
2464
+ "description": "Label to display in admin mode.\nIf not provided, the slot name will be used.",
2465
+ "type": {
2466
+ "text": "string"
2467
+ }
2468
+ },
2469
+ {
2470
+ "name": "description",
2471
+ "fieldName": "description",
2472
+ "description": "Description of what content this slot accepts.\nShown in admin mode to guide content editors.",
2473
+ "type": {
2474
+ "text": "string"
2475
+ }
2476
+ },
2477
+ {
2478
+ "name": "allowed-components",
2479
+ "fieldName": "allowedComponents",
2480
+ "description": "Comma-separated list of allowed component tags for this slot.\nUsed by CMS to filter available components.",
2481
+ "type": {
2482
+ "text": "string"
2483
+ }
2484
+ },
2485
+ {
2486
+ "name": "multiple",
2487
+ "fieldName": "multiple",
2488
+ "default": "true",
2489
+ "description": "Whether multiple components can be dropped in this slot.",
2490
+ "type": {
2491
+ "text": "boolean"
2492
+ }
2493
+ },
2494
+ {
2495
+ "name": "required",
2496
+ "fieldName": "required",
2497
+ "default": "false",
2498
+ "description": "Whether this slot is required to have content.",
2499
+ "type": {
2500
+ "text": "boolean"
2501
+ }
2502
+ },
2503
+ {
2504
+ "name": "placeholder",
2505
+ "fieldName": "placeholder",
2506
+ "description": "Placeholder text for text/textarea inputs in admin mode.",
2507
+ "type": {
2508
+ "text": "string"
2509
+ }
2510
+ },
2511
+ {
2512
+ "name": "tag",
2513
+ "fieldName": "tag",
2514
+ "description": "The HTML tag to create when there's no slotted element.\nUsed with type=\"text\" or type=\"textarea\" to auto-create elements.",
2515
+ "type": {
2516
+ "text": "string"
2517
+ }
2518
+ },
2519
+ {
2520
+ "name": "slot-style",
2521
+ "fieldName": "slotStyle",
2522
+ "description": "CSS styles for the slot dropzone container.\nUseful for layouts - e.g., \"flex-direction: row\" for horizontal stacks.\nOnly applies in admin mode for type=\"slot\".",
2523
+ "type": {
2524
+ "text": "string"
2525
+ }
2526
+ }
2527
+ ],
2528
+ "tagName": "le-slot",
2529
+ "events": [
2530
+ {
2531
+ "name": "leSlotChange",
2532
+ "type": {
2533
+ "text": "EventEmitter<{ name: string; value: string; isValid: boolean }>"
2534
+ },
2535
+ "description": "Emitted when text content changes in admin mode.\nThe event detail contains the new text value and validity."
2536
+ }
2537
+ ],
2538
+ "customElement": true
2539
+ }
2540
+ ],
2541
+ "exports": [
2542
+ {
2543
+ "kind": "js",
2544
+ "name": "LeSlot",
2545
+ "declaration": {
2546
+ "name": "LeSlot",
2547
+ "module": "src/components/le-slot/le-slot.tsx"
2548
+ }
2549
+ },
2550
+ {
2551
+ "kind": "custom-element-definition",
2552
+ "name": "le-slot",
2553
+ "declaration": {
2554
+ "name": "LeSlot",
2555
+ "module": "src/components/le-slot/le-slot.tsx"
2556
+ }
2557
+ }
2558
+ ]
2559
+ },
2560
+ {
2561
+ "kind": "javascript-module",
2562
+ "path": "src/components/le-round-progress/le-round-progress.tsx",
2563
+ "declarations": [
2564
+ {
2565
+ "kind": "class",
2566
+ "description": "",
2567
+ "name": "LeRoundProgress",
2568
+ "members": [
2569
+ {
2570
+ "kind": "field",
2571
+ "name": "el",
2572
+ "type": {
2573
+ "text": "HTMLElement"
2574
+ }
2575
+ },
2576
+ {
2577
+ "kind": "field",
2570
2578
  "name": "value",
2571
- "fieldName": "value",
2572
- "description": "The value of the input",
2573
2579
  "type": {
2574
2580
  "text": "number"
2575
- }
2581
+ },
2582
+ "default": "0"
2583
+ },
2584
+ {
2585
+ "kind": "method",
2586
+ "name": "updateValue",
2587
+ "parameters": [
2588
+ {
2589
+ "name": "newValue",
2590
+ "type": {
2591
+ "text": "string"
2592
+ }
2593
+ }
2594
+ ]
2595
+ },
2596
+ {
2597
+ "kind": "field",
2598
+ "name": "padding",
2599
+ "type": {
2600
+ "text": "number"
2601
+ },
2602
+ "default": "0"
2576
2603
  },
2577
2604
  {
2578
- "name": "name",
2579
- "fieldName": "name",
2580
- "description": "The name of the input",
2581
- "type": {
2582
- "text": "string"
2583
- }
2605
+ "kind": "method",
2606
+ "name": "updatePadding",
2607
+ "parameters": [
2608
+ {
2609
+ "name": "newValue",
2610
+ "type": {
2611
+ "text": "string"
2612
+ }
2613
+ }
2614
+ ]
2584
2615
  },
2585
2616
  {
2586
- "name": "label",
2587
- "fieldName": "label",
2588
- "description": "Label for the input",
2617
+ "kind": "field",
2618
+ "name": "paths",
2589
2619
  "type": {
2590
2620
  "text": "string"
2591
2621
  }
2592
2622
  },
2593
2623
  {
2594
- "name": "placeholder",
2595
- "fieldName": "placeholder",
2596
- "description": "Placeholder text",
2597
- "type": {
2598
- "text": "string"
2599
- }
2624
+ "kind": "method",
2625
+ "name": "updateProgressBackgrounds",
2626
+ "parameters": [
2627
+ {
2628
+ "name": "newValue",
2629
+ "type": {
2630
+ "text": "string"
2631
+ }
2632
+ }
2633
+ ]
2600
2634
  },
2601
2635
  {
2602
- "name": "min",
2603
- "fieldName": "min",
2604
- "description": "Minimum allowed value",
2636
+ "kind": "field",
2637
+ "name": "progressPaths",
2605
2638
  "type": {
2606
- "text": "number"
2639
+ "text": "any[]"
2607
2640
  }
2608
2641
  },
2609
2642
  {
2610
- "name": "max",
2611
- "fieldName": "max",
2612
- "description": "Maximum allowed value",
2643
+ "kind": "field",
2644
+ "name": "params",
2613
2645
  "type": {
2614
- "text": "number"
2646
+ "text": "{\n width: number;\n diameter: number;\n circumference: number;\n }"
2615
2647
  }
2616
2648
  },
2617
2649
  {
2618
- "name": "step",
2619
- "fieldName": "step",
2620
- "default": "1",
2621
- "description": "Step value for increment/decrement",
2622
- "type": {
2623
- "text": "number"
2624
- }
2650
+ "kind": "method",
2651
+ "name": "calcParams"
2625
2652
  },
2626
2653
  {
2627
- "name": "required",
2628
- "fieldName": "required",
2629
- "default": "false",
2630
- "description": "Whether the input is required",
2631
- "type": {
2632
- "text": "boolean"
2633
- }
2654
+ "kind": "method",
2655
+ "name": "getViewBox",
2656
+ "description": "Returns the viewPath attribute value for the SVG\nbased on the width of the parent element"
2634
2657
  },
2635
2658
  {
2636
- "name": "disabled",
2637
- "fieldName": "disabled",
2638
- "default": "false",
2639
- "description": "Whether the input is disabled",
2640
- "type": {
2641
- "text": "boolean"
2642
- }
2659
+ "kind": "method",
2660
+ "name": "getPath",
2661
+ "description": "Returns the circular path for the progress stroke\nand additional paths in the background"
2643
2662
  },
2644
2663
  {
2645
- "name": "readonly",
2646
- "fieldName": "readonly",
2647
- "default": "false",
2648
- "description": "Whether the input is read-only",
2649
- "type": {
2650
- "text": "boolean"
2651
- }
2664
+ "kind": "method",
2665
+ "name": "getStrokeDashArray"
2652
2666
  },
2653
2667
  {
2654
- "name": "icon-start",
2655
- "fieldName": "iconStart",
2656
- "description": "Icon for the start icon",
2657
- "type": {
2658
- "text": "string"
2659
- }
2668
+ "kind": "method",
2669
+ "name": "getPaths"
2660
2670
  },
2661
2671
  {
2662
- "name": "show-spinners",
2663
- "fieldName": "showSpinners",
2664
- "default": "true",
2665
- "description": "Whether to show the spinner controls",
2672
+ "kind": "method",
2673
+ "name": "render"
2674
+ }
2675
+ ],
2676
+ "attributes": [
2677
+ {
2678
+ "name": "value",
2679
+ "fieldName": "value",
2680
+ "default": "0",
2666
2681
  "type": {
2667
- "text": "boolean"
2682
+ "text": "number"
2668
2683
  }
2669
2684
  },
2670
2685
  {
2671
- "name": "external-id",
2672
- "fieldName": "externalId",
2673
- "description": "External ID for linking with external systems",
2686
+ "name": "padding",
2687
+ "fieldName": "padding",
2688
+ "default": "0",
2674
2689
  "type": {
2675
- "text": "string"
2690
+ "text": "number"
2676
2691
  }
2677
- }
2678
- ],
2679
- "tagName": "le-number-input",
2680
- "events": [
2681
- {
2682
- "name": "leChange",
2683
- "type": {
2684
- "text": "EventEmitter<{ value: number; name: string; externalId: string; isValid: boolean }>"
2685
- },
2686
- "description": "Emitted when the value changes (on blur or Enter)"
2687
2692
  },
2688
2693
  {
2689
- "name": "leInput",
2694
+ "name": "paths",
2695
+ "fieldName": "paths",
2690
2696
  "type": {
2691
- "text": "EventEmitter<{ value: number; name: string; externalId: string; isValid: boolean }>"
2692
- },
2693
- "description": "Emitted when the input value changes (on keystroke/spin)"
2697
+ "text": "string"
2698
+ }
2694
2699
  }
2695
2700
  ],
2701
+ "tagName": "le-round-progress",
2702
+ "events": [],
2696
2703
  "customElement": true
2697
2704
  }
2698
2705
  ],
2699
2706
  "exports": [
2700
2707
  {
2701
2708
  "kind": "js",
2702
- "name": "LeNumberInput",
2709
+ "name": "LeRoundProgress",
2703
2710
  "declaration": {
2704
- "name": "LeNumberInput",
2705
- "module": "src/components/le-number-input/le-number-input.tsx"
2711
+ "name": "LeRoundProgress",
2712
+ "module": "src/components/le-round-progress/le-round-progress.tsx"
2706
2713
  }
2707
2714
  },
2708
2715
  {
2709
2716
  "kind": "custom-element-definition",
2710
- "name": "le-number-input",
2717
+ "name": "le-round-progress",
2711
2718
  "declaration": {
2712
- "name": "LeNumberInput",
2713
- "module": "src/components/le-number-input/le-number-input.tsx"
2719
+ "name": "LeRoundProgress",
2720
+ "module": "src/components/le-round-progress/le-round-progress.tsx"
2714
2721
  }
2715
2722
  }
2716
2723
  ]
@@ -3014,16 +3021,20 @@
3014
3021
  },
3015
3022
  {
3016
3023
  "kind": "javascript-module",
3017
- "path": "src/components/le-slot/le-slot.tsx",
3024
+ "path": "src/components/le-popover/le-popover.tsx",
3018
3025
  "declarations": [
3019
3026
  {
3020
3027
  "kind": "class",
3021
- "description": "Slot placeholder component for admin/CMS mode.\n\nThis component renders a visual placeholder for slots when in admin mode,\nallowing CMS systems to show available drop zones for content or inline editing.\n\nIn non-admin mode, this component renders nothing and acts as a passthrough.",
3022
- "name": "LeSlot",
3028
+ "description": "A popover component for displaying floating content.\n\nUses the native HTML Popover API for proper layering with dialogs\nand other top-layer elements. Falls back gracefully in older browsers.",
3029
+ "name": "LePopover",
3023
3030
  "slots": [
3024
3031
  {
3025
- "description": "Default slot for placeholder content or drop zone UI",
3032
+ "description": "Content to display inside the popover",
3026
3033
  "name": ""
3034
+ },
3035
+ {
3036
+ "description": "Element that triggers the popover (optional)",
3037
+ "name": "trigger"
3027
3038
  }
3028
3039
  ],
3029
3040
  "members": [
@@ -3036,359 +3047,348 @@
3036
3047
  },
3037
3048
  {
3038
3049
  "kind": "field",
3039
- "name": "type",
3050
+ "name": "mode",
3040
3051
  "type": {
3041
- "text": "'slot' | 'text' | 'textarea'"
3052
+ "text": "'default' | 'admin'"
3042
3053
  },
3043
- "default": "'slot'",
3044
- "description": "The type of slot content.\n- `slot`: Default, shows a dropzone for components (default)\n- `text`: Shows a single-line text input\n- `textarea`: Shows a multi-line text area"
3054
+ "description": "Mode of the popover should be 'default' for internal use"
3045
3055
  },
3046
3056
  {
3047
3057
  "kind": "field",
3048
- "name": "name",
3058
+ "name": "open",
3049
3059
  "type": {
3050
- "text": "string"
3060
+ "text": "boolean"
3051
3061
  },
3052
- "default": "''",
3053
- "description": "The name of the slot this placeholder represents.\nShould match the slot name in the parent component."
3062
+ "default": "false",
3063
+ "description": "Whether the popover is currently open"
3054
3064
  },
3055
3065
  {
3056
3066
  "kind": "field",
3057
- "name": "label",
3067
+ "name": "position",
3058
3068
  "type": {
3059
- "text": "string | undefined"
3069
+ "text": "'top' | 'bottom' | 'left' | 'right' | 'auto'"
3060
3070
  },
3061
- "description": "Label to display in admin mode.\nIf not provided, the slot name will be used."
3071
+ "default": "'bottom'",
3072
+ "description": "Position of the popover relative to its trigger"
3062
3073
  },
3063
3074
  {
3064
3075
  "kind": "field",
3065
- "name": "description",
3076
+ "name": "align",
3066
3077
  "type": {
3067
- "text": "string | undefined"
3078
+ "text": "'start' | 'center' | 'end'"
3068
3079
  },
3069
- "description": "Description of what content this slot accepts.\nShown in admin mode to guide content editors."
3080
+ "default": "'start'",
3081
+ "description": "Alignment of the popover"
3070
3082
  },
3071
3083
  {
3072
3084
  "kind": "field",
3073
- "name": "allowedComponents",
3085
+ "name": "popoverTitle",
3074
3086
  "type": {
3075
3087
  "text": "string | undefined"
3076
3088
  },
3077
- "description": "Comma-separated list of allowed component tags for this slot.\nUsed by CMS to filter available components."
3089
+ "description": "Optional title for the popover header"
3078
3090
  },
3079
3091
  {
3080
3092
  "kind": "field",
3081
- "name": "multiple",
3093
+ "name": "showClose",
3082
3094
  "type": {
3083
3095
  "text": "boolean"
3084
3096
  },
3085
3097
  "default": "true",
3086
- "description": "Whether multiple components can be dropped in this slot."
3098
+ "description": "Whether to show a close button in the header"
3087
3099
  },
3088
3100
  {
3089
3101
  "kind": "field",
3090
- "name": "required",
3102
+ "name": "closeOnClickOutside",
3091
3103
  "type": {
3092
3104
  "text": "boolean"
3093
3105
  },
3094
- "default": "false",
3095
- "description": "Whether this slot is required to have content."
3096
- },
3097
- {
3098
- "kind": "field",
3099
- "name": "placeholder",
3100
- "type": {
3101
- "text": "string | undefined"
3102
- },
3103
- "description": "Placeholder text for text/textarea inputs in admin mode."
3104
- },
3105
- {
3106
- "kind": "field",
3107
- "name": "tag",
3108
- "type": {
3109
- "text": "string | undefined"
3110
- },
3111
- "description": "The HTML tag to create when there's no slotted element.\nUsed with type=\"text\" or type=\"textarea\" to auto-create elements."
3112
- },
3113
- {
3114
- "kind": "field",
3115
- "name": "slotStyle",
3116
- "type": {
3117
- "text": "string | undefined"
3118
- },
3119
- "description": "CSS styles for the slot dropzone container.\nUseful for layouts - e.g., \"flex-direction: row\" for horizontal stacks.\nOnly applies in admin mode for type=\"slot\"."
3106
+ "default": "true",
3107
+ "description": "Whether clicking outside closes the popover"
3120
3108
  },
3121
3109
  {
3122
3110
  "kind": "field",
3123
- "name": "adminMode",
3111
+ "name": "closeOnEscape",
3124
3112
  "type": {
3125
3113
  "text": "boolean"
3126
3114
  },
3127
- "privacy": "private",
3128
- "default": "false",
3129
- "description": "Internal state to track admin mode"
3115
+ "default": "true",
3116
+ "description": "Whether pressing Escape closes the popover"
3130
3117
  },
3131
3118
  {
3132
3119
  "kind": "field",
3133
- "name": "textValue",
3120
+ "name": "offset",
3134
3121
  "type": {
3135
- "text": "string"
3122
+ "text": "number"
3136
3123
  },
3137
- "privacy": "private",
3138
- "default": "''",
3139
- "description": "Internal state for text input value (synced from slot content)"
3124
+ "default": "8",
3125
+ "description": "Offset from the trigger element (in pixels)"
3140
3126
  },
3141
3127
  {
3142
3128
  "kind": "field",
3143
- "name": "isValidHtml",
3129
+ "name": "width",
3144
3130
  "type": {
3145
- "text": "boolean"
3146
- },
3147
- "privacy": "private",
3148
- "default": "true",
3149
- "description": "Whether the current textValue contains valid HTML"
3131
+ "text": "string | undefined"
3132
+ },
3133
+ "description": "Fixed width for the popover (e.g., '300px', '20rem')"
3150
3134
  },
3151
3135
  {
3152
3136
  "kind": "field",
3153
- "name": "availableComponents",
3137
+ "name": "minWidth",
3154
3138
  "type": {
3155
- "text": "ComponentInfo[]"
3139
+ "text": "string | undefined"
3156
3140
  },
3157
- "privacy": "private",
3158
- "default": "[]",
3159
- "description": "Available components loaded from Custom Elements Manifest"
3141
+ "default": "'200px'",
3142
+ "description": "Minimum width for the popover (e.g., '200px', '15rem')"
3160
3143
  },
3161
3144
  {
3162
3145
  "kind": "field",
3163
- "name": "pickerOpen",
3146
+ "name": "maxWidth",
3164
3147
  "type": {
3165
- "text": "boolean"
3148
+ "text": "string | undefined"
3166
3149
  },
3167
- "privacy": "private",
3168
- "default": "false",
3169
- "description": "Whether the component picker popover is open"
3150
+ "description": "Maximum width for the popover (e.g., '400px', '25rem')"
3170
3151
  },
3171
3152
  {
3172
3153
  "kind": "field",
3173
- "name": "slotRef",
3154
+ "name": "isPositioned",
3174
3155
  "type": {
3175
- "text": "HTMLSlotElement | undefined"
3156
+ "text": "boolean"
3176
3157
  },
3177
3158
  "privacy": "private",
3178
- "description": "Reference to the slot element to access assignedNodes"
3159
+ "default": "false"
3179
3160
  },
3180
3161
  {
3181
3162
  "kind": "field",
3182
- "name": "slottedElement",
3163
+ "name": "triggerEl",
3183
3164
  "type": {
3184
- "text": "Element | undefined"
3165
+ "text": "HTMLElement | undefined"
3185
3166
  },
3186
- "privacy": "private",
3187
- "description": "The original slotted element (e.g., <h3 slot=\"header\">)"
3167
+ "privacy": "private"
3188
3168
  },
3189
3169
  {
3190
3170
  "kind": "field",
3191
- "name": "disconnectModeObserver",
3171
+ "name": "popoverEl",
3192
3172
  "type": {
3193
- "text": "() => void | undefined"
3173
+ "text": "HTMLElement | undefined"
3194
3174
  },
3195
3175
  "privacy": "private"
3196
3176
  },
3197
3177
  {
3198
3178
  "kind": "field",
3199
- "name": "isUpdating",
3179
+ "name": "uniqueId",
3200
3180
  "type": {
3201
- "text": "boolean"
3181
+ "text": "string"
3202
3182
  },
3203
3183
  "privacy": "private",
3204
- "default": "false",
3205
- "description": "Flag to prevent re-reading content right after we updated it"
3184
+ "default": "`le-popover-${Math.random().toString(36).substr(2, 9)}`"
3206
3185
  },
3207
3186
  {
3208
- "kind": "method",
3209
- "name": "readSlottedContent",
3187
+ "kind": "field",
3188
+ "name": "scrollParents",
3189
+ "type": {
3190
+ "text": "Element[]"
3191
+ },
3210
3192
  "privacy": "private",
3211
- "description": "Read content from slotted elements via assignedNodes()"
3193
+ "default": "[]"
3212
3194
  },
3213
3195
  {
3214
3196
  "kind": "method",
3215
- "name": "validateHtml",
3197
+ "name": "getScrollParents",
3216
3198
  "privacy": "private",
3217
3199
  "return": {
3218
3200
  "type": {
3219
- "text": "boolean"
3201
+ "text": "Element[]"
3220
3202
  }
3221
3203
  },
3222
3204
  "parameters": [
3223
3205
  {
3224
- "name": "html",
3206
+ "name": "element",
3225
3207
  "type": {
3226
- "text": "string"
3208
+ "text": "Element"
3227
3209
  }
3228
3210
  }
3229
3211
  ],
3230
- "description": "Validates if a string contains valid HTML"
3212
+ "description": "Find all scrollable parent elements"
3231
3213
  },
3232
3214
  {
3233
- "kind": "field",
3234
- "name": "handleTextInput",
3235
- "privacy": "private"
3215
+ "kind": "method",
3216
+ "name": "addScrollListeners",
3217
+ "privacy": "private",
3218
+ "description": "Add scroll listeners to all scrollable parents"
3236
3219
  },
3237
3220
  {
3238
3221
  "kind": "method",
3239
- "name": "createSlottedElement",
3222
+ "name": "removeScrollListeners",
3240
3223
  "privacy": "private",
3241
- "description": "Create a new slotted element when none exists.\nThe element is appended to the host component's light DOM."
3224
+ "description": "Remove scroll listeners"
3225
+ },
3226
+ {
3227
+ "kind": "field",
3228
+ "name": "handleScroll",
3229
+ "privacy": "private"
3230
+ },
3231
+ {
3232
+ "kind": "field",
3233
+ "name": "handlePopoverToggle",
3234
+ "privacy": "private"
3235
+ },
3236
+ {
3237
+ "kind": "field",
3238
+ "name": "handleOtherPopoverOpen",
3239
+ "privacy": "private"
3242
3240
  },
3243
3241
  {
3244
3242
  "kind": "method",
3245
- "name": "loadAvailableComponents",
3246
- "privacy": "private",
3247
- "description": "Load available components from Custom Elements Manifest"
3243
+ "name": "show",
3244
+ "description": "Opens the popover"
3248
3245
  },
3249
3246
  {
3250
3247
  "kind": "method",
3251
- "name": "formatComponentName",
3252
- "privacy": "private",
3253
- "return": {
3254
- "type": {
3255
- "text": "string"
3256
- }
3257
- },
3258
- "parameters": [
3259
- {
3260
- "name": "tagName",
3261
- "type": {
3262
- "text": "string"
3263
- }
3264
- }
3265
- ],
3266
- "description": "Format a tag name into a display name\ne.g., 'le-card' -> 'Card'"
3248
+ "name": "hide",
3249
+ "description": "Closes the popover"
3267
3250
  },
3268
3251
  {
3269
3252
  "kind": "method",
3270
- "name": "addComponent",
3271
- "privacy": "private",
3272
- "parameters": [
3273
- {
3274
- "name": "tagName",
3275
- "type": {
3276
- "text": "string"
3277
- }
3278
- }
3279
- ],
3280
- "description": "Add a new component to the slot"
3253
+ "name": "toggle",
3254
+ "description": "Toggles the popover"
3281
3255
  },
3282
3256
  {
3283
3257
  "kind": "field",
3284
- "name": "handleSlotChange",
3285
- "privacy": "private",
3286
- "description": "Handle slot change event to re-read content when nodes are assigned"
3258
+ "name": "handleTriggerClick",
3259
+ "privacy": "private"
3287
3260
  },
3288
3261
  {
3289
3262
  "kind": "method",
3290
- "name": "render"
3263
+ "name": "updatePosition",
3264
+ "privacy": "private"
3291
3265
  },
3292
3266
  {
3293
3267
  "kind": "method",
3294
- "name": "renderContent",
3295
- "privacy": "private"
3268
+ "name": "render"
3296
3269
  }
3297
3270
  ],
3298
3271
  "attributes": [
3299
3272
  {
3300
- "name": "type",
3301
- "fieldName": "type",
3302
- "default": "'slot'",
3303
- "description": "The type of slot content.\n- `slot`: Default, shows a dropzone for components (default)\n- `text`: Shows a single-line text input\n- `textarea`: Shows a multi-line text area",
3273
+ "name": "mode",
3274
+ "fieldName": "mode",
3275
+ "description": "Mode of the popover should be 'default' for internal use",
3304
3276
  "type": {
3305
- "text": "'slot' | 'text' | 'textarea'"
3277
+ "text": "'default' | 'admin'"
3306
3278
  }
3307
3279
  },
3308
3280
  {
3309
- "name": "name",
3310
- "fieldName": "name",
3311
- "default": "''",
3312
- "description": "The name of the slot this placeholder represents.\nShould match the slot name in the parent component.",
3281
+ "name": "open",
3282
+ "fieldName": "open",
3283
+ "default": "false",
3284
+ "description": "Whether the popover is currently open",
3313
3285
  "type": {
3314
- "text": "string"
3286
+ "text": "boolean"
3315
3287
  }
3316
3288
  },
3317
3289
  {
3318
- "name": "label",
3319
- "fieldName": "label",
3320
- "description": "Label to display in admin mode.\nIf not provided, the slot name will be used.",
3290
+ "name": "position",
3291
+ "fieldName": "position",
3292
+ "default": "'bottom'",
3293
+ "description": "Position of the popover relative to its trigger",
3321
3294
  "type": {
3322
- "text": "string"
3295
+ "text": "'top' | 'bottom' | 'left' | 'right' | 'auto'"
3323
3296
  }
3324
3297
  },
3325
3298
  {
3326
- "name": "description",
3327
- "fieldName": "description",
3328
- "description": "Description of what content this slot accepts.\nShown in admin mode to guide content editors.",
3299
+ "name": "align",
3300
+ "fieldName": "align",
3301
+ "default": "'start'",
3302
+ "description": "Alignment of the popover",
3329
3303
  "type": {
3330
- "text": "string"
3304
+ "text": "'start' | 'center' | 'end'"
3331
3305
  }
3332
3306
  },
3333
3307
  {
3334
- "name": "allowed-components",
3335
- "fieldName": "allowedComponents",
3336
- "description": "Comma-separated list of allowed component tags for this slot.\nUsed by CMS to filter available components.",
3308
+ "name": "popover-title",
3309
+ "fieldName": "popoverTitle",
3310
+ "description": "Optional title for the popover header",
3337
3311
  "type": {
3338
3312
  "text": "string"
3339
3313
  }
3340
3314
  },
3341
3315
  {
3342
- "name": "multiple",
3343
- "fieldName": "multiple",
3316
+ "name": "show-close",
3317
+ "fieldName": "showClose",
3344
3318
  "default": "true",
3345
- "description": "Whether multiple components can be dropped in this slot.",
3319
+ "description": "Whether to show a close button in the header",
3346
3320
  "type": {
3347
3321
  "text": "boolean"
3348
3322
  }
3349
3323
  },
3350
3324
  {
3351
- "name": "required",
3352
- "fieldName": "required",
3353
- "default": "false",
3354
- "description": "Whether this slot is required to have content.",
3325
+ "name": "close-on-click-outside",
3326
+ "fieldName": "closeOnClickOutside",
3327
+ "default": "true",
3328
+ "description": "Whether clicking outside closes the popover",
3355
3329
  "type": {
3356
3330
  "text": "boolean"
3357
3331
  }
3358
3332
  },
3359
3333
  {
3360
- "name": "placeholder",
3361
- "fieldName": "placeholder",
3362
- "description": "Placeholder text for text/textarea inputs in admin mode.",
3334
+ "name": "close-on-escape",
3335
+ "fieldName": "closeOnEscape",
3336
+ "default": "true",
3337
+ "description": "Whether pressing Escape closes the popover",
3338
+ "type": {
3339
+ "text": "boolean"
3340
+ }
3341
+ },
3342
+ {
3343
+ "name": "offset",
3344
+ "fieldName": "offset",
3345
+ "default": "8",
3346
+ "description": "Offset from the trigger element (in pixels)",
3347
+ "type": {
3348
+ "text": "number"
3349
+ }
3350
+ },
3351
+ {
3352
+ "name": "width",
3353
+ "fieldName": "width",
3354
+ "description": "Fixed width for the popover (e.g., '300px', '20rem')",
3363
3355
  "type": {
3364
3356
  "text": "string"
3365
3357
  }
3366
3358
  },
3367
3359
  {
3368
- "name": "tag",
3369
- "fieldName": "tag",
3370
- "description": "The HTML tag to create when there's no slotted element.\nUsed with type=\"text\" or type=\"textarea\" to auto-create elements.",
3360
+ "name": "min-width",
3361
+ "fieldName": "minWidth",
3362
+ "default": "'200px'",
3363
+ "description": "Minimum width for the popover (e.g., '200px', '15rem')",
3371
3364
  "type": {
3372
3365
  "text": "string"
3373
3366
  }
3374
3367
  },
3375
3368
  {
3376
- "name": "slot-style",
3377
- "fieldName": "slotStyle",
3378
- "description": "CSS styles for the slot dropzone container.\nUseful for layouts - e.g., \"flex-direction: row\" for horizontal stacks.\nOnly applies in admin mode for type=\"slot\".",
3369
+ "name": "max-width",
3370
+ "fieldName": "maxWidth",
3371
+ "description": "Maximum width for the popover (e.g., '400px', '25rem')",
3379
3372
  "type": {
3380
3373
  "text": "string"
3381
3374
  }
3382
3375
  }
3383
3376
  ],
3384
- "tagName": "le-slot",
3377
+ "tagName": "le-popover",
3385
3378
  "events": [
3386
3379
  {
3387
- "name": "leSlotChange",
3380
+ "name": "lePopoverOpen",
3388
3381
  "type": {
3389
- "text": "EventEmitter<{ name: string; value: string; isValid: boolean }>"
3382
+ "text": "EventEmitter<void>"
3390
3383
  },
3391
- "description": "Emitted when text content changes in admin mode.\nThe event detail contains the new text value and validity."
3384
+ "description": "Emitted when the popover opens"
3385
+ },
3386
+ {
3387
+ "name": "lePopoverClose",
3388
+ "type": {
3389
+ "text": "EventEmitter<void>"
3390
+ },
3391
+ "description": "Emitted when the popover closes"
3392
3392
  }
3393
3393
  ],
3394
3394
  "customElement": true
@@ -3397,18 +3397,18 @@
3397
3397
  "exports": [
3398
3398
  {
3399
3399
  "kind": "js",
3400
- "name": "LeSlot",
3400
+ "name": "LePopover",
3401
3401
  "declaration": {
3402
- "name": "LeSlot",
3403
- "module": "src/components/le-slot/le-slot.tsx"
3402
+ "name": "LePopover",
3403
+ "module": "src/components/le-popover/le-popover.tsx"
3404
3404
  }
3405
3405
  },
3406
3406
  {
3407
3407
  "kind": "custom-element-definition",
3408
- "name": "le-slot",
3408
+ "name": "le-popover",
3409
3409
  "declaration": {
3410
- "name": "LeSlot",
3411
- "module": "src/components/le-slot/le-slot.tsx"
3410
+ "name": "LePopover",
3411
+ "module": "src/components/le-popover/le-popover.tsx"
3412
3412
  }
3413
3413
  }
3414
3414
  ]