kempo-ui 0.0.3 → 0.0.4

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 (137) hide show
  1. package/.github/workflows/publish-major.yml +39 -0
  2. package/.github/workflows/publish-minor.yml +39 -0
  3. package/.github/workflows/{publish-npm.yml → publish-patch.yml} +1 -1
  4. package/.vscode/settings.json +2 -0
  5. package/dist/kempo-hljs.css +1 -0
  6. package/dist/src/components/Accordion.js +36 -0
  7. package/dist/src/components/Card.js +37 -0
  8. package/dist/src/components/Collapsible.js +41 -0
  9. package/dist/src/components/ContentSlider.js +44 -0
  10. package/dist/src/components/Dialog.js +113 -0
  11. package/dist/src/components/Icon.js +2 -2
  12. package/dist/src/components/PersistantCollapsible.js +1 -0
  13. package/dist/src/components/PhotoViewer.js +135 -0
  14. package/dist/src/components/Resize.js +96 -0
  15. package/dist/src/components/ShowMore.js +42 -0
  16. package/dist/src/components/SideMenu.js +1 -1
  17. package/dist/src/components/Split.js +84 -0
  18. package/dist/src/components/Tabs.js +155 -0
  19. package/dist/src/components/Tags.js +69 -0
  20. package/dist/src/components/ThemeSwitcher.js +23 -0
  21. package/dist/src/components/Timestamp.js +1 -0
  22. package/dist/src/utils/debounce.js +1 -0
  23. package/dist/src/utils/drag.js +1 -0
  24. package/dist/src/utils/formatTimestamp.js +1 -0
  25. package/dist/src/utils/propConverters.js +1 -0
  26. package/dist/src/utils/watchWindowSize.js +1 -0
  27. package/docs/components/accordion.html +69 -25
  28. package/docs/components/card.html +6 -5
  29. package/docs/components/collapsible.html +198 -0
  30. package/docs/components/content-slider.html +56 -26
  31. package/docs/components/dialog.html +54 -48
  32. package/docs/components/focus-capture.html +2 -3
  33. package/docs/components/icon.html +5 -8
  34. package/docs/components/import.html +1 -6
  35. package/docs/components/persistant-collapsible.html +123 -0
  36. package/docs/components/photo-viewer.html +226 -0
  37. package/docs/components/resize.html +44 -18
  38. package/docs/components/show-more.html +12 -6
  39. package/docs/components/side-menu.html +3 -12
  40. package/docs/components/split.html +26 -5
  41. package/docs/components/tablePagination.html +4 -4
  42. package/docs/components/tableRecordFiltering.html +16 -3
  43. package/docs/components/tableRecordSelection.html +2 -2
  44. package/docs/components/tabs.html +24 -7
  45. package/docs/components/tags.html +24 -8
  46. package/docs/components/theme-switcher.html +3 -6
  47. package/docs/components/timestamp.html +20 -24
  48. package/docs/components/toast.html +23 -32
  49. package/docs/components/toggle.html +4 -3
  50. package/docs/kempo-hljs.css +1 -0
  51. package/docs/media/civic.jpg +0 -0
  52. package/docs/media/corvette.jpg +0 -0
  53. package/docs/media/evo.jpg +0 -0
  54. package/docs/media/gtr.jpg +0 -0
  55. package/docs/media/nsx.jpg +0 -0
  56. package/docs/nav.inc.html +11 -17
  57. package/docs/src/components/Accordion.js +36 -0
  58. package/docs/src/components/Card.js +37 -0
  59. package/docs/src/components/Collapsible.js +41 -0
  60. package/docs/src/components/ContentSlider.js +44 -0
  61. package/docs/src/components/Dialog.js +113 -0
  62. package/docs/src/components/Icon.js +2 -2
  63. package/docs/src/components/PersistantCollapsible.js +1 -0
  64. package/docs/src/components/PhotoViewer.js +135 -0
  65. package/docs/src/components/Resize.js +96 -0
  66. package/docs/src/components/ShowMore.js +42 -0
  67. package/docs/src/components/SideMenu.js +1 -1
  68. package/docs/src/components/Split.js +84 -0
  69. package/docs/src/components/Tabs.js +155 -0
  70. package/docs/src/components/Tags.js +69 -0
  71. package/docs/src/components/ThemeSwitcher.js +23 -0
  72. package/docs/src/components/Timestamp.js +1 -0
  73. package/docs/src/utils/debounce.js +1 -0
  74. package/docs/src/utils/drag.js +1 -0
  75. package/docs/src/utils/formatTimestamp.js +1 -0
  76. package/docs/src/utils/propConverters.js +1 -0
  77. package/docs/src/utils/watchWindowSize.js +1 -0
  78. package/docs/utils/debounce.html +78 -0
  79. package/docs/utils/drag.html +104 -0
  80. package/docs/utils/formatTimestamp.html +114 -0
  81. package/docs/utils/propConverters.html +132 -0
  82. package/docs/utils/watchWindowSize.html +166 -0
  83. package/icons/error.svg +1 -1
  84. package/icons/warning.svg +1 -1
  85. package/package.json +1 -1
  86. package/scripts/build.js +1 -1
  87. package/scripts/docs.js +4 -2
  88. package/src/components/Accordion.js +229 -0
  89. package/src/components/Collapsible.js +109 -0
  90. package/src/components/ContentSlider.js +205 -0
  91. package/src/components/Dialog.js +368 -0
  92. package/src/components/PersistantCollapsible.js +69 -0
  93. package/src/components/PhotoViewer.js +368 -0
  94. package/src/components/Resize.js +210 -0
  95. package/src/components/ShadowComponent.js +3 -1
  96. package/src/components/ShowMore.js +109 -0
  97. package/src/components/Sortable.js +193 -0
  98. package/src/components/Split.js +192 -0
  99. package/src/components/Table.js +1202 -0
  100. package/src/components/Tabs.js +428 -0
  101. package/src/components/Tags.js +253 -0
  102. package/src/components/Timestamp.js +31 -0
  103. package/src/components/Toast.js +454 -0
  104. package/src/components/Toggle.js +173 -0
  105. package/src/components/tableControls/DeleteRecord.js +29 -0
  106. package/src/components/tableControls/Edit.js +88 -0
  107. package/src/components/tableControls/ExportCSV.js +71 -0
  108. package/src/components/tableControls/ExportJson.js +55 -0
  109. package/src/components/tableControls/FieldSortHide.js +76 -0
  110. package/src/components/tableControls/Filters.js +114 -0
  111. package/src/components/tableControls/FirstPage.js +65 -0
  112. package/src/components/tableControls/HiddenCount.js +45 -0
  113. package/src/components/tableControls/Hide.js +34 -0
  114. package/src/components/tableControls/LastPage.js +65 -0
  115. package/src/components/tableControls/NextPage.js +65 -0
  116. package/src/components/tableControls/PageSelect.js +109 -0
  117. package/src/components/tableControls/PageSize.js +68 -0
  118. package/src/components/tableControls/PrevPage.js +65 -0
  119. package/src/components/tableControls/Search.js +58 -0
  120. package/src/components/tableControls/ShowAll.js +34 -0
  121. package/src/components/tableControls/TableControl.js +105 -0
  122. package/src/utils/debounce.js +9 -0
  123. package/src/utils/drag.js +80 -0
  124. package/src/utils/formatTimestamp.js +27 -0
  125. package/src/utils/toTitleCase.js +9 -0
  126. package/src/utils/watchWindowSize.js +16 -0
  127. package/dist/src/utils/cli.js +0 -1
  128. package/dist/src/utils/fs-utils.js +0 -1
  129. package/docs/components/component.html +0 -90
  130. package/docs/components/directory-viewer.html +0 -90
  131. package/docs/components/lazy-component.html +0 -84
  132. package/docs/components/reactive-component.html +0 -69
  133. package/docs/components/reactive-lazy-component.html +0 -69
  134. package/docs/components/search.html +0 -102
  135. package/docs/components/sortable.html +0 -96
  136. package/src/utils/cli.js +0 -43
  137. package/src/utils/fs-utils.js +0 -41
