le-kit 0.1.19 → 0.2.1

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 (143) hide show
  1. package/dist/cjs/index-pT2cVC5w.js.map +1 -1
  2. package/dist/cjs/le-button_13.cjs.entry.js +17 -21
  3. package/dist/cjs/le-icon.cjs.entry.js +108 -0
  4. package/dist/cjs/le-kit.cjs.js +1 -1
  5. package/dist/cjs/le-multiselect.cjs.entry.js +3 -3
  6. package/dist/cjs/le-navigation.cjs.entry.js +505 -0
  7. package/dist/cjs/le-number-input.cjs.entry.js +1 -1
  8. package/dist/cjs/le-round-progress.cjs.entry.js +1 -1
  9. package/dist/cjs/le-segmented-control.cjs.entry.js +1 -1
  10. package/dist/cjs/le-stack.cjs.entry.js +1 -1
  11. package/dist/cjs/le-tab-bar.cjs.entry.js +1 -1
  12. package/dist/cjs/le-tab-panel.cjs.entry.js +2 -2
  13. package/dist/cjs/le-tab.cjs.entry.js +1 -1
  14. package/dist/cjs/le-tabs.cjs.entry.js +2 -2
  15. package/dist/cjs/le-tag.cjs.entry.js +1 -1
  16. package/dist/cjs/le-turntable.cjs.entry.js +1 -1
  17. package/dist/cjs/loader.cjs.js +1 -1
  18. package/dist/collection/assets/icons/chevron-down.svg +3 -0
  19. package/dist/collection/collection-manifest.json +2 -0
  20. package/dist/collection/components/le-collapse/le-collapse.css +3 -3
  21. package/dist/collection/components/le-collapse/le-collapse.js +11 -15
  22. package/dist/collection/components/le-collapse/le-collapse.js.map +1 -1
  23. package/dist/collection/components/le-icon/le-icon.css +13 -0
  24. package/dist/collection/components/le-icon/le-icon.js +168 -0
  25. package/dist/collection/components/le-icon/le-icon.js.map +1 -0
  26. package/dist/collection/components/le-multiselect/le-multiselect.js +3 -3
  27. package/dist/collection/components/le-navigation/le-navigation.css +323 -0
  28. package/dist/collection/components/le-navigation/le-navigation.js +768 -0
  29. package/dist/collection/components/le-navigation/le-navigation.js.map +1 -0
  30. package/dist/collection/components/le-number-input/le-number-input.js +1 -1
  31. package/dist/collection/components/le-popover/le-popover.js +3 -3
  32. package/dist/collection/components/le-popup/le-popup.js +7 -7
  33. package/dist/collection/components/le-round-progress/le-round-progress.js +1 -1
  34. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +1 -1
  35. package/dist/collection/components/le-segmented-control/le-segmented-control.js +1 -1
  36. package/dist/collection/components/le-select/le-select.js +2 -2
  37. package/dist/collection/components/le-slot/le-slot.js +1 -1
  38. package/dist/collection/components/le-stack/le-stack.js +1 -1
  39. package/dist/collection/components/le-string-input/le-string-input.js +2 -2
  40. package/dist/collection/components/le-tab/le-tab.js +1 -1
  41. package/dist/collection/components/le-tab-bar/le-tab-bar.js +1 -1
  42. package/dist/collection/components/le-tab-panel/le-tab-panel.js +2 -2
  43. package/dist/collection/components/le-tabs/le-tabs.js +2 -2
  44. package/dist/collection/components/le-tag/le-tag.js +1 -1
  45. package/dist/collection/components/le-turntable/le-turntable.js +1 -1
  46. package/dist/collection/dist/components/assets/custom-elements.json +1278 -533
  47. package/dist/collection/dist/components/assets/icons/chevron-down.json +13 -0
  48. package/dist/collection/dist/components/assets/icons/chevron-down.svg +3 -0
  49. package/dist/collection/types/options.js.map +1 -1
  50. package/dist/components/assets/custom-elements.json +1278 -533
  51. package/dist/components/assets/icons/chevron-down.json +13 -0
  52. package/dist/components/assets/icons/chevron-down.svg +3 -0
  53. package/dist/components/index.js.map +1 -1
  54. package/dist/components/le-button2.js +5 -5
  55. package/dist/components/le-collapse.js +1 -137
  56. package/dist/components/le-collapse.js.map +1 -1
  57. package/dist/components/le-collapse2.js +138 -0
  58. package/dist/components/le-collapse2.js.map +1 -0
  59. package/dist/components/le-icon.d.ts +11 -0
  60. package/dist/components/le-icon.js +9 -0
  61. package/dist/components/le-icon.js.map +1 -0
  62. package/dist/components/le-icon2.js +133 -0
  63. package/dist/components/le-icon2.js.map +1 -0
  64. package/dist/components/le-multiselect.js +3 -3
  65. package/dist/components/le-navigation.d.ts +11 -0
  66. package/dist/components/le-navigation.js +605 -0
  67. package/dist/components/le-navigation.js.map +1 -0
  68. package/dist/components/le-number-input.js +1 -1
  69. package/dist/components/le-popover2.js +3 -3
  70. package/dist/components/le-round-progress.js +1 -1
  71. package/dist/components/le-scroll-progress.js +1 -1
  72. package/dist/components/le-segmented-control.js +1 -1
  73. package/dist/components/le-stack.js +1 -1
  74. package/dist/components/le-tab-bar.js +1 -1
  75. package/dist/components/le-tab-panel.js +2 -2
  76. package/dist/components/le-tab2.js +1 -1
  77. package/dist/components/le-tabs.js +2 -2
  78. package/dist/components/le-tag2.js +1 -1
  79. package/dist/components/le-turntable.js +1 -1
  80. package/dist/docs.json +544 -27
  81. package/dist/esm/index-CNv6tzAt.js.map +1 -1
  82. package/dist/esm/le-button_13.entry.js +17 -21
  83. package/dist/esm/le-icon.entry.js +106 -0
  84. package/dist/esm/le-icon.entry.js.map +1 -0
  85. package/dist/esm/le-kit.js +1 -1
  86. package/dist/esm/le-multiselect.entry.js +3 -3
  87. package/dist/esm/le-navigation.entry.js +503 -0
  88. package/dist/esm/le-navigation.entry.js.map +1 -0
  89. package/dist/esm/le-number-input.entry.js +1 -1
  90. package/dist/esm/le-round-progress.entry.js +1 -1
  91. package/dist/esm/le-segmented-control.entry.js +1 -1
  92. package/dist/esm/le-stack.entry.js +1 -1
  93. package/dist/esm/le-tab-bar.entry.js +1 -1
  94. package/dist/esm/le-tab-panel.entry.js +2 -2
  95. package/dist/esm/le-tab.entry.js +1 -1
  96. package/dist/esm/le-tabs.entry.js +2 -2
  97. package/dist/esm/le-tag.entry.js +1 -1
  98. package/dist/esm/le-turntable.entry.js +1 -1
  99. package/dist/esm/loader.js +1 -1
  100. package/dist/le-kit/dist/components/assets/custom-elements.json +1278 -533
  101. package/dist/le-kit/dist/components/assets/icons/chevron-down.json +13 -0
  102. package/dist/le-kit/dist/components/assets/icons/chevron-down.svg +3 -0
  103. package/dist/le-kit/le-kit.esm.js +1 -1
  104. package/dist/le-kit/{p-3327b089.entry.js → p-0ac4397c.entry.js} +2 -2
  105. package/dist/le-kit/{p-dfd20890.entry.js → p-25a29e69.entry.js} +2 -2
  106. package/dist/le-kit/{p-64c2cee1.entry.js → p-511fbb63.entry.js} +2 -2
  107. package/dist/le-kit/{p-4bdb03cb.entry.js → p-58120921.entry.js} +2 -2
  108. package/dist/le-kit/{p-b7c008de.entry.js → p-5ceb06d8.entry.js} +2 -2
  109. package/dist/le-kit/{p-e3f3cc8f.entry.js → p-9a3bdbe1.entry.js} +2 -2
  110. package/dist/le-kit/p-CNv6tzAt.js.map +1 -1
  111. package/dist/le-kit/{p-f88c804a.entry.js → p-a0d2c580.entry.js} +2 -2
  112. package/dist/le-kit/p-b1dc7e06.entry.js +2 -0
  113. package/dist/le-kit/p-b1dc7e06.entry.js.map +1 -0
  114. package/dist/le-kit/p-bb160082.entry.js +2 -0
  115. package/dist/le-kit/p-bb160082.entry.js.map +1 -0
  116. package/dist/le-kit/{p-da0265c5.entry.js → p-de5638c9.entry.js} +2 -2
  117. package/dist/le-kit/{p-1733d907.entry.js → p-e24d3e33.entry.js} +2 -2
  118. package/dist/le-kit/{p-6acdf000.entry.js → p-ec20e438.entry.js} +2 -2
  119. package/dist/le-kit/p-f2fa3bf5.entry.js +2 -0
  120. package/dist/le-kit/p-f2fa3bf5.entry.js.map +1 -0
  121. package/dist/le-kit/{p-02532919.entry.js → p-f4f2c3e7.entry.js} +2 -2
  122. package/dist/types/components/le-collapse/le-collapse.d.ts +5 -3
  123. package/dist/types/components/le-icon/le-icon.d.ts +28 -0
  124. package/dist/types/components/le-navigation/le-navigation.d.ts +116 -0
  125. package/dist/types/components.d.ts +204 -10
  126. package/dist/types/types/options.d.ts +5 -0
  127. package/package.json +1 -1
  128. package/dist/collection/dist/components/assets/.gitkeep +0 -1
  129. package/dist/components/assets/.gitkeep +0 -1
  130. package/dist/le-kit/dist/components/assets/.gitkeep +0 -1
  131. package/dist/le-kit/p-83007215.entry.js +0 -2
  132. package/dist/le-kit/p-83007215.entry.js.map +0 -1
  133. /package/dist/le-kit/{p-3327b089.entry.js.map → p-0ac4397c.entry.js.map} +0 -0
  134. /package/dist/le-kit/{p-dfd20890.entry.js.map → p-25a29e69.entry.js.map} +0 -0
  135. /package/dist/le-kit/{p-64c2cee1.entry.js.map → p-511fbb63.entry.js.map} +0 -0
  136. /package/dist/le-kit/{p-4bdb03cb.entry.js.map → p-58120921.entry.js.map} +0 -0
  137. /package/dist/le-kit/{p-b7c008de.entry.js.map → p-5ceb06d8.entry.js.map} +0 -0
  138. /package/dist/le-kit/{p-e3f3cc8f.entry.js.map → p-9a3bdbe1.entry.js.map} +0 -0
  139. /package/dist/le-kit/{p-f88c804a.entry.js.map → p-a0d2c580.entry.js.map} +0 -0
  140. /package/dist/le-kit/{p-da0265c5.entry.js.map → p-de5638c9.entry.js.map} +0 -0
  141. /package/dist/le-kit/{p-1733d907.entry.js.map → p-e24d3e33.entry.js.map} +0 -0
  142. /package/dist/le-kit/{p-6acdf000.entry.js.map → p-ec20e438.entry.js.map} +0 -0
  143. /package/dist/le-kit/{p-02532919.entry.js.map → p-f4f2c3e7.entry.js.map} +0 -0
