@sondor-technology/sondor-components 1.0.0 → 1.0.1-develop.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 (168) hide show
  1. package/README.md +8 -0
  2. package/dist/components/alert/alert.d.ts +13 -0
  3. package/dist/components/alert/alert.d.ts.map +1 -0
  4. package/dist/components/alert/alert.js +105 -0
  5. package/dist/components/badge/badge.d.ts +13 -0
  6. package/dist/components/badge/badge.d.ts.map +1 -0
  7. package/dist/components/badge/badge.js +101 -0
  8. package/dist/components/breadcrumb/breadcrumb.d.ts +19 -0
  9. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
  10. package/dist/components/breadcrumb/breadcrumb.js +99 -0
  11. package/dist/components/button/button.d.ts +23 -0
  12. package/dist/components/button/button.d.ts.map +1 -0
  13. package/dist/components/button/button.js +304 -0
  14. package/dist/components/button-group/button-group.d.ts +6 -0
  15. package/dist/components/button-group/button-group.d.ts.map +1 -0
  16. package/dist/components/button-group/button-group.js +74 -0
  17. package/dist/components/card/card.d.ts +11 -0
  18. package/dist/components/card/card.d.ts.map +1 -0
  19. package/dist/components/card/card.js +54 -0
  20. package/dist/components/checkbox/checkbox.d.ts +28 -0
  21. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  22. package/dist/components/checkbox/checkbox.js +247 -0
  23. package/dist/components/code-block/code-block.d.ts +20 -0
  24. package/dist/components/code-block/code-block.d.ts.map +1 -0
  25. package/dist/components/code-block/code-block.js +260 -0
  26. package/dist/components/content-card/content-card.d.ts +13 -0
  27. package/dist/components/content-card/content-card.d.ts.map +1 -0
  28. package/dist/components/content-card/content-card.js +140 -0
  29. package/dist/components/divider/divider.d.ts +16 -0
  30. package/dist/components/divider/divider.d.ts.map +1 -0
  31. package/dist/components/divider/divider.js +82 -0
  32. package/dist/components/drawer/drawer.d.ts +22 -0
  33. package/dist/components/drawer/drawer.d.ts.map +1 -0
  34. package/dist/components/drawer/drawer.js +226 -0
  35. package/dist/components/field/field.d.ts +11 -0
  36. package/dist/components/field/field.d.ts.map +1 -0
  37. package/dist/components/field/field.js +32 -0
  38. package/dist/components/footer/footer.d.ts +6 -0
  39. package/dist/components/footer/footer.d.ts.map +1 -0
  40. package/dist/components/footer/footer.js +65 -0
  41. package/dist/components/form/form-step.d.ts +13 -0
  42. package/dist/components/form/form-step.d.ts.map +1 -0
  43. package/dist/components/form/form-step.js +41 -0
  44. package/dist/components/form/form.d.ts +25 -0
  45. package/dist/components/form/form.d.ts.map +1 -0
  46. package/dist/components/form/form.js +358 -0
  47. package/dist/components/grid/grid-row.d.ts +17 -0
  48. package/dist/components/grid/grid-row.d.ts.map +1 -0
  49. package/dist/components/grid/grid-row.js +92 -0
  50. package/dist/components/grid/grid.d.ts +13 -0
  51. package/dist/components/grid/grid.d.ts.map +1 -0
  52. package/dist/components/grid/grid.js +42 -0
  53. package/dist/components/icon/icon-paths.d.ts +132 -0
  54. package/dist/components/icon/icon-paths.d.ts.map +1 -0
  55. package/dist/components/icon/icon-paths.js +137 -0
  56. package/dist/components/icon/icon.d.ts +16 -0
  57. package/dist/components/icon/icon.d.ts.map +1 -0
  58. package/dist/components/icon/icon.js +95 -0
  59. package/dist/components/input/input.d.ts +31 -0
  60. package/dist/components/input/input.d.ts.map +1 -0
  61. package/dist/components/input/input.js +268 -0
  62. package/dist/components/link/link.d.ts +16 -0
  63. package/dist/components/link/link.d.ts.map +1 -0
  64. package/dist/components/link/link.js +116 -0
  65. package/dist/components/metadata/metadata.d.ts +18 -0
  66. package/dist/components/metadata/metadata.d.ts.map +1 -0
  67. package/dist/components/metadata/metadata.js +71 -0
  68. package/dist/components/modal/modal.d.ts +24 -0
  69. package/dist/components/modal/modal.d.ts.map +1 -0
  70. package/dist/components/modal/modal.js +163 -0
  71. package/dist/components/page-layout/page-layout.d.ts +46 -0
  72. package/dist/components/page-layout/page-layout.d.ts.map +1 -0
  73. package/dist/components/page-layout/page-layout.js +697 -0
  74. package/dist/components/radio/radio.d.ts +16 -0
  75. package/dist/components/radio/radio.d.ts.map +1 -0
  76. package/dist/components/radio/radio.js +152 -0
  77. package/dist/components/radio-group/radio-group.d.ts +27 -0
  78. package/dist/components/radio-group/radio-group.d.ts.map +1 -0
  79. package/dist/components/radio-group/radio-group.js +161 -0
  80. package/dist/components/router/router.d.ts +7 -0
  81. package/dist/components/router/router.d.ts.map +1 -0
  82. package/dist/components/router/router.js +37 -0
  83. package/dist/components/select/select.d.ts +16 -0
  84. package/dist/components/select/select.d.ts.map +1 -0
  85. package/dist/components/select/select.js +172 -0
  86. package/dist/components/skeleton/skeleton.d.ts +17 -0
  87. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  88. package/dist/components/skeleton/skeleton.js +78 -0
  89. package/dist/components/switch/switch.d.ts +25 -0
  90. package/dist/components/switch/switch.d.ts.map +1 -0
  91. package/dist/components/switch/switch.js +185 -0
  92. package/dist/components/table/data-table.d.ts +72 -0
  93. package/dist/components/table/data-table.d.ts.map +1 -0
  94. package/dist/components/table/data-table.js +551 -0
  95. package/dist/components/table/table.d.ts +22 -0
  96. package/dist/components/table/table.d.ts.map +1 -0
  97. package/dist/components/table/table.js +167 -0
  98. package/dist/components/tabs/tab-panel.d.ts +8 -0
  99. package/dist/components/tabs/tab-panel.d.ts.map +1 -0
  100. package/dist/components/tabs/tab-panel.js +46 -0
  101. package/dist/components/tabs/tab.d.ts +9 -0
  102. package/dist/components/tabs/tab.d.ts.map +1 -0
  103. package/dist/components/tabs/tab.js +91 -0
  104. package/dist/components/tabs/tabs.d.ts +14 -0
  105. package/dist/components/tabs/tabs.d.ts.map +1 -0
  106. package/dist/components/tabs/tabs.js +85 -0
  107. package/dist/components/textarea/textarea.d.ts +36 -0
  108. package/dist/components/textarea/textarea.d.ts.map +1 -0
  109. package/dist/components/textarea/textarea.js +231 -0
  110. package/dist/components/theme-toggle/theme-toggle.d.ts +15 -0
  111. package/dist/components/theme-toggle/theme-toggle.d.ts.map +1 -0
  112. package/dist/components/theme-toggle/theme-toggle.js +130 -0
  113. package/dist/components/vertical-nav/vertical-nav-group.d.ts +10 -0
  114. package/dist/components/vertical-nav/vertical-nav-group.d.ts.map +1 -0
  115. package/dist/components/vertical-nav/vertical-nav-group.js +127 -0
  116. package/dist/components/vertical-nav/vertical-nav-item.d.ts +9 -0
  117. package/dist/components/vertical-nav/vertical-nav-item.d.ts.map +1 -0
  118. package/dist/components/vertical-nav/vertical-nav-item.js +85 -0
  119. package/dist/styles/index.css +171 -0
  120. package/dist/styles/reset.d.ts +2 -0
  121. package/dist/styles/reset.d.ts.map +1 -0
  122. package/dist/styles/reset.js +50 -0
  123. package/package.json +7 -2
  124. package/src/components/alert/alert.ts +100 -100
  125. package/src/components/badge/badge.ts +96 -96
  126. package/src/components/breadcrumb/breadcrumb.ts +98 -98
  127. package/src/components/button/button.ts +281 -281
  128. package/src/components/button-group/button-group.ts +67 -67
  129. package/src/components/card/card.ts +52 -52
  130. package/src/components/checkbox/checkbox.ts +238 -238
  131. package/src/components/code-block/code-block.ts +256 -256
  132. package/src/components/content-card/content-card.ts +133 -133
  133. package/src/components/divider/divider.ts +68 -68
  134. package/src/components/drawer/drawer.ts +217 -217
  135. package/src/components/field/field.ts +30 -30
  136. package/src/components/footer/footer.ts +58 -58
  137. package/src/components/form/form-step.ts +32 -32
  138. package/src/components/form/form.ts +376 -376
  139. package/src/components/grid/grid-row.ts +75 -75
  140. package/src/components/grid/grid.ts +36 -36
  141. package/src/components/icon/icon-paths.ts +140 -124
  142. package/src/components/icon/icon.ts +82 -82
  143. package/src/components/input/input.ts +248 -248
  144. package/src/components/link/link.ts +97 -97
  145. package/src/components/metadata/metadata.ts +66 -66
  146. package/src/components/modal/modal.ts +158 -158
  147. package/src/components/page-layout/page-layout.ts +704 -704
  148. package/src/components/radio/radio.ts +142 -142
  149. package/src/components/radio-group/radio-group.ts +157 -157
  150. package/src/components/router/router.ts +46 -46
  151. package/src/components/select/select.ts +161 -161
  152. package/src/components/skeleton/skeleton.ts +67 -67
  153. package/src/components/switch/switch.ts +181 -181
  154. package/src/components/table/data-table.ts +556 -556
  155. package/src/components/table/table.ts +153 -153
  156. package/src/components/tabs/tab-panel.ts +30 -30
  157. package/src/components/tabs/tab.ts +76 -76
  158. package/src/components/tabs/tabs.ts +88 -88
  159. package/src/components/textarea/textarea.ts +215 -215
  160. package/src/components/theme-toggle/theme-toggle.ts +131 -131
  161. package/src/components/vertical-nav/vertical-nav-group.ts +109 -96
  162. package/src/components/vertical-nav/vertical-nav-item.ts +66 -49
  163. package/src/styles/globals.css +58 -58
  164. package/src/styles/index.css +80 -80
  165. package/src/styles/reset.ts +50 -50
  166. package/src/styles/theme.css +58 -58
  167. package/src/styles/typography.css +25 -25
  168. package/tsconfig.json +15 -15