@@ -0,0 +1,198 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Collapsible - Components - Kempo Docs - A Web Components Solution</title>
7
+ <link rel="stylesheet" href="../src/kempo-vars.css" /><link rel="stylesheet" href="../kempo.min.css" />
8
+ <link rel="stylesheet" href="../src/kempo-hljs.css" />`n <link rel="stylesheet" href="../styles.css" />
9
+ <script type="module">
10
+ import ShadowComponent from '../src/components/ShadowComponent.js';
11
+ import Import from '../src/components/Import.js';
12
+ import Icon from '../src/components/Icon.js';
13
+ ShadowComponent.stylesheetPath = '../kempo.min.css';
14
+ Import.replacements.root = '../';
15
+ Icon.pathToIcons = ['../icons'];
16
+ </script>
17
+ </head>
18
+ <body>
19
+ <k-import src="../nav.inc.html"></k-import>
20
+ <h1 class="ta-center">Collapsible</h1>
21
+ <main>
22
+ <details class="b r mb">
23
+ <summary class="p">Table of Contents</summary>
24
+ <div class="m mt0 pl">
25
+ <h6>Examples</h6>
26
+ <a href="#basicUsage">Basic Usage</a><br />
27
+ <a href="#defaultOpen">Default Open</a><br />
28
+ <a href="#customLabel">Custom Label</a><br />
29
+ <a href="#customIcon">Custom Icon</a><br />
30
+
31
+ <h6 class="mt">JavaScript Reference</h6>
32
+ <a href="#constructor">Constructor</a><br />
33
+ <a href="#requirements">Requirements</a><br />
34
+ <a href="#properties">Properties</a><br />
35
+ <a href="#methods">Methods</a><br />
36
+ <a href="#events">Events</a><br />
37
+ <a href="#slots">Slots</a><br />
38
+ </div>
39
+ </details>
40
+
41
+ <h3>Description</h3>
42
+ <p>The Collapsible component provides a way to show/hide content with a clickable label header. It features a rotating chevron icon and smooth transitions. The component extends the <a href="./component.html">ShadowComponent</a> class and supports customizable labels and icons through slots.</p>
43
+
44
+ <h3 id="basicUsage"><a href="#basicUsage" class="no-link">Basic Usage</a></h3>
45
+ <p>Use the collapsible component to create expandable content sections. Click the label to toggle the content visibility.</p>
46
+
47
+ <div class="row -mx mb">
48
+ <div class="col d-span-6 m-span-12 px">
49
+ <k-card label="HTML">
50
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-collapsible</span>&gt;</span>
51
+ <span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"label"</span>&gt;</span>Click to expand<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span>
52
+ <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>This content can be collapsed or expanded.<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
53
+ <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Add any content here that you want to show/hide.<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
54
+ <span class="hljs-tag">&lt;/<span class="hljs-name">k-collapsible</span>&gt;</span></code></pre>
55
+ </k-card>
56
+ </div>
57
+ <div class="col d-span-6 m-span-12 px">
58
+ <k-card label="Output">
59
+ <k-collapsible>
60
+ <span slot="label">Click to expand</span>
61
+ <p>This content can be collapsed or expanded.</p>
62
+ <p>Add any content here that you want to show/hide.</p>
63
+ </k-collapsible>
64
+ </k-card>
65
+ </div>
66
+ </div>
67
+
68
+ <h3 id="defaultOpen"><a href="#defaultOpen" class="no-link">Default Open</a></h3>
69
+ <p>Set the <code>opened</code> attribute to have the collapsible start in an expanded state.</p>
70
+
71
+ <div class="row -mx mb">
72
+ <div class="col d-span-6 m-span-12 px">
73
+ <k-card label="HTML">
74
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-collapsible</span> <span class="hljs-attr">opened</span>=<span class="hljs-string">"true"</span>&gt;</span>
75
+ <span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"label"</span>&gt;</span>Already expanded<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span>
76
+ <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>This collapsible starts in an open state.<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
77
+ <span class="hljs-tag">&lt;/<span class="hljs-name">k-collapsible</span>&gt;</span></code></pre>
78
+ </k-card>
79
+ </div>
80
+ <div class="col d-span-6 m-span-12 px">
81
+ <k-card label="Output">
82
+ <k-collapsible opened="true">
83
+ <span slot="label">Already expanded</span>
84
+ <p>This collapsible starts in an open state.</p>
85
+ </k-collapsible>
86
+ </k-card>
87
+ </div>
88
+ </div>
89
+
90
+ <h3 id="customLabel"><a href="#customLabel" class="no-link">Custom Label</a></h3>
91
+ <p>You can put any content in the label slot, including formatted text, icons, or even other components.</p>
92
+
93
+ <div class="row -mx mb">
94
+ <div class="col d-span-6 m-span-12 px">
95
+ <k-card label="HTML">
96
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-collapsible</span>&gt;</span>
97
+ <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"label"</span>&gt;</span>
98
+ <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>Advanced Settings<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span>
99
+ <span class="hljs-tag">&lt;<span class="hljs-name">small</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"opacity-50 ml"</span>&gt;</span>(Optional)<span class="hljs-tag">&lt;/<span class="hljs-name">small</span>&gt;</span>
100
+ <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
101
+ <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Configure advanced options here.<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
102
+ <span class="hljs-tag">&lt;/<span class="hljs-name">k-collapsible</span>&gt;</span></code></pre>
103
+ </k-card>
104
+ </div>
105
+ <div class="col d-span-6 m-span-12 px">
106
+ <k-card label="Output">
107
+ <k-collapsible>
108
+ <div slot="label">
109
+ <strong>Advanced Settings</strong>
110
+ <small class="opacity-50 ml">(Optional)</small>
111
+ </div>
112
+ <p>Configure advanced options here.</p>
113
+ </k-collapsible>
114
+ </k-card>
115
+ </div>
116
+ </div>
117
+
118
+ <h3 id="customIcon"><a href="#customIcon" class="no-link">Custom Icon</a></h3>
119
+ <p>Replace the default chevron icon with your own content using the <code>labelIcon</code> slot.</p>
120
+
121
+ <div class="row -mx mb">
122
+ <div class="col d-span-6 m-span-12 px">
123
+ <k-card label="HTML">
124
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-collapsible</span>&gt;</span>
125
+ <span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"label"</span>&gt;</span>Custom Icon<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span>
126
+ <span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"labelIcon"</span>&gt;</span>▼<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span>
127
+ <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Using a custom arrow icon.<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
128
+ <span class="hljs-tag">&lt;/<span class="hljs-name">k-collapsible</span>&gt;</span></code></pre>
129
+ </k-card>
130
+ </div>
131
+ <div class="col d-span-6 m-span-12 px">
132
+ <k-card label="Output">
133
+ <k-collapsible>
134
+ <span slot="label">Custom Icon</span>
135
+ <span slot="labelIcon">▼</span>
136
+ <p>Using a custom arrow icon.</p>
137
+ </k-collapsible>
138
+ </k-card>
139
+ </div>
140
+ </div>
141
+
142
+ <h2 id="jsRef">JavaScript Reference</h2>
143
+
144
+ <h3 id="constructor"><a href="#constructor" class="no-link">Constructor</a></h3>
145
+ <h6>Extends <a href="./component.html">ShadowComponent</a></h6>
146
+ <h5>
147
+ <code>new Collapsible()</code>
148
+ </h5>
149
+
150
+ <h3 id="requirements"><a href="#requirements" class="no-link">Requirements</a></h3>
151
+ <ul>
152
+ <li><a href="./component.html">ShadowComponent</a></li>
153
+ <li><a href="./icon.html">Icon</a></li>
154
+ </ul>
155
+
156
+ <h3 id="properties"><a href="#properties" class="no-link">Properties</a></h3>
157
+ <h5><code>opened<i>: boolean</i></code></h5>
158
+ <p>Gets or sets whether the collapsible is currently expanded. Changing this property will trigger the appropriate events and visual state changes. Syncs to <code>opened</code> attribute. Default value is <code>false</code>.</p>
159
+
160
+ <h3 id="methods"><a href="#methods" class="no-link">Methods</a></h3>
161
+ <h5><code>open()<i>: void</i></code></h5>
162
+ <p>Expands the collapsible to show its content. Sets <code>opened</code> to <code>true</code>.</p>
163
+
164
+ <h5><code>close()<i>: void</i></code></h5>
165
+ <p>Collapses the collapsible to hide its content. Sets <code>opened</code> to <code>false</code>.</p>
166
+
167
+ <h5><code>toggle()<i>: void</i></code></h5>
168
+ <p>Toggles the collapsible state (expands if collapsed, collapses if expanded). Dispatches an <code>openedtoggled</code> event.</p>
169
+
170
+ <h3 id="events"><a href="#events" class="no-link">Events</a></h3>
171
+ <h5><code>openedchanged</code></h5>
172
+ <p>Fired when the opened state changes. The event detail contains the string <code>"open"</code> or <code>"close"</code>.</p>
173
+
174
+ <h5><code>open</code></h5>
175
+ <p>Fired when the collapsible is expanded.</p>
176
+
177
+ <h5><code>close</code></h5>
178
+ <p>Fired when the collapsible is collapsed.</p>
179
+
180
+ <h5><code>openedtoggled</code></h5>
181
+ <p>Fired when the <code>toggle()</code> method is called (typically when the label is clicked).</p>
182
+
183
+ <h3 id="slots"><a href="#slots" class="no-link">Slots</a></h3>
184
+ <h5><code>Default Slot</code></h5>
185
+ <p>The main content area that can be collapsed or expanded.</p>
186
+
187
+ <h5><code>label</code></h5>
188
+ <p>The clickable label content. This is what users click to toggle the collapsible state.</p>
189
+
190
+ <h5><code>labelIcon</code></h5>
191
+ <p>Custom content for the toggle icon. Defaults to a right-pointing chevron that rotates when expanded. The icon automatically gets hover effects and rotation animations.</p>
192
+
193
+ </main>
194
+ <div style="height:33vh"></div>
195
+ <script type="module" src="../src/components/Import.js"></script>
196
+ <script type="module" src="../src/components/Collapsible.js"></script>
197
+ </body>
198
+ </html>
@@ -7,8 +7,10 @@
7
7
  <link rel="stylesheet" href="../src/kempo-vars.css" /><link rel="stylesheet" href="../kempo.min.css" />
8
8
  <link rel="stylesheet" href="../src/kempo-hljs.css" />`n <link rel="stylesheet" href="../styles.css" />