@@ -795,6 +795,189 @@
795
795
  }
796
796
  ]
797
797
  },
798
+ {
799
+ "kind": "javascript-module",
800
+ "path": "src/components/le-collapse/le-collapse.tsx",
801
+ "declarations": [
802
+ {
803
+ "kind": "class",
804
+ "description": "Animated show/hide wrapper.\n\nSupports height collapse (auto->0) and/or fading.\nCan optionally listen to the nearest `le-header` shrink events.",
805
+ "name": "LeCollapse",
806
+ "cssProperties": [
807
+ {
808
+ "description": "Transition duration",
809
+ "name": "--le-collapse-duration"
810
+ }
811
+ ],
812
+ "cssParts": [
813
+ {
814
+ "description": "Collapsible region",
815
+ "name": "region"
816
+ },
817
+ {
818
+ "description": "Inner content",
819
+ "name": "content"
820
+ }
821
+ ],
822
+ "slots": [
823
+ {
824
+ "description": "Content to animate",
825
+ "name": ""
826
+ }
827
+ ],
828
+ "members": [
829
+ {
830
+ "kind": "field",
831
+ "name": "el",
832
+ "type": {
833
+ "text": "HTMLElement"
834
+ }
835
+ },
836
+ {
837
+ "kind": "field",
838
+ "name": "closed",
839
+ "type": {
840
+ "text": "boolean"
841
+ },
842
+ "default": "false",
843
+ "description": "Since Stencil boolean props default to `false` when the attribute is missing.\ninstead of `open` defaulting to `true`, using a `closed` prop."
844
+ },
845
+ {
846
+ "kind": "field",
847
+ "name": "scrollDown",
848
+ "type": {
849
+ "text": "boolean"
850
+ },
851
+ "default": "false",
852
+ "description": "Whether the content should scroll down from the top when open."
853
+ },
854
+ {
855
+ "kind": "field",
856
+ "name": "noFading",
857
+ "type": {
858
+ "text": "boolean"
859
+ },
860
+ "default": "false",
861
+ "description": "Stop fading the content when collapsing/expanding."
862
+ },
863
+ {
864
+ "kind": "field",
865
+ "name": "collapseOnHeaderShrink",
866
+ "type": {
867
+ "text": "boolean"
868
+ },
869
+ "default": "false",
870
+ "description": "If true, collapse/expand based on the nearest header shrink event."
871
+ },
872
+ {
873
+ "kind": "method",
874
+ "name": "handleHeaderShrink",
875
+ "parameters": [
876
+ {
877
+ "name": "ev",
878
+ "type": {
879
+ "text": "Event"
880
+ }
881
+ }
882
+ ],
883
+ "description": "Handles `leHeaderShrinkChange` events from the `le-header`.\nIn case multiple headers are present, only the nearest one in the DOM tree is used."
884
+ },
885
+ {
886
+ "kind": "field",
887
+ "name": "headerShrunk",
888
+ "type": {
889
+ "text": "boolean"
890
+ },
891
+ "privacy": "private",
892
+ "default": "false"
893
+ },
894
+ {
895
+ "kind": "method",
896
+ "name": "onOpenChange",
897
+ "privacy": "protected"
898
+ },
899
+ {
900
+ "kind": "method",
901
+ "name": "onDrivenStateChange",
902
+ "privacy": "protected"
903
+ },
904
+ {
905
+ "kind": "method",
906
+ "name": "shouldBeOpen",
907
+ "privacy": "private"
908
+ },
909
+ {
910
+ "kind": "method",
911
+ "name": "applyOpenState",
912
+ "privacy": "private"
913
+ },
914
+ {
915
+ "kind": "method",
916
+ "name": "render"
917
+ }
918
+ ],
919
+ "attributes": [
920
+ {
921
+ "name": "closed",
922
+ "fieldName": "closed",
923
+ "default": "false",
924
+ "description": "Since Stencil boolean props default to `false` when the attribute is missing.\ninstead of `open` defaulting to `true`, using a `closed` prop.",
925
+ "type": {
926
+ "text": "boolean"
927
+ }
928
+ },
929
+ {
930
+ "name": "scroll-down",
931
+ "fieldName": "scrollDown",
932
+ "default": "false",
933
+ "description": "Whether the content should scroll down from the top when open.",
934
+ "type": {
935
+ "text": "boolean"
936
+ }
937
+ },
938
+ {
939
+ "name": "no-fading",
940
+ "fieldName": "noFading",
941
+ "default": "false",
942
+ "description": "Stop fading the content when collapsing/expanding.",
943
+ "type": {
944
+ "text": "boolean"
945
+ }
946
+ },
947
+ {
948
+ "name": "collapse-on-header-shrink",
949
+ "fieldName": "collapseOnHeaderShrink",
950
+ "default": "false",
951
+ "description": "If true, collapse/expand based on the nearest header shrink event.",
952
+ "type": {
953
+ "text": "boolean"
954
+ }
955
+ }
956
+ ],
957
+ "tagName": "le-collapse",
958
+ "events": [],
959
+ "customElement": true
960
+ }
961
+ ],
962
+ "exports": [
963
+ {
964
+ "kind": "js",
965
+ "name": "LeCollapse",
966
+ "declaration": {
967
+ "name": "LeCollapse",
968
+ "module": "src/components/le-collapse/le-collapse.tsx"
969
+ }
970
+ },
971
+ {
972
+ "kind": "custom-element-definition",
973
+ "name": "le-collapse",
974
+ "declaration": {
975
+ "name": "LeCollapse",
976
+ "module": "src/components/le-collapse/le-collapse.tsx"
977
+ }
978
+ }
979
+ ]
980
+ },
798
981
  {
799
982
  "kind": "javascript-module",
800
983
  "path": "src/components/le-card/le-card.tsx",
@@ -1811,31 +1994,21 @@
1811
1994
  },
