kempo-ui 0.3.5 → 0.3.6

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 (139) hide show
  1. package/AGENTS.md +2 -1
  2. package/docs/components/accordion.html +240 -8
  3. package/docs/components/aside-items.html +13 -9
  4. package/docs/components/aside-menu.html +13 -9
  5. package/docs/components/aside-push.html +11 -6
  6. package/docs/components/aside.html +239 -8
  7. package/docs/components/card.html +238 -7
  8. package/docs/components/color-picker.html +245 -14
  9. package/docs/components/content-slider.html +240 -8
  10. package/docs/components/context.html +241 -7
  11. package/docs/components/dialog.html +238 -7
  12. package/docs/components/dropdown.html +238 -7
  13. package/docs/components/filter-list.html +239 -10
  14. package/docs/components/focus-capture.html +241 -10
  15. package/docs/components/html-editor.html +266 -35
  16. package/docs/components/hybrid-component.html +238 -6
  17. package/docs/components/icon.html +239 -9
  18. package/docs/components/import.html +239 -8
  19. package/docs/components/light-component.html +239 -7
  20. package/docs/components/nav.html +240 -8
  21. package/docs/components/photo-viewer.html +239 -9
  22. package/docs/components/resize.html +240 -9
  23. package/docs/components/shadow-component.html +239 -7
  24. package/docs/components/show-more.html +237 -8
  25. package/docs/components/sortable.html +239 -8
  26. package/docs/components/spinner.html +237 -6
  27. package/docs/components/split.html +241 -10
  28. package/docs/components/table.html +241 -11
  29. package/docs/components/tableControls.html +240 -7
  30. package/docs/components/tableCustomFields.html +241 -8
  31. package/docs/components/tableFetchRecords.html +239 -7
  32. package/docs/components/tableFieldSortHide.html +239 -7
  33. package/docs/components/tablePagination.html +246 -13
  34. package/docs/components/tablePlaceholder.html +241 -8
  35. package/docs/components/tableRecordEditing.html +241 -8
  36. package/docs/components/tableRecordFiltering.html +239 -7
  37. package/docs/components/tableRecordHiding.html +241 -9
  38. package/docs/components/tableRecordSearching.html +239 -7
  39. package/docs/components/tableRecordSelection.html +240 -7
  40. package/docs/components/tableRowControls.html +241 -8
  41. package/docs/components/tableServerSync.html +245 -11
  42. package/docs/components/tableSorting.html +239 -7
  43. package/docs/components/tabs.html +240 -7
  44. package/docs/components/tags.html +239 -7
  45. package/docs/components/theme-select.html +239 -7
  46. package/docs/components/theme-switcher.html +240 -8
  47. package/docs/components/timestamp.html +239 -8
  48. package/docs/components/toast.html +240 -8
  49. package/docs/components/toggle.html +240 -9
  50. package/docs/components/tree.html +239 -8
  51. package/docs/index.html +244 -6
  52. package/docs/prod.config.json +0 -4
  53. package/docs/utils/context.html +237 -6
  54. package/docs/utils/cookie.html +251 -21
  55. package/docs/utils/debounce.html +236 -5
  56. package/docs/utils/drag.html +236 -5
  57. package/docs/utils/elevation.html +238 -6
  58. package/docs/utils/formatTimestamp.html +233 -3
  59. package/docs/utils/object.html +236 -5
  60. package/docs/utils/propConverters.html +233 -3
  61. package/docs/utils/string.html +236 -5
  62. package/docs/utils/theme.html +237 -6
  63. package/docs/utils/toTitleCase.html +233 -3
  64. package/docs/utils/type.html +236 -5
  65. package/docs/utils/wait.html +236 -5
  66. package/docs-src/.config.js +16 -0
  67. package/docs-src/bare.template.html +16 -0
  68. package/docs-src/components/accordion.page.html +201 -0
  69. package/docs-src/components/aside-items.page.html +36 -0
  70. package/docs-src/components/aside-menu.page.html +36 -0
  71. package/docs-src/components/aside-push.page.html +20 -0
  72. package/docs-src/components/aside.page.html +551 -0
  73. package/docs-src/components/card.page.html +78 -0
  74. package/docs-src/components/color-picker.page.html +559 -0
  75. package/docs-src/components/content-slider.page.html +266 -0
  76. package/docs-src/components/context.page.html +214 -0
  77. package/docs-src/components/dialog.page.html +365 -0
  78. package/docs-src/components/dropdown.page.html +300 -0
  79. package/docs-src/components/filter-list.page.html +117 -0
  80. package/docs-src/components/focus-capture.page.html +97 -0
  81. package/docs-src/components/html-editor.page.html +423 -0
  82. package/docs-src/components/hybrid-component.page.html +96 -0
  83. package/docs-src/components/icon.page.html +208 -0
  84. package/docs-src/components/import.page.html +76 -0
  85. package/docs-src/components/light-component.page.html +99 -0
  86. package/docs-src/components/nav.page.html +106 -0
  87. package/docs-src/components/photo-viewer.page.html +253 -0
  88. package/docs-src/components/resize.page.html +161 -0
  89. package/docs-src/components/shadow-component.page.html +84 -0
  90. package/docs-src/components/show-more.page.html +113 -0
  91. package/docs-src/components/sortable.page.html +117 -0
  92. package/docs-src/components/spinner.page.html +197 -0
  93. package/docs-src/components/split.page.html +195 -0
  94. package/docs-src/components/table.page.html +283 -0
  95. package/docs-src/components/tableControls.page.html +64 -0
  96. package/docs-src/components/tableCustomFields.page.html +124 -0
  97. package/docs-src/components/tableFetchRecords.page.html +95 -0
  98. package/docs-src/components/tableFieldSortHide.page.html +56 -0
  99. package/docs-src/components/tablePagination.page.html +85 -0
  100. package/docs-src/components/tablePlaceholder.page.html +73 -0
  101. package/docs-src/components/tableRecordEditing.page.html +161 -0
  102. package/docs-src/components/tableRecordFiltering.page.html +69 -0
  103. package/docs-src/components/tableRecordHiding.page.html +65 -0
  104. package/docs-src/components/tableRecordSearching.page.html +56 -0
  105. package/docs-src/components/tableRecordSelection.page.html +60 -0
  106. package/docs-src/components/tableRowControls.page.html +62 -0
  107. package/docs-src/components/tableServerSync.page.html +129 -0
  108. package/docs-src/components/tableSorting.page.html +54 -0
  109. package/docs-src/components/tabs.page.html +201 -0
  110. package/docs-src/components/tags.page.html +157 -0
  111. package/docs-src/components/theme-select.page.html +106 -0
  112. package/docs-src/components/theme-switcher.page.html +122 -0
  113. package/docs-src/components/timestamp.page.html +109 -0
  114. package/docs-src/components/toast.page.html +338 -0
  115. package/docs-src/components/toggle.page.html +177 -0
  116. package/docs-src/components/tree.page.html +356 -0
  117. package/docs-src/default.template.html +28 -0
  118. package/docs-src/index.page.html +312 -0
  119. package/docs-src/nav.fragment.html +228 -0
  120. package/docs-src/utils/context.page.html +143 -0
  121. package/docs-src/utils/cookie.page.html +128 -0
  122. package/docs-src/utils/debounce.page.html +42 -0
  123. package/docs-src/utils/drag.page.html +64 -0
  124. package/docs-src/utils/elevation.page.html +144 -0
  125. package/docs-src/utils/formatTimestamp.page.html +76 -0
  126. package/docs-src/utils/object.page.html +76 -0
  127. package/docs-src/utils/propConverters.page.html +73 -0
  128. package/docs-src/utils/string.page.html +66 -0
  129. package/docs-src/utils/theme.page.html +136 -0
  130. package/docs-src/utils/toTitleCase.page.html +52 -0
  131. package/docs-src/utils/type.page.html +31 -0
  132. package/docs-src/utils/wait.page.html +31 -0
  133. package/package.json +4 -4
  134. package/scripts/build.js +5 -0
  135. package/scripts/docs.js +5 -52
  136. package/docs/dev.config.json +0 -20
  137. package/docs/nav-1.inc.html +0 -168
  138. package/docs/nav.inc.html +0 -168
  139. package/docs/nav.inc.js +0 -70