9
9
  <script type="module">
10
+ import ShadowComponent from '../src/components/ShadowComponent.js';
10
11
  import Import from '../src/components/Import.js';
11
12
  import Icon from '../src/components/Icon.js';
13
+ ShadowComponent.stylesheetPath = '../kempo.min.css';
12
14
  Import.replacements.root = '../';
13
15
  Icon.pathToIcons = ['../icons'];
14
16
  </script>
@@ -31,14 +33,15 @@
31
33
  <h6 class="mt">JavaScript Reference</h6>
32
34
  <a href="#constructor">Constructor</a><br />
33
35
  <a href="#requirements">Requirements</a><br />
34
- <a href="#attributes">Attributes</a><br />
35
36
  <a href="#properties">Properties</a><br />
36
37
  <a href="#methods">Methods</a><br />
38
+ <a href="#events">Events</a><br />
39
+ <a href="#slots">Slots</a><br />
37
40
  </div>
38
41
  </details>
39
42
 
40
43
  <h3>Description</h3>
41
- <p>description</p>
44
+ <p>The ContentSlider component provides a way to display multiple content slides with navigation controls. Users can navigate through slides using previous/next buttons, keyboard arrows, or programmatically. It extends the <a href="./component.html">ShadowComponent</a> class and supports looping, keyboard controls, and customizable navigation.</p>
42
45
 
