kempo-ui 0.0.2 → 0.0.3

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 (193) hide show
  1. package/.github/copilot-instructions.md +149 -149
  2. package/.github/workflows/publish-npm.yml +44 -44
  3. package/CONTRIBUTING.md +149 -149
  4. package/README.md +0 -0
  5. package/dist/kempo-vars.css +0 -0
  6. package/dist/src/components/FocusCapture.js +7 -0
  7. package/dist/src/components/Icon.js +10 -0
  8. package/dist/src/components/Import.js +1 -0
  9. package/dist/src/components/ShadowComponent.js +1 -0
  10. package/dist/src/components/SideMenu.js +97 -0
  11. package/dist/src/lit-all.min.js +120 -0
  12. package/docs/components/accordion.html +122 -0
  13. package/docs/components/card.html +91 -0
  14. package/docs/components/component.html +90 -0
  15. package/docs/components/content-slider.html +193 -0
  16. package/docs/components/dialog.html +245 -0
  17. package/docs/components/directory-viewer.html +90 -0
  18. package/docs/components/focus-capture.html +68 -0
  19. package/docs/components/icon.html +161 -0
  20. package/docs/components/import.html +78 -0
  21. package/docs/components/lazy-component.html +84 -0
  22. package/docs/components/reactive-component.html +69 -0
  23. package/docs/components/reactive-lazy-component.html +69 -0
  24. package/docs/components/resize.html +152 -0
  25. package/docs/components/search.html +102 -0
  26. package/docs/components/show-more.html +123 -0
  27. package/docs/components/side-menu.html +168 -0
  28. package/docs/components/sortable.html +96 -0
  29. package/docs/components/split.html +126 -0
  30. package/docs/components/table.html +312 -0
  31. package/docs/components/tableControls.html +77 -0
  32. package/docs/components/tableCustomFields.html +113 -0
  33. package/docs/components/tableFetchRecords.html +114 -0
  34. package/docs/components/tableFieldSortHide.html +75 -0
  35. package/docs/components/tablePagination.html +100 -0
  36. package/docs/components/tableRecordEditing.html +144 -0
  37. package/docs/components/tableRecordFiltering.html +75 -0
  38. package/docs/components/tableRecordHiding.html +80 -0
  39. package/docs/components/tableRecordSearching.html +75 -0
  40. package/docs/components/tableRecordSelection.html +75 -0
  41. package/docs/components/tableRowControls.html +78 -0
  42. package/docs/components/tableSorting.html +73 -0
  43. package/docs/components/tabs.html +163 -0
  44. package/docs/components/tags.html +94 -0
  45. package/docs/components/theme-switcher.html +129 -0
  46. package/docs/components/timestamp.html +86 -0
  47. package/docs/components/toast.html +328 -0
  48. package/docs/components/toggle.html +155 -0
  49. package/docs/dev.config.json +20 -0
  50. package/docs/icons/add.svg +1 -0
  51. package/docs/icons/arrow-back.svg +1 -0
  52. package/docs/icons/arrow-down-double.svg +1 -0
  53. package/docs/icons/arrow-down.svg +1 -0
  54. package/docs/icons/arrow-forward.svg +1 -0
  55. package/docs/icons/arrow-up-double.svg +1 -0
  56. package/docs/icons/arrow-up.svg +1 -0
  57. package/docs/icons/cards.svg +1 -0
  58. package/docs/icons/check.svg +1 -0
  59. package/docs/icons/chevron-left.svg +1 -0
  60. package/docs/icons/chevron-right.svg +1 -0
  61. package/docs/icons/close.svg +2 -0
  62. package/docs/icons/compare.svg +1 -0
  63. package/docs/icons/delete.svg +1 -0
  64. package/docs/icons/drag-handle.svg +1 -0
  65. package/docs/icons/drawing2.svg +124 -0
  66. package/docs/icons/edit.svg +1 -0
  67. package/docs/icons/error.svg +1 -0
  68. package/docs/icons/export-file.svg +1 -0
  69. package/docs/icons/file-text.svg +1 -0
  70. package/docs/icons/file.svg +1 -0
  71. package/docs/icons/filter-off.svg +1 -0
  72. package/docs/icons/filter.svg +1 -0
  73. package/docs/icons/first.svg +1 -0
  74. package/docs/icons/folder-clear.svg +1 -0
  75. package/docs/icons/folder-create.svg +1 -0
  76. package/docs/icons/folder-open.svg +1 -0
  77. package/docs/icons/folder.svg +1 -0
  78. package/docs/icons/hide.svg +1 -0
  79. package/docs/icons/image.svg +1 -0
  80. package/docs/icons/label-add.svg +1 -0
  81. package/docs/icons/label.svg +1 -0
  82. package/docs/icons/last.svg +1 -0
  83. package/docs/icons/menu.svg +1 -0
  84. package/docs/icons/mode-auto.svg +1 -0
  85. package/docs/icons/mode-dark.svg +1 -0
  86. package/docs/icons/mode-light.svg +1 -0
  87. package/docs/icons/open-in-browser.svg +1 -0
  88. package/docs/icons/pause.svg +1 -0
  89. package/docs/icons/play.svg +1 -0
  90. package/docs/icons/refresh.svg +1 -0
  91. package/docs/icons/remove.svg +1 -0
  92. package/docs/icons/save.svg +1 -0
  93. package/docs/icons/search.svg +1 -0
  94. package/docs/icons/settings.svg +1 -0
  95. package/docs/icons/show.svg +1 -0
  96. package/docs/icons/storage.svg +1 -0
  97. package/docs/icons/table-visibility.svg +1 -0
  98. package/docs/icons/tag.svg +1 -0
  99. package/docs/icons/tools.svg +1 -0
  100. package/docs/icons/trash-x.svg +1 -0
  101. package/docs/icons/warning.svg +1 -0
  102. package/docs/index.html +28 -21
  103. package/docs/nav.inc.html +73 -0
  104. package/docs/nav.inc.js +4 -0
  105. package/{config/production.json → docs/prod.config.json} +20 -16
  106. package/docs/src/components/FocusCapture.js +7 -0
  107. package/docs/src/components/HybridComponent.js +1 -0
  108. package/docs/src/components/Icon.js +10 -0
  109. package/docs/src/components/Import.js +1 -0
  110. package/docs/src/components/LightComponent.js +1 -0
  111. package/docs/src/components/ShadowComponent.js +1 -0
  112. package/docs/src/components/SideMenu.js +97 -0
  113. package/docs/src/lit-all.min.js +120 -0
  114. package/docs/src/utils/cli.js +1 -0
  115. package/docs/src/utils/fs-utils.js +1 -0
  116. package/docs/styles.css +6 -0
  117. package/icons/add.svg +1 -0
  118. package/icons/arrow-back.svg +1 -0
  119. package/icons/arrow-down-double.svg +1 -0
  120. package/icons/arrow-down.svg +1 -0
  121. package/icons/arrow-forward.svg +1 -0
  122. package/icons/arrow-up-double.svg +1 -0
  123. package/icons/arrow-up.svg +1 -0
  124. package/icons/cards.svg +1 -0
  125. package/icons/check.svg +1 -0
  126. package/icons/chevron-left.svg +1 -0
  127. package/icons/chevron-right.svg +1 -0
  128. package/icons/close.svg +2 -0
  129. package/icons/compare.svg +1 -0
  130. package/icons/delete.svg +1 -0
  131. package/icons/drag-handle.svg +1 -0
  132. package/icons/drawing2.svg +124 -0
  133. package/icons/edit.svg +1 -0
  134. package/icons/error.svg +1 -0
  135. package/icons/export-file.svg +1 -0
  136. package/icons/file-text.svg +1 -0
  137. package/icons/file.svg +1 -0
  138. package/icons/filter-off.svg +1 -0
  139. package/icons/filter.svg +1 -0
  140. package/icons/first.svg +1 -0
  141. package/icons/folder-clear.svg +1 -0
  142. package/icons/folder-create.svg +1 -0
  143. package/icons/folder-open.svg +1 -0
  144. package/icons/folder.svg +1 -0
  145. package/icons/hide.svg +1 -0
  146. package/icons/image.svg +1 -0
  147. package/icons/label-add.svg +1 -0
  148. package/icons/label.svg +1 -0
  149. package/icons/last.svg +1 -0
  150. package/icons/menu.svg +1 -0
  151. package/icons/mode-auto.svg +1 -0
  152. package/icons/mode-dark.svg +1 -0
  153. package/icons/mode-light.svg +1 -0
  154. package/icons/open-in-browser.svg +1 -0
  155. package/icons/pause.svg +1 -0
  156. package/icons/play.svg +1 -0
  157. package/icons/refresh.svg +1 -0
  158. package/icons/remove.svg +1 -0
  159. package/icons/save.svg +1 -0
  160. package/icons/search.svg +1 -0
  161. package/icons/settings.svg +1 -0
  162. package/icons/show.svg +1 -0
  163. package/icons/storage.svg +1 -0
  164. package/icons/table-visibility.svg +1 -0
  165. package/icons/tag.svg +1 -0
  166. package/icons/tools.svg +1 -0
  167. package/icons/trash-x.svg +1 -0
  168. package/icons/warning.svg +1 -0
  169. package/package.json +2 -2
  170. package/scripts/build.js +109 -138
  171. package/scripts/docs.js +60 -60
  172. package/src/components/Card.js +66 -0
  173. package/src/components/FocusCapture.js +23 -0
  174. package/src/components/HybridComponent.js +40 -40
  175. package/src/components/Icon.js +155 -0
  176. package/src/components/Import.js +104 -0
  177. package/src/components/LightComponent.js +32 -32
  178. package/src/components/ShadowComponent.js +30 -17
  179. package/src/components/SideMenu.js +167 -0
  180. package/src/components/ThemeSwitcher.js +108 -0
  181. package/src/kempo-hljs.css +146 -0
  182. package/src/utils/cli.js +43 -43
  183. package/src/utils/fs-utils.js +41 -41
  184. package/src/utils/propConverters.js +11 -0
  185. package/tests/HybridComponent.browser-test.js +214 -214
  186. package/tests/LightComponent.browser-test.js +169 -169
  187. package/tests/ShadowComponent.browser-test.js +130 -130
  188. package/config/development.json +0 -14
  189. package/docs/components/ShadowComponent.js +0 -1
  190. /package/{docs → dist/src}/components/HybridComponent.js +0 -0
  191. /package/{docs → dist/src}/components/LightComponent.js +0 -0
  192. /package/{docs → dist/src}/utils/cli.js +0 -0
  193. /package/{docs → dist/src}/utils/fs-utils.js +0 -0