1812
1995
  {
1813
1996
  "kind": "javascript-module",
1814
- "path": "src/components/le-collapse/le-collapse.tsx",
1997
+ "path": "src/components/le-current-heading/le-current-heading.tsx",
1815
1998
  "declarations": [
1816
1999
  {
1817
2000
  "kind": "class",
1818
- "description": "Animated show/hide wrapper.\n\nSupports height collapse (auto->0) and/or fading.\nCan optionally listen to the nearest `le-header` shrink events.",
1819
- "name": "LeCollapse",
1820
- "cssProperties": [
1821
- {
1822
- "description": "Transition duration",
1823
- "name": "--le-collapse-duration"
1824
- }
1825
- ],
2001
+ "description": "Shows a \"smart\" header title based on what has scrolled out of view.\n\nWhen `selector` matches multiple elements, the title becomes the last element\n(top-to-bottom) that has fully scrolled out above the viewport.",
2002
+ "name": "LeCurrentHeading",
1826
2003
  "cssParts": [
1827
2004
  {
1828
- "description": "Collapsible region",
1829
- "name": "region"
1830
- },
1831
- {
1832
- "description": "Inner content",
1833
- "name": "content"
2005
+ "description": "The rendered title",
2006
+ "name": "title"
1834
2007
  }
1835
2008
  ],
1836
2009
  "slots": [
1837
2010
  {
1838
- "description": "Content to animate",
2011
+ "description": "Optional fallback content if no watched title is active",
1839
2012
  "name": ""
1840
2013
  }
1841
2014
  ],
@@ -1849,203 +2022,30 @@
1849
2022
  },
1850
2023
  {
1851
2024
  "kind": "field",
1852
- "name": "open",
1853
- "type": {
1854
- "text": "boolean"
1855
- },
1856
- "default": "true",
1857
- "description": "Whether the content should be shown."
1858
- },
1859
- {
1860
- "kind": "field",
1861
- "name": "scrollDown",
1862
- "type": {
1863
- "text": "boolean"
1864
- },
1865
- "default": "false",
1866
- "description": "Whether the content should scroll down from the top when open."
1867
- },
1868
- {
1869
- "kind": "field",
1870
- "name": "noFading",
2025
+ "name": "selector",
1871
2026
  "type": {
1872
- "text": "boolean"
2027
+ "text": "string"
1873
2028
  },
1874
- "default": "false",
1875
- "description": "Stop fading the content when collapsing/expanding."
2029
+ "default": "''",
2030
+ "description": "CSS selector for page title/headings to watch (e.g. `.page-title`, `main h2`)."
1876
2031
  },
1877
2032
  {
1878
2033
  "kind": "field",
1879
- "name": "collapseOnHeaderShrink",
2034
+ "name": "activeText",
1880
2035
  "type": {
1881
- "text": "boolean"
2036
+ "text": "string | null"
1882
2037
  },
1883
- "default": "false",
1884
- "description": "If true, collapse/expand based on the nearest header shrink event."
2038
+ "privacy": "private",
2039
+ "default": "null"
1885
2040
  },
1886
2041
  {
1887
2042
  "kind": "method",
1888
- "name": "handleHeaderShrink",
1889
- "parameters": [
1890
- {
1891
- "name": "ev",
1892
- "type": {
1893
- "text": "Event"
1894
- }
1895
- }
1896
- ],
1897
- "description": "Handles `leHeaderShrinkChange` events from the `le-header`.\nIn case multiple headers are present, only the nearest one in the DOM tree is used."
1898
- },
1899
- {
1900
- "kind": "field",
1901
- "name": "headerShrunk",
1902
- "type": {
1903
- "text": "boolean"
1904
- },
1905
- "privacy": "private",
1906
- "default": "false"
2043
+ "name": "onSelectorChange",
2044
+ "privacy": "protected"
1907
2045
  },
1908
2046
  {
1909
2047
  "kind": "method",
1910
- "name": "onOpenChange",
1911
- "privacy": "protected"
1912
- },
1913
- {
1914
- "kind": "method",
1915
- "name": "onDrivenStateChange",
1916
- "privacy": "protected"
1917
- },
1918
- {
1919
- "kind": "method",
1920
- "name": "shouldBeOpen",
1921
- "privacy": "private"
1922
- },
1923
- {
1924
- "kind": "method",
1925
- "name": "applyOpenState",
1926
- "privacy": "private"
1927
- },
1928
- {
1929
- "kind": "method",
1930
- "name": "render"
1931
- }
1932
- ],
1933
- "attributes": [
1934
- {
1935
- "name": "open",
1936
- "fieldName": "open",
1937
- "default": "true",
1938
- "description": "Whether the content should be shown.",
1939
- "type": {
1940
- "text": "boolean"
1941
- }
1942
- },
1943
- {
1944
- "name": "scroll-down",
1945
- "fieldName": "scrollDown",
1946
- "default": "false",
1947
- "description": "Whether the content should scroll down from the top when open.",
1948
- "type": {
1949
- "text": "boolean"
1950
- }
1951
- },
1952
- {
1953
- "name": "no-fading",
1954
- "fieldName": "noFading",
1955
- "default": "false",
1956
- "description": "Stop fading the content when collapsing/expanding.",
1957
- "type": {
1958
- "text": "boolean"
1959
- }
1960
- },
1961
- {
1962
- "name": "collapse-on-header-shrink",
1963
- "fieldName": "collapseOnHeaderShrink",
1964
- "default": "false",
1965
- "description": "If true, collapse/expand based on the nearest header shrink event.",
1966
- "type": {
1967
- "text": "boolean"
1968
- }
1969
- }
1970
- ],
1971
- "tagName": "le-collapse",
1972
- "events": [],
1973
- "customElement": true
1974
- }
1975
- ],
1976
- "exports": [
1977
- {
1978
- "kind": "js",
1979
- "name": "LeCollapse",
1980
- "declaration": {
1981
- "name": "LeCollapse",
1982
- "module": "src/components/le-collapse/le-collapse.tsx"
1983
- }
1984
- },
1985
- {
1986
- "kind": "custom-element-definition",
1987
- "name": "le-collapse",
1988
- "declaration": {
1989
- "name": "LeCollapse",
1990
- "module": "src/components/le-collapse/le-collapse.tsx"
1991
- }
1992
- }
1993
- ]
1994
- },
1995
- {
1996
- "kind": "javascript-module",
1997
- "path": "src/components/le-current-heading/le-current-heading.tsx",
1998
- "declarations": [
1999
- {
2000
- "kind": "class",
2001
- "description": "Shows a \"smart\" header title based on what has scrolled out of view.\n\nWhen `selector` matches multiple elements, the title becomes the last element\n(top-to-bottom) that has fully scrolled out above the viewport.",
2002
- "name": "LeCurrentHeading",
2003
- "cssParts": [
2004
- {
2005
- "description": "The rendered title",
2006
- "name": "title"
2007
- }
2008
- ],
2009
- "slots": [
2010
- {
2011
- "description": "Optional fallback content if no watched title is active",
2012
- "name": ""
2013
- }
2014
- ],
2015
- "members": [
2016
- {
2017
- "kind": "field",
2018
- "name": "el",
2019
- "type": {
2020
- "text": "HTMLElement"
2021
- }
2022
- },
2023
- {
2024
- "kind": "field",
2025
- "name": "selector",
2026
- "type": {
2027
- "text": "string"
2028
- },
2029
- "default": "''",
2030
- "description": "CSS selector for page title/headings to watch (e.g. `.page-title`, `main h2`)."
2031
- },
2032
- {
2033
- "kind": "field",
2034
- "name": "activeText",
2035
- "type": {
2036
- "text": "string | null"
2037
- },
2038
- "privacy": "private",
2039
- "default": "null"
2040
- },
2041
- {
2042
- "kind": "method",
2043
- "name": "onSelectorChange",
2044
- "privacy": "protected"
2045
- },
2046
- {
2047
- "kind": "method",
2048
- "name": "onScroll",
2048
+ "name": "onScroll",
2049
2049
  "privacy": "protected"
2050
2050
  },
2051
2051
  {
@@ -3103,12 +3103,12 @@
3103
3103
  },
3104
3104
  {
3105
3105
  "kind": "javascript-module",
3106
- "path": "src/components/le-multiselect/le-multiselect.tsx",
3106
+ "path": "src/components/le-icon/le-icon.tsx",
3107
3107
  "declarations": [
3108
3108
  {
3109
3109
  "kind": "class",
3110
- "description": "A multiselect component for selecting multiple options.\n\nDisplays selected items as tags with optional search filtering.",
3111
- "name": "LeMultiselect",
3110
+ "description": "",
3111
+ "name": "LeIcon",
3112
3112
  "members": [
3113
3113
  {
3114
3114
  "kind": "field",
@@ -3119,108 +3119,265 @@
3119
3119
  },
3120
3120
  {
3121
3121
  "kind": "field",
3122
- "name": "options",
3123
- "type": {
3124
- "text": "LeOption[] | string"
3125
- },
3126
- "default": "[]",
3127
- "description": "The options to display in the dropdown."
3128
- },
3129
- {
3130
- "kind": "field",
3131
- "name": "value",
3132
- "type": {
3133
- "text": "LeOptionValue[]"
3134
- },
3135
- "default": "[]",
3136
- "description": "The currently selected values."
3137
- },
3138
- {
3139
- "kind": "field",
3140
- "name": "placeholder",
3122
+ "name": "name",
3141
3123
  "type": {
3142
3124
  "text": "string"
3143
3125
  },
3144
- "default": "'Select options...'",
3145
- "description": "Placeholder text when no options are selected."
3126
+ "default": "null",
3127
+ "description": "Name of the icon to display. Corresponds to a JSON file in the assets folder.\nFor example, \"search\" will load the \"search.json\" file."
3146
3128
  },
3147
3129
  {
3148
3130
  "kind": "field",
3149
- "name": "disabled",
3131
+ "name": "size",
3150
3132
  "type": {
3151
- "text": "boolean"
3133
+ "text": "number"
3152
3134
  },
3153
- "default": "false",
3154
- "description": "Whether the multiselect is disabled."
3135
+ "default": "16",
3136
+ "description": "Size of the icon in pixels. Default is 16."
3155
3137
  },
3156
3138
  {
3157
3139
  "kind": "field",
3158
- "name": "required",
3140
+ "name": "iconData",
3159
3141
  "type": {
3160
- "text": "boolean"
3142
+ "text": "any"
3161
3143
  },
3162
- "default": "false",
3163
- "description": "Whether selection is required."
3144
+ "privacy": "private",
3145
+ "default": "null"
3164
3146
  },
3165
3147
  {
3166
3148
  "kind": "field",
3167
- "name": "name",
3149
+ "name": "visible",
3168
3150
  "type": {
3169
- "text": "string | undefined"
3151
+ "text": "boolean"
3170
3152
  },
3171
- "description": "Name attribute for form submission."
3153
+ "privacy": "private",
3154
+ "default": "false"
3172
3155
  },
3173
3156
  {
3174
- "kind": "field",
3175
- "name": "fullWidth",
3176
- "type": {
3177
- "text": "boolean"
3178
- },
3179
- "default": "false",
3180
- "description": "Whether the multiselect should take full width of its container."
3157
+ "kind": "method",
3158
+ "name": "loadIconData",
3159
+ "privacy": "private",
3160
+ "return": {
3161
+ "type": {
3162
+ "text": "Promise<void>"
3163
+ }
3164
+ }
3181
3165
  },
3182
3166
  {
3183
3167
  "kind": "field",
3184
- "name": "size",
3168
+ "name": "intersectionObserver",
3185
3169
  "type": {
3186
- "text": "'small' | 'medium' | 'large'"
3170
+ "text": "IntersectionObserver"
3187
3171
  },
3188
- "default": "'medium'",
3189
- "description": "Size variant of the multiselect."
3172
+ "privacy": "private"
3190
3173
  },
3191
3174
  {
3192
- "kind": "field",
3193
- "name": "maxSelections",
3194
- "type": {
3195
- "text": "number | undefined"
3175
+ "kind": "method",
3176
+ "name": "waitUntilVisible",
3177
+ "privacy": "private",
3178
+ "return": {
3179
+ "type": {
3180
+ "text": "void"
3181
+ }
3196
3182
  },
3197
- "description": "Maximum number of selections allowed."
3183
+ "parameters": [
3184
+ {
3185
+ "name": "callback",
3186
+ "type": {
3187
+ "text": "() => void"
3188
+ }
3189
+ }
3190
+ ]
3198
3191
  },
3199
3192
  {
3200
- "kind": "field",
3201
- "name": "selectAllLabel",
3202
- "type": {
3203
- "text": "string"
3204
- },
3193
+ "kind": "method",
3194
+ "name": "renderSVGContent",
3205
3195
  "privacy": "private",
3206
- "default": "'Select All'",
3207
- "description": "Labels for the \"Select All\" option."
3196
+ "parameters": [
3197
+ {
3198
+ "name": "children",
3199
+ "optional": true,
3200
+ "type": {
3201
+ "text": "any[]"
3202
+ }
3203
+ }
3204
+ ],
3205
+ "description": "Renders the SVG content out of a JSON data in a format:\n{ \"viewBox\": \"...\", children: [{ \"tag\": \"g\", \"\"children\": [ ... ], ...attrs }, ...] }",
3206
+ "return": {
3207
+ "type": {
3208
+ "text": ""
3209
+ }
3210
+ }
3208
3211
  },
3209
3212
  {
3210
- "kind": "field",
3211
- "name": "deselectAllLabel",
3213
+ "kind": "method",
3214
+ "name": "render"
3215
+ }
3216
+ ],
3217
+ "attributes": [
3218
+ {
3219
+ "name": "name",
3220
+ "fieldName": "name",
3221
+ "default": "null",
3222
+ "description": "Name of the icon to display. Corresponds to a JSON file in the assets folder.\nFor example, \"search\" will load the \"search.json\" file.",
3212
3223
  "type": {
3213
3224
  "text": "string"
3214
- },
3215
- "privacy": "private",
3216
- "default": "'Deselect All'"
3225
+ }
3217
3226
  },
3218
3227
  {
3219
- "kind": "field",
3220
- "name": "showSelectAll",
3228
+ "name": "size",
3229
+ "fieldName": "size",
3230
+ "default": "16",
3231
+ "description": "Size of the icon in pixels. Default is 16.",
3221
3232
  "type": {
3222
- "text": "boolean | string | string[]"
3223
- },
3233
+ "text": "number"
3234
+ }
3235
+ }
3236
+ ],
3237
+ "tagName": "le-icon",
3238
+ "events": [],
3239
+ "customElement": true
3240
+ }
3241
+ ],
3242
+ "exports": [
3243
+ {
3244
+ "kind": "js",
3245
+ "name": "LeIcon",
3246
+ "declaration": {
3247
+ "name": "LeIcon",
3248
+ "module": "src/components/le-icon/le-icon.tsx"
3249
+ }
3250
+ },
3251
+ {
3252
+ "kind": "custom-element-definition",
3253
+ "name": "le-icon",
3254
+ "declaration": {
3255
+ "name": "LeIcon",
3256
+ "module": "src/components/le-icon/le-icon.tsx"
3257
+ }
3258
+ }
3259
+ ]
3260
+ },
3261
+ {
3262
+ "kind": "javascript-module",
3263
+ "path": "src/components/le-multiselect/le-multiselect.tsx",
3264
+ "declarations": [
3265
+ {
3266
+ "kind": "class",
3267
+ "description": "A multiselect component for selecting multiple options.\n\nDisplays selected items as tags with optional search filtering.",
3268
+ "name": "LeMultiselect",
3269
+ "members": [
3270
+ {
3271
+ "kind": "field",
3272
+ "name": "el",
3273
+ "type": {
3274
+ "text": "HTMLElement"
3275
+ }
3276
+ },
3277
+ {
3278
+ "kind": "field",
3279
+ "name": "options",
3280
+ "type": {
3281
+ "text": "LeOption[] | string"
3282
+ },
3283
+ "default": "[]",
3284
+ "description": "The options to display in the dropdown."
3285
+ },
3286
+ {
3287
+ "kind": "field",
3288
+ "name": "value",
3289
+ "type": {
3290
+ "text": "LeOptionValue[]"
3291
+ },
3292
+ "default": "[]",
3293
+ "description": "The currently selected values."
3294
+ },
3295
+ {
3296
+ "kind": "field",
3297
+ "name": "placeholder",
3298
+ "type": {
3299
+ "text": "string"
3300
+ },
3301
+ "default": "'Select options...'",
3302
+ "description": "Placeholder text when no options are selected."
3303
+ },
3304
+ {
3305
+ "kind": "field",
3306
+ "name": "disabled",
3307
+ "type": {
3308
+ "text": "boolean"
3309
+ },
3310
+ "default": "false",
3311
+ "description": "Whether the multiselect is disabled."
3312
+ },
3313
+ {
3314
+ "kind": "field",
3315
+ "name": "required",
3316
+ "type": {
3317
+ "text": "boolean"
3318
+ },
3319
+ "default": "false",
3320
+ "description": "Whether selection is required."
3321
+ },
3322
+ {
3323
+ "kind": "field",
3324
+ "name": "name",
3325
+ "type": {
3326
+ "text": "string | undefined"
3327
+ },
3328
+ "description": "Name attribute for form submission."
3329
+ },
3330
+ {
3331
+ "kind": "field",
3332
+ "name": "fullWidth",
3333
+ "type": {
3334
+ "text": "boolean"
3335
+ },
3336
+ "default": "false",
3337
+ "description": "Whether the multiselect should take full width of its container."
3338
+ },
3339
+ {
3340
+ "kind": "field",
3341
+ "name": "size",
3342
+ "type": {
3343
+ "text": "'small' | 'medium' | 'large'"
3344
+ },
3345
+ "default": "'medium'",
3346
+ "description": "Size variant of the multiselect."
3347
+ },
3348
+ {
3349
+ "kind": "field",
3350
+ "name": "maxSelections",
3351
+ "type": {
3352
+ "text": "number | undefined"
3353
+ },
3354
+ "description": "Maximum number of selections allowed."
3355
+ },
3356
+ {
3357
+ "kind": "field",
3358
+ "name": "selectAllLabel",
3359
+ "type": {
3360
+ "text": "string"
3361
+ },
3362
+ "privacy": "private",
3363
+ "default": "'Select All'",
3364
+ "description": "Labels for the \"Select All\" option."
3365
+ },
3366
+ {
3367
+ "kind": "field",
3368
+ "name": "deselectAllLabel",
3369
+ "type": {
3370
+ "text": "string"
3371
+ },
3372
+ "privacy": "private",
3373
+ "default": "'Deselect All'"
3374
+ },
3375
+ {
3376
+ "kind": "field",
3377
+ "name": "showSelectAll",
3378
+ "type": {
3379
+ "text": "boolean | string | string[]"
3380
+ },
3224
3381
  "default": "false",
3225
3382
  "description": "Whether to show a \"Select All\" option.\nAlso accepts a string or array of strings to customize the label(s)."
3226
3383
  },
@@ -3496,52 +3653,640 @@
3496
3653
  "name": "searchable",
3497
3654
  "fieldName": "searchable",
3498
3655
  "default": "false",
3499
- "description": "Whether the input is searchable.",
3656
+ "description": "Whether the input is searchable.",
3657
+ "type": {
3658
+ "text": "boolean"
3659
+ }
3660
+ },
3661
+ {
3662
+ "name": "empty-text",
3663
+ "fieldName": "emptyText",
3664
+ "default": "'No results found'",
3665
+ "description": "Text to show when no options match the search.",
3666
+ "type": {
3667
+ "text": "string"
3668
+ }
3669
+ },
3670
+ {
3671
+ "name": "open",
3672
+ "fieldName": "open",
3673
+ "default": "false",
3674
+ "description": "Whether the dropdown is currently open.",
3675
+ "type": {
3676
+ "text": "boolean"
3677
+ }
3678
+ }
3679
+ ],
3680
+ "tagName": "le-multiselect",
3681
+ "events": [
3682
+ {
3683
+ "name": "leChange",
3684
+ "type": {
3685
+ "text": "EventEmitter<LeMultiOptionSelectDetail>"
3686
+ },
3687
+ "description": "Emitted when the selected values change."
3688
+ },
3689
+ {
3690
+ "name": "leOpen",
3691
+ "type": {
3692
+ "text": "EventEmitter<void>"
3693
+ },
3694
+ "description": "Emitted when the dropdown opens."
3695
+ },
3696
+ {
3697
+ "name": "leClose",
3698
+ "type": {
3699
+ "text": "EventEmitter<void>"
3700
+ },
3701
+ "description": "Emitted when the dropdown closes."
3702
+ }
3703
+ ],
3704
+ "customElement": true
3705
+ }
3706
+ ],
3707
+ "exports": [
3708
+ {
3709
+ "kind": "js",
3710
+ "name": "LeMultiselect",
3711
+ "declaration": {
3712
+ "name": "LeMultiselect",
3713
+ "module": "src/components/le-multiselect/le-multiselect.tsx"
3714
+ }
3715
+ },
3716
+ {
3717
+ "kind": "custom-element-definition",
3718
+ "name": "le-multiselect",
3719
+ "declaration": {
3720
+ "name": "LeMultiselect",
3721
+ "module": "src/components/le-multiselect/le-multiselect.tsx"
3722
+ }
3723
+ }
3724
+ ]
3725
+ },
3726
+ {
3727
+ "kind": "javascript-module",
3728
+ "path": "src/components/le-navigation/le-navigation.tsx",
3729
+ "declarations": [
3730
+ {
3731
+ "kind": "class",
3732
+ "description": "Navigation component with vertical (tree) and horizontal (menu) layouts.\n\n- Accepts items as `LeOption[]` or a JSON string.\n- Supports hierarchical items via `children`.\n- Supports persisted expansion via `open` on items.",
3733
+ "name": "LeNavigation",
3734
+ "members": [
3735
+ {
3736
+ "kind": "field",
3737
+ "name": "el",
3738
+ "type": {
3739
+ "text": "HTMLElement"
3740
+ }
3741
+ },
3742
+ {
3743
+ "kind": "field",
3744
+ "name": "items",
3745
+ "type": {
3746
+ "text": "LeOption[] | string"
3747
+ },
3748
+ "default": "[]",
3749
+ "description": "Navigation items.\nCan be passed as an array or JSON string (same pattern as le-select)."
3750
+ },
3751
+ {
3752
+ "kind": "field",
3753
+ "name": "orientation",
3754
+ "type": {
3755
+ "text": "'vertical' | 'horizontal'"
3756
+ },
3757
+ "default": "'vertical'",
3758
+ "description": "Layout orientation."
3759
+ },
3760
+ {
3761
+ "kind": "field",
3762
+ "name": "wrap",
3763
+ "type": {
3764
+ "text": "boolean"
3765
+ },
3766
+ "default": "true",
3767
+ "description": "Horizontal wrapping behavior.\nIf false, overflow behavior depends on `overflowMode`."
3768
+ },
3769
+ {
3770
+ "kind": "field",
3771
+ "name": "overflowMode",
3772
+ "type": {
3773
+ "text": "'more' | 'hamburger'"
3774
+ },
3775
+ "default": "'more'",
3776
+ "description": "Overflow behavior for horizontal, non-wrapping menus.\n- more: moves overflow items into a \"More\" popover\n- hamburger: turns the whole nav into a hamburger popover"
3777
+ },
3778
+ {
3779
+ "kind": "field",
3780
+ "name": "searchable",
3781
+ "type": {
3782
+ "text": "boolean"
3783
+ },
3784
+ "default": "false",
3785
+ "description": "Enables a search input for the vertical navigation."
3786
+ },
3787
+ {
3788
+ "kind": "field",
3789
+ "name": "searchPlaceholder",
3790
+ "type": {
3791
+ "text": "string"
3792
+ },
3793
+ "default": "'Search...'",
3794
+ "description": "Placeholder text for the search input."
3795
+ },
3796
+ {
3797
+ "kind": "field",
3798
+ "name": "emptyText",
3799
+ "type": {
3800
+ "text": "string"
3801
+ },
3802
+ "default": "'No results found'",
3803
+ "description": "Text shown when no items match the filter."
3804
+ },
3805
+ {
3806
+ "kind": "field",
3807
+ "name": "submenuSearchable",
3808
+ "type": {
3809
+ "text": "boolean"
3810
+ },
3811
+ "default": "false",
3812
+ "description": "Whether submenu popovers should include a filter input."
3813
+ },
3814
+ {
3815
+ "kind": "field",
3816
+ "name": "searchQuery",
3817
+ "type": {
3818
+ "text": "string"
3819
+ },
3820
+ "privacy": "private",
3821
+ "default": "''"
3822
+ },
3823
+ {
3824
+ "kind": "field",
3825
+ "name": "openState",
3826
+ "type": {
3827
+ "text": "Record<string, boolean>"
3828
+ },
3829
+ "privacy": "private",
3830
+ "default": "{}"
3831
+ },
3832
+ {
3833
+ "kind": "field",
3834
+ "name": "overflowIds",
3835
+ "type": {
3836
+ "text": "string[]"
3837
+ },
3838
+ "privacy": "private",
3839
+ "default": "[]"
3840
+ },
3841
+ {
3842
+ "kind": "field",
3843
+ "name": "hamburgerActive",
3844
+ "type": {
3845
+ "text": "boolean"
3846
+ },
3847
+ "privacy": "private",
3848
+ "default": "false"
3849
+ },
3850
+ {
3851
+ "kind": "field",
3852
+ "name": "submenuQueries",
3853
+ "type": {
3854
+ "text": "Record<string, string>"
3855
+ },
3856
+ "privacy": "private",
3857
+ "default": "{}"
3858
+ },
3859
+ {
3860
+ "kind": "field",
3861
+ "name": "navContainerEl",
3862
+ "type": {
3863
+ "text": "HTMLElement | undefined"
3864
+ },
3865
+ "privacy": "private"
3866
+ },
3867
+ {
3868
+ "kind": "field",
3869
+ "name": "topItemEls",
3870
+ "type": {
3871
+ "text": "Map<string, HTMLElement>"
3872
+ },
3873
+ "privacy": "private",
3874
+ "default": "new Map()"
3875
+ },
3876
+ {
3877
+ "kind": "field",
3878
+ "name": "popoverRefs",
3879
+ "type": {
3880
+ "text": "Map<string, HTMLLePopoverElement>"
3881
+ },
3882
+ "privacy": "private",
3883
+ "default": "new Map()"
3884
+ },
3885
+ {
3886
+ "kind": "field",
3887
+ "name": "moreTriggerEl",
3888
+ "type": {
3889
+ "text": "HTMLElement | undefined"
3890
+ },
3891
+ "privacy": "private"
3892
+ },
3893
+ {
3894
+ "kind": "field",
3895
+ "name": "resizeObserver",
3896
+ "type": {
3897
+ "text": "ResizeObserver | undefined"
3898
+ },
3899
+ "privacy": "private"
3900
+ },
3901
+ {
3902
+ "kind": "field",
3903
+ "name": "instanceId",
3904
+ "type": {
3905
+ "text": "string"
3906
+ },
3907
+ "privacy": "private"
3908
+ },
3909
+ {
3910
+ "kind": "method",
3911
+ "name": "handleLayoutInputsChange"
3912
+ },
3913
+ {
3914
+ "kind": "method",
3915
+ "name": "setupResizeObserver",
3916
+ "privacy": "private"
3917
+ },
3918
+ {
3919
+ "kind": "method",
3920
+ "name": "observeContainer",
3921
+ "privacy": "private",
3922
+ "parameters": [
3923
+ {
3924
+ "name": "el",
3925
+ "optional": true,
3926
+ "type": {
3927
+ "text": "HTMLElement"
3928
+ }
3929
+ }
3930
+ ]
3931
+ },
3932
+ {
3933
+ "kind": "method",
3934
+ "name": "scheduleOverflowRecalc",
3935
+ "privacy": "private"
3936
+ },
3937
+ {
3938
+ "kind": "field",
3939
+ "name": "parsedItems",
3940
+ "type": {
3941
+ "text": "LeOption[]"
3942
+ },
3943
+ "privacy": "private",
3944
+ "readonly": true
3945
+ },
3946
+ {
3947
+ "kind": "method",
3948
+ "name": "getItemId",
3949
+ "privacy": "private",
3950
+ "return": {
3951
+ "type": {
3952
+ "text": "string"
3953
+ }
3954
+ },
3955
+ "parameters": [
3956
+ {
3957
+ "name": "item",
3958
+ "type": {
3959
+ "text": "LeOption"
3960
+ }
3961
+ },
3962
+ {
3963
+ "name": "path",
3964
+ "type": {
3965
+ "text": "string"
3966
+ }
3967
+ }
3968
+ ]
3969
+ },
3970
+ {
3971
+ "kind": "method",
3972
+ "name": "getChildItems",
3973
+ "privacy": "private",
3974
+ "return": {
3975
+ "type": {
3976
+ "text": "LeOption[]"
3977
+ }
3978
+ },
3979
+ "parameters": [
3980
+ {
3981
+ "name": "item",
3982
+ "type": {
3983
+ "text": "LeOption"
3984
+ }
3985
+ }
3986
+ ]
3987
+ },
3988
+ {
3989
+ "kind": "method",
3990
+ "name": "isOpen",
3991
+ "privacy": "private",
3992
+ "return": {
3993
+ "type": {
3994
+ "text": "boolean"
3995
+ }
3996
+ },
3997
+ "parameters": [
3998
+ {
3999
+ "name": "item",
4000
+ "type": {
4001
+ "text": "LeOption"
4002
+ }
4003
+ },
4004
+ {
4005
+ "name": "id",
4006
+ "type": {
4007
+ "text": "string"
4008
+ }
4009
+ }
4010
+ ]
4011
+ },
4012
+ {
4013
+ "kind": "method",
4014
+ "name": "setOpen",
4015
+ "privacy": "private",
4016
+ "parameters": [
4017
+ {
4018
+ "name": "id",
4019
+ "type": {
4020
+ "text": "string"
4021
+ }
4022
+ },
4023
+ {
4024
+ "name": "open",
4025
+ "type": {
4026
+ "text": "boolean"
4027
+ }
4028
+ }
4029
+ ]
4030
+ },
4031
+ {
4032
+ "kind": "method",
4033
+ "name": "matchesQuery",
4034
+ "privacy": "private",
4035
+ "return": {
4036
+ "type": {
4037
+ "text": "boolean"
4038
+ }
4039
+ },
4040
+ "parameters": [
4041
+ {
4042
+ "name": "option",
4043
+ "type": {
4044
+ "text": "LeOption"
4045
+ }
4046
+ },
4047
+ {
4048
+ "name": "query",
4049
+ "type": {
4050
+ "text": "string"
4051
+ }
4052
+ }
4053
+ ]
4054
+ },
4055
+ {
4056
+ "kind": "method",
4057
+ "name": "filterTree",
4058
+ "privacy": "private",
4059
+ "return": {
4060
+ "type": {
4061
+ "text": "LeOption[]"
4062
+ }
4063
+ },
4064
+ "parameters": [
4065
+ {
4066
+ "name": "items",
4067
+ "type": {
4068
+ "text": "LeOption[]"
4069
+ }
4070
+ },
4071
+ {
4072
+ "name": "query",
4073
+ "type": {
4074
+ "text": "string"
4075
+ }
4076
+ },
4077
+ {
4078
+ "name": "pathPrefix",
4079
+ "type": {
4080
+ "text": "string"
4081
+ }
4082
+ },
4083
+ {
4084
+ "name": "autoOpen",
4085
+ "type": {
4086
+ "text": "Set<string>"
4087
+ }
4088
+ }
4089
+ ]
4090
+ },
4091
+ {
4092
+ "kind": "field",
4093
+ "name": "handleItemSelect",
4094
+ "privacy": "private"
4095
+ },
4096
+ {
4097
+ "kind": "field",
4098
+ "name": "handleToggle",
4099
+ "privacy": "private"
4100
+ },
4101
+ {
4102
+ "kind": "field",
4103
+ "name": "handleSearchInput",
4104
+ "privacy": "private"
4105
+ },
4106
+ {
4107
+ "kind": "field",
4108
+ "name": "handleSubmenuSearchInput",
4109
+ "privacy": "private"
4110
+ },
4111
+ {
4112
+ "kind": "method",
4113
+ "name": "getTopLevelIds",
4114
+ "privacy": "private",
4115
+ "return": {
4116
+ "type": {
4117
+ "text": "string[]"
4118
+ }
4119
+ },
4120
+ "parameters": [
4121
+ {
4122
+ "name": "items",
4123
+ "type": {
4124
+ "text": "LeOption[]"
4125
+ }
4126
+ }
4127
+ ]
4128
+ },
4129
+ {
4130
+ "kind": "method",
4131
+ "name": "computeOverflow",
4132
+ "privacy": "private"
4133
+ },
4134
+ {
4135
+ "kind": "method",
4136
+ "name": "renderHorizontalMeasureItem",
4137
+ "privacy": "private",
4138
+ "parameters": [
4139
+ {
4140
+ "name": "item",
4141
+ "type": {
4142
+ "text": "LeOption"
4143
+ }
4144
+ },
4145
+ {
4146
+ "name": "index",
4147
+ "type": {
4148
+ "text": "number"
4149
+ }
4150
+ }
4151
+ ]
4152
+ },
4153
+ {
4154
+ "kind": "method",
4155
+ "name": "renderVerticalList",
4156
+ "privacy": "private",
4157
+ "parameters": [
4158
+ {
4159
+ "name": "items",
4160
+ "type": {
4161
+ "text": "LeOption[]"
4162
+ }
4163
+ },
4164
+ {
4165
+ "name": "{\n depth,\n pathPrefix,\n autoOpenIds,\n searchable,\n searchQuery,\n searchPlaceholder,\n emptyText,\n submenuId,\n }",
4166
+ "type": {
4167
+ "text": "VerticalListRenderOptions"
4168
+ }
4169
+ }
4170
+ ]
4171
+ },
4172
+ {
4173
+ "kind": "method",
4174
+ "name": "renderHorizontalItem",
4175
+ "privacy": "private",
4176
+ "parameters": [
4177
+ {
4178
+ "name": "item",
4179
+ "type": {
4180
+ "text": "LeOption"
4181
+ }
4182
+ },
4183
+ {
4184
+ "name": "index",
4185
+ "type": {
4186
+ "text": "number"
4187
+ }
4188
+ }
4189
+ ]
4190
+ },
4191
+ {
4192
+ "kind": "method",
4193
+ "name": "renderHorizontal",
4194
+ "privacy": "private"
4195
+ },
4196
+ {
4197
+ "kind": "method",
4198
+ "name": "render"
4199
+ }
4200
+ ],
4201
+ "attributes": [
4202
+ {
4203
+ "name": "items",
4204
+ "fieldName": "items",
4205
+ "default": "[]",
4206
+ "description": "Navigation items.\nCan be passed as an array or JSON string (same pattern as le-select).",
4207
+ "type": {
4208
+ "text": "LeOption[] | string"
4209
+ }
4210
+ },
4211
+ {
4212
+ "name": "orientation",
4213
+ "fieldName": "orientation",
4214
+ "default": "'vertical'",
4215
+ "description": "Layout orientation.",
4216
+ "type": {
4217
+ "text": "'vertical' | 'horizontal'"
4218
+ }
4219
+ },
4220
+ {
4221
+ "name": "wrap",
4222
+ "fieldName": "wrap",
4223
+ "default": "true",
4224
+ "description": "Horizontal wrapping behavior.\nIf false, overflow behavior depends on `overflowMode`.",
4225
+ "type": {
4226
+ "text": "boolean"
4227
+ }
4228
+ },
4229
+ {
4230
+ "name": "overflow-mode",
4231
+ "fieldName": "overflowMode",
4232
+ "default": "'more'",
4233
+ "description": "Overflow behavior for horizontal, non-wrapping menus.\n- more: moves overflow items into a \"More\" popover\n- hamburger: turns the whole nav into a hamburger popover",
4234
+ "type": {
4235
+ "text": "'more' | 'hamburger'"
4236
+ }
4237
+ },
4238
+ {
4239
+ "name": "searchable",
4240
+ "fieldName": "searchable",
4241
+ "default": "false",
4242
+ "description": "Enables a search input for the vertical navigation.",
3500
4243
  "type": {
3501
4244
  "text": "boolean"
3502
4245
  }
3503
4246
  },
4247
+ {
4248
+ "name": "search-placeholder",
4249
+ "fieldName": "searchPlaceholder",
4250
+ "default": "'Search...'",
4251
+ "description": "Placeholder text for the search input.",
4252
+ "type": {
4253
+ "text": "string"
4254
+ }
4255
+ },
3504
4256
  {
3505
4257
  "name": "empty-text",
3506
4258
  "fieldName": "emptyText",
3507
4259
  "default": "'No results found'",
3508
- "description": "Text to show when no options match the search.",
4260
+ "description": "Text shown when no items match the filter.",
3509
4261
  "type": {
3510
4262
  "text": "string"
3511
4263
  }
3512
4264
  },
3513
4265
  {
3514
- "name": "open",
3515
- "fieldName": "open",
4266
+ "name": "submenu-searchable",
4267
+ "fieldName": "submenuSearchable",
3516
4268
  "default": "false",
3517
- "description": "Whether the dropdown is currently open.",
4269
+ "description": "Whether submenu popovers should include a filter input.",
3518
4270
  "type": {
3519
4271
  "text": "boolean"
3520
4272
  }
3521
4273
  }
3522
4274
  ],
3523
- "tagName": "le-multiselect",
4275
+ "tagName": "le-navigation",
3524
4276
  "events": [
3525
4277
  {
3526
- "name": "leChange",
3527
- "type": {
3528
- "text": "EventEmitter<LeMultiOptionSelectDetail>"
3529
- },
3530
- "description": "Emitted when the selected values change."
3531
- },
3532
- {
3533
- "name": "leOpen",
4278
+ "name": "leNavItemSelect",
3534
4279
  "type": {
3535
- "text": "EventEmitter<void>"
4280
+ "text": "EventEmitter<LeNavigationItemSelectDetail>"
3536
4281
  },
3537
- "description": "Emitted when the dropdown opens."
4282
+ "description": "Fired when a navigation item is activated.\n\nThis event is cancelable. Call `event.preventDefault()` to prevent\ndefault browser navigation and implement custom routing."
3538
4283
  },
3539
4284
  {
3540
- "name": "leClose",
4285
+ "name": "leNavItemToggle",
3541
4286
  "type": {
3542
- "text": "EventEmitter<void>"
4287
+ "text": "EventEmitter<LeNavigationItemToggleDetail>"
3543
4288
  },
3544
- "description": "Emitted when the dropdown closes."
4289
+ "description": "Fired when a tree branch is toggled."
3545
4290
  }
3546
4291
  ],
3547
4292
  "customElement": true
@@ -3550,18 +4295,18 @@
3550
4295
  "exports": [
3551
4296
  {
3552
4297
  "kind": "js",
3553
- "name": "LeMultiselect",
4298
+ "name": "LeNavigation",
3554
4299
  "declaration": {
3555
- "name": "LeMultiselect",
3556
- "module": "src/components/le-multiselect/le-multiselect.tsx"
4300
+ "name": "LeNavigation",
4301
+ "module": "src/components/le-navigation/le-navigation.tsx"
3557
4302
  }
3558
4303
  },
3559
4304
  {
3560
4305
  "kind": "custom-element-definition",
3561
- "name": "le-multiselect",
4306
+ "name": "le-navigation",
3562
4307
  "declaration": {
3563
- "name": "LeMultiselect",
3564
- "module": "src/components/le-multiselect/le-multiselect.tsx"
4308
+ "name": "LeNavigation",
4309
+ "module": "src/components/le-navigation/le-navigation.tsx"
3565
4310
  }
3566
4311
  }
3567
4312
  ]
@@ -7785,263 +8530,36 @@
7785
8530
  "type": {
7786
8531
  "text": "boolean"
7787
8532
  }
7788
- }
7789
- ],
7790
- "tagName": "le-tab-bar",
7791
- "events": [
7792
- {
7793
- "name": "leTabChange",
7794
- "type": {
7795
- "text": "EventEmitter<LeOptionSelectDetail>"
7796
- },
7797
- "description": "Emitted when the selected tab changes."
7798
- }
7799
- ],
7800
- "customElement": true
7801
- }
7802
- ],
7803
- "exports": [
7804
- {
7805
- "kind": "js",
7806
- "name": "LeTabBar",
7807
- "declaration": {
7808
- "name": "LeTabBar",
7809
- "module": "src/components/le-tab-bar/le-tab-bar.tsx"
7810
- }
7811
- },
7812
- {
7813
- "kind": "custom-element-definition",
7814
- "name": "le-tab-bar",
7815
- "declaration": {
7816
- "name": "LeTabBar",
7817
- "module": "src/components/le-tab-bar/le-tab-bar.tsx"
7818
- }
7819
- }
7820
- ]
7821
- },
7822
- {
7823
- "kind": "javascript-module",
7824
- "path": "src/components/le-tab-panel/le-tab-panel.tsx",
7825
- "declarations": [
7826
- {
7827
- "kind": "class",
7828
- "description": "A tab panel component used as a child of le-tabs.\n\nEach le-tab-panel defines both the tab button label and the panel content.\nThe parent le-tabs component automatically reads these panels and creates\nthe tab interface.",
7829
- "name": "LeTabPanel",
7830
- "slots": [
7831
- {
7832
- "description": "Default slot for panel content",
7833
- "name": ""
7834
- }
7835
- ],
7836
- "members": [
7837
- {
7838
- "kind": "field",
7839
- "name": "el",
7840
- "type": {
7841
- "text": "HTMLLeTabPanelElement"
7842
- }
7843
- },
7844
- {
7845
- "kind": "field",
7846
- "name": "label",
7847
- "type": {
7848
- "text": "string"
7849
- },
7850
- "description": "The label displayed in the tab button."
7851
- },
7852
- {
7853
- "kind": "field",
7854
- "name": "value",
7855
- "type": {
7856
- "text": "string | undefined"
7857
- },
7858
- "description": "The value used to identify this tab.\nDefaults to the label if not provided."
7859
- },
7860
- {
7861
- "kind": "field",
7862
- "name": "iconStart",
7863
- "type": {
7864
- "text": "string | undefined"
7865
- },
7866
- "description": "Icon displayed at the start of the tab button.\nCan be an emoji, URL, or icon class."
7867
- },
7868
- {
7869
- "kind": "field",
7870
- "name": "iconEnd",
7871
- "type": {
7872
- "text": "string | undefined"
7873
- },
7874
- "description": "Icon displayed at the end of the tab button."
7875
- },
7876
- {
7877
- "kind": "field",
7878
- "name": "disabled",
7879
- "type": {
7880
- "text": "boolean"
7881
- },
7882
- "default": "false",
7883
- "description": "Whether this tab is disabled."
7884
- },
7885
- {
7886
- "kind": "field",
7887
- "name": "lazy",
7888
- "type": {
7889
- "text": "boolean"
7890
- },
7891
- "default": "false",
7892
- "description": "Whether to render the panel content only when active (lazy loading).\nWhen true, content is not rendered until the tab is first selected.\nWhen false (default), content is always in DOM but hidden when inactive."
7893
- },
7894
- {
7895
- "kind": "field",
7896
- "name": "active",
7897
- "type": {
7898
- "text": "boolean"
7899
- },
7900
- "default": "false",
7901
- "description": "Internal: Whether this panel is currently active (set by parent le-tabs)"
7902
- },
7903
- {
7904
- "kind": "field",
7905
- "name": "hasBeenActive",
7906
- "type": {
7907
- "text": "boolean"
7908
- },
7909
- "default": "false",
7910
- "description": "Internal: Track if panel has ever been activated (for lazy rendering)"
7911
- },
7912
- {
7913
- "kind": "method",
7914
- "name": "activeChanged",
7915
- "parameters": [
7916
- {
7917
- "name": "isActive",
7918
- "type": {
7919
- "text": "boolean"
7920
- }
7921
- }
7922
- ]
7923
- },
7924
- {
7925
- "kind": "method",
7926
- "name": "getValue",
7927
- "return": {
7928
- "type": {
7929
- "text": "Promise<string>"
7930
- }
7931
- },
7932
- "description": "Get the effective value (value or label as fallback)"
7933
- },
7934
- {
7935
- "kind": "method",
7936
- "name": "getTabConfig",
7937
- "return": {
7938
- "type": {
7939
- "text": "Promise<{\n label: string;\n value: string;\n iconStart?: string;\n iconEnd?: string;\n disabled: boolean;\n }>"
7940
- }
7941
- },
7942
- "description": "Get tab configuration for parent component"
7943
- },
7944
- {
7945
- "kind": "method",
7946
- "name": "setActive",
7947
- "parameters": [
7948
- {
7949
- "name": "isActive",
7950
- "type": {
7951
- "text": "boolean"
7952
- }
7953
- }
7954
- ],
7955
- "description": "Set the active state (called by parent le-tabs)"
7956
- },
7957
- {
7958
- "kind": "method",
7959
- "name": "shouldRenderContent",
7960
- "privacy": "private",
7961
- "return": {
7962
- "type": {
7963
- "text": "boolean"
7964
- }
7965
- },
7966
- "description": "Check if panel should render content"
7967
- },
7968
- {
7969
- "kind": "method",
7970
- "name": "render"
7971
- }
7972
- ],
7973
- "attributes": [
7974
- {
7975
- "name": "label",
7976
- "fieldName": "label",
7977
- "description": "The label displayed in the tab button.",
7978
- "type": {
7979
- "text": "string"
7980
- }
7981
- },
7982
- {
7983
- "name": "value",
7984
- "fieldName": "value",
7985
- "description": "The value used to identify this tab.\nDefaults to the label if not provided.",
7986
- "type": {
7987
- "text": "string"
7988
- }
7989
- },
7990
- {
7991
- "name": "icon-start",
7992
- "fieldName": "iconStart",
7993
- "description": "Icon displayed at the start of the tab button.\nCan be an emoji, URL, or icon class.",
7994
- "type": {
7995
- "text": "string"
7996
- }
7997
- },
7998
- {
7999
- "name": "icon-end",
8000
- "fieldName": "iconEnd",
8001
- "description": "Icon displayed at the end of the tab button.",
8002
- "type": {
8003
- "text": "string"
8004
- }
8005
- },
8006
- {
8007
- "name": "disabled",
8008
- "fieldName": "disabled",
8009
- "default": "false",
8010
- "description": "Whether this tab is disabled.",
8011
- "type": {
8012
- "text": "boolean"
8013
- }
8014
- },
8533
+ }
8534
+ ],
8535
+ "tagName": "le-tab-bar",
8536
+ "events": [
8015
8537
  {
8016
- "name": "lazy",
8017
- "fieldName": "lazy",
8018
- "default": "false",
8019
- "description": "Whether to render the panel content only when active (lazy loading).\nWhen true, content is not rendered until the tab is first selected.\nWhen false (default), content is always in DOM but hidden when inactive.",
8538
+ "name": "leTabChange",
8020
8539
  "type": {
8021
- "text": "boolean"
8022
- }
8540
+ "text": "EventEmitter<LeOptionSelectDetail>"
8541
+ },
8542
+ "description": "Emitted when the selected tab changes."
8023
8543
  }
8024
8544
  ],
8025
- "tagName": "le-tab-panel",
8026
- "events": [],
8027
8545
  "customElement": true
8028
8546
  }