43
46
  <h3 id="basicUsage"><a href="#basicUsage" class="no-link">Basic Usage</a></h3>
44
47
  <div class="row -mx">
@@ -141,50 +144,77 @@
141
144
  <h2 id="jsRef">JavaScript Refrerence</h2>
142
145
 
143
146
  <h3 id="constructor"><a href="#constructor" class="no-link">Constructor</a></h3>
144
- <h6>Extends <a href="./lazy-component.html">LazyComponent</a></h6>
147
+ <h6>Extends <a href="./component.html">ShadowComponent</a></h6>
145
148
  <h5>
146
- <code>new ContentSlider()</code><br />
147
- <code>new ContentSlider(<i>&lt;Array>HTMLElement</i> content)</code><br/>
148
- <code>new ContentSlider(<i>&lt;Array>HTMLElement</i> content, <i>Object</i> init_attrs)</code>
149
+ <code>new ContentSlider()</code>
149
150
  </h5>
150
151
 
151
- <h4>Paramters</h4>
152
- <h5><code>content<i>: &lt;Array>HTMLElement></i></code></h5>
153
- <p>An array of <a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement" target="_blank">HTMLElement</a>s that will be the contents of this slider.</p>
154
- <h5><code>init_attrs<i>: Object</i></code></h5>
155
- <p>An options object that may contain the initial values of the attributes (see attributes below).</p>
156
-
157
152
  <h3 id="requirements"><a href="#requirements" class="no-link">Requirements</a></h3>
158
153
  <ul>
159
- <li><a href="">LazyComponent Class</a></li>
160
- <li><a href="">elements.js Util</a></li>
154
+ <li><a href="./component.html">ShadowComponent</a></li>
155
+ <li><a href="./icon.html">Icon</a></li>
161
156
  </ul>
162
157
 
163
- <h3 id="attributes"><a href="#attributes" class="no-link">Attributes</a></h3>
158
+ <h3 id="properties"><a href="#properties" class="no-link">Properties</a></h3>
164
159
  <h5><code>index<i>: number</i></code></h5>
165
- <p>The index of the currently active slide (base <code>0</code>). The default value is <code>0</code>.</p>
160
+ <p>Gets or sets the current slide index. Automatically validates to stay within bounds. Syncs to <code>index</code> attribute. Default value is <code>0</code>.</p>
166
161
 
167
162
  <h5><code>controls<i>: boolean</i></code></h5>
168
- <p>A boolean that indicates if the control buttons should be shown. The default value is <code>true</code>.</p>
163
+ <p>Gets or sets whether control buttons are visible. Syncs to <code>controls</code> attribute. Default value is <code>true</code>.</p>
169
164
 
170
165
  <h5><code>keyboardControls<i>: boolean</i></code></h5>
171
- <p>A boolean that indicates if the left and right arrows should be used to control the slider. The default value is <code>true</code>.</p>
166
+ <p>Gets or sets whether keyboard controls are enabled. Syncs to <code>keyboard-controls</code> attribute. Default value is <code>true</code>.</p>
172
167
 
173
168
  <h5><code>globalControls<i>: boolean</i></code></h5>