@@ -0,0 +1,328 @@
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>Toast - 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 Import from '../src/components/Import.js';
11
+ import Icon from '../src/components/Icon.js';
12
+ Import.replacements.root = '../';
13
+ Icon.pathToIcons = ['../icons'];
14
+ </script>
15
+ </head>
16
+ <body>
17
+ <k-import src="../nav.inc.html"></k-import>
18
+ <h1 class="ta-center">Toast</h1>
19
+ <main>
20
+ <details
21
+ class="b r mb"
22
+ >
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="#positions">Different Positions</a><br />
28
+ <a href="#timeouts">Timeouts</a><br />
29
+ <a href="#actionAndClose">Action and Close Buttons</a><br />
30
+
31
+ <h6 class="mt">JavaScript Reference</h6>
32
+ <a href="#constructor">Constructor</a><br />
33
+ <a href="#staticMethods">Static Methods</a><br />
34
+ <a href="#requirements">Requirements</a><br />
35
+ <a href="#attributes">Attributes</a><br />
36
+ <a href="#properties">Properties</a><br />
37
+ <a href="#methods">Methods</a><br />
38
+ <a href="#events">Events</a><br />
39
+ <a href="#toastContainer">ToastContainer</a><br />
40
+ </div>
41
+ </details>
42
+
43
+ <h3>Description</h3>
44
+ <p>The Toast component provides a way to display short-lived notifications to users. Toasts appear in a corner of the screen, can be configured with different positions, and can optionally include action and close buttons. Toasts can be set to automatically close after a specified timeout or remain until manually dismissed.</p>
45
+
46
+ <h3 id="basicUsage"><a href="#basicUsage" class="no-link">Basic Usage</a></h3>
47
+ <div class="row -mx">
48
+ <div class="col d-span-6 t-span-6 m-span-12 px">
49
+ <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">"example1"</span>&gt;</span>Open Toast<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> Toast <span class="hljs-keyword">from</span> <span class="hljs-string">'/kempo/components/Toast.js'</span>;<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'example1'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Toast.create(<span class="hljs-string">"Hello World"</span>);<br /> });<br /></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
50
+ </div>
51
+ <div class="col d-span-6 t-span-6 m-span-12 px">
52
+ <button id="example1" class="mb">Open Toast</button>
53
+ <script type="module">
54
+ import Toast from '/kempo/components/Toast.js';
55
+ document.getElementById('example1').addEventListener('click', () => {
56
+ Toast.create("Hello World");
57
+ });
58
+ </script>
59
+ </div>
60
+ </div>
61
+
62
+
63
+ <h3 id="positions"><a href="#positions" class="no-link">Different Positions</a></h3>
64
+ <p>Toasts can be positioned in different corners of the screen using the <code>position</code> property.</p>
65
+ <div class="row -mx">
66
+ <div class="col d-span-6 t-span-6 m-span-12 px">
67
+
68
+ </div>
69
+ <div class="col d-span-6 t-span-6 m-span-12 px">
70
+ <button id="example2-topleft" class="mb">Top Left</button>
71
+ <button id="example2-topcenter" class="mb">Top Center</button>
72
+ <button id="example2-topright" class="mb">Top Right</button><br />
73
+ <button id="example2-bottomleft" class="mb">Bottom Left</button>
74
+ <button id="example2-bottomcenter" class="mb">Bottom Center</button>
75
+ <button id="example2-bottomright" class="mb">Bottom Right</button>
76
+ <script type="module">
77
+ import Toast from '/kempo/components/Toast.js';
78
+ document.getElementById('example2-topleft').addEventListener('click', () => {
79
+ Toast.create("Hello Top Left", {
80
+ position: "top left"
81
+ });
82
+ });
83
+ document.getElementById('example2-topcenter').addEventListener('click', () => {
84
+ Toast.create("Hello Top Center", {
85
+ position: "top center"
86
+ });
87
+ });
88
+ document.getElementById('example2-topright').addEventListener('click', () => {
89
+ Toast.create("Hello Top Right", {
90
+ position: "top right"
91
+ });
92
+ });
93
+ document.getElementById('example2-bottomleft').addEventListener('click', () => {
94
+ Toast.create("Hello Bottom Left", {
95
+ position: "bottom left"
96
+ });
97
+ });
98
+ document.getElementById('example2-bottomcenter').addEventListener('click', () => {
99
+ Toast.create("Hello Bottom Center", {
100
+ position: "bottom center"
101
+ });
102
+ });
103
+ document.getElementById('example2-bottomright').addEventListener('click', () => {
104
+ Toast.create("Hello Bottom Right", {
105
+ position: "bottom right"
106
+ });
107
+ });
108
+ </script>
109
+ </div>
110
+ </div>
111
+
112
+ <h3 id="timeouts"><a href="#timeouts" class="no-link">Timeouts</a></h3>
113
+ <p>Toasts can automatically close after a specified timeout (in milliseconds). The default timeout when using <code>Toast.create</code> is <code>5000</code> (ms), or 5 seconds.</p>
114
+ <div class="row -mx">
115
+ <div class="col d-span-6 t-span-6 m-span-12 px">
116
+ <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">"example3-1"</span>&gt;</span>Open 1 Second Timeout Toast<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"example3-3"</span>&gt;</span>Open 3 Second Timeout Toast<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"example3-10"</span>&gt;</span>Open 10 Second Timeout Toast<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> Toast <span class="hljs-keyword">from</span> <span class="hljs-string">'/kempo/components/Toast.js'</span>;<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'example3-1'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Toast.create(<span class="hljs-string">"I will timeout in 1 second"</span>, {<br /> <span class="hljs-attr">timeout</span>: <span class="hljs-number">1000</span><br /> });<br /> });<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'example3-3'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Toast.create(<span class="hljs-string">"I will timeout in 3 second"</span>, {<br /> <span class="hljs-attr">timeout</span>: <span class="hljs-number">3000</span><br /> });<br /> });<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'example3-10'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Toast.create(<span class="hljs-string">"I will timeout in 10 second"</span>, {<br /> <span class="hljs-attr">timeout</span>: <span class="hljs-number">10000</span><br /> });<br /> });<br /></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
117
+ </div>
118
+ <div class="col d-span-6 t-span-6 m-span-12 px">
119
+ <button id="example3-1" class="mb">Open 1 Second Timeout Toast</button>
120
+ <button id="example3-3" class="mb">Open 3 Second Timeout Toast</button>
121
+ <button id="example3-10" class="mb">Open 10 Second Timeout Toast</button>
122
+ <script type="module">
123
+ import Toast from '/kempo/components/Toast.js';
124
+ document.getElementById('example3-1').addEventListener('click', () => {
125
+ Toast.create("I will timeout in 1 second", {
126
+ timeout: 1000
127
+ });
128
+ });
129
+ document.getElementById('example3-3').addEventListener('click', () => {
130
+ Toast.create("I will timeout in 3 second", {
131
+ timeout: 3000
132
+ });
133
+ });
134
+ document.getElementById('example3-10').addEventListener('click', () => {
135
+ Toast.create("I will timeout in 10 second", {
136
+ timeout: 10000
137
+ });
138
+ });
139
+ </script>
140
+ </div>
141
+ </div>
142
+
143
+
144
+ <h3 id="actionAndClose"><a href="#actionAndClose" class="no-link">Action and Close Buttons</a></h3>
145
+ <p>Toasts can have action and close buttons that trigger callbacks when clicked.</p>
146
+ <div class="row -mx">
147
+ <div class="col d-span-6 t-span-6 m-span-12 px">
148
+ <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">"example4-action"</span>&gt;</span>Open Toast with Action<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"example4-close"</span>&gt;</span>Open Toast with Close Button<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"example4-action-close"</span>&gt;</span>Open Toast with Action and Close Button<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> Toast <span class="hljs-keyword">from</span> <span class="hljs-string">'/kempo/components/Toast.js'</span>;<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'example4-action'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Toast.create(<span class="hljs-string">"Hello World"</span>, {<br /> <span class="hljs-attr">timeout</span>: <span class="hljs-number">0</span>,<br /> <span class="hljs-attr">action</span>: <span class="hljs-string">'Click Me'</span>,<br /> <span class="hljs-attr">actionCallback</span>: <span class="hljs-function"><span class="hljs-params">()</span> =&gt;</span> {<br /> Toast.create(<span class="hljs-string">"You clicked the action"</span>);<br /> }<br /> });<br /> });<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'example4-close'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Toast.create(<span class="hljs-string">"Hello World"</span>, {<br /> <span class="hljs-attr">timeout</span>: <span class="hljs-number">0</span>,<br /> <span class="hljs-attr">close</span>: <span class="hljs-string">'&lt;k-icon name="close"&gt;&lt;/div&gt;'</span>,<br /> <span class="hljs-attr">closeCallback</span>: <span class="hljs-function"><span class="hljs-params">()</span> =&gt;</span> {<br /> Toast.create(<span class="hljs-string">"You closed the toast"</span>);<br /> }<br /> });<br /> });<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'example4-action-close'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Toast.create(<span class="hljs-string">"Hello World"</span>, {<br /> <span class="hljs-attr">timeout</span>: <span class="hljs-number">0</span>,<br /> <span class="hljs-attr">action</span>: <span class="hljs-string">'Click Me'</span>,<br /> <span class="hljs-attr">actionCallback</span>: <span class="hljs-function"><span class="hljs-params">()</span> =&gt;</span> {<br /> Toast.create(<span class="hljs-string">"You clicked the action"</span>);<br /> <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>; <span class="hljs-comment">// return false to prevent closing</span><br /> },<br /> <span class="hljs-attr">close</span>: <span class="hljs-string">'&lt;k-icon name="close"&gt;&lt;/div&gt;'</span>,<br /> <span class="hljs-attr">closeCallback</span>: <span class="hljs-function"><span class="hljs-params">()</span> =&gt;</span> {<br /> Toast.create(<span class="hljs-string">"You closed the toast"</span>);<br /> }<br /> });<br /> });<br /></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
149
+ </div>
150
+ <div class="col d-span-6 t-span-6 m-span-12 px">
151
+ <button id="example4-action" class="mb">Open Toast with Action</button>
152
+ <button id="example4-close" class="mb">Open Toast with Close Button</button>
153
+ <button id="example4-action-close" class="mb">Open Toast with Action and Close Button</button>
154
+ <script type="module">
155
+ import Toast from '/kempo/components/Toast.js';
156
+ document.getElementById('example4-action').addEventListener('click', () => {
157
+ Toast.create("Hello World", {
158
+ timeout: 0,
159
+ action: 'Click Me',
160
+ actionCallback: () => {
161
+ Toast.create("You clicked the action");
162
+ }
163
+ });
164
+ });
165
+ document.getElementById('example4-close').addEventListener('click', () => {
166
+ Toast.create("Hello World", {
167
+ timeout: 0,
168
+ close: '<k-icon name="close"></div>',
169
+ closeCallback: () => {
170
+ Toast.create("You closed the toast");
171
+ }
172
+ });
173
+ });
174
+ document.getElementById('example4-action-close').addEventListener('click', () => {
175
+ Toast.create("Hello World", {
176
+ timeout: 0,
177
+ action: 'Click Me',
178
+ actionCallback: () => {
179
+ Toast.create("You clicked the action");
180
+ return false; // return false to prevent closing
181
+ },
182
+ close: '<k-icon name="close"></div>',
183
+ closeCallback: () => {
184
+ Toast.create("You closed the toast");
185
+ }
186
+ });
187
+ });
188
+ </script>
189
+ </div>
190
+ </div>
191
+
192
+ <h3 id="successWarningError"><a href="#successWarningError" class="no-link">Success, Warning and Error</a></h3>
193
+ <p>Toasts can be created as a success, warning or error message.</p>
194
+ <div class="row -mx">
195
+ <div class="col d-span-6 t-span-6 m-span-12 px">
196
+ <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">"example5-success"</span>&gt;</span>Success Toast<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"example5-warning"</span>&gt;</span>Warning Toast<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"example5-error"</span>&gt;</span>Error Toast<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> Toast <span class="hljs-keyword">from</span> <span class="hljs-string">'/kempo/components/Toast.js'</span>;<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'example5-success'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Toast.success(<span class="hljs-string">"It Worked!"</span>);<br /> });<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'example5-warning'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Toast.warning(<span class="hljs-string">"Be Careful"</span>);<br /> });<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'example5-error'</span>).addEventListener(<span class="hljs-string">'click'</span>, () =&gt; {<br /> Toast.error(<span class="hljs-string">"That's a very bad idea"</span>);<br /> });<br /></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
197
+ </div>
198
+ <div class="col d-span-6 t-span-6 m-span-12 px">
199
+ <button id="example5-success" class="mb">Success Toast</button>
200
+ <button id="example5-warning" class="mb">Warning Toast</button>
201
+ <button id="example5-error" class="mb">Error Toast</button>
202
+ <script type="module">
203
+ import Toast from '/kempo/components/Toast.js';
204
+ document.getElementById('example5-success').addEventListener('click', () => {
205
+ Toast.success("It Worked!");
206
+ });
207
+ document.getElementById('example5-warning').addEventListener('click', () => {
208
+ Toast.warning("Be Careful");
209
+ });
210
+ document.getElementById('example5-error').addEventListener('click', () => {
211
+ Toast.error("That's a very bad idea");
212
+ });
213
+ </script>
214
+ </div>
215
+ </div>
216
+
217
+
218
+ <h2 id="jsRef">JavaScript Reference</h2>
219
+
220
+ <h3 id="constructor"><a href="#constructor" class="no-link">Constructor</a></h3>
221
+ <h6>Extends <a href="./component.html">Component</a></h6>
222
+ <h5>
223
+ <code>new Toast()</code><br />
224
+ <code>new Toast(<i>object</i> options)</code>
225
+ </h5>
226
+
227
+ <h4>Parameters</h4>
228
+ <h5><code>options<i>: object</i></code></h5>
229
+ <p>An object with the following optional properties:</p>
230
+ <ul>
231
+ <li><code>actionCallback<i>: function</i></code> - Function to call when the action button is clicked. If this function returns <code>false</code>, the toast will not close.</li>
232
+ <li><code>actionHtml<i>: string</i></code> - HTML content for the action button.</li>
233
+ <li><code>closeCallback<i>: function</i></code> - Function to call when the toast is closed.</li>
234
+ <li><code>closeHtml<i>: string</i></code> - HTML content for the close button.</li>
235
+ <li><code>timeout<i>: number</i></code> - Time in milliseconds before the toast automatically closes. Default is 0 (no auto-close).</li>
236
+ </ul>
237
+
238
+ <h3 id="staticMethods"><a href="#staticMethods" class="no-link">Static Methods</a></h3>
239
+ <h5><code>Toast.create(message, options)<i>: Toast</i></code></h5>
240
+ <p>Creates and displays a new toast with the specified message and options. Returns the created Toast instance.</p>
241
+ <p>Options include:</p>
242
+ <ul>
243
+ <li><code>position<i>: string</i></code> - Position of the toast on the screen. Default is 'auto', which uses 'bottom center' on mobile and 'top right' on desktop. Valid positions are: 'top left', 'top center', 'top right', 'bottom left', 'bottom center', 'bottom right'.</li>
244
+ <li><code>removeOnClose<i>: boolean</i></code> - If true, the toast element will be removed from the DOM when closed. Default is true.</li>
245
+ <li><code>timeout<i>: number</i></code> - Time in milliseconds before the toast automatically closes. Default is 5000ms (5 seconds).</li>
246
+ <li><code>action<i>: string | HTMLElement</i></code> - Text or HTML element to use for the action button.</li>
247
+ <li><code>actionCallback<i>: function</i></code> - Function to call when the action button is clicked. If this function returns <code>false</code>, the toast will not close.</li>
248
+ <li><code>close<i>: string | HTMLElement</i></code> - Text or HTML element to use for the close button.</li>
249
+ <li><code>closeCallback<i>: function</i></code> - Function to call when the toast is closed.</li>
250
+ <li><code>icon<i>: string | HTMLElement</i></code> - Text or HTML element to use as an icon in the toast.</li>
251
+ </ul>
252
+
253
+ <h5><code>Toast.success(message, options)<i>: Toast</i></code></h5>
254
+ <p>Creates and displays a success toast with a check icon and applies a success background style. Accepts the same options as <code>Toast.create()</code>.</p>
255
+
256
+ <h5><code>Toast.warning(message, options)<i>: Toast</i></code></h5>
257
+ <p>Creates and displays a warning toast with a warning icon and applies a warning background style. Accepts the same options as <code>Toast.create()</code>.</p>
258
+
259
+ <h5><code>Toast.error(message, options)<i>: Toast</i></code></h5>
260
+ <p>Creates and displays an error toast with an error icon and applies a danger background style. Accepts the same options as <code>Toast.create()</code>.</p>
261
+
262
+ <h3 id="requirements"><a href="#requirements" class="no-link">Requirements</a></h3>
263
+ <ul>
264
+ <li><a href="./component.html">Component</a></li>
265
+ </ul>
266
+
267
+ <h3 id="attributes"><a href="#attributes" class="no-link">Attributes</a></h3>
268
+ <h5><code>action-html<i>: string</i></code></h5>
269
+ <p>HTML content for the action button.</p>
270
+
271
+ <h5><code>close-html<i>: string</i></code></h5>
272
+ <p>HTML content for the close button.</p>
273
+
274
+ <h5><code>timeout<i>: number</i></code></h5>
275
+ <p>Time in milliseconds before the toast automatically closes. Default is 0 (no auto-close).</p>
276
+
277
+ <h5><code>opened<i>: boolean</i></code></h5>
278
+ <p>Whether the toast is currently open. Default is false.</p>
279
+
280
+ <h3 id="properties"><a href="#properties" class="no-link">Properties</a></h3>
281
+ <h5><code>actionCallback<i>: function</i></code></h5>
282
+ <p>Function to call when the action button is clicked.</p>
283
+
284
+ <h5><code>closeCallback<i>: function</i></code></h5>
285
+ <p>Function to call when the toast is closed.</p>
286
+
287
+ <h5><code>actionHtml<i>: string</i></code></h5>
288
+ <p>HTML content for the action button.</p>
289
+
290
+ <h5><code>closeHtml<i>: string</i></code></h5>
291
+ <p>HTML content for the close button.</p>
292
+
293
+ <h5><code>timeout<i>: number</i></code></h5>
294
+ <p>Time in milliseconds before the toast automatically closes.</p>
295
+
296
+ <h5><code>opened<i>: boolean</i></code></h5>
297
+ <p>Whether the toast is currently open.</p>
298
+
299
+ <h3 id="methods"><a href="#methods" class="no-link">Methods</a></h3>
300
+ <h5><code>open()<i>: void</i></code></h5>
301
+ <p>Opens the toast. If a timeout is specified, this starts the timer for automatic closing.</p>
302
+
303
+ <h5><code>close()<i>: void</i></code></h5>
304
+ <p>Closes the toast and calls the <code>closeCallback</code> if provided.</p>
305
+
306
+ <h3 id="events"><a href="#events" class="no-link">Events</a></h3>
307
+ <h5><code>open</code></h5>
308
+ <p>Fired when the toast is opened.</p>
309
+
310
+ <h5><code>close</code></h5>
311
+ <p>Fired when the toast is closed.</p>
312
+
313
+ <h5><code>openchange</code></h5>
314
+ <p>Fired when the toast open state changes (both when opening and closing).</p>
315
+
316
+ <h3 id="toastContainer"><a href="#toastContainer" class="no-link">ToastContainer</a></h3>
317
+ <p>The <code>ToastContainer</code> is an internal component used to position and display toasts. It is automatically created when <code>Toast.create()</code> is called, but can also be used directly.</p>
318
+
319
+ <h5><code>new ToastContainer(position)</code></h5>
320
+ <p>Creates a new toast container at the specified position.</p>
321
+
322
+ <h5><code>position<i>: string</i></code></h5>
323
+ <p>The position of the container on the screen. Valid values are: 'top left', 'top center', 'top right', 'bottom left', 'bottom center', 'bottom right'.</p>
324
+
325
+ </main>
326
+ <script type="module" src="../src/components/Import.js"></script>
327
+ </body>
328
+ </html>
@@ -0,0 +1,155 @@
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>Toggle - 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 Import from '../src/components/Import.js';
11
+ import Icon from '../src/components/Icon.js';
12
+ Import.replacements.root = '../';
13
+ Icon.pathToIcons = ['../icons'];
14
+ </script>
15
+ </head>
16
+ <body>
17
+ <k-import src="../nav.inc.html"></k-import>
18
+ <h1 class="ta-center">Toggle</h1>
19
+ <main>
20
+ <details class="b r mb">
21
+ <summary class="p">Table of Contents</summary>
22
+ <div class="m mt0 pl">
23
+ <h6>Examples</h6>
24
+ <a href="#basicUsage">Basic Usage</a><br />
25
+ <a href="#onByDefault">On By Default</a><br />
26
+ <a href="#customStyles">Custom Styles</a><br />
27
+ <a href="#javascriptUsage">JavaScript Usage</a><br />
28
+
29
+ <h6 class="mt">JavaScript Reference</h6>
30
+ <a href="#constructor">Constructor</a><br />
31
+ <a href="#requirements">Requirements</a><br />
32
+ <a href="#attributes">Attributes</a><br />
33
+ <a href="#properties">Properties</a><br />
34
+ <a href="#methods">Methods</a><br />
35
+ </div>
36
+ </details>
37
+
38
+ <h3 id="basicUsage"><a href="#basicUsage" class="no-link">Basic Usage</a></h3>
39
+ <div class="row -mx">
40
+ <div class="col m-span-12 px">
41
+ <k-card label="HTML">
42
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-toggle</span>&gt;</span>Toggle Me<span class="hljs-tag">&lt;/<span class="hljs-name">k-toggle</span>&gt;</span></code></pre>
43
+ </k-card>
44
+ </div>
45
+ <div class="col m-span-12 px">
46
+ <k-card label="Output">
47
+ <k-toggle>Toggle Me</k-toggle>
48
+ </k-card>
49
+ </div>
50
+ </div>
51
+
52
+ <h3 id="onByDefault"><a href="#onByDefault" class="no-link">On By Default</a></h3>
53
+ <div class="row -mx">
54
+ <div class="col m-span-12 px">
55
+ <k-card label="HTML">
56
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-toggle</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"true"</span>&gt;</span>Toggle Me<span class="hljs-tag">&lt;/<span class="hljs-name">k-toggle</span>&gt;</span></code></pre>
57
+ </k-card>
58
+ </div>
59
+ <div class="col m-span-12 px">
60
+ <k-card label="Output">
61
+ <k-toggle value="true">Toggle Me</k-toggle>
62
+ </k-card>
63
+ </div>
64
+ </div>
65
+
66
+ <h3 id="customStyles"><a href="#customStyles" class="no-link">Custom Styles</a></h3>
67
+ <div class="row -mx">
68
+ <div class="col m-span-12 px">
69
+ <k-card label="HTML">
70
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-toggle</span> <br /> <span class="hljs-attr">style</span>=<span class="hljs-string">"<br /> --switch_height: 3rem;<br /> --switch_width: 5rem;<br /> --switch_border: none;<br /> --switch_background__off: var(--c_danger);<br /> --switch_background__on: var(--c_success);<br /> --handle_size__off: 2rem;<br /> --handle_size__on: calc(3rem - 2px);<br /> --handle_border: none;<br /> --handle_background__off: #ddd;<br /> --handle_background__on: white;<br /> "</span><br />&gt;</span>Toggle Me<span class="hljs-tag">&lt;/<span class="hljs-name">k-toggle</span>&gt;</span></code></pre>
71
+ </k-card>
72
+ </div>
73
+ <div class="col m-span-12 px">
74
+ <k-card label="Output">
75
+ <k-toggle
76
+ style="
77
+ --switch_height: 3rem;
78
+ --switch_width: 5rem;
79
+ --switch_border: none;
80
+ --switch_background__off: var(--c_danger);
81
+ --switch_background__on: var(--c_success);
82
+ --handle_size__off: 2rem;
83
+ --handle_size__on: calc(3rem - 2px);
84
+ --handle_border: none;
85
+ --handle_background__off: #ddd;
86
+ --handle_background__on: white;
87
+ "
88
+ >Toggle Me</k-toggle>
89
+ </k-card>
90
+ </div>
91
+ </div>
92
+
93
+ <h3 id="javascriptUsage"><a href="#javascriptUsage" class="no-link">JavaScript Usage</a></h3>
94
+ <div class="row -mx">
95
+ <div class="col m-span-12 px">
96
+ <k-card label="HTML">
97
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-toggle</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"tog1"</span>&gt;</span>Toggle Me<span class="hljs-tag">&lt;/<span class="hljs-name">k-toggle</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"turnOn"</span>&gt;</span>Turn On<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"turnOff"</span>&gt;</span>Turn Off<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"toggle"</span>&gt;</span>Toggle<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>&gt;</span><span class="javascript"><br /> <span class="hljs-keyword">const</span> $tog1 = <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'tog1'</span>);<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'turnOn'</span>).addEventListener(<span class="hljs-string">'click'</span>, ()=&gt;{<br /> $tog1.on();<br /> });<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'turnOff'</span>).addEventListener(<span class="hljs-string">'click'</span>, ()=&gt;{<br /> $tog1.off();<br /> });<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'toggle'</span>).addEventListener(<span class="hljs-string">'click'</span>, ()=&gt;{<br /> $tog1.toggle();<br /> });<br /></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
98
+ </k-card>
99
+ </div>
100
+ <div class="col m-span-12 px">
101
+ <k-card label="Output">
102
+ <k-toggle id="tog1">Toggle Me</k-toggle>
103
+ <button id="turnOn">Turn On</button>
104
+ <button id="turnOff">Turn Off</button>
105
+ <button id="toggle">Toggle</button>
106
+ <script>
107
+ const $tog1 = document.getElementById('tog1');
108
+ document.getElementById('turnOn').addEventListener('click', ()=>{
109
+ $tog1.on();
110
+ });
111
+ document.getElementById('turnOff').addEventListener('click', ()=>{
112
+ $tog1.off();
113
+ });
114
+ document.getElementById('toggle').addEventListener('click', ()=>{
115
+ $tog1.toggle();
116
+ });
117
+ </script>
118
+ </k-card>
119
+ </div>
120
+ </div>
121
+
122
+ <h2 id="jsRef">JavaScript Reference</h2>
123
+
124
+ <h3 id="constructor"><a href="#constructor" class="no-link">Constructor</a></h3>
125
+ <h6>Extends <a href="./component.html">Component</a></h6>
126
+ <h5>
127
+ <code>new Toggle()</code>
128
+ </h5>
129
+
130
+ <h3 id="requirements"><a href="#requirements" class="no-link">Requirements</a></h3>
131
+ <ul>
132
+ <li><a href="./component.html">Component</a></li>
133
+ </ul>
134
+
135
+ <h3 id="attributes"><a href="#attributes" class="no-link">Attributes</a></h3>
136
+ <h5><code>value<i>: boolean</i></code></h5>
137
+ <p>A boolean that indicates if the switch is on or off, the default value is <code>false</code>.</p>
138
+ <p>This can be set directly, but it is not recommended as it only triggers the a <code>change</code> event and not a <code>on</code>, <code>off</code> or <code>toggle</code> event as the methods do, so the methods are preferrable.</p>
139
+
140
+ <h3 id="methods"><a href="#methods" class="no-link">Methods</a></h3>
141
+ <h5><code>on()<i>: this</i></code></h5>
142
+ <p>Set's the <code>value</code> to <code>true</code>, dispatches a <code><i>change</i></code> and an <code><i>on</i></code> event. The switch visual changes to the <b>on</b> state.</p>
143
+
144
+ <h5><code>off()<i>: this</i></code></h5>
145
+ <p>Set's the <code>value</code> to <code>false</code>, dispatches a <code><i>change</i></code> and an <code><i>off</i></code> event. The switch visual changes to the <b>off</b> state.</p>
146
+
147
+ <h5><code>toggle()<i>: this</i></code></h5>
148
+ <p>Negates the <code>value</code>, if it is <code>true</code> it is now set to <code>false</code>, but if it is <code>false</code> it is now set to <code>true</code>. It also dispatches dispatches a <code><i>change</i></code> and an <code><i>on</i></code> or <code><i>off</i></code> event. The switch visual changes to the oposite state.</p>
149
+
150
+ </main>
151
+ <div style="height:33vh"></div>
152
+ <script type="module" src="../src/components/Import.js"></script>
153
+ <script type="module" src="../src/components/Toggle.js"></script>
154
+ </body>
155
+ </html>
@@ -0,0 +1,20 @@
1
+ {
2
+ "customRoutes": {
3
+ "/": "./index.html",
4
+ "/kempo.min.css": "../node_modules/kempo-css/dist/kempo.min.css",
5
+ "/kempo-vars.css": "../src/kempo-vars.css",
6
+ "/kempo-hljs.css": "../src/kempo-hljs.css",
7
+ "/icons/**": "../icons/**",
8
+ "/src/**": "../src/**"
9
+ },
10
+ "mimeTypes": {
11
+ ".js": "application/javascript",
12
+ ".mjs": "application/javascript"
13
+ },
14
+ "middleware": {
15
+ "logging": {
16
+ "enabled": true,
17
+ "includeResponseTime": true
18
+ }
19
+ }
20
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M440-440H200v-80h240v-240h80v240h240v80H520v240h-80v-240Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="m313-440 224 224-57 56-320-320 320-320 57 56-224 224h487v80H313Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M480-200 240-440l56-56 184 183 184-183 56 56-240 240Zm0-240L240-680l56-56 184 183 184-183 56 56-240 240Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M440-800v487L216-537l-56 57 320 320 320-320-56-57-224 224v-487h-80Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M647-440H160v-80h487L423-744l57-56 320 320-320 320-57-56 224-224Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="m296-224-56-56 240-240 240 240-56 56-184-183-184 183Zm0-240-56-56 240-240 240 240-56 56-184-183-184 183Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M440-160v-487L216-423l-56-57 320-320 320 320-56 57-224-224v487h-80Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M240-500v-220h220v220H240Zm0 260v-220h220v220H240Zm260-260v-220h220v220H500Zm0 260v-220h220v220H500ZM320-580h60v-60h-60v60Zm260 0h60v-60h-60v60ZM320-320h60v-60h-60v60Zm260 0h60v-60h-60v60ZM380-580Zm200 0Zm0 200Zm-200 0ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z"/></svg>
@@ -0,0 +1,2 @@
1
+
2
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M400-40v-80H200q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h200v-80h80v880h-80ZM200-240h200v-240L200-240Zm360 120v-360l200 240v-520H560v-80h200q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H560Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M160-360v-80h640v80H160Zm0-160v-80h640v80H160Z"/></svg>