@@ -0,0 +1,113 @@
1
+ <page pageName="Show More" title="Show More - Components - Kempo Docs - A Web Components Solution">
2
+ <content location="header"></content>
3
+ <content>
4
+ <h1 class="ta-center">Show More</h1>
5
+ <k-accordion persistent-id="toc" class="b r mb">
6
+ <k-accordion-header for-panel="toc-panel">Table of Contents</k-accordion-header>
7
+ <k-accordion-panel name="toc-panel">
8
+ <div class="m ">
9
+ <h6>Examples</h6>
10
+ <a href="#basicUsage">Basic Usage</a><br />
11
+ <a href="#moreLessButtonText">"More" / "Less" Button Text</a><br />
12
+ <a href="#closedHeight">Closed Height</a><br />
13
+
14
+ <h6 class="mt"><a href="#jsRef" class="no-link">JavaScript Reference</a></h6>
15
+ <a href="#constructor">Constructor</a><br />
16
+ <a href="#requirements">Requirements</a><br />
17
+ <a href="#properties">Properties</a><br />
18
+ <a href="#cssCustomProperties">CSS Custom Properties</a><br />
19
+ <a href="#methods">Methods</a><br />
20
+ </div>
21
+ </k-accordion-panel>
22
+ </k-accordion>
23
+
24
+ <h3 id="basicUsage"><a href="#basicUsage" class="no-link">Basic Usage</a></h3>
25
+ <div class="row -mx">
26
+ <div class="col m-span-12 px">
27
+ <k-card label="HTML">
28
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-show-more</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Lorem ipsum dolor...<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><br /><span class="hljs-tag">&lt;/<span class="hljs-name">k-show-more</span>&gt;</span></code></pre>
29
+ </k-card>
30
+ </div>
31
+ <div class="col m-span-12 px">
32
+ <k-card label="Output">
33
+ <k-show-more>
34
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eius explicabo similique laudantium ipsa suscipit officia! Iusto, maxime. Sapiente velit nostrum perspiciatis aut quod ipsa maiores libero praesentium, ducimus optio ex repellendus deleniti eaque quam, consectetur vero dicta molestias est voluptate deserunt, rerum earum dolorem sequi. Doloribus deserunt ab dolor nihil! Eos quisquam, reprehenderit hic facere cumque ea possimus natus vitae veniam ratione totam aliquid iure enim, error magni. Animi laborum dignissimos odit, minima suscipit assumenda voluptates aspernatur deserunt harum atque consequuntur laudantium libero maxime nobis impedit, ducimus ipsam enim! Magnam voluptatem numquam nemo dignissimos? Dolores suscipit beatae hic aperiam dignissimos?</p>
35
+ </k-show-more>
36
+ </k-card>
37
+ </div>
38
+ </div>
39
+
40
+ <h3 id="moreLessButtonText"><a href="#moreLessButtonText" class="no-link">"More" / "Less" Button Text</a></h3>
41
+ <p>Change the text of the show "more" or "less" buttons by creating an element that has a <code>slot</code> attribute of <code>"more"</code> or <code>"less"</code>.</p>
42
+ <div class="row -mx">
43
+ <div class="col m-span-12 px">
44
+ <k-card label="HTML">
45
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-show-more</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Lorem ipsum dolor...<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"more"</span>&gt;</span>Reveal Details<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"less"</span>&gt;</span>Hide Details<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span><br /><span class="hljs-tag">&lt;/<span class="hljs-name">k-show-more</span>&gt;</span></code></pre>
46
+ </k-card>
47
+ </div>
48
+ <div class="col m-span-12 px">
49
+ <k-card label="Output">
50
+ <k-show-more>
51
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eius explicabo similique laudantium ipsa suscipit officia! Iusto, maxime. Sapiente velit nostrum perspiciatis aut quod ipsa maiores libero praesentium, ducimus optio ex repellendus deleniti eaque quam, consectetur vero dicta molestias est voluptate deserunt, rerum earum dolorem sequi. Doloribus deserunt ab dolor nihil! Eos quisquam, reprehenderit hic facere cumque ea possimus natus vitae veniam ratione totam aliquid iure enim, error magni. Animi laborum dignissimos odit, minima suscipit assumenda voluptates aspernatur deserunt harum atque consequuntur laudantium libero maxime nobis impedit, ducimus ipsam enim! Magnam voluptatem numquam nemo dignissimos? Dolores suscipit beatae hic aperiam dignissimos?</p>
52
+ <span slot="more">Reveal Details</span>
53
+ <span slot="less">Hide Details</span>
54
+ </k-show-more>
55
+ </k-card>
56
+ </div>
57
+ </div>
58
+
59
+ <h3 id="closedHeight"><a href="#closedHeight" class="no-link">Closed Height</a></h3>
60
+ <p>Change the height of the closed state by setting the <code>--closed_height</code> CSS Custom Property.</p>
61
+ <div class="row -mx">
62
+ <div class="col m-span-12 px">
63
+ <k-card label="HTML">
64
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-show-more</span><br /> <span class="hljs-attr">style</span>=<span class="hljs-string">"--closed_height: 4rem"</span><br />&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Lorem ipsum dolor...<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><br /><span class="hljs-tag">&lt;/<span class="hljs-name">k-show-more</span>&gt;</span></code></pre>
65
+ </k-card>
66
+ </div>
67
+ <div class="col m-span-12 px">
68
+ <k-card label="Output">
69
+ <k-show-more
70
+ style="--closed_height: 4rem"
71
+ >
72
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eius explicabo similique laudantium ipsa suscipit officia! Iusto, maxime. Sapiente velit nostrum perspiciatis aut quod ipsa maiores libero praesentium, ducimus optio ex repellendus deleniti eaque quam, consectetur vero dicta molestias est voluptate deserunt, rerum earum dolorem sequi. Doloribus deserunt ab dolor nihil! Eos quisquam, reprehenderit hic facere cumque ea possimus natus vitae veniam ratione totam aliquid iure enim, error magni. Animi laborum dignissimos odit, minima suscipit assumenda voluptates aspernatur deserunt harum atque consequuntur laudantium libero maxime nobis impedit, ducimus ipsam enim! Magnam voluptatem numquam nemo dignissimos? Dolores suscipit beatae hic aperiam dignissimos?</p>
73
+ </k-show-more>
74
+ </k-card>
75
+ </div>
76
+ </div>
77
+
78
+ <h2 id="jsRef"><a href="#jsRef" class="no-link">JavaScript Reference</a></h2>
79
+
80
+ <h3 id="constructor"><a href="#constructor" class="no-link">Constructor</a></h3>
81
+ <h6>Extends <a href="./shadow-component.html">ShadowComponent</a></h6>
82
+ <h5>
83
+ <code>new ShowMore()</code>
84
+ </h5>
85
+
86
+ <h3 id="requirements"><a href="#requirements" class="no-link">Requirements</a></h3>
87
+ <ul>
88
+ <li><a href="./shadow-component.html">ShadowComponent</a></li>
89
+ <li><a href="./icon.html">Icon</a></li>
90
+ </ul>
91
+
92
+ <h3 id="properties"><a href="#properties" class="no-link">Properties</a></h3>
93
+ <h5><code>opened<i>: boolean</i></code></h5>
94
+ <p>Whether the content is expanded. Syncs to <code>opened</code> attribute.</p>
95
+
96
+ <h3 id="cssCustomProperties"><a href="#cssCustomProperties" class="no-link">CSS Custom Properties</a></h3>
97
+ <h5><code>--closed_height</code></h5>
98
+ <p>The height of the content when in the collapsed state. Default is <code>7rem</code>.</p>
99
+
100
+ <h3 id="methods"><a href="#methods" class="no-link">Methods</a></h3>
101
+ <h5><code>more()<i>: void</i></code></h5>
102
+ <p>Expands the content.</p>
103
+ <h5><code>less()<i>: void</i></code></h5>
104
+ <p>Collapses the content.</p>
105
+ <h5><code>toggle()<i>: void</i></code></h5>
106
+ <p>Toggles the content between expanded and collapsed states.</p>
107
+ </content>
108
+ <content location="scripts">
109
+ <script type="module" src="{{pathToRoot}}src/components/ShowMore.js"></script>
110
+ <script type="module" src="{{pathToRoot}}src/components/Accordion.js"></script>
111
+ <script type="module" src="{{pathToRoot}}src/components/Card.js"></script>
112
+ </content>
113
+ </page>
@@ -0,0 +1,117 @@
1
+ <page pageName="Sortable" title="Sortable - Components - Kempo Docs - A Web Components Solution">
2
+ <content>
3
+ <k-accordion persistent-id="toc" class="b r mb">
4
+ <k-accordion-header for-panel="toc-panel">Table of Contents</k-accordion-header>
5
+ <k-accordion-panel name="toc-panel">
6
+ <div class="m mt0 pl">
7
+ <h6>Examples</h6>
8
+ <a href="#basicUsage">Basic Usage</a><br />
9
+ <a href="#sortEvent">Sort Event</a><br />
10
+
11
+ <h6 class="mt"><a href="#jsRef" class="no-link">JavaScript Reference</a></h6>
12
+ <a href="#constructor">Constructor</a><br />
13
+ <a href="#requirements">Requirements</a><br />
14
+ <a href="#properties">Properties</a><br />
15
+ <a href="#methods">Methods</a><br />
16
+ <a href="#events">Events</a><br />
17
+ </div>
18
+ </k-accordion-panel>
19
+ </k-accordion>
20
+
21
+ <h3 id="basicUsage"><a href="#basicUsage" class="no-link">Basic Usage</a></h3>
22
+ <p>The <code>k-sortable</code> component allows users to reorder items by dragging them. Wrap your items in a <code>k-sortable</code> container and use <code>k-sortable-item</code> for each item. Each item automatically gets a drag handle.</p>
23
+ <div class="row -mx">
24
+ <div class="col m-span-12 px">
25
+ <k-card label="HTML">
26
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-sortable</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">k-sortable-item</span>&gt;</span>Item 1<span class="hljs-tag">&lt;/<span class="hljs-name">k-sortable-item</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">k-sortable-item</span>&gt;</span>Item 2<span class="hljs-tag">&lt;/<span class="hljs-name">k-sortable-item</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">k-sortable-item</span>&gt;</span>Item 3<span class="hljs-tag">&lt;/<span class="hljs-name">k-sortable-item</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">k-sortable-item</span>&gt;</span>Item 4<span class="hljs-tag">&lt;/<span class="hljs-name">k-sortable-item</span>&gt;</span><br /><span class="hljs-tag">&lt;/<span class="hljs-name">k-sortable</span>&gt;</span></code></pre>
27
+ </k-card>
28
+ </div>
29
+ <div class="col m-span-12 px">
30
+ <k-card label="Output">
31
+ <p class="mb"><em>Drag items by their handle to reorder them.</em></p>
32
+ <k-sortable>
33
+ <k-sortable-item>Item 1</k-sortable-item>
34
+ <k-sortable-item>Item 2</k-sortable-item>
35
+ <k-sortable-item>Item 3</k-sortable-item>
36
+ <k-sortable-item>Item 4</k-sortable-item>
37
+ </k-sortable>
38
+ </k-card>
39
+ </div>
40
+ </div>
41
+
42
+ <h3 id="sortEvent"><a href="#sortEvent" class="no-link">Sort Event</a></h3>
43
+ <p>Listen to the <code>sort</code> event on the <code>k-sortable</code> container to be notified when items are reordered.</p>
44
+ <div class="row -mx">
45
+ <div class="col m-span-12 px">
46
+ <k-card label="HTML">
47
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-sortable</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"sortableExample"</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">k-sortable-item</span>&gt;</span>Apple<span class="hljs-tag">&lt;/<span class="hljs-name">k-sortable-item</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">k-sortable-item</span>&gt;</span>Banana<span class="hljs-tag">&lt;/<span class="hljs-name">k-sortable-item</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">k-sortable-item</span>&gt;</span>Cherry<span class="hljs-tag">&lt;/<span class="hljs-name">k-sortable-item</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">k-sortable-item</span>&gt;</span>Date<span class="hljs-tag">&lt;/<span class="hljs-name">k-sortable-item</span>&gt;</span><br /><span class="hljs-tag">&lt;/<span class="hljs-name">k-sortable</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">p</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"sortOutput"</span>&gt;</span>Reorder items to see the event fire<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">script</span>&gt;</span><span class="javascript"><br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'sortableExample'</span>).addEventListener(<span class="hljs-string">'sort'</span>, () =&gt; {<br /> <span class="hljs-keyword">const</span> items = <span class="hljs-title class_">Array</span>.<span class="hljs-title function_">from</span>(<span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'sortableExample'</span>).children)<br /> .<span class="hljs-title function_">map</span>(<span class="hljs-function"><span class="hljs-params">item</span> =&gt;</span> item.textContent);<br /> <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'sortOutput'</span>).textContent = <span class="hljs-string">`Order: <span class="hljs-subst">${items.join(<span class="hljs-string">', '</span>)}</span>`</span>;<br /> });<br /></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
48
+ </k-card>
49
+ </div>
50
+ <div class="col m-span-12 px">
51
+ <k-card label="Output">
52
+ <k-sortable id="sortableExample">
53
+ <k-sortable-item>Apple</k-sortable-item>
54
+ <k-sortable-item>Banana</k-sortable-item>
55
+ <k-sortable-item>Cherry</k-sortable-item>
56
+ <k-sortable-item>Date</k-sortable-item>
57
+ </k-sortable>
58
+ <p id="sortOutput" class="mt">Reorder items to see the event fire</p>
59
+ <script>
60
+ document.getElementById('sortableExample').addEventListener('sort', () => {
61
+ const items = Array.from(document.getElementById('sortableExample').children)
62
+ .map(item => item.textContent);
63
+ document.getElementById('sortOutput').textContent = `Order: ${items.join(', ')}`;
64
+ });
65
+ </script>
66
+ </k-card>
67
+ </div>
68
+ </div>
69
+
70
+ <h2 id="jsRef">JavaScript Reference</h2>
71
+
72
+ <h3 id="constructor"><a href="#constructor" class="no-link">Constructor</a></h3>
73
+
74
+ <h5><code>new Sortable()</code></h5>
75
+ <h6>Extends LitElement</h6>
76
+ <p>The container component that manages sortable items.</p>
77
+
78
+ <h5><code>new SortableItem()</code></h5>
79
+ <h6>Extends LitElement</h6>
80
+ <p>An individual sortable item with a drag handle.</p>
81
+
82
+ <h3 id="requirements"><a href="#requirements" class="no-link">Requirements</a></h3>
83
+ <ul>
84
+ <li>Lit</li>
85
+ <li><a href="{{pathToRoot}}utils/drag.html">drag</a> utility</li>
86
+ <li><a href="icon.html">Icon</a> component</li>
87
+ </ul>
88
+
89
+ <h3 id="properties"><a href="#properties" class="no-link">Properties</a></h3>
90
+
91
+ <h4>Sortable</h4>
92
+ <p>The Sortable container has no public properties.</p>
93
+
94
+ <h4>SortableItem</h4>
95
+ <h5><code>sorting<i>: boolean</i></code></h5>
96
+ <p>A boolean indicating if the item is currently being dragged. This property is reflected as an attribute and automatically set by the drag handlers. When <code>true</code>, the item has reduced opacity.</p>
97
+
98
+ <h3 id="methods"><a href="#methods" class="no-link">Methods</a></h3>
99
+
100
+ <h4>Sortable</h4>
101
+ <h5><code>getCursorElement()<i>: [Element, string] | null</i></code></h5>
102
+ <p>Returns the element and position ('before' or 'after') where the dragged item should be inserted based on the current cursor position. Returns <code>null</code> if no valid target is found.</p>
103
+
104
+ <h4>SortableItem</h4>
105
+ <h5><code>sortable<i>: Sortable</i></code></h5>
106
+ <p>A getter that returns the parent <code>k-sortable</code> element using <code>closest('k-sortable')</code>.</p>
107
+
108
+ <h3 id="events"><a href="#events" class="no-link">Events</a></h3>
109
+ <h5><code>sort</code></h5>
110
+ <p>Dispatched by the <code>k-sortable</code> container when an item is dropped in a new position. The event bubbles. Use this event to save the new order or update your application state.</p>
111
+ </content>
112
+ <content location="scripts">
113
+ <script type="module" src="{{pathToRoot}}src/components/Sortable.js"></script>
114
+ <script type="module" src="{{pathToRoot}}src/components/Accordion.js"></script>
115
+ <script type="module" src="{{pathToRoot}}src/components/Card.js"></script>
116
+ </content>
117
+ </page>
@@ -0,0 +1,197 @@
1
+ <page pageName="Spinner" title="Spinner - Components - Kempo Docs - A Web Components Solution">
2
+ <content location="header"></content>
3
+ <content>
4
+ <h1 class="ta-center">Spinner</h1>
5
+
6
+ <k-accordion persistent-id="toc" class="b r mb">
7
+ <k-accordion-header for-panel="toc-panel">Table of Contents</k-accordion-header>
8
+ <k-accordion-panel name="toc-panel">
9
+ <div class="m">
10
+ <h6>Examples</h6>
11
+ <a href="#basicUsage">Basic Usage</a><br />
12
+ <a href="#sizes">Sizes</a><br />
13
+ <a href="#variants">Variants</a><br />
14
+ <a href="#customColors">Custom Colors</a><br />
15
+ <a href="#withText">With Text</a><br />
16
+ <a href="#buttonLoading">Button Loading State</a><br />
17
+
18
+ <h6 class="mt"><a href="#jsRef" class="no-link">JavaScript Reference</a></h6>
19
+ <a href="#constructor">Constructor</a><br />
20
+ <a href="#requirements">Requirements</a><br />
21
+ <a href="#attributes">Attributes</a><br />
22
+ <a href="#cssVariables">CSS Variables</a><br />
23
+ </div>
24
+ </k-accordion-panel>
25
+ </k-accordion>
26
+
27
+ <h3 id="basicUsage"><a href="#basicUsage" class="no-link">Basic Usage</a></h3>
28
+ <p>Create loading spinners using the <code>k-spinner</code> component.</p>
29
+ <div class="row -mx">
30
+ <div class="col m-span-12 px">
31
+ <k-card label="HTML">
32
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span></code></pre>
33
+ </k-card>
34
+ </div>
35
+ <div class="col m-span-12 px">
36
+ <k-card label="Output">
37
+ <k-spinner></k-spinner>
38
+ </k-card>
39
+ </div>
40
+ </div>
41
+
42
+ <h3 id="sizes"><a href="#sizes" class="no-link">Sizes</a></h3>
43
+ <p>Control the spinner size using the <code>size</code> attribute. Options are <code>xs</code>, <code>sm</code>, <code>md</code> (default), <code>lg</code>, and <code>xl</code>.</p>
44
+ <div class="row -mx">
45
+ <div class="col m-span-12 px">
46
+ <k-card label="HTML">
47
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">size</span>=<span class="hljs-string">"xs"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">size</span>=<span class="hljs-string">"sm"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">size</span>=<span class="hljs-string">"md"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">size</span>=<span class="hljs-string">"lg"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">size</span>=<span class="hljs-string">"xl"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span></code></pre>
48
+ </k-card>
49
+ </div>
50
+ <div class="col m-span-12 px">
51
+ <k-card label="Output">
52
+ <div class="d-f ai-c gap">
53
+ <k-spinner size="xs"></k-spinner>
54
+ <k-spinner size="sm"></k-spinner>
55
+ <k-spinner size="md"></k-spinner>
56
+ <k-spinner size="lg"></k-spinner>
57
+ <k-spinner size="xl"></k-spinner>
58
+ </div>
59
+ </k-card>
60
+ </div>
61
+ </div>
62
+
63
+ <h3 id="variants"><a href="#variants" class="no-link">Variants</a></h3>
64
+ <p>Choose from different spinner styles using the <code>variant</code> attribute. Options are <code>spinner</code> (default), <code>dots</code>, <code>bars</code>, <code>pulse</code>, and <code>ring</code>.</p>
65
+ <div class="row -mx">
66
+ <div class="col m-span-12 px">
67
+ <k-card label="HTML">
68
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">variant</span>=<span class="hljs-string">"spinner"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">variant</span>=<span class="hljs-string">"dots"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">variant</span>=<span class="hljs-string">"bars"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">variant</span>=<span class="hljs-string">"pulse"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">variant</span>=<span class="hljs-string">"ring"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span></code></pre>
69
+ </k-card>
70
+ </div>
71
+ <div class="col m-span-12 px">
72
+ <k-card label="Output">
73
+ <div class="d-f ai-c gap-lg">
74
+ <div class="ta-center">
75
+ <k-spinner variant="spinner" size="lg"></k-spinner>
76
+ <p class="mt-sm mb0">spinner</p>
77
+ </div>
78
+ <div class="ta-center">
79
+ <k-spinner variant="dots" size="lg"></k-spinner>
80
+ <p class="mt-sm mb0">dots</p>
81
+ </div>
82
+ <div class="ta-center">
83
+ <k-spinner variant="bars" size="lg"></k-spinner>
84
+ <p class="mt-sm mb0">bars</p>
85
+ </div>
86
+ <div class="ta-center">
87
+ <k-spinner variant="pulse" size="lg"></k-spinner>
88
+ <p class="mt-sm mb0">pulse</p>
89
+ </div>
90
+ <div class="ta-center">
91
+ <k-spinner variant="ring" size="lg"></k-spinner>
92
+ <p class="mt-sm mb0">ring</p>
93
+ </div>
94
+ </div>
95
+ </k-card>
96
+ </div>
97
+ </div>
98
+
99
+ <h3 id="customColors"><a href="#customColors" class="no-link">Custom Colors</a></h3>
100
+ <p>Customize spinner colors using CSS variables.</p>
101
+ <div class="row -mx">
102
+ <div class="col m-span-12 px">
103
+ <k-card label="HTML">
104
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">style</span>=<span class="hljs-string">"--spinner-color: var(--c_success)"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">style</span>=<span class="hljs-string">"--spinner-color: var(--c_danger)"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">style</span>=<span class="hljs-string">"--spinner-color: var(--c_warning)"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span><br /><span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">style</span>=<span class="hljs-string">"--spinner-color: #9c27b0"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span></code></pre>
105
+ </k-card>
106
+ </div>
107
+ <div class="col m-span-12 px">
108
+ <k-card label="Output">
109
+ <div class="d-f ai-c gap">
110
+ <k-spinner style="--spinner-color: var(--c_success)"></k-spinner>
111
+ <k-spinner style="--spinner-color: var(--c_danger)"></k-spinner>
112
+ <k-spinner style="--spinner-color: var(--c_warning)"></k-spinner>
113
+ <k-spinner style="--spinner-color: #9c27b0"></k-spinner>
114
+ </div>
115
+ </k-card>
116
+ </div>
117
+ </div>
118
+
119
+ <h3 id="withText"><a href="#withText" class="no-link">With Text</a></h3>
120
+ <p>Combine spinners with text for loading messages.</p>
121
+ <div class="row -mx">
122
+ <div class="col m-span-12 px">
123
+ <k-card label="HTML">
124
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"d-f ai-c gap"</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span> <span class="hljs-attr">size</span>=<span class="hljs-string">"sm"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">span</span>&gt;</span>Loading...<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span><br /><span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span></code></pre>
125
+ </k-card>
126
+ </div>
127
+ <div class="col m-span-12 px">
128
+ <k-card label="Output">
129
+ <div class="d-f ai-c gap">
130
+ <k-spinner size="sm"></k-spinner>
131
+ <span>Loading...</span>
132
+ </div>
133
+ </k-card>
134
+ </div>
135
+ </div>
136
+
137
+ <h3 id="buttonLoading"><a href="#buttonLoading" class="no-link">Button Loading State</a></h3>
138
+ <p>Use spinners inside buttons to indicate loading states.</p>
139
+ <div class="row -mx">
140
+ <div class="col m-span-12 px">
141
+ <k-card label="HTML">
142
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">disabled</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span><br /> <span class="hljs-attr">size</span>=<span class="hljs-string">"xs"</span><br /> <span class="hljs-attr">style</span>=<span class="hljs-string">"--spinner-color: currentColor"</span><br /> &gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span><br /> Saving...<br /><span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span><br /><br /><span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"primary"</span> <span class="hljs-attr">disabled</span>&gt;</span><br /> <span class="hljs-tag">&lt;<span class="hljs-name">k-spinner</span><br /> <span class="hljs-attr">size</span>=<span class="hljs-string">"xs"</span><br /> <span class="hljs-attr">style</span>=<span class="hljs-string">"--spinner-color: currentColor"</span><br /> &gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-spinner</span>&gt;</span><br /> Loading...<br /><span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span></code></pre>
143
+ </k-card>
144
+ </div>
145
+ <div class="col m-span-12 px">
146
+ <k-card label="Output">
147
+ <div class="d-f gap">
148
+ <button disabled>
149
+ <k-spinner size="xs" style="--spinner-color: currentColor"></k-spinner>
150
+ Saving...
151
+ </button>
152
+ <button class="primary" disabled>
153
+ <k-spinner size="xs" style="--spinner-color: currentColor"></k-spinner>
154
+ Loading...
155
+ </button>
156
+ </div>
157
+ </k-card>
158
+ </div>
159
+ </div>
160
+
161
+ <h2 id="jsRef"><a href="#jsRef" class="no-link">JavaScript Reference</a></h2>
162
+
163
+ <h3 id="constructor"><a href="#constructor" class="no-link">Constructor</a></h3>
164
+ <h6>Extends <a href="./shadow-component.html">ShadowComponent</a></h6>
165
+ <h5><code>new Spinner()</code></h5>
166
+
167
+ <h3 id="requirements"><a href="#requirements" class="no-link">Requirements</a></h3>
168
+ <ul>
169
+ <li><a href="./shadow-component.html">ShadowComponent</a></li>
170
+ </ul>
171
+
172
+ <h3 id="attributes"><a href="#attributes" class="no-link">Attributes</a></h3>
173
+ <h5><code>size<i>: string</i></code></h5>
174
+ <p>The size of the spinner. Options: <code>xs</code>, <code>sm</code>, <code>md</code> (default), <code>lg</code>, <code>xl</code>.</p>
175
+
176
+ <h5><code>variant<i>: string</i></code></h5>
177
+ <p>The style variant of the spinner. Options: <code>spinner</code> (default), <code>dots</code>, <code>bars</code>, <code>pulse</code>, <code>ring</code>.</p>
178
+
179
+ <h3 id="cssVariables"><a href="#cssVariables" class="no-link">CSS Variables</a></h3>
180
+ <h5><code>--spinner-size</code></h5>
181
+ <p>The width and height of the spinner. Set automatically based on <code>size</code> attribute.</p>
182
+
183
+ <h5><code>--spinner-border-width</code></h5>
184
+ <p>The border thickness for spinner and ring variants. Set automatically based on <code>size</code> attribute.</p>
185
+
186
+ <h5><code>--spinner-color</code></h5>
187
+ <p>The primary color of the spinner. Default is <code>var(--c_primary)</code>.</p>
188
+
189
+ <h5><code>--spinner-track-color</code></h5>
190
+ <p>The background track color for the spinner variant. Default is <code>var(--c_border)</code>.</p>
191
+ </content>
192
+ <content location="scripts">
193
+ <script type="module" src="{{pathToRoot}}src/components/Spinner.js"></script>
194
+ <script type="module" src="{{pathToRoot}}src/components/Accordion.js"></script>
195
+ <script type="module" src="{{pathToRoot}}src/components/Card.js"></script>
196
+ </content>
197
+ </page>