174
- <p>A boolean that indicates if the left and right arrows should be used to control the slider even when it is not focused (the listener is on the window). The default value is <code>false</code>.</p>
169
+ <p>Gets or sets whether global keyboard controls are enabled. Use with caution - recommended only for prominent sliders. Syncs to <code>global-controls</code> attribute. Default value is <code>false</code>.</p>
175
170
 
176
171
  <h5><code>loop<i>: boolean</i></code></h5>
177
- <p>A boolean that indicates index should loop. When true, after the last side it will go back to the first, and when on the first slide the previous slide will be the last. The default value is <code>false</code>.</p>
172
+ <p>Gets or sets whether the slider loops continuously (after the last slide, go to the first; before the first slide, go to the last). Syncs to <code>loop</code> attribute. Default value is <code>false</code>.</p>
173
+
174
+ <h5><code>content<i>: Array&lt;HTMLElement&gt;</i></code></h5>
175
+ <p>Array of child elements that serve as slides. Automatically updated when the component is connected.</p>
178
176
 
179
177
  <h3 id="methods"><a href="#methods" class="no-link">Methods</a></h3>
180
- <h5><code>previous()<i>: undefined</i></code></h5>
181
- <p>Goes to the previous slide.</p>
178
+ <h5><code>previous()<i>: void</i></code></h5>
179
+ <p>Navigates to the previous slide. If <code>loop</code> is enabled and currently on the first slide, goes to the last slide. Dispatches a <code>previous</code> event.</p>
182
180
 
183
- <h5><code>next()<i>: undefined</i></code></h5>
184
- <p>Goes to the next slide.</p>
181
+ <h5><code>next()<i>: void</i></code></h5>
182
+ <p>Navigates to the next slide. If <code>loop</code> is enabled and currently on the last slide, goes to the first slide. Dispatches a <code>next</code> event.</p>
183
+
184
+ <h5><code>goto(index)<i>: void</i></code></h5>
185
+ <p>Navigates to the slide at the specified index. Index is automatically validated to stay within bounds. Dispatches a <code>goto</code> event.</p>
186
+ <ul>
187
+ <li><strong>index</strong> <code>number</code> - The zero-based index of the slide to navigate to</li>
188
+ </ul>
189
+
190
+ <h3 id="events"><a href="#events" class="no-link">Events</a></h3>
191
+ <h5><code>change</code></h5>
192
+ <p>Fired when the active slide changes. The event detail contains <code>{ index }</code>.</p>
193
+
194
+ <h5><code>previous</code></h5>
195
+ <p>Fired when the previous button is clicked or previous navigation is triggered. The event detail contains <code>{ index }</code> of the target slide.</p>
196
+
197
+ <h5><code>next</code></h5>
198
+ <p>Fired when the next button is clicked or next navigation is triggered. The event detail contains <code>{ index }</code> of the target slide.</p>
199
+
200
+ <h5><code>goto</code></h5>
201
+ <p>Fired when programmatic navigation to a specific slide occurs. The event detail contains <code>{ index }</code> of the target slide.</p>
202
+
203
+ <h5><code>keyleft</code></h5>
204
+ <p>Fired when the left arrow key is pressed (before triggering previous navigation).</p>
205
+
206
+ <h5><code>keyright</code></h5>
207
+ <p>Fired when the right arrow key is pressed (before triggering next navigation).</p>
208
+
209
+ <h3 id="slots"><a href="#slots" class="no-link">Slots</a></h3>
210
+ <h5><code>Default Slot</code></h5>
211
+ <p>The main content area where slide elements are placed. Each direct child element becomes a slide.</p>
212
+
213
+ <h5><code>prev</code></h5>
214
+ <p>Custom content for the previous button. Defaults to a left chevron icon if not provided.</p>
185
215
 
186
- <h5><code>goto(<i>number<i> index)<i>: undefined</i></code></h5>
187
- <p>Goes to the specified slide. If the index is more than the number of slides the last side will be shown. If the index is below 0, the first slide will be shown.</p>
216
+ <h5><code>next</code></h5>
217
+ <p>Custom content for the next button. Defaults to a right chevron icon if not provided.</p>
188
218
 
189
219
  </main>
190
220
  <script type="module" src="../src/components/Import.js"></script>
@@ -7,8 +7,10 @@
7
7
  <link rel="stylesheet" href="../src/kempo-vars.css" /><link rel="stylesheet" href="../kempo.min.css" />