8029
8547
  ],
8030
8548
  "exports": [
8031
8549
  {
8032
8550
  "kind": "js",
8033
- "name": "LeTabPanel",
8551
+ "name": "LeTabBar",
8034
8552
  "declaration": {
8035
- "name": "LeTabPanel",
8036
- "module": "src/components/le-tab-panel/le-tab-panel.tsx"
8553
+ "name": "LeTabBar",
8554
+ "module": "src/components/le-tab-bar/le-tab-bar.tsx"
8037
8555
  }
8038
8556
  },
8039
8557
  {
8040
8558
  "kind": "custom-element-definition",
8041
- "name": "le-tab-panel",
8559
+ "name": "le-tab-bar",
8042
8560
  "declaration": {
8043
- "name": "LeTabPanel",
8044
- "module": "src/components/le-tab-panel/le-tab-panel.tsx"
8561
+ "name": "LeTabBar",
8562
+ "module": "src/components/le-tab-bar/le-tab-bar.tsx"
8045
8563
  }
8046
8564
  }
8047
8565
  ]
@@ -8457,6 +8975,233 @@
8457
8975
  }
8458
8976
  ]
8459
8977
  },
8978
+ {
8979
+ "kind": "javascript-module",
8980
+ "path": "src/components/le-tab-panel/le-tab-panel.tsx",
8981
+ "declarations": [
8982
+ {
8983
+ "kind": "class",
8984
+ "description": "A tab panel component used as a child of le-tabs.\n\nEach le-tab-panel defines both the tab button label and the panel content.\nThe parent le-tabs component automatically reads these panels and creates\nthe tab interface.",
8985
+ "name": "LeTabPanel",
8986
+ "slots": [
8987
+ {
8988
+ "description": "Default slot for panel content",
8989
+ "name": ""
8990
+ }
8991
+ ],
8992
+ "members": [
8993
+ {
8994
+ "kind": "field",
8995
+ "name": "el",
8996
+ "type": {
8997
+ "text": "HTMLLeTabPanelElement"
8998
+ }
8999
+ },
9000
+ {
9001
+ "kind": "field",
9002
+ "name": "label",
9003
+ "type": {
9004
+ "text": "string"
9005
+ },
9006
+ "description": "The label displayed in the tab button."
9007
+ },
9008
+ {
9009
+ "kind": "field",
9010
+ "name": "value",
9011
+ "type": {
9012
+ "text": "string | undefined"
9013
+ },
9014
+ "description": "The value used to identify this tab.\nDefaults to the label if not provided."
9015
+ },
9016
+ {
9017
+ "kind": "field",
9018
+ "name": "iconStart",
9019
+ "type": {
9020
+ "text": "string | undefined"
9021
+ },
9022
+ "description": "Icon displayed at the start of the tab button.\nCan be an emoji, URL, or icon class."
9023
+ },
9024
+ {
9025
+ "kind": "field",
9026
+ "name": "iconEnd",
9027
+ "type": {
9028
+ "text": "string | undefined"
9029
+ },
9030
+ "description": "Icon displayed at the end of the tab button."
9031
+ },
9032
+ {
9033
+ "kind": "field",
9034
+ "name": "disabled",
9035
+ "type": {
9036
+ "text": "boolean"
9037
+ },
9038
+ "default": "false",
9039
+ "description": "Whether this tab is disabled."
9040
+ },
9041
+ {
9042
+ "kind": "field",
9043
+ "name": "lazy",
9044
+ "type": {
9045
+ "text": "boolean"
9046
+ },
9047
+ "default": "false",
9048
+ "description": "Whether to render the panel content only when active (lazy loading).\nWhen true, content is not rendered until the tab is first selected.\nWhen false (default), content is always in DOM but hidden when inactive."
9049
+ },
9050
+ {
9051
+ "kind": "field",
9052
+ "name": "active",
9053
+ "type": {
9054
+ "text": "boolean"
9055
+ },
9056
+ "default": "false",
9057
+ "description": "Internal: Whether this panel is currently active (set by parent le-tabs)"
9058
+ },
9059
+ {
9060
+ "kind": "field",
9061
+ "name": "hasBeenActive",
9062
+ "type": {
9063
+ "text": "boolean"
9064
+ },
9065
+ "default": "false",
9066
+ "description": "Internal: Track if panel has ever been activated (for lazy rendering)"
9067
+ },
9068
+ {
9069
+ "kind": "method",
9070
+ "name": "activeChanged",
9071
+ "parameters": [
9072
+ {
9073
+ "name": "isActive",
9074
+ "type": {
9075
+ "text": "boolean"
9076
+ }
9077
+ }
9078
+ ]
9079
+ },
9080
+ {
9081
+ "kind": "method",
9082
+ "name": "getValue",
9083
+ "return": {
9084
+ "type": {
9085
+ "text": "Promise<string>"
9086
+ }
9087
+ },
9088
+ "description": "Get the effective value (value or label as fallback)"
9089
+ },
9090
+ {
9091
+ "kind": "method",
9092
+ "name": "getTabConfig",
9093
+ "return": {
9094
+ "type": {
9095
+ "text": "Promise<{\n label: string;\n value: string;\n iconStart?: string;\n iconEnd?: string;\n disabled: boolean;\n }>"
9096
+ }
9097
+ },
9098
+ "description": "Get tab configuration for parent component"
9099
+ },
9100
+ {
9101
+ "kind": "method",
9102
+ "name": "setActive",
9103
+ "parameters": [
9104
+ {
9105
+ "name": "isActive",
9106
+ "type": {
9107
+ "text": "boolean"
9108
+ }
9109
+ }
9110
+ ],
9111
+ "description": "Set the active state (called by parent le-tabs)"
9112
+ },
9113
+ {
9114
+ "kind": "method",
9115
+ "name": "shouldRenderContent",
9116
+ "privacy": "private",
9117
+ "return": {
9118
+ "type": {
9119
+ "text": "boolean"
9120
+ }
9121
+ },
9122
+ "description": "Check if panel should render content"
9123
+ },
9124
+ {
9125
+ "kind": "method",
9126
+ "name": "render"
9127
+ }
9128
+ ],
9129
+ "attributes": [
9130
+ {
9131
+ "name": "label",
9132
+ "fieldName": "label",
9133
+ "description": "The label displayed in the tab button.",
9134
+ "type": {
9135
+ "text": "string"
9136
+ }
9137
+ },
9138
+ {
9139
+ "name": "value",
9140
+ "fieldName": "value",
9141
+ "description": "The value used to identify this tab.\nDefaults to the label if not provided.",
9142
+ "type": {
9143
+ "text": "string"
9144
+ }
9145
+ },
9146
+ {
9147
+ "name": "icon-start",
9148
+ "fieldName": "iconStart",
9149
+ "description": "Icon displayed at the start of the tab button.\nCan be an emoji, URL, or icon class.",
9150
+ "type": {
9151
+ "text": "string"
9152
+ }
9153
+ },
9154
+ {
9155
+ "name": "icon-end",
9156
+ "fieldName": "iconEnd",
9157
+ "description": "Icon displayed at the end of the tab button.",
9158
+ "type": {
9159
+ "text": "string"
9160
+ }
9161
+ },
9162
+ {
9163
+ "name": "disabled",
9164
+ "fieldName": "disabled",
9165
+ "default": "false",
9166
+ "description": "Whether this tab is disabled.",
9167
+ "type": {
9168
+ "text": "boolean"
9169
+ }
9170
+ },
9171
+ {
9172
+ "name": "lazy",
9173
+ "fieldName": "lazy",
9174
+ "default": "false",
9175
+ "description": "Whether to render the panel content only when active (lazy loading).\nWhen true, content is not rendered until the tab is first selected.\nWhen false (default), content is always in DOM but hidden when inactive.",
9176
+ "type": {
9177
+ "text": "boolean"
9178
+ }
9179
+ }
9180
+ ],
9181
+ "tagName": "le-tab-panel",
9182
+ "events": [],
9183
+ "customElement": true
9184
+ }
9185
+ ],
9186
+ "exports": [
9187
+ {
9188
+ "kind": "js",
9189
+ "name": "LeTabPanel",
9190
+ "declaration": {
9191
+ "name": "LeTabPanel",
9192
+ "module": "src/components/le-tab-panel/le-tab-panel.tsx"
9193
+ }
9194
+ },
9195
+ {
9196
+ "kind": "custom-element-definition",
9197
+ "name": "le-tab-panel",
9198
+ "declaration": {
9199
+ "name": "LeTabPanel",
9200
+ "module": "src/components/le-tab-panel/le-tab-panel.tsx"
9201
+ }
9202
+ }
9203
+ ]
9204
+ },
8460
9205
  {
8461
9206
  "kind": "javascript-module",
8462
9207
  "path": "src/components/le-tag/le-tag.tsx",