@@ -0,0 +1,137 @@
1
+ import { svg } from "lit"; // <-- Import svg instead of html
2
+ export const iconPaths = {
3
+ "check-circle": {
4
+ outline: svg `<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline>`,
5
+ solid: svg `<path d="M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm3.22 6.97L11 13.19l-2.22-2.22a.75.75 0 0 0-1.06 1.06l2.75 2.75a.75.75 0 0 0 1.06 0l4.75-4.75a.75.75 0 1 0-1.06-1.06z"></path>`,
6
+ },
7
+ "alert-triangle": {
8
+ outline: svg `<path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line>`,
9
+ solid: svg `<path d="M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"></path>`,
10
+ },
11
+ info: {
12
+ outline: svg `<circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line>`,
13
+ solid: svg `<path d="M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm1 14h-2v-4h2v4zm0-6h-2V8h2v2z"></path>`,
14
+ },
15
+ package: {
16
+ outline: svg `<line x1="16.5" y1="9.4" x2="7.5" y2="4.21"></line><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line>`,
17
+ solid: svg `<path d="M12 22a2 2 0 0 1-1-.27l-7-4A2 2 0 0 1 3 16V8a2 2 0 0 1 1-1.73l7-4a2 2 0 0 1 2 0l7 4A2 2 0 0 1 21 8v8a2 2 0 0 1-1 1.73l-7 4A2 2 0 0 1 12 22zm-1-9.28V20.1l7.5-4.29V7.41zM4.5 15.81l7.5 4.29v-7.38L4.5 8.42zM12 3.86 4.57 8.1 12 12.35l7.43-4.25z"></path>`,
18
+ },
19
+ terminal: {
20
+ outline: svg `<polyline points="4 17 10 11 4 5"></polyline><line x1="12" y1="19" x2="20" y2="19"></line>`,
21
+ solid: svg `<path fill-rule="evenodd" clip-rule="evenodd" d="M2 6C2 4.34315 3.34315 3 5 3H19C20.6569 3 22 4.34315 22 6V18C22 19.6569 20.6569 21 19 21H5C3.34315 21 2 19.6569 2 18V6ZM6.29289 8.29289C5.90237 8.68342 5.90237 9.31658 6.29289 9.70711L8.58579 12L6.29289 14.2929C5.90237 14.6834 5.90237 15.3166 6.29289 15.7071C6.68342 16.0976 7.31658 16.0976 7.70711 15.7071L10.7071 12.7071C11.0976 12.3166 11.0976 11.6834 10.7071 11.2929L7.70711 8.29289C7.31658 7.90237 6.68342 7.90237 6.29289 8.29289ZM13 15C12.4477 15 12 15.4477 12 16C12 16.5523 12.4477 17 13 17H17C17.5523 17 18 16.5523 18 16C18 15.4477 17.5523 15 17 15H13Z"></path>`,
22
+ },
23
+ "cloud-download": {
24
+ outline: svg `<path d="M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242"></path><path d="M12 12v9"></path><path d="m8 17 4 4 4-4"></path>`,
25
+ solid: svg `<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C8.68629 2 6 4.68629 6 8C6 8.01633 6.00007 8.03264 6.00019 8.04891C3.76352 8.35828 2 10.2785 2 12.6C2 15.0301 3.96995 17 6.4 17H8V14C8 13.4477 8.44772 13 9 13H15C15.5523 13 16 13.4477 16 14V17H17.5C19.9853 17 22 14.9853 22 12.5C22 10.0147 19.9853 8 17.5 8C17.4719 8 17.4439 8.00026 17.4161 8.00077C16.883 4.57723 14.7397 2 12 2ZM11.2929 20.7071C11.6834 21.0976 12.3166 21.0976 12.7071 20.7071L15.7071 17.7071C16.0976 17.3166 16.0976 16.6834 15.7071 16.2929C15.3166 15.9024 14.6834 15.9024 14.2929 16.2929L13 17.5858V14C13 13.4477 12.5523 13 12 13C11.4477 13 11 13.4477 11 14V17.5858L9.70711 16.2929C9.31658 15.9024 8.68342 15.9024 8.29289 16.2929C7.90237 16.6834 7.90237 17.3166 8.29289 17.7071L11.2929 20.7071Z"></path>`,
26
+ },
27
+ monitor: {
28
+ outline: svg `<rect x="2" y="3" width="20" height="14" rx="2" ry="2"></rect><line x1="8" y1="21" x2="16" y2="21"></line><line x1="12" y1="17" x2="12" y2="21"></line>`,
29
+ solid: svg `<path fill-rule="evenodd" clip-rule="evenodd" d="M4 3C2.89543 3 2 3.89543 2 5V15C2 16.1046 2.89543 17 4 17H11V19H7V21H17V19H13V17H20C21.1046 17 22 16.1046 22 15V5C22 3.89543 21.1046 3 20 3H4Z"></path>`,
30
+ },
31
+ component: {
32
+ outline: svg `<path d="M5.5 8.5 9 12l-3.5 3.5L2 12l3.5-3.5Z"></path><path d="m12 2 3.5 3.5L12 9 8.5 5.5 12 2Z"></path><path d="M18.5 8.5 22 12l-3.5 3.5L15 12l3.5-3.5Z"></path><path d="m12 15 3.5 3.5L12 22l-3.5-3.5L12 15Z"></path>`,
33
+ solid: svg `<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2L8.5 5.5L12 9L15.5 5.5L12 2ZM5.5 8.5L2 12L5.5 15.5L9 12L5.5 8.5ZM18.5 8.5L15 12L18.5 15.5L22 12L18.5 8.5ZM12 15L8.5 18.5L12 22L15.5 18.5L12 15Z"></path>`,
34
+ },
35
+ "layout-template": {
36
+ outline: svg `<rect x="3" y="3" width="18" height="7" rx="2" ry="2"></rect><rect x="3" y="14" width="7" height="7" rx="2" ry="2"></rect><rect x="14" y="14" width="7" height="7" rx="2" ry="2"></rect>`,
37
+ solid: svg `<path fill-rule="evenodd" clip-rule="evenodd" d="M5 3C3.89543 3 3 3.89543 3 5V8C3 9.10457 3.89543 10 5 10H19C20.1046 10 21 9.10457 21 8V5C21 3.89543 20.1046 3 19 3H5ZM3 16C3 14.8954 3.89543 14 5 14H8C9.10457 14 10 14.8954 10 16V19C10 20.1046 9.10457 21 8 21H5C3.89543 21 3 20.1046 3 19V16ZM16 14C14.8954 14 14 14.8954 14 16V19C14 20.1046 14.8954 21 16 21H19C20.1046 21 21 20.1046 21 19V16C21 14.8954 20.1046 14 19 14H16Z"></path>`,
38
+ },
39
+ palette: {
40
+ outline: svg `<path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z"></path><path d="M13.5 6.5h.01"></path><path d="M17.5 10.5h.01"></path><path d="M8.5 7.5h.01"></path><path d="M6.5 12.5h.01"></path>`,
41
+ solid: svg `<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C12.8284 22 13.5 21.3284 13.5 20.5C13.5 20.1017 13.3444 19.742 13.097 19.4842C12.859 19.2359 12.7 18.8876 12.7 18.5C12.7 17.6716 13.3716 17 14.2 17H16C19.3137 17 22 14.3137 22 11C22 6.02944 17.5228 2 12 2ZM8.5 9C9.32843 9 10 8.32843 10 7.5C10 6.67157 9.32843 6 8.5 6C7.67157 6 7 6.67157 7 7.5C7 8.32843 7.67157 9 8.5 9ZM15 7.5C15 8.32843 14.3284 9 13.5 9C12.6716 9 12 8.32843 12 7.5C12 6.67157 12.6716 6 13.5 6C14.3284 6 15 6.67157 15 7.5ZM17.5 12C18.3284 12 19 11.3284 19 10.5C19 9.67157 18.3284 9 17.5 9C16.6716 9 16 9.67157 16 10.5C16 11.3284 16.6716 12 17.5 12ZM7.5 14C8.32843 14 9 13.3284 9 12.5C9 11.6716 8.32843 11 7.5 11C6.67157 11 6 11.6716 6 12.5C6 13.3284 6.67157 14 7.5 14Z"></path>`,
42
+ },
43
+ bug: {
44
+ outline: svg `<path d="m8 2 1.88 1.88"></path><path d="M14.12 3.88 16 2"></path><path d="M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"></path><path d="M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"></path><path d="M12 20v-9"></path><path d="M6.53 9C4.6 8.8 3 7.1 3 5"></path><path d="M6 13H2"></path><path d="M3 21c0-2.1 1.7-3.9 3.8-4"></path><path d="M20.97 5c0 2.1-1.6 3.8-3.5 4"></path><path d="M22 13h-4"></path><path d="M17.2 17c2.1.1 3.8 1.9 3.8 4"></path>`,
45
+ solid: svg `<path fill-rule="evenodd" clip-rule="evenodd" d="M11 2a1 1 0 1 1 2 0v1.17c1.7.24 3.14 1.25 3.82 2.83h2.18a1 1 0 1 1 0 2h-1.17c.1.48.17.98.17 1.5v2h2a1 1 0 1 1 0 2h-2v.5c0 3.04-2.46 5.5-5.5 5.5S7 18.04 7 15v-.5H5a1 1 0 1 1 0-2h2v-2c0-.52.06-1.02.17-1.5H6a1 1 0 1 1 0-2h2.18c.68-1.58 2.12-2.59 3.82-2.83V2zm3 10H10v3c0 1.1.9 2 2 2s2-.9 2-2v-3zm0-3H10c0-1.1.9-2 2-2s2 .9 2 2z"></path>`,
46
+ },
47
+ support: {
48
+ outline: svg `<circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="4"></circle><line x1="4.93" y1="4.93" x2="9.17" y2="9.17"></line><line x1="14.83" y1="14.83" x2="19.07" y2="19.07"></line><line x1="14.83" y1="9.17" x2="19.07" y2="4.93"></line><line x1="4.93" y1="19.07" x2="9.17" y2="14.83"></line>`,
49
+ solid: svg `<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2ZM9.563 6.136C10.317 5.922 11.138 5.805 12 5.805C12.862 5.805 13.683 5.922 14.437 6.136L13.121 8.879C12.766 8.762 12.389 8.697 12 8.697C11.611 8.697 11.234 8.762 10.879 8.879L9.563 6.136ZM17.864 9.563C18.078 10.317 18.195 11.138 18.195 12C18.195 12.862 18.078 13.683 17.864 14.437L15.121 13.121C15.239 12.766 15.303 12.389 15.303 12C15.303 11.611 15.239 11.234 15.121 10.879L17.864 9.563ZM14.437 17.864C13.683 18.078 12.862 18.195 12 18.195C11.138 18.195 10.317 18.078 9.563 17.864L10.879 15.121C11.234 15.239 11.611 15.303 12 15.303C12.389 15.303 12.766 15.239 13.121 15.121L14.437 17.864ZM6.136 14.437C5.922 13.683 5.805 12.862 5.805 12C5.805 11.138 5.922 10.317 6.136 9.563L8.879 10.879C8.762 11.234 8.697 11.611 8.697 12C8.697 12.389 8.762 12.766 8.879 13.121L6.136 14.437Z"></path>`,
50
+ },
51
+ "join-us": {
52
+ outline: svg `<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path>`,
53
+ solid: svg `<path fill-rule="evenodd" clip-rule="evenodd" d="M12 11C14.2091 11 16 9.20914 16 7C16 4.79086 14.2091 3 12 3C9.79086 3 8 4.79086 8 7C8 9.20914 9.79086 11 12 11ZM12 13C8.68629 13 6 15.6863 6 19V21H18V19C18 15.6863 15.3137 13 12 13ZM22 19V21H20V19C20 17.5858 19.3337 16.3312 18.2811 15.5393C19.2974 15.1517 20.3541 14.9458 21.4397 14.9458C21.7554 14.9458 22 15.1904 22 15.5061V19ZM4.71887 15.5393C3.66632 16.3312 3 17.5858 3 19V21H1V19C1 15.6863 3.68629 13 7 13C7.57563 13 8.13317 13.0754 8.66597 13.2185C7.94054 13.9213 7.42008 14.819 7.15941 15.8239C6.01217 15.8239 4.71887 15.5393 4.71887 15.5393Z"></path>`,
54
+ },
55
+ "chevron-left": {
56
+ outline: svg `<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"></path>`,
57
+ solid: svg `<path fill-rule="evenodd" clip-rule="evenodd" d="M15.707 19.707a1 1 0 01-1.414 0l-7-7a1 1 0 010-1.414l7-7a1 1 0 111.414 1.414L9.414 12l6.293 6.293a1 1 0 010 1.414z"></path>`,
58
+ },
59
+ "chevron-right": {
60
+ outline: svg `<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>`,
61
+ solid: svg `<path fill-rule="evenodd" clip-rule="evenodd" d="M8.293 4.293a1 1 0 011.414 0l7 7a1 1 0 010 1.414l-7 7a1 1 0 01-1.414-1.414L13.586 12 8.293 5.707a1 1 0 010-1.414z"></path>`,
62
+ },
63
+ discord: {
64
+ outline: svg `<path fill="currentColor" d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.579.099 18.057a.084.084 0 0 0 .031.056 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028 14.09 14.09 0 0 0 1.226-1.99.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.897.077.077 0 0 1-.008-.127c.126-.094.252-.192.376-.292a.077.077 0 0 1 .084-.007 14.36 14.36 0 0 0 10.636 0 .077.077 0 0 1 .084.007c.124.1.25.198.376.292a.077.077 0 0 1-.008.127 13.037 13.037 0 0 1-1.872.897.077.077 0 0 0-.041.106 14.45 14.45 0 0 0 1.226 1.99.076.076 0 0 0 .084.028 19.98 19.98 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.094-.838-9.42-3.543-13.684a.05.05 0 0 0-.035-.028zM6.7 14.947c-1.46 0-2.66-1.336-2.66-2.977 0-1.64 1.176-2.977 2.66-2.977 1.503 0 2.68 1.355 2.66 2.977 0 1.64-1.177 2.977-2.66 2.977zm10.6 0c-1.46 0-2.66-1.336-2.66-2.977 0-1.64 1.176-2.977 2.66-2.977 1.503 0 2.68 1.355 2.66 2.977 0 1.64-1.177 2.977-2.66 2.977z"></path>`,
65
+ solid: svg `<path fill="currentColor" d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.579.099 18.057a.084.084 0 0 0 .031.056 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028 14.09 14.09 0 0 0 1.226-1.99.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.897.077.077 0 0 1-.008-.127c.126-.094.252-.192.376-.292a.077.077 0 0 1 .084-.007 14.36 14.36 0 0 0 10.636 0 .077.077 0 0 1 .084.007c.124.1.25.198.376.292a.077.077 0 0 1-.008.127 13.037 13.037 0 0 1-1.872.897.077.077 0 0 0-.041.106 14.45 14.45 0 0 0 1.226 1.99.076.076 0 0 0 .084.028 19.98 19.98 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.094-.838-9.42-3.543-13.684a.05.05 0 0 0-.035-.028zM6.7 14.947c-1.46 0-2.66-1.336-2.66-2.977 0-1.64 1.176-2.977 2.66-2.977 1.503 0 2.68 1.355 2.66 2.977 0 1.64-1.177 2.977-2.66 2.977zm10.6 0c-1.46 0-2.66-1.336-2.66-2.977 0-1.64 1.176-2.977 2.66-2.977 1.503 0 2.68 1.355 2.66 2.977 0 1.64-1.177 2.977-2.66 2.977z"></path>`,
66
+ },
67
+ envelope: {
68
+ outline: svg `<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path>`,
69
+ solid: svg `<path fill="currentColor" d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"></path>`,
70
+ },
71
+ button: {
72
+ outline: svg `<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 7h14a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1z"></path>`,
73
+ solid: svg `<path fill="currentColor" d="M5 7h14a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1z"></path>`,
74
+ },
75
+ "pointer-click": {
76
+ outline: svg `
77
+ <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 9H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2h-5"></path>
78
+ <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 11V5a2 2 0 0 0-4 0v10L7 12a2 2 0 0 0-2.8 2.8l5.8 5.8a4 4 0 0 0 2.8 1.2h2a4 4 0 0 0 4-4v-3a2 2 0 0 0-4 0"></path>
79
+ `,
80
+ solid: svg `
81
+ <path fill="currentColor" d="M4 1h16a2 2 0 0 1 2 2v1a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2z"></path>
82
+ <path fill="currentColor" d="M14 12V6a2 2 0 0 0-4 0v10L7 13a2 2 0 0 0-2.8 2.8l5.8 5.8a4 4 0 0 0 2.8 1.2h2a4 4 0 0 0 4-4v-3a2 2 0 0 0-4 0Z"></path>
83
+ `,
84
+ },
85
+ checkbox: {
86
+ outline: svg `<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h9"></path>`,
87
+ solid: svg `<path fill="currentColor" d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"></path>`,
88
+ },
89
+ input: {
90
+ outline: svg `<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 8h16a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1z"></path><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 11h5"></path>`,
91
+ solid: svg `<path fill="currentColor" d="M20 7H4c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2z"></path>`,
92
+ },
93
+ "check-box": {
94
+ outline: svg `<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5z"></path>`,
95
+ solid: svg `<path fill="currentColor" d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"></path>`,
96
+ },
97
+ github: {
98
+ outline: svg `<path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.43 9.79 8.15 11.38.6.11.83-.26.83-.57 0-.28-.01-1.13-.01-2.2-3.32.72-4.02-1.6-4.02-1.6-.54-1.38-1.32-1.75-1.32-1.75-1.08-.74.08-.72.08-.72 1.2.08 1.83 1.24 1.83 1.24 1.07 1.83 2.8 1.3 3.48.99.11-.77.42-1.3.76-1.6-2.65-.3-5.44-1.33-5.44-5.9 0-1.3.46-2.38 1.23-3.22-.12-.3-.54-1.52.12-3.18 0 0 1.01-.32 3.3 1.24a11.45 11.45 0 0 1 6 0c2.29-1.56 3.3-1.24 3.3-1.24.66 1.66.24 2.88.12 3.18.77.84 1.23 1.92 1.23 3.22 0 4.61-2.8 5.6-5.47 5.9.42.36.8 1.08.8 2.18 0 1.57-.01 2.84-.01 3.22 0 .31.22.68.84.57C20.57 21.79 24 17.31 24 12c0-6.63-5.37-12-12-12z"></path>`,
99
+ solid: svg `<path fill="currentColor" d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.43 9.79 8.15 11.38.6.11.83-.26.83-.57 0-.28-.01-1.13-.01-2.2-3.32.72-4.02-1.6-4.02-1.6-.54-1.38-1.32-1.75-1.32-1.75-1.08-.74.08-.72.08-.72 1.2.08 1.83 1.24 1.83 1.24 1.07 1.83 2.8 1.3 3.48.99.11-.77.42-1.3.76-1.6-2.65-.3-5.44-1.33-5.44-5.9 0-1.3.46-2.38 1.23-3.22-.12-.3-.54-1.52.12-3.18 0 0 1.01-.32 3.3 1.24a11.45 11.45 0 0 1 6 0c2.29-1.56 3.3-1.24 3.3-1.24.66 1.66.24 2.88.12 3.18.77.84 1.23 1.92 1.23 3.22 0 4.61-2.8 5.6-5.47 5.9.42.36.8 1.08.8 2.18 0 1.57-.01 2.84-.01 3.22 0 .31.22.68.84.57C20.57 21.79 24 17.31 24 12c0-6.63-5.37-12-12-12z"></path>`,
100
+ },
101
+ link: {
102
+ outline: svg `<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>`,
103
+ solid: svg `<path fill="currentColor" d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>`,
104
+ },
105
+ "layout-single-column": {
106
+ outline: svg `<rect x="3" y="3" width="18" height="18" rx="2" stroke="currentColor" stroke-width="2" fill="none"></rect><line x1="3" y1="8" x2="21" y2="8" stroke="currentColor" stroke-width="2"></line><line x1="7" y1="12" x2="17" y2="12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></line><line x1="7" y1="16" x2="14" y2="16" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></line>`,
107
+ solid: svg `<path fill="currentColor" d="M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5zm2 3h14V5H5v3z"></path>`,
108
+ },
109
+ "layout-content-sidebar": {
110
+ outline: svg `<rect x="3" y="3" width="18" height="18" rx="2" stroke="currentColor" stroke-width="2" fill="none"></rect><line x1="3" y1="8" x2="21" y2="8" stroke="currentColor" stroke-width="2"></line><line x1="15" y1="8" x2="15" y2="21" stroke="currentColor" stroke-width="2"></line><line x1="6" y1="13" x2="12" y2="13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></line><line x1="6" y1="17" x2="10" y2="17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></line>`,
111
+ solid: svg `<path fill="currentColor" d="M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5zm2 3h14V5H5v3zm10 2v11h4V10h-4z"></path>`,
112
+ },
113
+ "layout-app-shell": {
114
+ outline: svg `<rect x="3" y="3" width="18" height="18" rx="2" stroke="currentColor" stroke-width="2" fill="none"></rect><line x1="9" y1="3" x2="9" y2="21" stroke="currentColor" stroke-width="2"></line><line x1="9" y1="8" x2="21" y2="8" stroke="currentColor" stroke-width="2"></line><line x1="12" y1="13" x2="18" y2="13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></line>`,
115
+ solid: svg `<path fill="currentColor" d="M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5zm6-2v18H5V5h4zm12 5H9V5h12v3z"></path>`,
116
+ },
117
+ "layout-three-column": {
118
+ outline: svg `<rect x="3" y="3" width="18" height="18" rx="2" stroke="currentColor" stroke-width="2" fill="none"></rect><line x1="3" y1="8" x2="21" y2="8" stroke="currentColor" stroke-width="2"></line><line x1="7" y1="8" x2="7" y2="21" stroke="currentColor" stroke-width="2"></line><line x1="17" y1="8" x2="17" y2="21" stroke="currentColor" stroke-width="2"></line><line x1="10" y1="14" x2="14" y2="14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></line>`,
119
+ solid: svg `<path fill="currentColor" d="M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5zm2 3h14V5H5v3zM7 9H3v12h4V9zm14 0h-4v12h4V9z"></path>`,
120
+ },
121
+ calender: {
122
+ outline: svg `<rect x="3" y="4" width="18" height="18" rx="2" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></rect><line x1="16" y1="2" x2="16" y2="6" stroke="currentColor" stroke-width="2" stroke-linecap="round"></line><line x1="8" y1="2" x2="8" y2="6" stroke="currentColor" stroke-width="2" stroke-linecap="round"></line><line x1="3" y1="10" x2="21" y2="10" stroke="currentColor" stroke-width="2"></line>`,
123
+ solid: svg `<path fill="currentColor" d="M19 4h-1V2h-2v2H8V2H6v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 16H5V9h14v11z"></path>`,
124
+ },
125
+ user: {
126
+ outline: svg `<circle cx="12" cy="8" r="4" fill="none" stroke="currentColor" stroke-width="2"></circle><path d="M4 20c0-4 4-6 8-6s8 2 8 6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path>`,
127
+ solid: svg `<path fill="currentColor" d="M12 12a5 5 0 1 0-5-5 5 5 0 0 0 5 5zm0 2c-3.33 0-10 1.67-10 5v3h20v-3c0-3.33-6.67-5-10-5z"></path>`,
128
+ },
129
+ home: {
130
+ outline: svg `<path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><polyline points="9 22 9 12 15 12 15 22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></polyline>`,
131
+ solid: svg `<path fill="currentColor" d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"></path>`,
132
+ },
133
+ "circle-cross": {
134
+ outline: svg `<circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></circle><line x1="15" y1="9" x2="9" y2="15" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line><line x1="9" y1="9" x2="15" y2="15" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>`,
135
+ solid: svg `<path fill="currentColor" fill-rule="evenodd" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm3.36 6.64a1 1 0 0 1 0 1.41L13.41 12l1.95 1.95a1 1 0 0 1-1.41 1.41L12 13.41l-1.95 1.95a1 1 0 0 1-1.41-1.41L10.59 12 8.64 10.05a1 1 0 0 1 1.41-1.41L12 10.59l1.95-1.95a1 1 0 0 1 1.41 0z" clip-rule="evenodd"></path>`,
136
+ },
137
+ };
@@ -0,0 +1,16 @@
1
+ import { LitElement } from 'lit';
2
+ import { IconName } from './icon-paths.js';
3
+ export declare class StIcon extends LitElement {
4
+ name: IconName | string;
5
+ variant: 'outline' | 'solid';
6
+ color: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info';
7
+ size: 'sm' | 'md' | 'lg' | 'xl';
8
+ static styles: import("lit").CSSResult[];
9
+ render(): import("lit-html").TemplateResult<1>;
10
+ }
11
+ declare global {
12
+ interface HTMLElementTagNameMap {
13
+ 'st-icon': StIcon;
14
+ }
15
+ }
16
+ //# sourceMappingURL=icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAa,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGtD,qBACa,MAAO,SAAQ,UAAU;IACR,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAM;IAC7B,OAAO,EAAE,SAAS,GAAG,OAAO,CAAa;IAG1B,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAa;IAGlG,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAElF,MAAM,CAAC,MAAM,4BAsCX;IAEF,MAAM,yCAmBL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
@@ -0,0 +1,95 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, css } from 'lit';
8
+ import { customElement, property } from 'lit/decorators.js';
9
+ import { iconPaths } from './icon-paths.js';
10
+ import { resetStyles } from '../../styles/reset.js';
11
+ let StIcon = class StIcon extends LitElement {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.name = '';
15
+ this.variant = 'outline';
16
+ // Semantic Colors
17
+ this.color = 'default';
18
+ // Standardized T-Shirt Sizes
19
+ this.size = 'md';
20
+ }
21
+ render() {
22
+ const iconData = iconPaths[this.name];
23
+ if (!iconData)
24
+ return html ``;
25
+ const pathData = iconData[this.variant] || iconData.outline;
26
+ return html `
27
+ <svg
28
+ viewBox="0 0 24 24"
29
+ xmlns="http://www.w3.org/2000/svg"
30
+ fill="${this.variant === 'solid' ? 'currentColor' : 'none'}"
31
+ stroke="${this.variant === 'outline' ? 'currentColor' : 'none'}"
32
+ stroke-width="${this.variant === 'outline' ? '2' : '0'}"
33
+ stroke-linecap="round"
34
+ stroke-linejoin="round"
35
+ >
36
+ ${pathData}
37
+ </svg>
38
+ `;
39
+ }
40
+ };
41
+ StIcon.styles = [
42
+ resetStyles,
43
+ css `
44
+ :host {
45
+ display: inline-flex;
46
+ align-items: center;
47
+ justify-content: center;
48
+ color: inherit;
49
+
50
+ /* Defaults to md (1.5rem) if no size attribute is matched */
51
+ width: var(--icon-size, 1.5rem);
52
+ height: var(--icon-size, 1.5rem);
53
+ }
54
+
55
+ /* ==========================================================
56
+ Size Variants
57
+ ========================================================== */
58
+ :host([size="sm"]) { --icon-size: 1.25rem; } /* 20px - Matches small buttons/inputs */
59
+ :host([size="md"]) { --icon-size: 1.5rem; } /* 24px - Default standard size */
60
+ :host([size="lg"]) { --icon-size: 2rem; } /* 32px - Large callouts */
61
+ :host([size="xl"]) { --icon-size: 2.5rem; } /* 40px - Hero sections/Cards */
62
+
63
+ /* ==========================================================
64
+ Color Variants
65
+ ========================================================== */
66
+ :host([color="primary"]) { color: var(--st-color-primary); }
67
+ :host([color="secondary"]) { color: var(--st-color-secondary); }
68
+ :host([color="success"]) { color: var(--st-color-success); }
69
+ :host([color="warning"]) { color: var(--st-color-warning); }
70
+ :host([color="error"]) { color: var(--st-color-error); }
71
+ :host([color="info"]) { color: var(--st-color-info); }
72
+
73
+ svg {
74
+ width: 100%;
75
+ height: 100%;
76
+ display: block;
77
+ }
78
+ `
79
+ ];
80
+ __decorate([
81
+ property({ type: String })
82
+ ], StIcon.prototype, "name", void 0);
83
+ __decorate([
84
+ property({ type: String })
85
+ ], StIcon.prototype, "variant", void 0);
86
+ __decorate([
87
+ property({ type: String, reflect: true })
88
+ ], StIcon.prototype, "color", void 0);
89
+ __decorate([
90
+ property({ type: String, reflect: true })
91
+ ], StIcon.prototype, "size", void 0);
92
+ StIcon = __decorate([
93
+ customElement('st-icon')
94
+ ], StIcon);
95
+ export { StIcon };
@@ -0,0 +1,31 @@
1
+ import { LitElement, PropertyValues } from "lit";
2
+ export type InputType = "text" | "password" | "email" | "number" | "search" | "url";
3
+ export declare class StInput extends LitElement {
4
+ static formAssociated: boolean;
5
+ private _internals;
6
+ private _inputEl;
7
+ name: string;
8
+ label: string;
9
+ value: string;
10
+ placeholder: string;
11
+ type: InputType;
12
+ helpText: string;
13
+ required: boolean;
14
+ minlength?: number;
15
+ maxlength?: number;
16
+ pattern?: string;
17
+ disabled: boolean;
18
+ invalid: boolean;
19
+ readonly: boolean;
20
+ constructor();
21
+ static styles: import("lit").CSSResult[];
22
+ updated(changedProperties: PropertyValues<this>): void;
23
+ private _syncValidity;
24
+ formResetCallback(): void;
25
+ checkValidity(): boolean;
26
+ reportValidity(): boolean;
27
+ private _handleInput;
28
+ private _handleChange;
29
+ render(): import("lit-html").TemplateResult<1>;
30
+ }
31
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/input/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAa,cAAc,EAAC,MAAM,KAAK,CAAC;AAK1D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEpF,qBACa,OAAQ,SAAQ,UAAU;IACrC,MAAM,CAAC,cAAc,UAAQ;IAC7B,OAAO,CAAC,UAAU,CAAmB;IAErB,OAAO,CAAC,QAAQ,CAAoB;IACX,IAAI,SAAM;IACzB,KAAK,SAAM;IACX,KAAK,SAAM;IACX,WAAW,SAAM;IACjB,IAAI,EAAE,SAAS,CAAU;IACf,QAAQ,SAAM;IAGR,QAAQ,UAAS;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IAED,QAAQ,UAAS;IACjB,OAAO,UAAS;IAChB,QAAQ,UAAS;IAE3D,cAaC;IAED,MAAM,CAAC,MAAM,4BAmHX;IAEO,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,QAUvD;IAED,OAAO,CAAC,aAAa;IAWrB,iBAAiB,SAKhB;IAGD,aAAa,YAEZ;IAED,cAAc,YAEb;IAED,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,aAAa;IAIrB,MAAM,yCA8BL;CACF"}
@@ -0,0 +1,268 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, css } from "lit";
8
+ import { customElement, property, query } from "lit/decorators.js";
9
+ import { ifDefined } from "lit/directives/if-defined.js"; // Helper for optional attributes
10
+ import { resetStyles } from "../../styles/reset.js";
11
+ let StInput = class StInput extends LitElement {
12
+ constructor() {
13
+ super();
14
+ this.name = "";
15
+ this.label = "";
16
+ this.value = "";
17
+ this.placeholder = "";
18
+ this.type = "text";
19
+ this.helpText = "";
20
+ // Validation Properties
21
+ this.required = false;
22
+ this.disabled = false;
23
+ this.invalid = false;
24
+ this.readonly = false;
25
+ this._internals = this.attachInternals();
26
+ // 1. Trigger error state if the user clicks away and the field is invalid
27
+ this.addEventListener("focusout", () => {
28
+ this.invalid = !this._inputEl.validity.valid;
29
+ });
30
+ // 2. Trigger error state if the st-form tries to submit and fails
31
+ this.addEventListener("invalid", () => {
32
+ this.invalid = true;
33
+ });
34
+ }
35
+ updated(changedProperties) {
36
+ super.updated(changedProperties);
37
+ // Sync the value to the form engine
38
+ if (changedProperties.has("value")) {
39
+ this._internals.setFormValue(this.value);
40
+ }
41
+ // Sync validity whenever properties change (like value or required status)
42
+ this._syncValidity();
43
+ }
44
+ _syncValidity() {
45
+ if (!this._inputEl)
46
+ return;
47
+ // setValidity arguments: (ValidityState object, Custom Error Message, Anchor Element for Tooltip)
48
+ this._internals.setValidity(this._inputEl.validity, this._inputEl.validationMessage, this._inputEl);
49
+ }
50
+ formResetCallback() {
51
+ this.value = "";
52
+ this._internals.setFormValue("");
53
+ // Need to wait for the render cycle to finish before checking validity on reset
54
+ this.updateComplete.then(() => this._syncValidity());
55
+ }
56
+ // Expose standard native methods so external scripts can call them on the component
57
+ checkValidity() {
58
+ return this._internals.checkValidity();
59
+ }
60
+ reportValidity() {
61
+ return this._internals.reportValidity();
62
+ }
63
+ _handleInput(e) {
64
+ const target = e.target;
65
+ this.value = target.value;
66
+ if (this.invalid && target.validity.valid) {
67
+ this.invalid = false;
68
+ }
69
+ this.dispatchEvent(new Event("input", { bubbles: true, composed: true }));
70
+ }
71
+ _handleChange(e) {
72
+ this.dispatchEvent(new Event("change", { bubbles: true, composed: true }));
73
+ }
74
+ render() {
75
+ return html `
76
+ <div class="form-control">
77
+ ${this.label ? html `<label for="input">${this.label}</label>` : ""}
78
+
79
+ <div class="input-wrapper">
80
+ <slot name="prefix"></slot>
81
+
82
+ <input
83
+ id="input"
84
+ type=${this.type}
85
+ .name=${this.name}
86
+ .value=${this.value}
87
+ placeholder=${this.placeholder}
88
+ ?disabled=${this.disabled}
89
+ ?readonly=${this.readonly}
90
+ ?required=${this.required}
91
+ minlength=${ifDefined(this.minlength)}
92
+ maxlength=${ifDefined(this.maxlength)}
93
+ pattern=${ifDefined(this.pattern)}
94
+ @input=${this._handleInput}
95
+ @change=${this._handleChange}
96
+ />
97
+
98
+ <slot name="suffix"></slot>
99
+ </div>
100
+
101
+ ${this.helpText ? html `<div class="help-text">${this.helpText}</div>` : ""}
102
+ </div>
103
+ `;
104
+ }
105
+ };
106
+ StInput.formAssociated = true;
107
+ StInput.styles = [
108
+ resetStyles,
109
+ css `
110
+ :host {
111
+ display: block;
112
+ }
113
+
114
+ .form-control {
115
+ display: flex;
116
+ flex-direction: column;
117
+ gap: var(--st-spacing-xs);
118
+ }
119
+
120
+ label {
121
+ font-size: var(--st-font-size-sm);
122
+ font-weight: var(--st-font-weight-medium);
123
+ color: var(--st-color-text);
124
+ margin-bottom: 0.5em;
125
+ }
126
+
127
+ /* 1. The Wrapper acts as the visual input field */
128
+ .input-wrapper {
129
+ display: flex;
130
+ align-items: center;
131
+ gap: var(--st-spacing-sm);
132
+ width: 100%;
133
+
134
+ background-color: var(--st-color-bg);
135
+ border: 1px solid var(--st-color-border);
136
+ border-radius: 4px;
137
+
138
+ /* Horizontal padding on the wrapper, vertical on the input */
139
+ padding: 0 var(--st-spacing-md);
140
+ transition:
141
+ border-color 0.2s ease,
142
+ box-shadow 0.2s ease;
143
+ }
144
+
145
+ /* 2. Apply focus ring to the wrapper when the internal input is focused */
146
+ .input-wrapper:focus-within {
147
+ border-color: var(--st-color-primary);
148
+ box-shadow: 0 0 0 1px var(--st-color-primary);
149
+ }
150
+
151
+ /* 3. The actual input becomes transparent and fills the wrapper */
152
+ input {
153
+ flex: 1;
154
+ width: 100%;
155
+ border: none;
156
+ background: transparent;
157
+ outline: none;
158
+
159
+ /* Vertical padding stretches the wrapper */
160
+ padding: var(--st-spacing-sm) 0;
161
+ font-size: var(--st-font-size-base);
162
+ color: var(--st-color-text);
163
+ }
164
+
165
+ input::placeholder {
166
+ color: var(--st-color-text-muted);
167
+ }
168
+
169
+ /* Slotted Icons */
170
+ ::slotted(svg) {
171
+ width: 1.25em;
172
+ height: 1.25em;
173
+ /* Default icons to the muted text color */
174
+ color: var(--st-color-text-muted);
175
+ fill: currentColor;
176
+ flex-shrink: 0;
177
+ }
178
+
179
+ /* Interactive Slotted Elements (like clear buttons) */
180
+ ::slotted(st-button) {
181
+ /* Pull the button back slightly so it aligns nicely with the input padding */
182
+ margin-right: calc(var(--st-spacing-sm) * -1);
183
+ }
184
+
185
+ /* Invalid State */
186
+ :host([invalid]) .input-wrapper {
187
+ border-color: var(--st-color-error);
188
+ }
189
+ :host([invalid]) .input-wrapper:focus-within {
190
+ box-shadow: 0 0 0 1px var(--st-color-error);
191
+ }
192
+ :host([invalid]) .help-text {
193
+ color: var(--st-color-error);
194
+ }
195
+
196
+ /* Disabled & Readonly States */
197
+ :host([disabled]) .input-wrapper {
198
+ opacity: 0.5;
199
+ cursor: not-allowed;
200
+ background-color: var(--st-color-surface);
201
+ }
202
+ :host([disabled]) input {
203
+ cursor: not-allowed;
204
+ }
205
+ :host([readonly]) .input-wrapper {
206
+ background-color: var(--st-color-surface);
207
+ }
208
+
209
+ .help-text {
210
+ font-size: var(--st-font-size-xs);
211
+ color: var(--st-color-text-muted);
212
+ margin: 0;
213
+ }
214
+
215
+ :host([invalid]) .input-wrapper {
216
+ border-color: var(--st-color-error);
217
+ }
218
+ :host([invalid]) .help-text {
219
+ color: var(--st-color-error);
220
+ }
221
+ `,
222
+ ];
223
+ __decorate([
224
+ query("input")
225
+ ], StInput.prototype, "_inputEl", void 0);
226
+ __decorate([
227
+ property({ type: String, reflect: true })
228
+ ], StInput.prototype, "name", void 0);
229
+ __decorate([
230
+ property({ type: String })
231
+ ], StInput.prototype, "label", void 0);
232
+ __decorate([
233
+ property({ type: String })
234
+ ], StInput.prototype, "value", void 0);
235
+ __decorate([
236
+ property({ type: String })
237
+ ], StInput.prototype, "placeholder", void 0);
238
+ __decorate([
239
+ property({ type: String })
240
+ ], StInput.prototype, "type", void 0);
241
+ __decorate([
242
+ property({ attribute: "help-text" })
243
+ ], StInput.prototype, "helpText", void 0);
244
+ __decorate([
245
+ property({ type: Boolean, reflect: true })
246
+ ], StInput.prototype, "required", void 0);
247
+ __decorate([
248
+ property({ type: Number })
249
+ ], StInput.prototype, "minlength", void 0);
250
+ __decorate([
251
+ property({ type: Number })
252
+ ], StInput.prototype, "maxlength", void 0);
253
+ __decorate([
254
+ property({ type: String })
255
+ ], StInput.prototype, "pattern", void 0);
256
+ __decorate([
257
+ property({ type: Boolean, reflect: true })
258
+ ], StInput.prototype, "disabled", void 0);
259
+ __decorate([
260
+ property({ type: Boolean, reflect: true })
261
+ ], StInput.prototype, "invalid", void 0);
262
+ __decorate([
263
+ property({ type: Boolean, reflect: true })
264
+ ], StInput.prototype, "readonly", void 0);
265
+ StInput = __decorate([
266
+ customElement("st-input")
267
+ ], StInput);
268
+ export { StInput };
@@ -0,0 +1,16 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class StLink extends LitElement {
3
+ href: string;
4
+ target: '_blank' | '_self';
5
+ size: 'sm' | 'md' | 'lg';
6
+ variant: 'inline' | 'standalone';
7
+ color: 'default' | 'primary' | 'muted';
8
+ static styles: import("lit").CSSResult[];
9
+ render(): import("lit-html").TemplateResult<1>;
10
+ }
11
+ declare global {
12
+ interface HTMLElementTagNameMap {
13
+ 'st-link': StLink;
14
+ }
15
+ }
16
+ //# sourceMappingURL=link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/components/link/link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,qBACa,MAAO,SAAQ,UAAU;IACR,IAAI,SAAO;IACX,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAW;IACtB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAChC,OAAO,EAAE,QAAQ,GAAG,YAAY,CAAY;IAC5C,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAa;IAE9F,MAAM,CAAC,MAAM,4BAsEX;IAEF,MAAM,yCAML;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}