8
8
  <link rel="stylesheet" href="../src/kempo-hljs.css" />`n <link rel="stylesheet" href="../styles.css" />
9
9
  <script type="module">
10
+ import ShadowComponent from '../src/components/ShadowComponent.js';
10
11
  import Import from '../src/components/Import.js';
11
12
  import Icon from '../src/components/Icon.js';
13
+ ShadowComponent.stylesheetPath = '../kempo.min.css';
12
14
  Import.replacements.root = '../';
13
15
  Icon.pathToIcons = ['../icons'];
14
16
  </script>
@@ -30,7 +32,6 @@
30
32
  <h6 class="mt">JavaScript Reference</h6>
31
33
  <a href="#constructor">Constructor</a><br />
32
34
  <a href="#requirements">Requirements</a><br />
33
- <a href="#attributes">Attributes</a><br />
34
35
  <a href="#properties">Properties</a><br />
35
36
  <a href="#methods">Methods</a><br />
36
37
  <a href="#staticMethods">Static Methods</a><br />
@@ -93,20 +94,20 @@
93
94
 
94
95
  <h3 id="jsUsage"><a href="#jsUsage" class="no-link">JavaScript Usage</a></h3>
95
96
  <h5>Create Dialog</h5>
96
- <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"d7"</span>&gt;</span>Open Dialog<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"module"</span>&gt;</span><span class="javascript"><br /> <span class="hljs-keyword">import</span> Dialog <span class="hljs-keyword">from</span> <span class="hljs-string">'/kempo/components/Dialog.js'</span>;<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'d7'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Dialog.create(<span class="hljs-string">'&lt;p&gt;Hello World&lt;/p&gt;'</span>);<br /> });<br /></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
97
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"d7"</span>&gt;</span>Open Dialog<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"module"</span>&gt;</span><span class="javascript"><br /> <span class="hljs-keyword">import</span> Dialog <span class="hljs-keyword">from</span> <span class="hljs-string">'/src/components/Dialog.js'</span>;<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'d7'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Dialog.create(<span class="hljs-string">'&lt;p&gt;Hello World&lt;/p&gt;'</span>);<br /> });<br /></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
97
98
  <button id="d7" class="mb">Open Dialog</button>
98
99
  <script type="module">
99
- import Dialog from '/kempo/components/Dialog.js';
100
+ import Dialog from '/src/components/Dialog.js';
100
101
  document.getElementById('d7').addEventListener('click', () => {
101
102
  Dialog.create('<p>Hello World</p>');
102
103
  });
103
104
  </script>
104
105
 
105
106
  <h5>Error Dialog</h5>
106
- <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"d8"</span>&gt;</span>Open Dialog<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"module"</span>&gt;</span><span class="javascript"><br /> <span class="hljs-keyword">import</span> Dialog <span class="hljs-keyword">from</span> <span class="hljs-string">'/kempo/components/Dialog.js'</span>;<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'d8'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Dialog.error(<span class="hljs-string">"&lt;p&gt;Oh no, don't do that!&lt;/p&gt;"</span>);<br /> });<br /></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
107
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"d8"</span>&gt;</span>Open Dialog<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"module"</span>&gt;</span><span class="javascript"><br /> <span class="hljs-keyword">import</span> Dialog <span class="hljs-keyword">from</span> <span class="hljs-string">'/src/components/Dialog.js'</span>;<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'d8'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Dialog.error(<span class="hljs-string">"&lt;p&gt;Oh no, don't do that!&lt;/p&gt;"</span>);<br /> });<br /></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
107
108
  <button id="d8" class="mb">Open Dialog</button>
108
109
  <script type="module">
109
- import Dialog from '/kempo/components/Dialog.js';
110
+ import Dialog from '/src/components/Dialog.js';
110
111
  document.getElementById('d8').addEventListener('click', () => {
111
112
  Dialog.error("Oh no, don't do that!");
112
113
  });
@@ -114,10 +115,10 @@
114
115
 
115
116
  <h3 id="confirmDialog"><a href="#confirmDialog" class="no-link">Confirm Dialog</a></h3>
116
117
  <p>Use the <code>Dialog.confirm</code> static method to create a confirmation dialog. This method takes a text message, a response callback, and an options object.</p>
117
- <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"d9"</span>&gt;</span>Open Confirm Dialog<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"module"</span>&gt;</span><span class="javascript"><br /> <span class="hljs-keyword">import</span> Dialog <span class="hljs-keyword">from</span> <span class="hljs-string">'/kempo/components/Dialog.js'</span>;<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'d9'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Dialog.confirm(<span class="hljs-string">"Are you sure you want to proceed?"</span>, <span class="hljs-function"><span class="hljs-params">response</span> =&gt;</span> {<br /> <span class="hljs-built_in">console</span>.log(<span class="hljs-string">"User response:"</span>, response);<br /> });<br /> });<br /></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
118
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"d9"</span>&gt;</span>Open Confirm Dialog<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"module"</span>&gt;</span><span class="javascript"><br /> <span class="hljs-keyword">import</span> Dialog <span class="hljs-keyword">from</span> <span class="hljs-string">'/src/components/Dialog.js'</span>;<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'d9'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Dialog.confirm(<span class="hljs-string">"Are you sure you want to proceed?"</span>, <span class="hljs-function"><span class="hljs-params">response</span> =&gt;</span> {<br /> <span class="hljs-built_in">console</span>.log(<span class="hljs-string">"User response:"</span>, response);<br /> });<br /> });<br /></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
118
119
  <button id="d9" class="mb">Open Confirm Dialog</button>
119
120
  <script type="module">
120
- import Dialog from '/kempo/components/Dialog.js';
121
+ import Dialog from '/src/components/Dialog.js';
121
122
  document.getElementById('d9').addEventListener('click', () => {
122
123
  Dialog.confirm("Are you sure you want to proceed?", response => {
123
124
  console.log("User response:", response);
@@ -128,55 +129,43 @@
128
129
  <h2 id="jsRef">JavaScript Reference</h2>
129
130
 
130
131
  <h3 id="constructor"><a href="#constructor" class="no-link">Constructor</a></h3>
131
- <h6>Extends <a href="./component.html">Component</a></h6>
132
+ <h6>Extends <a href="./ShadowComponent.html">ShadowComponent</a></h6>
132
133
  <h5>
133
- <code>new Dialog(options)</code>
134
+ <code>new Dialog()</code>
134
135
  </h5>
135
136
 
136
137
  <h4>Parameters</h4>
137
- <h5><code>options<i>: object</i></code></h5>
138
- <p>An object containing the initial configuration for the dialog. The options object can contain the following properties:</p>
139
- <ul>
140
- <li><code>opened</code>: <i>boolean</i> - Whether the dialog is initially opened.</li>
141
- <li><code>closeBtn</code>: <i>boolean</i> - Whether to show the close button.</li>
142
- <li><code>overlayClose</code>: <i>boolean</i> - Whether clicking the overlay closes the dialog.</li>
143
- <li><code>confirmText</code>: <i>string</i> - Text for the confirm button.</li>
144
- <li><code>confirmClasses</code>: <i>string</i> - Classes for the confirm button.</li>
145
- <li><code>confirmAction</code>: <i>function</i> - Action to perform on confirm.</li>
146
- <li><code>cancelText</code>: <i>string</i> - Text for the cancel button.</li>
147
- <li><code>cancelClasses</code>: <i>string</i> - Classes for the cancel button.</li>
148
- <li><code>cancelAction</code>: <i>function</i> - Action to perform on cancel.</li>
149
- <li><code>closeCallback</code>: <i>function</i> - Callback to execute when the dialog is closed.</li>
150
- </ul>
138
+ <p>The Dialog constructor takes no parameters. Configuration is done through attributes or properties after instantiation.</p>
151
139
 
152
140
  <h3 id="requirements"><a href="#requirements" class="no-link">Requirements</a></h3>
153
141
  <ul>
154
- <li><a href="./component.html">Component</a></li>
142
+ <li><a href="./shadow-component.html">ShadowComponent</a></li>
143
+ <li><a href="./icon.html">Icon</a></li>
155
144
  </ul>
156
145
 
157
- <h3 id="attributes"><a href="#attributes" class="no-link">Attributes</a></h3>
146
+ <h3 id="properties"><a href="#properties" class="no-link">Properties</a></h3>
158
147
  <h5><code>opened<i>: boolean</i></code></h5>
159
- <p>Whether the dialog is opened.</p>
148
+ <p>Whether the dialog is opened. Syncs with the <code>opened</code> attribute.</p>
160
149
  <h5><code>closeBtn<i>: boolean</i></code></h5>
161
- <p>Whether to show the close button.</p>
150
+ <p>Whether to show the close button. Syncs with the <code>close-btn</code> attribute.</p>
162
151
  <h5><code>overlayClose<i>: boolean</i></code></h5>
163
- <p>Whether clicking the overlay closes the dialog.</p>
152
+ <p>Whether clicking the overlay closes the dialog. Syncs with the <code>overlay-close</code> attribute.</p>
164
153
  <h5><code>confirmText<i>: string</i></code></h5>
165
- <p>Text for the confirm button.</p>
154
+ <p>Text for the confirm button. Syncs with the <code>confirm-text</code> attribute.</p>
166
155
  <h5><code>confirmClasses<i>: string</i></code></h5>
167
- <p>Classes for the confirm button.</p>
156
+ <p>Classes for the confirm button. Syncs with the <code>confirm-classes</code> attribute.</p>
168
157
  <h5><code>cancelText<i>: string</i></code></h5>
169
- <p>Text for the cancel button.</p>
158
+ <p>Text for the cancel button. Syncs with the <code>cancel-text</code> attribute.</p>
170
159
  <h5><code>cancelClasses<i>: string</i></code></h5>
171
- <p>Classes for the cancel button.</p>
172
-
173
- <h3 id="properties"><a href="#properties" class="no-link">Properties</a></h3>
160
+ <p>Classes for the cancel button. Syncs with the <code>cancel-classes</code> attribute.</p>
174
161
  <h5><code>confirmAction<i>: function</i></code></h5>
175
- <p>Action to perform on confirm.</p>
162
+ <p>Action to perform when the confirm button is clicked. Not reflected as an attribute.</p>
176
163
  <h5><code>cancelAction<i>: function</i></code></h5>
177
- <p>Action to perform on cancel.</p>
164
+ <p>Action to perform when the cancel button is clicked. Not reflected as an attribute.</p>
178
165
  <h5><code>closeCallback<i>: function</i></code></h5>
179
- <p>Callback to execute when the dialog is closed.</p>
166
+ <p>Callback to execute when the dialog is closed. Not reflected as an attribute.</p>
167
+ <h5><code>previousFocus<i>: Element</i></code></h5>
168
+ <p>Reference to the element that had focus before the dialog was opened. Not reflected as an attribute.</p>
180
169
 
181
170
  <h3 id="methods"><a href="#methods" class="no-link">Methods</a></h3>
182
171
  <h5><code>open()<i>: void</i></code></h5>
@@ -206,25 +195,42 @@
206
195
  <li><code>cancelAction</code>: <i>function</i> - Action to perform on cancel.</li>
207
196
  <li><code>closeCallback</code>: <i>function</i> - Callback to execute when the dialog is closed.</li>
208
197
  </ul>
209
- <h5><code>confirm(text, responseCallback, options)<i>: void</i></code></h5>
210
- <p>Creates and opens a confirmation dialog with the specified text and options.</p>
198
+ <h5><code>confirm(text, responseCallback, options)<i>: Dialog</i></code></h5>
199
+ <p>Creates and opens a confirmation dialog with the specified text and options. The responseCallback receives a boolean indicating the user's choice.</p>
211
200
  <h6>Options</h6>
212
201
  <ul>
213
- <li><code>title</code>: <i>string</i> - The title of the dialog.</li>
214
- <li><code>confirmText</code>: <i>string</i> - Text for the confirm button.</li>
215
- <li><code>confirmClasses</code>: <i>string</i> - Classes for the confirm button.</li>
216
- <li><code>cancelText</code>: <i>string</i> - Text for the cancel button.</li>
217
- <li><code>cancelClasses</code>: <i>string</i> - Classes for the cancel button.</li>
202
+ <li><code>title</code>: <i>string</i> - The title of the dialog (default: "Confirm").</li>
203
+ <li><code>confirmText</code>: <i>string</i> - Text for the confirm button (default: "Yes").</li>
204
+ <li><code>confirmClasses</code>: <i>string</i> - Classes for the confirm button (default: "success ml").</li>
205
+ <li><code>cancelText</code>: <i>string</i> - Text for the cancel button (default: "No").</li>
206
+ <li><code>cancelClasses</code>: <i>string</i> - Classes for the cancel button (default: "danger").</li>
207
+ <li><code>closeBtn</code>: <i>boolean</i> - Whether to show the close button (default: false).</li>
208
+ <li><code>overlayClose</code>: <i>boolean</i> - Whether clicking the overlay closes the dialog (default: false).</li>
209
+ </ul>
210
+ <h5><code>alert(text, responseCallback, options)<i>: Dialog</i></code></h5>
211
+ <p>Creates and opens an alert dialog with the specified text and options.</p>
212
+ <h6>Options</h6>
213
+ <ul>
214
+ <li><code>title</code>: <i>string</i> - The title of the dialog (default: "Alert").</li>
215
+ <li><code>cancelText</code>: <i>string</i> - Text for the ok button (default: "Ok").</li>
218
216
  <li><code>closeBtn</code>: <i>boolean</i> - Whether to show the close button.</li>
219
217
  <li><code>overlayClose</code>: <i>boolean</i> - Whether clicking the overlay closes the dialog.</li>
220
218
  </ul>
221
- <h5><code>error(text, responseCallback, options)<i>: void</i></code></h5>
219
+ <h5><code>error(text, responseCallback, options)<i>: Dialog</i></code></h5>
222
220
  <p>Creates and opens an error dialog with the specified text and options.</p>
223
221
  <h6>Options</h6>
224
222
  <ul>
225
- <li><code>title</code>: <i>string</i> - The title of the dialog.</li>
226
- <li><code>cancelText</code>: <i>string</i> - Text for the cancel button.</li>
227
- <li><code>cancelClasses</code>: <i>string</i> - Classes for the cancel button.</li>
223
+ <li><code>title</code>: <i>string</i> - The title of the dialog (default: "Error").</li>
224
+ <li><code>cancelText</code>: <i>string</i> - Text for the ok button (default: "Ok").</li>
225
+ <li><code>closeBtn</code>: <i>boolean</i> - Whether to show the close button.</li>
226
+ <li><code>overlayClose</code>: <i>boolean</i> - Whether clicking the overlay closes the dialog.</li>
227
+ </ul>
228
+ <h5><code>success(text, responseCallback, options)<i>: Dialog</i></code></h5>
229
+ <p>Creates and opens a success dialog with the specified text and options.</p>
230
+ <h6>Options</h6>
231
+ <ul>
232
+ <li><code>title</code>: <i>string</i> - The title of the dialog (default: "Success").</li>
233
+ <li><code>cancelText</code>: <i>string</i> - Text for the ok button (default: "Ok").</li>
228
234
  <li><code>closeBtn</code>: <i>boolean</i> - Whether to show the close button.</li>
229
235
  <li><code>overlayClose</code>: <i>boolean</i> - Whether clicking the overlay closes the dialog.</li>
230
236
  </ul>
@@ -26,7 +26,6 @@
26
26
  <h6 class="mt">JavaScript Reference</h6>
27
27
  <a href="#constructor">Constructor</a><br />
28
28
  <a href="#requirements">Requirements</a><br />
29
- <a href="#attributes">Attributes</a><br />
30
29
  <a href="#properties">Properties</a><br />
31
30
  <a href="#methods">Methods</a><br />
32
31
  </div>
@@ -56,8 +55,8 @@
56
55
  <li><a href="./lazy-component.html">LazyComponent</a></li>
57
56
  </ul>
58
57
 
59
- <h3 id="attributes"><a href="#attributes" class="no-link">Attributes</a></h3>
60
- <p>The <code>FocusCapture</code> class does not introduce any new attributes beyond those provided by the <a href="./lazy-component.html">LazyComponent</a> class.</p>
58
+ <h3 id="properties"><a href="#properties" class="no-link">Properties</a></h3>
59
+ <p>The <code>FocusCapture</code> class does not introduce any new properties beyond those provided by the <a href="./lazy-component.html">LazyComponent</a> class.</p>
61
60
 
62
61
  <h3 id="methods"><a href="#methods" class="no-link">Methods</a></h3>
63
62
  <p>The <code>FocusCapture</code> class does not introduce any new methods beyond those provided by the <a href="./lazy-component.html">LazyComponent</a> class.</p>
@@ -34,7 +34,6 @@
34
34
  <h6 class="mt">JavaScript Reference</h6>
35
35
  <a href="#constructor">Constructor</a><br />
36
36
  <a href="#requirements">Requirements</a><br />
37
- <a href="#attributes">Attributes</a><br />
38
37
  <a href="#properties">Properties</a><br />
39
38
  <a href="#methods">Methods</a><br />
40
39
  </div>
@@ -139,18 +138,16 @@
139
138
 
140
139
  <h3 id="requirements"><a href="#requirements" class="no-link">Requirements</a></h3>
141
140
  <ul>
142
- <li><a href="./component.html">Component</a></li>
141
+ <li><a href="./shadow-component.html">ShadowComponent</a></li>
143
142
  </ul>
144
143
 
145
- <h3 id="attributes"><a href="#attributes" class="no-link">Attributes</a></h3>
144
+ <h3 id="properties"><a href="#properties" class="no-link">Properties</a></h3>
146
145
  <h5><code>name<i>: string</i></code></h5>
147
- <p>The name of the icon.</p>
146
+ <p>The name of the icon. Syncs with the <code>name</code> attribute.</p>
148
147
  <h5><code>src<i>: string</i></code></h5>
149
- <p>The source URL of the icon.</p>
150
-
151
- <h3 id="properties"><a href="#properties" class="no-link">Properties</a></h3>
148
+ <p>The source URL of the icon. Syncs with the <code>src</code> attribute.</p>
152
149
  <h5><code>pathToIcons<i>: Array</i></code></h5>
153
- <p>An array of paths to directories containing icons.</p>
150
+ <p>An array of paths to directories containing icons. This is a static property that affects all icon instances.</p>
154
151
 
155
152
  </main>
156
153
  <div style="height:33vh"></div>