@sky.ui/core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/LICENSE.md +139 -0
  2. package/README.md +113 -0
  3. package/auto-import-loader.js +60 -0
  4. package/auto-import.js +93 -0
  5. package/dist/custom-elements.json +27051 -0
  6. package/dist/helper/controllers/animation-controller.d.ts +120 -0
  7. package/dist/helper/controllers/animation-controller.js +2 -0
  8. package/dist/helper/controllers/animation-controller.js.map +1 -0
  9. package/dist/helper/controllers/index.d.ts +2 -0
  10. package/dist/helper/controllers/popover-controller.d.ts +162 -0
  11. package/dist/helper/controllers/popover-controller.js +2 -0
  12. package/dist/helper/controllers/popover-controller.js.map +1 -0
  13. package/dist/helper/form-control-base.d.ts +1 -0
  14. package/dist/helper/iconify-offline.d.ts +73 -0
  15. package/dist/helper/iconify-offline.js +2 -0
  16. package/dist/helper/iconify-offline.js.map +1 -0
  17. package/dist/helper/index.d.ts +5 -0
  18. package/dist/helper/internals/form-control-base.d.ts +81 -0
  19. package/dist/helper/internals/form-control-base.js +2 -0
  20. package/dist/helper/internals/form-control-base.js.map +1 -0
  21. package/dist/helper/internals/index.d.ts +1 -0
  22. package/dist/helper/utils/color-resolver.d.ts +139 -0
  23. package/dist/helper/utils/color-resolver.js +2 -0
  24. package/dist/helper/utils/color-resolver.js.map +1 -0
  25. package/dist/helper/utils/index.d.ts +2 -0
  26. package/dist/helper/utils/size-resolver.d.ts +6 -0
  27. package/dist/helper/utils/size-resolver.js +2 -0
  28. package/dist/helper/utils/size-resolver.js.map +1 -0
  29. package/dist/index.d.ts +58 -0
  30. package/dist/index.js +2 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/sky-accordion/index.d.ts +1 -0
  33. package/dist/sky-accordion/index.js +1 -0
  34. package/dist/sky-accordion/sky-accordion.d.ts +201 -0
  35. package/dist/sky-accordion/sky-accordion.js +85 -0
  36. package/dist/sky-accordion/sky-accordion.js.map +1 -0
  37. package/dist/sky-accordion-item/index.d.ts +1 -0
  38. package/dist/sky-accordion-item/index.js +1 -0
  39. package/dist/sky-accordion-item/sky-accordion-item.d.ts +161 -0
  40. package/dist/sky-accordion-item/sky-accordion-item.js +191 -0
  41. package/dist/sky-accordion-item/sky-accordion-item.js.map +1 -0
  42. package/dist/sky-alert/index.d.ts +1 -0
  43. package/dist/sky-alert/index.js +1 -0
  44. package/dist/sky-alert/sky-alert.d.ts +136 -0
  45. package/dist/sky-alert/sky-alert.js +292 -0
  46. package/dist/sky-alert/sky-alert.js.map +1 -0
  47. package/dist/sky-appbar/index.d.ts +1 -0
  48. package/dist/sky-appbar/index.js +1 -0
  49. package/dist/sky-appbar/sky-appbar.d.ts +84 -0
  50. package/dist/sky-appbar/sky-appbar.js +173 -0
  51. package/dist/sky-appbar/sky-appbar.js.map +1 -0
  52. package/dist/sky-avatar/index.d.ts +1 -0
  53. package/dist/sky-avatar/index.js +1 -0
  54. package/dist/sky-avatar/sky-avatar.d.ts +104 -0
  55. package/dist/sky-avatar/sky-avatar.js +152 -0
  56. package/dist/sky-avatar/sky-avatar.js.map +1 -0
  57. package/dist/sky-badge/index.d.ts +1 -0
  58. package/dist/sky-badge/index.js +1 -0
  59. package/dist/sky-badge/sky-badge.d.ts +154 -0
  60. package/dist/sky-badge/sky-badge.js +148 -0
  61. package/dist/sky-badge/sky-badge.js.map +1 -0
  62. package/dist/sky-breadcrumb/index.d.ts +1 -0
  63. package/dist/sky-breadcrumb/index.js +1 -0
  64. package/dist/sky-breadcrumb/sky-breadcrumb.d.ts +111 -0
  65. package/dist/sky-breadcrumb/sky-breadcrumb.js +230 -0
  66. package/dist/sky-breadcrumb/sky-breadcrumb.js.map +1 -0
  67. package/dist/sky-button/index.d.ts +1 -0
  68. package/dist/sky-button/index.js +1 -0
  69. package/dist/sky-button/sky-button.d.ts +118 -0
  70. package/dist/sky-button/sky-button.js +172 -0
  71. package/dist/sky-button/sky-button.js.map +1 -0
  72. package/dist/sky-button-group/index.d.ts +1 -0
  73. package/dist/sky-button-group/index.js +1 -0
  74. package/dist/sky-button-group/sky-button-group.d.ts +93 -0
  75. package/dist/sky-button-group/sky-button-group.js +281 -0
  76. package/dist/sky-button-group/sky-button-group.js.map +1 -0
  77. package/dist/sky-card/index.d.ts +1 -0
  78. package/dist/sky-card/index.js +1 -0
  79. package/dist/sky-card/sky-card.d.ts +143 -0
  80. package/dist/sky-card/sky-card.js +186 -0
  81. package/dist/sky-card/sky-card.js.map +1 -0
  82. package/dist/sky-carousel/index.d.ts +1 -0
  83. package/dist/sky-carousel/index.js +1 -0
  84. package/dist/sky-carousel/sky-carousel.d.ts +265 -0
  85. package/dist/sky-carousel/sky-carousel.js +211 -0
  86. package/dist/sky-carousel/sky-carousel.js.map +1 -0
  87. package/dist/sky-checkbox/index.d.ts +1 -0
  88. package/dist/sky-checkbox/index.js +1 -0
  89. package/dist/sky-checkbox/sky-checkbox.d.ts +165 -0
  90. package/dist/sky-checkbox/sky-checkbox.js +276 -0
  91. package/dist/sky-checkbox/sky-checkbox.js.map +1 -0
  92. package/dist/sky-chip/index.d.ts +1 -0
  93. package/dist/sky-chip/index.js +1 -0
  94. package/dist/sky-chip/sky-chip.d.ts +95 -0
  95. package/dist/sky-chip/sky-chip.js +210 -0
  96. package/dist/sky-chip/sky-chip.js.map +1 -0
  97. package/dist/sky-col/index.d.ts +1 -0
  98. package/dist/sky-col/index.js +1 -0
  99. package/dist/sky-col/sky-col.d.ts +84 -0
  100. package/dist/sky-col/sky-col.js +46 -0
  101. package/dist/sky-col/sky-col.js.map +1 -0
  102. package/dist/sky-combobox/index.d.ts +1 -0
  103. package/dist/sky-combobox/index.js +1 -0
  104. package/dist/sky-combobox/sky-combobox.d.ts +313 -0
  105. package/dist/sky-combobox/sky-combobox.js +1146 -0
  106. package/dist/sky-combobox/sky-combobox.js.map +1 -0
  107. package/dist/sky-counter/index.d.ts +1 -0
  108. package/dist/sky-counter/index.js +1 -0
  109. package/dist/sky-counter/sky-counter.d.ts +130 -0
  110. package/dist/sky-counter/sky-counter.js +101 -0
  111. package/dist/sky-counter/sky-counter.js.map +1 -0
  112. package/dist/sky-dialog/index.d.ts +1 -0
  113. package/dist/sky-dialog/index.js +1 -0
  114. package/dist/sky-dialog/sky-dialog.d.ts +237 -0
  115. package/dist/sky-dialog/sky-dialog.js +265 -0
  116. package/dist/sky-dialog/sky-dialog.js.map +1 -0
  117. package/dist/sky-divider/index.d.ts +1 -0
  118. package/dist/sky-divider/index.js +1 -0
  119. package/dist/sky-divider/sky-divider.d.ts +120 -0
  120. package/dist/sky-divider/sky-divider.js +42 -0
  121. package/dist/sky-divider/sky-divider.js.map +1 -0
  122. package/dist/sky-drawer/index.d.ts +1 -0
  123. package/dist/sky-drawer/index.js +1 -0
  124. package/dist/sky-drawer/sky-drawer.d.ts +161 -0
  125. package/dist/sky-drawer/sky-drawer.js +177 -0
  126. package/dist/sky-drawer/sky-drawer.js.map +1 -0
  127. package/dist/sky-dropdown/index.d.ts +1 -0
  128. package/dist/sky-dropdown/index.js +1 -0
  129. package/dist/sky-dropdown/sky-dropdown.d.ts +252 -0
  130. package/dist/sky-dropdown/sky-dropdown.js +58 -0
  131. package/dist/sky-dropdown/sky-dropdown.js.map +1 -0
  132. package/dist/sky-dropdown-item/index.d.ts +1 -0
  133. package/dist/sky-dropdown-item/index.js +1 -0
  134. package/dist/sky-dropdown-item/sky-dropdown-item.d.ts +207 -0
  135. package/dist/sky-dropdown-item/sky-dropdown-item.js +341 -0
  136. package/dist/sky-dropdown-item/sky-dropdown-item.js.map +1 -0
  137. package/dist/sky-flexbar/index.d.ts +1 -0
  138. package/dist/sky-flexbar/index.js +1 -0
  139. package/dist/sky-flexbar/sky-flexbar.d.ts +189 -0
  140. package/dist/sky-flexbar/sky-flexbar.js +148 -0
  141. package/dist/sky-flexbar/sky-flexbar.js.map +1 -0
  142. package/dist/sky-flexbox/index.d.ts +1 -0
  143. package/dist/sky-flexbox/index.js +1 -0
  144. package/dist/sky-flexbox/sky-flexbox.d.ts +156 -0
  145. package/dist/sky-flexbox/sky-flexbox.js +40 -0
  146. package/dist/sky-flexbox/sky-flexbox.js.map +1 -0
  147. package/dist/sky-flexcol/index.d.ts +1 -0
  148. package/dist/sky-flexcol/index.js +1 -0
  149. package/dist/sky-flexcol/sky-flexcol.d.ts +154 -0
  150. package/dist/sky-flexcol/sky-flexcol.js +14 -0
  151. package/dist/sky-flexcol/sky-flexcol.js.map +1 -0
  152. package/dist/sky-flexitem/index.d.ts +1 -0
  153. package/dist/sky-flexitem/index.js +1 -0
  154. package/dist/sky-flexitem/sky-flexitem.d.ts +114 -0
  155. package/dist/sky-flexitem/sky-flexitem.js +45 -0
  156. package/dist/sky-flexitem/sky-flexitem.js.map +1 -0
  157. package/dist/sky-form/index.d.ts +1 -0
  158. package/dist/sky-form/index.js +1 -0
  159. package/dist/sky-form/sky-form.d.ts +286 -0
  160. package/dist/sky-form/sky-form.js +66 -0
  161. package/dist/sky-form/sky-form.js.map +1 -0
  162. package/dist/sky-grid/index.d.ts +1 -0
  163. package/dist/sky-grid/index.js +1 -0
  164. package/dist/sky-grid/sky-grid.d.ts +78 -0
  165. package/dist/sky-grid/sky-grid.js +40 -0
  166. package/dist/sky-grid/sky-grid.js.map +1 -0
  167. package/dist/sky-icon/index.d.ts +1 -0
  168. package/dist/sky-icon/index.js +1 -0
  169. package/dist/sky-icon/ion-local.json.js +2 -0
  170. package/dist/sky-icon/ion-local.json.js.map +1 -0
  171. package/dist/sky-icon/sky-icon.d.ts +123 -0
  172. package/dist/sky-icon/sky-icon.js +40 -0
  173. package/dist/sky-icon/sky-icon.js.map +1 -0
  174. package/dist/sky-image/index.d.ts +1 -0
  175. package/dist/sky-image/index.js +1 -0
  176. package/dist/sky-image/sky-image.d.ts +102 -0
  177. package/dist/sky-image/sky-image.js +29 -0
  178. package/dist/sky-image/sky-image.js.map +1 -0
  179. package/dist/sky-input/index.d.ts +1 -0
  180. package/dist/sky-input/index.js +1 -0
  181. package/dist/sky-input/sky-input.d.ts +345 -0
  182. package/dist/sky-input/sky-input.js +820 -0
  183. package/dist/sky-input/sky-input.js.map +1 -0
  184. package/dist/sky-list/index.d.ts +1 -0
  185. package/dist/sky-list/index.js +1 -0
  186. package/dist/sky-list/sky-list.d.ts +85 -0
  187. package/dist/sky-list/sky-list.js +41 -0
  188. package/dist/sky-list/sky-list.js.map +1 -0
  189. package/dist/sky-listitem/index.d.ts +1 -0
  190. package/dist/sky-listitem/index.js +1 -0
  191. package/dist/sky-listitem/sky-listitem.d.ts +76 -0
  192. package/dist/sky-listitem/sky-listitem.js +104 -0
  193. package/dist/sky-listitem/sky-listitem.js.map +1 -0
  194. package/dist/sky-navbar/index.d.ts +1 -0
  195. package/dist/sky-navbar/index.js +1 -0
  196. package/dist/sky-navbar/sky-navbar.d.ts +207 -0
  197. package/dist/sky-navbar/sky-navbar.js +521 -0
  198. package/dist/sky-navbar/sky-navbar.js.map +1 -0
  199. package/dist/sky-navpanel/index.d.ts +1 -0
  200. package/dist/sky-navpanel/index.js +1 -0
  201. package/dist/sky-navpanel/sky-navpanel.d.ts +186 -0
  202. package/dist/sky-navpanel/sky-navpanel.js +404 -0
  203. package/dist/sky-navpanel/sky-navpanel.js.map +1 -0
  204. package/dist/sky-notification/index.d.ts +1 -0
  205. package/dist/sky-notification/index.js +1 -0
  206. package/dist/sky-notification/sky-notification.d.ts +152 -0
  207. package/dist/sky-notification/sky-notification.js +456 -0
  208. package/dist/sky-notification/sky-notification.js.map +1 -0
  209. package/dist/sky-otp/index.d.ts +1 -0
  210. package/dist/sky-otp/index.js +1 -0
  211. package/dist/sky-otp/sky-otp.d.ts +101 -0
  212. package/dist/sky-otp/sky-otp.js +96 -0
  213. package/dist/sky-otp/sky-otp.js.map +1 -0
  214. package/dist/sky-overlay/index.d.ts +1 -0
  215. package/dist/sky-overlay/index.js +1 -0
  216. package/dist/sky-overlay/sky-overlay.d.ts +71 -0
  217. package/dist/sky-overlay/sky-overlay.js +26 -0
  218. package/dist/sky-overlay/sky-overlay.js.map +1 -0
  219. package/dist/sky-pagination/index.d.ts +1 -0
  220. package/dist/sky-pagination/index.js +1 -0
  221. package/dist/sky-pagination/sky-pagination.d.ts +167 -0
  222. package/dist/sky-pagination/sky-pagination.js +453 -0
  223. package/dist/sky-pagination/sky-pagination.js.map +1 -0
  224. package/dist/sky-progress/index.d.ts +1 -0
  225. package/dist/sky-progress/index.js +1 -0
  226. package/dist/sky-progress/sky-progress.d.ts +70 -0
  227. package/dist/sky-progress/sky-progress.js +87 -0
  228. package/dist/sky-progress/sky-progress.js.map +1 -0
  229. package/dist/sky-radio/index.d.ts +1 -0
  230. package/dist/sky-radio/index.js +1 -0
  231. package/dist/sky-radio/sky-radio.d.ts +118 -0
  232. package/dist/sky-radio/sky-radio.js +109 -0
  233. package/dist/sky-radio/sky-radio.js.map +1 -0
  234. package/dist/sky-radio-group/index.d.ts +1 -0
  235. package/dist/sky-radio-group/index.js +1 -0
  236. package/dist/sky-radio-group/sky-radio-group.d.ts +186 -0
  237. package/dist/sky-radio-group/sky-radio-group.js +239 -0
  238. package/dist/sky-radio-group/sky-radio-group.js.map +1 -0
  239. package/dist/sky-range/index.d.ts +1 -0
  240. package/dist/sky-range/index.js +1 -0
  241. package/dist/sky-range/sky-range.d.ts +110 -0
  242. package/dist/sky-range/sky-range.js +196 -0
  243. package/dist/sky-range/sky-range.js.map +1 -0
  244. package/dist/sky-row/index.d.ts +1 -0
  245. package/dist/sky-row/index.js +1 -0
  246. package/dist/sky-row/sky-row.d.ts +57 -0
  247. package/dist/sky-row/sky-row.js +6 -0
  248. package/dist/sky-row/sky-row.js.map +1 -0
  249. package/dist/sky-serial/index.d.ts +1 -0
  250. package/dist/sky-serial/index.js +1 -0
  251. package/dist/sky-serial/sky-serial.d.ts +127 -0
  252. package/dist/sky-serial/sky-serial.js +133 -0
  253. package/dist/sky-serial/sky-serial.js.map +1 -0
  254. package/dist/sky-sheet/index.d.ts +1 -0
  255. package/dist/sky-sheet/index.js +1 -0
  256. package/dist/sky-sheet/sky-sheet.d.ts +70 -0
  257. package/dist/sky-sheet/sky-sheet.js +47 -0
  258. package/dist/sky-sheet/sky-sheet.js.map +1 -0
  259. package/dist/sky-skeleton/index.d.ts +1 -0
  260. package/dist/sky-skeleton/index.js +1 -0
  261. package/dist/sky-skeleton/sky-skeleton.d.ts +80 -0
  262. package/dist/sky-skeleton/sky-skeleton.js +233 -0
  263. package/dist/sky-skeleton/sky-skeleton.js.map +1 -0
  264. package/dist/sky-slider/index.d.ts +1 -0
  265. package/dist/sky-slider/index.js +1 -0
  266. package/dist/sky-slider/sky-slider.d.ts +96 -0
  267. package/dist/sky-slider/sky-slider.js +139 -0
  268. package/dist/sky-slider/sky-slider.js.map +1 -0
  269. package/dist/sky-speeddial/index.d.ts +1 -0
  270. package/dist/sky-speeddial/index.js +1 -0
  271. package/dist/sky-speeddial/sky-speeddial.d.ts +86 -0
  272. package/dist/sky-speeddial/sky-speeddial.js +154 -0
  273. package/dist/sky-speeddial/sky-speeddial.js.map +1 -0
  274. package/dist/sky-spinner/index.d.ts +1 -0
  275. package/dist/sky-spinner/index.js +1 -0
  276. package/dist/sky-spinner/sky-spinner.d.ts +87 -0
  277. package/dist/sky-spinner/sky-spinner.js +334 -0
  278. package/dist/sky-spinner/sky-spinner.js.map +1 -0
  279. package/dist/sky-steps/index.d.ts +1 -0
  280. package/dist/sky-steps/index.js +1 -0
  281. package/dist/sky-steps/sky-steps.d.ts +170 -0
  282. package/dist/sky-steps/sky-steps.js +455 -0
  283. package/dist/sky-steps/sky-steps.js.map +1 -0
  284. package/dist/sky-switch/index.d.ts +1 -0
  285. package/dist/sky-switch/index.js +1 -0
  286. package/dist/sky-switch/sky-switch.d.ts +116 -0
  287. package/dist/sky-switch/sky-switch.js +191 -0
  288. package/dist/sky-switch/sky-switch.js.map +1 -0
  289. package/dist/sky-tab/index.d.ts +1 -0
  290. package/dist/sky-tab/index.js +1 -0
  291. package/dist/sky-tab/sky-tab.d.ts +188 -0
  292. package/dist/sky-tab/sky-tab.js +390 -0
  293. package/dist/sky-tab/sky-tab.js.map +1 -0
  294. package/dist/sky-tab-button/index.d.ts +1 -0
  295. package/dist/sky-tab-button/index.js +1 -0
  296. package/dist/sky-tab-button/sky-tab-button.d.ts +114 -0
  297. package/dist/sky-tab-button/sky-tab-button.js +167 -0
  298. package/dist/sky-tab-button/sky-tab-button.js.map +1 -0
  299. package/dist/sky-theme-provider/index.d.ts +1 -0
  300. package/dist/sky-theme-provider/index.js +1 -0
  301. package/dist/sky-theme-provider/sky-theme-provider.d.ts +169 -0
  302. package/dist/sky-theme-provider/sky-theme-provider.js +12 -0
  303. package/dist/sky-theme-provider/sky-theme-provider.js.map +1 -0
  304. package/dist/sky-theme-switcher/index.d.ts +1 -0
  305. package/dist/sky-theme-switcher/index.js +1 -0
  306. package/dist/sky-theme-switcher/sky-theme-switcher.d.ts +92 -0
  307. package/dist/sky-theme-switcher/sky-theme-switcher.js +43 -0
  308. package/dist/sky-theme-switcher/sky-theme-switcher.js.map +1 -0
  309. package/dist/sky-tooltip/index.d.ts +1 -0
  310. package/dist/sky-tooltip/index.js +1 -0
  311. package/dist/sky-tooltip/sky-tooltip.d.ts +156 -0
  312. package/dist/sky-tooltip/sky-tooltip.js +242 -0
  313. package/dist/sky-tooltip/sky-tooltip.js.map +1 -0
  314. package/package.json +475 -0
  315. package/plugins/rollup-plugin.d.ts +19 -0
  316. package/plugins/rollup-plugin.js +129 -0
  317. package/plugins/vite-plugin.d.ts +22 -0
  318. package/plugins/vite-plugin.js +116 -0
  319. package/plugins/webpack-plugin.d.ts +12 -0
  320. package/plugins/webpack-plugin.js +46 -0
@@ -0,0 +1,66 @@
1
+ import{__decorate as t,__metadata as e}from"tslib";import{LitElement as i,nothing as r,html as s}from"lit";import{property as o,state as n,query as a,customElement as d}from"lit/decorators.js";import{ifDefined as l}from"lit/directives/if-defined.js";let h=class extends i{constructor(){super(...arguments),this.liveValidation=!1,this.showErrors=!0,this.errorBox=!1,this.errorBoxMessage="Fix These Issues Before Submitting",this.mode="client",this.noValidate=!1,this.enterSubmit=!1,this.resetOnSubmit=!1,this.csrfToken=null,this.validationErrors=[],this.submitSuccess=!1,this.validationActive=!1,this._syncQueued=!1,this._handlingSubmit=!1,this._handlingInvalid=!1,this._onEnterKey=t=>{if(!this.enterSubmit)return;if("Enter"!==t.key)return;const e=t.target;e instanceof HTMLTextAreaElement||e.closest('button[type="submit"], input[type="submit"]')||(t.preventDefault(),this.requestSubmit())},this._handleValueChanged=t=>{if(!this.liveValidation)return;t.target.matches("sky-input, sky-combobox, sky-datepicker, sky-checkbox, sky-radio-group, sky-otp, sky-serial, sky-counter, sky-switch, input, select, textarea")&&(this._queueSync(),this._emitFormChange())},this._onFormDataCapture=t=>{t.target instanceof HTMLFormElement&&t.target===this._formEl&&t.stopImmediatePropagation()},this._onInvalidCapture=t=>{const e=t.target;e?.form&&e.form!==this._formEl||(t.preventDefault(),t.stopImmediatePropagation(),this._activateValidation(),this._focusFirstInvalid())},this._onHostSubmitCapture=t=>{if(t.target instanceof HTMLFormElement&&t.target===this._formEl&&!this._handlingSubmit){this._handlingSubmit=!0;try{this._syncNow();if(!this._formEl.checkValidity())return t.preventDefault(),t.stopImmediatePropagation(),this.submitSuccess=!1,void this._focusFirstInvalid();if("server"===this.mode)return this.submitSuccess=!0,void(this.resetOnSubmit&&queueMicrotask(()=>this.reset()));t.preventDefault(),t.stopImmediatePropagation();const e=new FormData(this._formEl);let i=!1;try{const t=new FormDataEvent("formdata",{formData:e,bubbles:!0,composed:!0});this.dispatchEvent(t),i=!0}catch{}i||this.dispatchEvent(new CustomEvent("formdata",{detail:{formData:e},bubbles:!0,composed:!0}));const r=this._formDataToJSON(e);this.dispatchEvent(new CustomEvent("form-submit",{detail:{values:r,formData:e,success:this._formEl.checkValidity()},bubbles:!0,composed:!0})),this.submitSuccess=!0,this.resetOnSubmit&&queueMicrotask(()=>this.reset())}finally{this._handlingSubmit=!1}}}}createRenderRoot(){return this}get formElement(){return this._formEl}connectedCallback(){super.connectedCallback(),this._queueSync(),this.addEventListener("submit",this._onHostSubmitCapture,!0),this.addEventListener("formdata",this._onFormDataCapture,!0),this.addEventListener("value-changed",this._handleValueChanged),this.addEventListener("keydown",this._onEnterKey,!0),this.addEventListener("invalid",this._onInvalidCapture,!0),this._mo=new MutationObserver(()=>this._queueSync()),this._mo.observe(this,{childList:!0,subtree:!0})}disconnectedCallback(){this.removeEventListener("submit",this._onHostSubmitCapture,!0),this.removeEventListener("formdata",this._onFormDataCapture,!0),this.removeEventListener("value-changed",this._handleValueChanged),this.removeEventListener("keydown",this._onEnterKey,!0),this.removeEventListener("invalid",this._onInvalidCapture,!0),this._mo?.disconnect(),super.disconnectedCallback()}_queueSync(){this._syncQueued||(this._syncQueued=!0,queueMicrotask(()=>{this._syncQueued=!1,this._moveHostIdToNativeForm(),this._ensureNativeFormHasId(),this._assignFormOwnerToChildren(),this._refreshAggregates()}))}_moveHostIdToNativeForm(){const t=this.id?.trim();t&&this._formEl&&(this._formEl.id!==t&&(this._formEl.id=t),this.id===t&&this.removeAttribute("id"))}_ensureNativeFormHasId(){if(!this._formEl?.id){const t="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2,9)}`;this._formEl.id=`sky-form-${t}`}}_formValidQuiet(){const t=this._formEl;if(!t)return!0;for(const e of Array.from(t.elements)){const t=e;if("validity"in t&&t.validity&&!("willValidate"in t&&!1===t.willValidate||t.validity.valid))return!1}return!0}_emitFormChange(){if(!this._formEl)return;const t=new FormData(this._formEl),e=this._formDataToJSON(t);this.dispatchEvent(new CustomEvent("form-change",{detail:{values:e,formData:t,success:this._formValidQuiet()},bubbles:!0,composed:!0}))}_assignFormOwnerToChildren(){const t=this._formEl?.id;if(!t)return;const e=Array.from(this.querySelectorAll(["input","select","textarea","button","sky-button","sky-input","sky-combobox","sky-datepicker","sky-checkbox","sky-radio-group","sky-otp","sky-serial","sky-counter","sky-switch"].join(",")));for(const i of e)i.closest("form")!==this._formEl&&i.form?.id!==t&&i.setAttribute("form",t)}_getSkyInputs(){return Array.from(this.querySelectorAll("sky-input, sky-combobox, sky-datepicker, sky-checkbox, sky-radio-group, sky-otp, sky-serial, sky-counter, sky-switch"))}_emitValidationErrors(){this.dispatchEvent(new CustomEvent("validation-errors",{detail:{errors:[...this.validationErrors]},bubbles:!0,composed:!0}))}_refreshAggregates(){const t=[],e=this._getSkyInputs();for(const i of e)this._handlingInvalid||"function"!=typeof i.validateInput||i.validateInput(),Array.isArray(i.validationErrors)&&t.push(...i.validationErrors);const i=Array.from(this._formEl.elements);for(const e of i){if(!("willValidate"in e)||!e.willValidate)continue;if(!(!("validity"in e)||!e.validity||e.validity.valid)){const i=e.validationMessage||`${e.name||e.id||"Field"} is invalid`;t.push(i)}}const r=[...new Set(t)];r.join("|")!==this.validationErrors.join("|")&&(this.validationErrors=r,this._emitValidationErrors())}_focusFirstInvalid(){const t=this._getSkyInputs().find(t=>!0===t.invalid);t&&this._focusElement(t)}_focusElement(t){t.scrollIntoView({behavior:"smooth",block:"center"}),setTimeout(()=>{t.focus({preventScroll:!0})},100)}_syncNow(){this._moveHostIdToNativeForm(),this._ensureNativeFormHasId(),this._assignFormOwnerToChildren(),this._refreshAggregates()}_formDataToJSON(t){const e={};return t.forEach((t,i)=>{i in e?Array.isArray(e[i])?e[i].push(t):e[i]=[e[i],t]:e[i]=t}),e}_activateValidation(){this.validationActive=!0;const t=this._getSkyInputs();for(const e of t)e.validationActive=!0,e.showErrors=!0;queueMicrotask(()=>this._refreshAggregates())}checkValidity(){return this._queueSync(),this._formEl?.checkValidity?.()??!0}reportValidity(){return this._queueSync(),this._formEl?.reportValidity?.()??!0}requestSubmit(t){this._syncNow(),this._activateValidation(),this._formEl?.requestSubmit?.(t)}reset(){this._queueSync(),this._formEl?.reset()}resetForm(){this._queueSync(),this._formEl?.reset()}submit(){if(this._activateValidation(),"client"===this.mode){const t=new SubmitEvent("submit",{bubbles:!0,cancelable:!0});this._formEl?.dispatchEvent(t)}else this._formEl?.submit()}render(){return s`
2
+ <style>
3
+ .error-wrapper {
4
+ width: 100%;
5
+ display: flex;
6
+ justify-content: center;
7
+ }
8
+ .error-container {
9
+ margin: 10px 0;
10
+ padding: 5px 10px;
11
+ width: 100%;
12
+ border-radius: var(--sky-radius-secondary);
13
+ border: 1px solid var(--sky-danger-primary);
14
+ background-color: var(--sky-glass-g0);
15
+ box-shadow: var(--sky-box-shadow-primary);
16
+ position: relative;
17
+ z-index: inherit;
18
+ }
19
+ .error-title {
20
+ font-size: 14px;
21
+ color: var(--sky-danger-primary);
22
+ width: 100%;
23
+ display: flex;
24
+ justify-content: center;
25
+ }
26
+ .error-list {
27
+ list-style: inside;
28
+ padding: 5px;
29
+ margin: 0;
30
+ text-align: start;
31
+ }
32
+ .error-item {
33
+ font-size: 12px;
34
+ color: var(--sky-text-dark);
35
+ }
36
+ </style>
37
+
38
+ <form
39
+ part="form"
40
+ method=${l(this.method)}
41
+ action=${l(this.action)}
42
+ enctype=${l(this.enctype)}
43
+ autocomplete=${l(this.autocomplete)}
44
+ ?novalidate=${this.noValidate}
45
+ target=${l(this.target||void 0)}
46
+ >
47
+ ${this.csrfToken?s`<input
48
+ type="hidden"
49
+ name="csrfmiddlewaretoken"
50
+ .value=${this.csrfToken}
51
+ />`:r}
52
+ <slot></slot>
53
+ </form>
54
+
55
+ ${this.errorBox&&this.validationErrors.length>0&&this.showErrors&&this.validationActive?s`
56
+ <div class="error-wrapper" part="error-box">
57
+ <div class="error-container">
58
+ <div class="error-title">${this.errorBoxMessage}</div>
59
+ <ul class="error-list" part="error-list">
60
+ ${this.validationErrors.map((t,e)=>s`<li class="error-item" key=${e}>${t}</li>`)}
61
+ </ul>
62
+ </div>
63
+ </div>
64
+ `:r}
65
+ `}};t([o({type:Boolean}),e("design:type",Object)],h.prototype,"liveValidation",void 0),t([o({type:Boolean}),e("design:type",Object)],h.prototype,"showErrors",void 0),t([o({type:Boolean}),e("design:type",Object)],h.prototype,"errorBox",void 0),t([o({type:String}),e("design:type",Object)],h.prototype,"errorBoxMessage",void 0),t([o({type:String}),e("design:type",String)],h.prototype,"mode",void 0),t([o({type:String}),e("design:type",String)],h.prototype,"method",void 0),t([o({type:String}),e("design:type",String)],h.prototype,"action",void 0),t([o({type:String}),e("design:type",String)],h.prototype,"target",void 0),t([o({type:String}),e("design:type",String)],h.prototype,"enctype",void 0),t([o({type:String}),e("design:type",String)],h.prototype,"autocomplete",void 0),t([o({type:Boolean}),e("design:type",Object)],h.prototype,"noValidate",void 0),t([o({type:Boolean}),e("design:type",Object)],h.prototype,"enterSubmit",void 0),t([o({type:Boolean}),e("design:type",Object)],h.prototype,"resetOnSubmit",void 0),t([o({type:String}),e("design:type",Object)],h.prototype,"csrfToken",void 0),t([n(),e("design:type",Array)],h.prototype,"validationErrors",void 0),t([n(),e("design:type",Object)],h.prototype,"submitSuccess",void 0),t([n(),e("design:type",Object)],h.prototype,"validationActive",void 0),t([a("form"),e("design:type",HTMLFormElement)],h.prototype,"_formEl",void 0),h=t([d("sky-form")],h);export{h as SkyForm};
66
+ //# sourceMappingURL=sky-form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sky-form.js","sources":["../../src/sky-form/sky-form.ts"],"sourcesContent":[null],"names":["SkyForm","LitElement","constructor","this","liveValidation","showErrors","errorBox","errorBoxMessage","mode","noValidate","enterSubmit","resetOnSubmit","csrfToken","validationErrors","submitSuccess","validationActive","_syncQueued","_handlingSubmit","_handlingInvalid","_onEnterKey","e","key","target","HTMLTextAreaElement","closest","preventDefault","requestSubmit","_handleValueChanged","matches","_queueSync","_emitFormChange","_onFormDataCapture","HTMLFormElement","_formEl","stopImmediatePropagation","_onInvalidCapture","t","form","_activateValidation","_focusFirstInvalid","_onHostSubmitCapture","_syncNow","checkValidity","queueMicrotask","reset","fd","FormData","dispatched","fde","FormDataEvent","formData","bubbles","composed","dispatchEvent","CustomEvent","detail","json","_formDataToJSON","values","success","createRenderRoot","formElement","connectedCallback","super","addEventListener","_mo","MutationObserver","observe","childList","subtree","disconnectedCallback","removeEventListener","disconnect","_moveHostIdToNativeForm","_ensureNativeFormHasId","_assignFormOwnerToChildren","_refreshAggregates","hostId","id","trim","removeAttribute","suffix","crypto","randomUUID","Date","now","Math","random","toString","slice","_formValidQuiet","el","Array","from","elements","h","validity","willValidate","valid","formId","candidates","querySelectorAll","join","setAttribute","_getSkyInputs","_emitValidationErrors","errors","errs","skyInputs","input","validateInput","isArray","push","msg","validationMessage","name","next","Set","firstInvalid","find","invalid","_focusElement","element","scrollIntoView","behavior","block","setTimeout","focus","preventScroll","obj","forEach","value","reportValidity","submitter","resetForm","submit","submitEvent","SubmitEvent","cancelable","render","html","ifDefined","method","action","enctype","autocomplete","undefined","nothing","length","map","err","i","__decorate","property","type","Boolean","prototype","String","state","query","customElement"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./sky-grid";
@@ -0,0 +1 @@
1
+ export * from './sky-grid.js';
@@ -0,0 +1,78 @@
1
+ import { LitElement } from "lit";
2
+ export interface SkyGridColumnsConfig {
3
+ columns: number;
4
+ lg: number;
5
+ md: number;
6
+ sm: number;
7
+ xs: number;
8
+ }
9
+ /**
10
+ * @element sky-grid
11
+ *
12
+ * @summary Responsive CSS grid container with configurable breakpoint column counts.
13
+ *
14
+ * @status stable
15
+ * @since 1.0.0
16
+ *
17
+ * @documentation https://library.sky-ui.com/components/grid
18
+ *
19
+ * @slot - Default slot for grid items (direct children become grid items).
20
+ * @property {number} columns - Base number of grid columns.
21
+ * @property {string} gap - Gap between grid items.
22
+ * @property {number} lg - Column count at large breakpoints.
23
+ * @property {number} md - Column count at medium breakpoints.
24
+ * @property {number} sm - Column count at small breakpoints.
25
+ * @property {number} xs - Column count at extra-small breakpoints.
26
+ * @property {boolean} nowrap - Reuses `columns` across breakpoints when true.
27
+ *
28
+ * @csspart grid - The grid container element.
29
+ *
30
+ * @Behavior
31
+ * - Uses CSS variables for runtime breakpoint column updates
32
+ * - Supports explicit per-breakpoint column counts
33
+ * - Supports `nowrap` mode to keep a fixed column count
34
+ *
35
+ * @example
36
+ * ```html
37
+ * <sky-grid columns="12" lg="4" md="3" sm="2" xs="1" gap="16px">
38
+ * <sky-card>Card 1</sky-card>
39
+ * <sky-card>Card 2</sky-card>
40
+ * <sky-card>Card 3</sky-card>
41
+ * <sky-card>Card 4</sky-card>
42
+ * </sky-grid>
43
+ * ```
44
+ * ```vue
45
+ * <template>
46
+ * <sky-grid columns="12" lg="4" md="3" sm="2" xs="1" gap="16px">
47
+ * <sky-card>Card 1</sky-card>
48
+ * <sky-card>Card 2</sky-card>
49
+ * <sky-card>Card 3</sky-card>
50
+ * <sky-card>Card 4</sky-card>
51
+ * </sky-grid>
52
+ * </template>
53
+ * ```
54
+ * ```jsx
55
+ * export default function Demo() {
56
+ * return (
57
+ * <sky-grid columns="12" lg="4" md="3" sm="2" xs="1" gap="16px">
58
+ * <sky-card>Card 1</sky-card>
59
+ * <sky-card>Card 2</sky-card>
60
+ * <sky-card>Card 3</sky-card>
61
+ * <sky-card>Card 4</sky-card>
62
+ * </sky-grid>
63
+ * );
64
+ * }
65
+ * ```
66
+ */
67
+ export declare class SkyGrid extends LitElement {
68
+ static styles: import("lit").CSSResult;
69
+ columns: number;
70
+ gap: string;
71
+ lg: number;
72
+ md: number;
73
+ sm: number;
74
+ xs: number;
75
+ nowrap: boolean;
76
+ updated(changedProperties: Map<string | number | symbol, unknown>): void;
77
+ render(): import("lit-html").TemplateResult<1>;
78
+ }
@@ -0,0 +1,40 @@
1
+ import{__decorate as t,__metadata as s}from"tslib";import{LitElement as e,css as r,html as i}from"lit";import{property as o,customElement as p}from"lit/decorators.js";let m=class extends e{constructor(){super(...arguments),this.columns=12,this.gap="10px",this.lg=3,this.md=2,this.sm=2,this.xs=1,this.nowrap=!1}static{this.styles=r`
2
+ :host {
3
+ display: block;
4
+ }
5
+
6
+ .grid {
7
+ display: grid;
8
+ gap: var(--grid-gap, 1rem);
9
+ grid-template-columns: repeat(var(--grid-columns, 4), 1fr);
10
+ }
11
+
12
+ @media (max-width: 1200px) {
13
+ .grid {
14
+ grid-template-columns: repeat(var(--grid-columns-lg), 1fr);
15
+ }
16
+ }
17
+
18
+ @media (max-width: 992px) {
19
+ .grid {
20
+ grid-template-columns: repeat(var(--grid-columns-md), 1fr);
21
+ }
22
+ }
23
+
24
+ @media (max-width: 768px) {
25
+ .grid {
26
+ grid-template-columns: repeat(var(--grid-columns-sm), 1fr);
27
+ }
28
+ }
29
+
30
+ @media (max-width: 576px) {
31
+ .grid {
32
+ grid-template-columns: repeat(var(--grid-columns-xs), 1fr);
33
+ }
34
+ }
35
+ `}updated(t){(t.has("nowrap")||t.has("lg")||t.has("md")||t.has("sm")||t.has("xs")||t.has("columns"))&&(this.style.setProperty("--grid-columns",this.columns.toString()),this.nowrap?(this.style.setProperty("--grid-columns-lg",this.columns.toString()),this.style.setProperty("--grid-columns-md",this.columns.toString()),this.style.setProperty("--grid-columns-sm",this.columns.toString()),this.style.setProperty("--grid-columns-xs",this.columns.toString())):(this.style.setProperty("--grid-columns-lg",(this.lg||this.columns).toString()),this.style.setProperty("--grid-columns-md",(this.md||this.columns).toString()),this.style.setProperty("--grid-columns-sm",(this.sm||this.columns).toString()),this.style.setProperty("--grid-columns-xs",(this.xs||this.columns).toString()))),t.has("gap")&&this.style.setProperty("--grid-gap",this.gap)}render(){return i`
36
+ <div class="grid">
37
+ <slot></slot>
38
+ </div>
39
+ `}};t([o({type:Number}),s("design:type",Object)],m.prototype,"columns",void 0),t([o({type:String}),s("design:type",Object)],m.prototype,"gap",void 0),t([o({type:Number}),s("design:type",Object)],m.prototype,"lg",void 0),t([o({type:Number}),s("design:type",Object)],m.prototype,"md",void 0),t([o({type:Number}),s("design:type",Object)],m.prototype,"sm",void 0),t([o({type:Number}),s("design:type",Object)],m.prototype,"xs",void 0),t([o({type:Boolean,reflect:!0}),s("design:type",Object)],m.prototype,"nowrap",void 0),m=t([p("sky-grid")],m);export{m as SkyGrid};
40
+ //# sourceMappingURL=sky-grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sky-grid.js","sources":["../../src/sky-grid/sky-grid.ts"],"sourcesContent":[null],"names":["SkyGrid","LitElement","constructor","this","columns","gap","lg","md","sm","xs","nowrap","styles","css","updated","changedProperties","has","style","setProperty","toString","render","html","__decorate","property","type","Number","prototype","String","Boolean","reflect","customElement"],"mappings":"uKAsEO,IAAMA,EAAN,cAAsBC,EAAtB,WAAAC,uBAqCuBC,KAAAC,QAAU,GACVD,KAAAE,IAAM,OACNF,KAAAG,GAAK,EACLH,KAAAI,GAAK,EACLJ,KAAAK,GAAK,EACLL,KAAAM,GAAK,EACWN,KAAAO,QAAS,CAgDvD,QA1FkBP,KAAAQ,OAASC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkC1B,CAUO,OAAAC,CAAQC,IAEbA,EAAkBC,IAAI,WACtBD,EAAkBC,IAAI,OACtBD,EAAkBC,IAAI,OACtBD,EAAkBC,IAAI,OACtBD,EAAkBC,IAAI,OACtBD,EAAkBC,IAAI,cAEtBZ,KAAKa,MAAMC,YAAY,iBAAkBd,KAAKC,QAAQc,YAClDf,KAAKO,QACPP,KAAKa,MAAMC,YAAY,oBAAqBd,KAAKC,QAAQc,YACzDf,KAAKa,MAAMC,YAAY,oBAAqBd,KAAKC,QAAQc,YACzDf,KAAKa,MAAMC,YAAY,oBAAqBd,KAAKC,QAAQc,YACzDf,KAAKa,MAAMC,YAAY,oBAAqBd,KAAKC,QAAQc,cAEzDf,KAAKa,MAAMC,YACT,qBACCd,KAAKG,IAAMH,KAAKC,SAASc,YAE5Bf,KAAKa,MAAMC,YACT,qBACCd,KAAKI,IAAMJ,KAAKC,SAASc,YAE5Bf,KAAKa,MAAMC,YACT,qBACCd,KAAKK,IAAML,KAAKC,SAASc,YAE5Bf,KAAKa,MAAMC,YACT,qBACCd,KAAKM,IAAMN,KAAKC,SAASc,cAI5BJ,EAAkBC,IAAI,QACxBZ,KAAKa,MAAMC,YAAY,aAAcd,KAAKE,IAE9C,CAES,MAAAc,GACP,OAAOC,CAAI;;;;KAKb,GArD4BC,EAAA,CAA3BC,EAAS,CAAEC,KAAMC,kCAAuBxB,EAAAyB,UAAA,kBACbJ,EAAA,CAA3BC,EAAS,CAAEC,KAAMG,kCAAuB1B,EAAAyB,UAAA,cACbJ,EAAA,CAA3BC,EAAS,CAAEC,KAAMC,kCAAiBxB,EAAAyB,UAAA,aACPJ,EAAA,CAA3BC,EAAS,CAAEC,KAAMC,kCAAiBxB,EAAAyB,UAAA,aACPJ,EAAA,CAA3BC,EAAS,CAAEC,KAAMC,kCAAiBxB,EAAAyB,UAAA,aACPJ,EAAA,CAA3BC,EAAS,CAAEC,KAAMC,kCAAiBxB,EAAAyB,UAAA,aACSJ,EAAA,CAA3CC,EAAS,CAAEC,KAAMI,QAASC,SAAS,6BAAuB5B,EAAAyB,UAAA,iBA3ChDzB,EAAOqB,EAAA,CADnBQ,EAAc,aACF7B"}
@@ -0,0 +1 @@
1
+ export * from "./sky-icon";
@@ -0,0 +1 @@
1
+ export * from './sky-icon.js';
@@ -0,0 +1,2 @@
1
+ var r="ion",l={add:{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M256 112v288m144-144H112"/>'},"arrow-forward":{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="m268 112l144 144l-144 144m124-144H100"/>'},"arrow-redo":{body:'<path fill="currentColor" d="M58.79 439.13A16 16 0 0 1 48 424c0-73.1 14.68-131.56 43.65-173.77c35-51 90.21-78.46 164.35-81.87V88a16 16 0 0 1 27.05-11.57l176 168a16 16 0 0 1 0 23.14l-176 168A16 16 0 0 1 256 424v-79.77c-45 1.36-79 8.65-106.07 22.64c-29.25 15.12-50.46 37.71-73.32 67a16 16 0 0 1-17.82 5.28Z"/>'},"arrow-resize":{body:'<path d="M288 96l49.9 49.9-63.9 63.8-128.1 128.2L96 288v128h128l-49.9-49.9 183.3-183.2 8.7-8.8L416 224V96z" fill="currentColor"/>',hidden:!0},"arrow-undo":{body:'<path fill="currentColor" d="M448 440a16 16 0 0 1-12.61-6.15c-22.86-29.27-44.07-51.86-73.32-67C335 352.88 301 345.59 256 344.23V424a16 16 0 0 1-27 11.57l-176-168a16 16 0 0 1 0-23.14l176-168A16 16 0 0 1 256 88v80.36c74.14 3.41 129.38 30.91 164.35 81.87C449.32 292.44 464 350.9 464 424a16 16 0 0 1-16 16"/>'},"arrow-up":{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="m112 244l144-144l144 144M256 120v292"/>'},bulb:{body:'<path fill="currentColor" d="M288 464h-64a16 16 0 0 0 0 32h64a16 16 0 0 0 0-32m16-48h-96a16 16 0 0 0 0 32h96a16 16 0 0 0 0-32m65.42-353.31C339.35 32.58 299.07 16 256 16A159.62 159.62 0 0 0 96 176c0 46.62 17.87 90.23 49 119.64l4.36 4.09C167.37 316.57 192 339.64 192 360v24a16 16 0 0 0 16 16h24a8 8 0 0 0 8-8V274.82a8 8 0 0 0-5.13-7.47A130.7 130.7 0 0 1 208.71 253a16 16 0 1 1 18.58-26c7.4 5.24 21.65 13 28.71 13s21.31-7.78 28.73-13a16 16 0 0 1 18.56 26a130.7 130.7 0 0 1-26.16 14.32a8 8 0 0 0-5.13 7.47V392a8 8 0 0 0 8 8h24a16 16 0 0 0 16-16v-24c0-19.88 24.36-42.93 42.15-59.77l4.91-4.66C399.08 265 416 223.61 416 176a159.16 159.16 0 0 0-46.58-113.31"/>'},"calculator-outline":{body:'<rect width="288" height="416" x="112" y="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" rx="32" ry="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M160.01 112H352v64H160.01z"/><circle cx="168" cy="248" r="24" fill="currentColor"/><circle cx="256" cy="248" r="24" fill="currentColor"/><circle cx="344" cy="248" r="24" fill="currentColor"/><circle cx="168" cy="328" r="24" fill="currentColor"/><circle cx="256" cy="328" r="24" fill="currentColor"/><circle cx="168" cy="408" r="24" fill="currentColor"/><circle cx="256" cy="408" r="24" fill="currentColor"/><rect width="48" height="128" x="320" y="304" fill="currentColor" rx="24" ry="24"/>'},calendar:{body:'<path fill="currentColor" d="M480 128a64 64 0 0 0-64-64h-16V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 0 0 368 48v16H144V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 0 0 112 48v16H96a64 64 0 0 0-64 64v12a4 4 0 0 0 4 4h440a4 4 0 0 0 4-4ZM32 416a64 64 0 0 0 64 64h320a64 64 0 0 0 64-64V179a3 3 0 0 0-3-3H35a3 3 0 0 0-3 3Zm344-208a24 24 0 1 1-24 24a24 24 0 0 1 24-24m0 80a24 24 0 1 1-24 24a24 24 0 0 1 24-24m-80-80a24 24 0 1 1-24 24a24 24 0 0 1 24-24m0 80a24 24 0 1 1-24 24a24 24 0 0 1 24-24m0 80a24 24 0 1 1-24 24a24 24 0 0 1 24-24m-80-80a24 24 0 1 1-24 24a24 24 0 0 1 24-24m0 80a24 24 0 1 1-24 24a24 24 0 0 1 24-24m-80-80a24 24 0 1 1-24 24a24 24 0 0 1 24-24m0 80a24 24 0 1 1-24 24a24 24 0 0 1 24-24"/>'},"calendar-outline":{body:'<rect width="416" height="384" x="48" y="80" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" rx="48"/><circle cx="296" cy="232" r="24" fill="currentColor"/><circle cx="376" cy="232" r="24" fill="currentColor"/><circle cx="296" cy="312" r="24" fill="currentColor"/><circle cx="376" cy="312" r="24" fill="currentColor"/><circle cx="136" cy="312" r="24" fill="currentColor"/><circle cx="216" cy="312" r="24" fill="currentColor"/><circle cx="136" cy="392" r="24" fill="currentColor"/><circle cx="216" cy="392" r="24" fill="currentColor"/><circle cx="296" cy="392" r="24" fill="currentColor"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M128 48v32m256-32v32"/><path fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" d="M464 160H48"/>'},"checkmark-circle":{body:'<path fill="currentColor" d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208s208-93.31 208-208S370.69 48 256 48m108.25 138.29l-134.4 160a16 16 0 0 1-12 5.71h-.27a16 16 0 0 1-11.89-5.3l-57.6-64a16 16 0 1 1 23.78-21.4l45.29 50.32l122.59-145.91a16 16 0 0 1 24.5 20.58"/>'},"chevron-back":{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M328 112L184 256l144 144"/>'},"chevron-down":{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="m112 184l144 144l144-144"/>'},"chevron-forward":{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="m184 112l144 144l-144 144"/>'},"chevron-left":{body:'<path d="M213.7 256L380.9 81.9c4.2-4.3 4.1-11.4-.2-15.8l-29.9-30.6c-4.3-4.4-11.3-4.5-15.5-.2L131.1 247.9c-2.2 2.2-3.2 5.2-3 8.1-.1 3 .9 5.9 3 8.1l204.2 212.7c4.2 4.3 11.2 4.2 15.5-.2l29.9-30.6c4.3-4.4 4.4-11.5.2-15.8L213.7 256z" fill="currentColor"/>',hidden:!0},"chevron-right":{body:'<path d="M298.3 256L131.1 81.9c-4.2-4.3-4.1-11.4.2-15.8l29.9-30.6c4.3-4.4 11.3-4.5 15.5-.2L380.9 248c2.2 2.2 3.2 5.2 3 8.1.1 3-.9 5.9-3 8.1L176.7 476.8c-4.2 4.3-11.2 4.2-15.5-.2L131.3 446c-4.3-4.4-4.4-11.5-.2-15.8L298.3 256z" fill="currentColor"/>',hidden:!0},"chevron-up":{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="m112 328l144-144l144 144"/>'},close:{body:'<path fill="currentColor" d="m289.94 256l95-95A24 24 0 0 0 351 127l-95 95l-95-95a24 24 0 0 0-34 34l95 95l-95 95a24 24 0 1 0 34 34l95-95l95 95a24 24 0 0 0 34-34Z"/>'},"cloud-upload":{body:'<path fill="currentColor" d="M473.66 210c-14-10.38-31.2-18-49.36-22.11a16.11 16.11 0 0 1-12.19-12.22c-7.8-34.75-24.59-64.55-49.27-87.13C334.15 62.25 296.21 47.79 256 47.79c-35.35 0-68 11.08-94.37 32.05a150.1 150.1 0 0 0-42.06 53a16 16 0 0 1-11.31 8.87c-26.75 5.4-50.9 16.87-69.34 33.12C13.46 197.33 0 227.24 0 261.39c0 34.52 14.49 66 40.79 88.76c25.12 21.69 58.94 33.64 95.21 33.64h104V230.42l-36.69 36.69a16 16 0 0 1-23.16-.56c-5.8-6.37-5.24-16.3.85-22.39l63.69-63.68a16 16 0 0 1 22.62 0L331 244.14c6.28 6.29 6.64 16.6.39 22.91a16 16 0 0 1-22.68.06L272 230.42v153.37h124c31.34 0 59.91-8.8 80.45-24.77c23.26-18.1 35.55-44 35.55-74.83c0-29.94-13.26-55.61-38.34-74.19M240 448.21a16 16 0 1 0 32 0v-64.42h-32Z"/>'},cog:{body:'<path fill="currentColor" d="M464 249.93a10.58 10.58 0 0 0-9.36-9.94L429 235.84a5.42 5.42 0 0 1-4.5-4.67c-.49-3.15-1-6.42-1.7-9.52a5.52 5.52 0 0 1 2.63-5.85l22.78-12.65a10.35 10.35 0 0 0 5-12.83l-3.95-10.9a10.32 10.32 0 0 0-12.13-6.51l-25.55 5a5.51 5.51 0 0 1-5.82-2.81c-1.49-2.79-3.11-5.63-4.8-8.42a5.6 5.6 0 0 1 .44-6.5l17-19.64a10.42 10.42 0 0 0 .39-13.76l-7.42-8.91a10.24 10.24 0 0 0-13.58-2l-22.37 13.43a5.39 5.39 0 0 1-6.39-.63c-2.47-2.17-5-4.26-7.37-6.19a5.45 5.45 0 0 1-1.72-6.21l9.26-24.4a10.35 10.35 0 0 0-4.31-13.07l-10.09-5.89a10.3 10.3 0 0 0-13.45 2.83L325 96.28a4.6 4.6 0 0 1-5.6 1.72c-.61-.25-5.77-2.36-9.78-3.7a5.42 5.42 0 0 1-3.74-5.23l.39-26.07a10.48 10.48 0 0 0-8.57-10.88l-11.45-2a10.45 10.45 0 0 0-11.75 7.17L266 82.1a5.46 5.46 0 0 1-5.36 3.65h-9.75a5.5 5.5 0 0 1-5.3-3.67l-8.46-24.67a10.46 10.46 0 0 0-11.77-7.25l-11.47 2a10.46 10.46 0 0 0-8.56 10.79l.4 26.16a5.45 5.45 0 0 1-3.86 5.25c-2.29.89-7.26 2.79-9.52 3.63c-2 .72-4.18-.07-5.94-2.1l-16.26-20A10.3 10.3 0 0 0 156.69 73l-10.06 5.83A10.36 10.36 0 0 0 142.31 92l9.25 24.34a5.54 5.54 0 0 1-1.7 6.23c-2.43 2-4.92 4-7.4 6.22a5.38 5.38 0 0 1-6.35.64L114 115.74a10.4 10.4 0 0 0-13.61 2L93 126.63a10.31 10.31 0 0 0 .37 13.75L110.45 160a5.42 5.42 0 0 1 .45 6.45c-1.71 2.72-3.34 5.58-4.82 8.44a5.53 5.53 0 0 1-5.86 2.82l-25.51-4.93a10.34 10.34 0 0 0-12.14 6.51l-4 10.88a10.38 10.38 0 0 0 5 12.85l22.78 12.65a5.39 5.39 0 0 1 2.65 5.92l-.24 1.27c-.52 2.79-1 5.43-1.46 8.24a5.48 5.48 0 0 1-4.46 4.64l-25.69 4.15A10.42 10.42 0 0 0 48 250.16v11.58A10.26 10.26 0 0 0 57.16 272l25.68 4.14a5.41 5.41 0 0 1 4.5 4.67c.49 3.16 1 6.42 1.7 9.52a5.52 5.52 0 0 1-2.63 5.85l-22.77 12.67a10.35 10.35 0 0 0-5 12.83l4 10.9a10.33 10.33 0 0 0 12.13 6.51l25.55-4.95a5.49 5.49 0 0 1 5.82 2.81c1.5 2.8 3.11 5.63 4.8 8.42a5.58 5.58 0 0 1-.44 6.5l-17 19.63a10.41 10.41 0 0 0-.5 13.77l7.41 8.91a10.23 10.23 0 0 0 13.58 2l22.37-13.43a5.39 5.39 0 0 1 6.39.63c2.48 2.17 5 4.26 7.37 6.19a5.47 5.47 0 0 1 1.73 6.21l-9.27 24.4a10.35 10.35 0 0 0 4.31 13.07l10.11 5.84a10.3 10.3 0 0 0 13.45-2.82L187 415.92c1.4-1.73 3.6-2.5 5.23-1.84c3.48 1.44 5.81 2.25 9.94 3.63a5.44 5.44 0 0 1 3.75 5.23l-.4 26.05a10.5 10.5 0 0 0 8.57 10.88l11.45 2a10.43 10.43 0 0 0 11.75-7.17l8.5-24.77a5.45 5.45 0 0 1 5.36-3.65h9.75a5.49 5.49 0 0 1 5.3 3.67l8.47 24.67a10.48 10.48 0 0 0 10 7.41a9.7 9.7 0 0 0 1.78-.16l11.47-2a10.46 10.46 0 0 0 8.56-10.79l-.4-26.16a5.43 5.43 0 0 1 3.75-5.2c3.84-1.29 6.54-2.33 8.91-3.25l.6-.23c3.1-1.07 4.6.23 5.47 1.31l16.75 20.63A10.3 10.3 0 0 0 355 439l10.07-5.83a10.35 10.35 0 0 0 4.31-13.1l-9.24-24.34a5.52 5.52 0 0 1 1.69-6.23c2.43-2 4.92-4 7.4-6.22a5.39 5.39 0 0 1 6.38-.62l22.39 13.4a10.39 10.39 0 0 0 13.61-2l7.4-8.9a10.31 10.31 0 0 0-.37-13.75l-17.06-19.67a5.42 5.42 0 0 1-.45-6.45c1.71-2.71 3.34-5.57 4.82-8.44a5.55 5.55 0 0 1 5.86-2.82l25.48 4.97a10.34 10.34 0 0 0 12.14-6.51l3.95-10.88a10.37 10.37 0 0 0-5-12.84l-22.8-12.67a5.4 5.4 0 0 1-2.61-5.89l.24-1.27c.52-2.79 1-5.43 1.46-8.24a5.48 5.48 0 0 1 4.46-4.64l25.69-4.14a10.43 10.43 0 0 0 9.18-10.28zm-282.45 94a15.8 15.8 0 0 1-25.47 2.66a135.06 135.06 0 0 1 .42-181.65a15.81 15.81 0 0 1 25.5 2.77l45.65 80.35a15.85 15.85 0 0 1 0 15.74ZM256 391.11a134.8 134.8 0 0 1-28.31-3a15.81 15.81 0 0 1-10.23-23.36l46-80a15.79 15.79 0 0 1 13.7-7.93h92.14a15.8 15.8 0 0 1 15.1 20.53c-17.49 54.32-68.4 93.76-128.4 93.76m7.51-163.9L218 147.07a15.81 15.81 0 0 1 10.31-23.3a134 134 0 0 1 27.69-2.88c60 0 110.91 39.44 128.37 93.79a15.8 15.8 0 0 1-15.1 20.53h-92a15.78 15.78 0 0 1-13.76-8"/>'},construct:{body:'<path fill="currentColor" d="M503.58 126.2a16.85 16.85 0 0 0-27.07-4.55l-51.15 51.15a11.15 11.15 0 0 1-15.66 0l-22.48-22.48a11.17 11.17 0 0 1 0-15.67l50.88-50.89a16.85 16.85 0 0 0-5.27-27.4c-39.71-17-89.08-7.45-120 23.29c-26.81 26.61-34.83 68-22 113.7a11 11 0 0 1-3.16 11.1L114.77 365.1a56.76 56.76 0 1 0 80.14 80.18L357 272.08a11 11 0 0 1 10.9-3.17c45 12 86 4 112.43-22c15.2-15 25.81-36.17 29.89-59.71c3.83-22.2 1.41-44.44-6.64-61"/><path fill="currentColor" d="M437.33 378.41c-13.94-11.59-43.72-38.4-74.07-66.22l-66.07 70.61c28.24 30 53.8 57.85 65 70.88l.07.08A30 30 0 0 0 383.72 464h1.1a30.1 30.1 0 0 0 21-8.62l.07-.07l33.43-33.37a29.46 29.46 0 0 0-2-43.53ZM118.54 214.55a20.5 20.5 0 0 0-3-10.76a2.76 2.76 0 0 1 2.62-4.22h.06c.84.09 5.33.74 11.7 4.61c4.73 2.87 18.23 12.08 41.73 35.54a34.23 34.23 0 0 0 7.22 22.12l66.23-61.55a33.73 33.73 0 0 0-21.6-9.2a3 3 0 0 1-.21-.26l-.65-.69l-24.54-33.84a28.45 28.45 0 0 1-4-26.11a35.23 35.23 0 0 1 11.78-16.35c5.69-4.41 18.53-9.72 29.44-10.62a53 53 0 0 1 15.19.94a66 66 0 0 1 7.06 2.13a15.5 15.5 0 0 0 2.15.63a16 16 0 0 0 16.38-25.06c-.26-.35-1.32-1.79-2.89-3.73a92 92 0 0 0-9.6-10.36c-8.15-7.36-29.27-19.77-57-19.77a123.1 123.1 0 0 0-46.3 9c-38.37 15.45-63.47 36.58-75.01 47.79l-.09.09A222 222 0 0 0 63.7 129.5a27 27 0 0 0-4.7 11.77a7.33 7.33 0 0 1-7.71 6.17H50.2a20.65 20.65 0 0 0-14.59 5.9L6.16 182.05l-.32.32a20.89 20.89 0 0 0-.24 28.72c.19.2.37.39.57.58L53.67 258a21 21 0 0 0 14.65 6a20.65 20.65 0 0 0 14.59-5.9l29.46-28.79a20.5 20.5 0 0 0 6.17-14.76"/>'},copy:{body:'<path fill="currentColor" d="M408 480H184a72 72 0 0 1-72-72V184a72 72 0 0 1 72-72h224a72 72 0 0 1 72 72v224a72 72 0 0 1-72 72"/><path fill="currentColor" d="M160 80h235.88A72.12 72.12 0 0 0 328 32H104a72 72 0 0 0-72 72v224a72.12 72.12 0 0 0 48 67.88V160a80 80 0 0 1 80-80"/>'},create:{body:'<path fill="currentColor" d="M459.94 53.25a16.06 16.06 0 0 0-23.22-.56L424.35 65a8 8 0 0 0 0 11.31l11.34 11.32a8 8 0 0 0 11.34 0l12.06-12c6.1-6.09 6.67-16.01.85-22.38M399.34 90L218.82 270.2a9 9 0 0 0-2.31 3.93L208.16 299a3.91 3.91 0 0 0 4.86 4.86l24.85-8.35a9 9 0 0 0 3.93-2.31L422 112.66a9 9 0 0 0 0-12.66l-9.95-10a9 9 0 0 0-12.71 0"/><path fill="currentColor" d="M386.34 193.66L264.45 315.79A41.1 41.1 0 0 1 247.58 326l-25.9 8.67a35.92 35.92 0 0 1-44.33-44.33l8.67-25.9a41.1 41.1 0 0 1 10.19-16.87l122.13-121.91a8 8 0 0 0-5.65-13.66H104a56 56 0 0 0-56 56v240a56 56 0 0 0 56 56h240a56 56 0 0 0 56-56V199.31a8 8 0 0 0-13.66-5.65"/>'},desktop:{body:'<path fill="currentColor" d="M16 352a48.05 48.05 0 0 0 48 48h133.88l-4 32H144a16 16 0 0 0 0 32h224a16 16 0 0 0 0-32h-49.88l-4-32H448a48.05 48.05 0 0 0 48-48v-48H16Zm240-16a16 16 0 1 1-16 16a16 16 0 0 1 16-16M496 96a48.05 48.05 0 0 0-48-48H64a48.05 48.05 0 0 0-48 48v192h480Z"/>'},ellipse:{body:'<path fill="currentColor" d="M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208s-93.31 208-208 208"/>'},"ellipsis-horizontal":{body:'<circle cx="256" cy="256" r="48" fill="currentColor"/><circle cx="416" cy="256" r="48" fill="currentColor"/><circle cx="96" cy="256" r="48" fill="currentColor"/>'},film:{body:'<path fill="currentColor" d="M436 80H76a44.05 44.05 0 0 0-44 44v264a44.05 44.05 0 0 0 44 44h360a44.05 44.05 0 0 0 44-44V124a44.05 44.05 0 0 0-44-44M112 388a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12Zm0-80a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12Zm0-80a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12Zm0-80a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12Zm241.68 124H158.32a16 16 0 0 1 0-32h195.36a16 16 0 1 1 0 32M448 388a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12Zm0-80a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12Zm0-80a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12Zm0-80a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12Z"/>'},filter:{body:'<path fill="currentColor" d="M472 168H40a24 24 0 0 1 0-48h432a24 24 0 0 1 0 48m-80 112H120a24 24 0 0 1 0-48h272a24 24 0 0 1 0 48m-96 112h-80a24 24 0 0 1 0-48h80a24 24 0 0 1 0 48"/>'},folder:{body:'<path fill="currentColor" d="M496 152a56 56 0 0 0-56-56H220.11a23.9 23.9 0 0 1-13.31-4L179 73.41A55.77 55.77 0 0 0 147.89 64H72a56 56 0 0 0-56 56v48a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8ZM16 392a56 56 0 0 0 56 56h368a56 56 0 0 0 56-56V216a8 8 0 0 0-8-8H24a8 8 0 0 0-8 8Z"/>'},"funnel-outline":{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="m35.4 87.12l168.65 196.44A16.07 16.07 0 0 1 208 294v119.32a7.93 7.93 0 0 0 5.39 7.59l80.15 26.67A7.94 7.94 0 0 0 304 440V294a16.07 16.07 0 0 1 4-10.44L476.6 87.12A14 14 0 0 0 466 64H46.05A14 14 0 0 0 35.4 87.12"/>'},heart:{body:'<path fill="currentColor" d="M256 448a32 32 0 0 1-18-5.57c-78.59-53.35-112.62-89.93-131.39-112.8c-40-48.75-59.15-98.8-58.61-153C48.63 114.52 98.46 64 159.08 64c44.08 0 74.61 24.83 92.39 45.51a6 6 0 0 0 9.06 0C278.31 88.81 308.84 64 352.92 64c60.62 0 110.45 50.52 111.08 112.64c.54 54.21-18.63 104.26-58.61 153c-18.77 22.87-52.8 59.45-131.39 112.8a32 32 0 0 1-18 5.56"/>'},home:{body:'<path fill="currentColor" d="M261.56 101.28a8 8 0 0 0-11.06 0L66.4 277.15a8 8 0 0 0-2.47 5.79L63.9 448a32 32 0 0 0 32 32H192a16 16 0 0 0 16-16V328a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8v136a16 16 0 0 0 16 16h96.06a32 32 0 0 0 32-32V282.94a8 8 0 0 0-2.47-5.79Z"/><path fill="currentColor" d="m490.91 244.15l-74.8-71.56V64a16 16 0 0 0-16-16h-48a16 16 0 0 0-16 16v32l-57.92-55.38C272.77 35.14 264.71 32 256 32c-8.68 0-16.72 3.14-22.14 8.63l-212.7 203.5c-6.22 6-7 15.87-1.34 22.37A16 16 0 0 0 43 267.56L250.5 69.28a8 8 0 0 1 11.06 0l207.52 198.28a16 16 0 0 0 22.59-.44c6.14-6.36 5.63-16.86-.76-22.97"/>'},image:{body:'<path fill="currentColor" d="M416 64H96a64.07 64.07 0 0 0-64 64v256a64.07 64.07 0 0 0 64 64h320a64.07 64.07 0 0 0 64-64V128a64.07 64.07 0 0 0-64-64m-80 64a48 48 0 1 1-48 48a48.05 48.05 0 0 1 48-48M96 416a32 32 0 0 1-32-32v-67.63l94.84-84.3a48.06 48.06 0 0 1 65.8 1.9l64.95 64.81L172.37 416Zm352-32a32 32 0 0 1-32 32H217.63l121.42-121.42a47.72 47.72 0 0 1 61.64-.16L448 333.84Z"/>'},"ios-arrow-up":{body:'<path d="M256 217.9L383 345c9.4 9.4 24.6 9.4 33.9 0 9.4-9.4 9.3-24.6 0-34L273 167c-9.1-9.1-23.7-9.3-33.1-.7L95 310.9c-4.7 4.7-7 10.9-7 17s2.3 12.3 7 17c9.4 9.4 24.6 9.4 33.9 0l127.1-127z" fill="currentColor"/>',hidden:!0},link:{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M200.66 352H144a96 96 0 0 1 0-192h55.41m113.18 0H368a96 96 0 0 1 0 192h-56.66m-142.27-96h175.86"/>'},list:{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M160 144h288M160 256h288M160 368h288"/><circle cx="80" cy="144" r="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><circle cx="80" cy="256" r="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><circle cx="80" cy="368" r="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/>'},"lock-closed":{body:'<path fill="currentColor" d="M368 192h-16v-80a96 96 0 1 0-192 0v80h-16a64.07 64.07 0 0 0-64 64v176a64.07 64.07 0 0 0 64 64h224a64.07 64.07 0 0 0 64-64V256a64.07 64.07 0 0 0-64-64m-48 0H192v-80a64 64 0 1 1 128 0Z"/>'},"lock-open-outline":{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M336 112a80 80 0 0 0-160 0v96"/><rect width="320" height="272" x="96" y="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" rx="48" ry="48"/>'},mail:{body:'<path fill="currentColor" d="M424 80H88a56.06 56.06 0 0 0-56 56v240a56.06 56.06 0 0 0 56 56h336a56.06 56.06 0 0 0 56-56V136a56.06 56.06 0 0 0-56-56m-14.18 92.63l-144 112a16 16 0 0 1-19.64 0l-144-112a16 16 0 1 1 19.64-25.26L256 251.73l134.18-104.36a16 16 0 0 1 19.64 25.26"/>'},"md-arrow-dropdown":{body:'<path d="M128 192l128 128 128-128z" fill="currentColor"/>',hidden:!0},"md-arrow-dropright":{body:'<path d="M192 128l128 128-128 128z" fill="currentColor"/>',hidden:!0},"md-more":{body:'<path d="M296 136c0-22.002-17.998-40-40-40s-40 17.998-40 40 17.998 40 40 40 40-17.998 40-40zm0 240c0-22.002-17.998-40-40-40s-40 17.998-40 40 17.998 40 40 40 40-17.998 40-40zm0-120c0-22.002-17.998-40-40-40s-40 17.998-40 40 17.998 40 40 40 40-17.998 40-40z" fill="currentColor"/>',hidden:!0},menu:{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="48" d="M88 152h336M88 256h336M88 360h336"/>'},minus:{body:'<path d="M64 224h384v64H64z" fill="currentColor"/>',hidden:!0},"moon-outline":{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M160 136c0-30.62 4.51-61.61 16-88C99.57 81.27 48 159.32 48 248c0 119.29 96.71 216 216 216c88.68 0 166.73-51.57 200-128c-26.39 11.49-57.38 16-88 16c-119.29 0-216-96.71-216-216"/>'},notifications:{body:'<path fill="currentColor" d="M440.08 341.31c-1.66-2-3.29-4-4.89-5.93c-22-26.61-35.31-42.67-35.31-118c0-39-9.33-71-27.72-95c-13.56-17.73-31.89-31.18-56.05-41.12a3 3 0 0 1-.82-.67C306.6 51.49 282.82 32 256 32s-50.59 19.49-59.28 48.56a3.1 3.1 0 0 1-.81.65c-56.38 23.21-83.78 67.74-83.78 136.14c0 75.36-13.29 91.42-35.31 118c-1.6 1.93-3.23 3.89-4.89 5.93a35.16 35.16 0 0 0-4.65 37.62c6.17 13 19.32 21.07 34.33 21.07H410.5c14.94 0 28-8.06 34.19-21a35.17 35.17 0 0 0-4.61-37.66M256 480a80.06 80.06 0 0 0 70.44-42.13a4 4 0 0 0-3.54-5.87H189.12a4 4 0 0 0-3.55 5.87A80.06 80.06 0 0 0 256 480"/>'},"open-outline":{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M384 224v184a40 40 0 0 1-40 40H104a40 40 0 0 1-40-40V168a40 40 0 0 1 40-40h167.48M336 64h112v112M224 288L440 72"/>'},options:{body:'<path fill="currentColor" d="M64 144h226.75a48 48 0 0 0 90.5 0H448a16 16 0 0 0 0-32h-66.75a48 48 0 0 0-90.5 0H64a16 16 0 0 0 0 32m384 224h-66.75a48 48 0 0 0-90.5 0H64a16 16 0 0 0 0 32h226.75a48 48 0 0 0 90.5 0H448a16 16 0 0 0 0-32m0-128H221.25a48 48 0 0 0-90.5 0H64a16 16 0 0 0 0 32h66.75a48 48 0 0 0 90.5 0H448a16 16 0 0 0 0-32"/>'},person:{body:'<path fill="currentColor" d="M332.64 64.58C313.18 43.57 286 32 256 32c-30.16 0-57.43 11.5-76.8 32.38c-19.58 21.11-29.12 49.8-26.88 80.78C156.76 206.28 203.27 256 256 256s99.16-49.71 103.67-110.82c2.27-30.7-7.33-59.33-27.03-80.6M432 480H80a31 31 0 0 1-24.2-11.13c-6.5-7.77-9.12-18.38-7.18-29.11C57.06 392.94 83.4 353.61 124.8 326c36.78-24.51 83.37-38 131.2-38s94.42 13.5 131.2 38c41.4 27.6 67.74 66.93 76.18 113.75c1.94 10.73-.68 21.34-7.18 29.11A31 31 0 0 1 432 480"/>'},plus:{body:'<path d="M448 224H288V64h-64v160H64v64h160v160h64V288h160z" fill="currentColor"/>',hidden:!0},refresh:{body:'<path fill="none" stroke="currentColor" stroke-linecap="butt" stroke-miterlimit="10" stroke-width="32" d="M320 146s24.36-12-64-12a160 160 0 1 0 160 160"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="m256 58l80 80l-80 80"/>'},remove:{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M400 256H112"/>'},save:{body:'<path fill="currentColor" d="m465.94 119.76l-73.7-73.7A47.68 47.68 0 0 0 358.3 32H96a64 64 0 0 0-64 64v320a64 64 0 0 0 64 64h320a64 64 0 0 0 64-64V153.7a47.68 47.68 0 0 0-14.06-33.94M120 112h176a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8H120a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8m139.75 319.91a80 80 0 1 1 76.16-76.16a80.06 80.06 0 0 1-76.16 76.16"/><circle cx="256" cy="352" r="48" fill="currentColor"/>'},search:{body:'<path fill="currentColor" d="M456.69 421.39L362.6 327.3a173.8 173.8 0 0 0 34.84-104.58C397.44 126.38 319.06 48 222.72 48S48 126.38 48 222.72s78.38 174.72 174.72 174.72A173.8 173.8 0 0 0 327.3 362.6l94.09 94.09a25 25 0 0 0 35.3-35.3M97.92 222.72a124.8 124.8 0 1 1 124.8 124.8a124.95 124.95 0 0 1-124.8-124.8"/>'},star:{body:'<path fill="currentColor" d="M394 480a16 16 0 0 1-9.39-3L256 383.76L127.39 477a16 16 0 0 1-24.55-18.08L153 310.35L23 221.2a16 16 0 0 1 9-29.2h160.38l48.4-148.95a16 16 0 0 1 30.44 0l48.4 149H480a16 16 0 0 1 9.05 29.2L359 310.35l50.13 148.53A16 16 0 0 1 394 480"/>'},"sunny-outline":{body:'<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M256 48v48m0 320v48m147.08-355.08l-33.94 33.94M142.86 369.14l-33.94 33.94M464 256h-48m-320 0H48m355.08 147.08l-33.94-33.94M142.86 142.86l-33.94-33.94"/><circle cx="256" cy="256" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32"/>'},time:{body:'<path fill="currentColor" d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208s208-93.13 208-208S370.87 48 256 48m96 240h-96a16 16 0 0 1-16-16V128a16 16 0 0 1 32 0v128h80a16 16 0 0 1 0 32"/>'},trash:{body:'<path fill="none" d="M296 64h-80a7.91 7.91 0 0 0-8 8v24h96V72a7.91 7.91 0 0 0-8-8"/><path fill="currentColor" d="M432 96h-96V72a40 40 0 0 0-40-40h-80a40 40 0 0 0-40 40v24H80a16 16 0 0 0 0 32h17l19 304.92c1.42 26.85 22 47.08 48 47.08h184c26.13 0 46.3-19.78 48-47l19-305h17a16 16 0 0 0 0-32M192.57 416H192a16 16 0 0 1-16-15.43l-8-224a16 16 0 1 1 32-1.14l8 224A16 16 0 0 1 192.57 416M272 400a16 16 0 0 1-32 0V176a16 16 0 0 1 32 0Zm32-304h-96V72a7.91 7.91 0 0 1 8-8h80a7.91 7.91 0 0 1 8 8Zm32 304.57A16 16 0 0 1 320 416h-.58A16 16 0 0 1 304 399.43l8-224a16 16 0 1 1 32 1.14Z"/>'}},o=512,a=512,e={prefix:"ion",icons:l,width:512,height:512};export{e as default,a as height,l as icons,r as prefix,o as width};
2
+ //# sourceMappingURL=ion-local.json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ion-local.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,123 @@
1
+ import { LitElement } from 'lit';
2
+ export type SkyIconSizeValue = string | number;
3
+ export type SkyIconRotateValue = string | number;
4
+ export type SkyIconFlip = '' | 'horizontal' | 'vertical' | 'horizontal,vertical';
5
+ interface IconifyCollection {
6
+ left?: number;
7
+ top?: number;
8
+ width?: number;
9
+ height?: number;
10
+ }
11
+ interface IconifySetData extends IconifyCollection {
12
+ icons?: Record<string, IconifyIcon>;
13
+ }
14
+ interface IconifyIcon {
15
+ body?: string;
16
+ left?: number;
17
+ top?: number;
18
+ width?: number;
19
+ height?: number;
20
+ viewBox?: string;
21
+ }
22
+ /**
23
+ * @element sky-icon
24
+ *
25
+ * @summary Icon renderer with Iconify fetch/caching, lazy loading, and optional slotted SVG fallback.
26
+ *
27
+ * @status stable
28
+ * @since 1.0.0
29
+ *
30
+ * @documentation https://library.sky-ui.com/components/icon
31
+ *
32
+ * @slot - Optional fallback `<svg>` content when remote icon data is unavailable.
33
+ * @property {string} icon - Icon name in `prefix:icon-name` format.
34
+ * @property {SkyIconSizeValue} width - Icon width value.
35
+ * @property {SkyIconSizeValue} height - Icon height value.
36
+ * @property {string} color - Icon color value.
37
+ * @property {boolean} inline - Applies inline alignment behavior for text contexts.
38
+ * @property {SkyIconFlip} flip - Flip transform descriptor.
39
+ * @property {boolean} hFlip - Horizontal flip shortcut.
40
+ * @property {boolean} vFlip - Vertical flip shortcut.
41
+ * @property {SkyIconRotateValue} rotate - Rotation descriptor.
42
+ * @property {boolean} lazy - Defers loading until the icon is visible.
43
+ *
44
+ * @method registerLocalSet Registers a local Iconify set for offline/custom usage.
45
+ * @method registerLocalIcon Registers a single local icon override.
46
+ *
47
+ * @csspart icon - The icon container element.
48
+ * @csspart svg - The rendered SVG element.
49
+ *
50
+ * @Behavior
51
+ * - Resolves icons from local registrations first, then Iconify API.
52
+ * - Uses bounded in-memory caching for fetched SVG payloads.
53
+ * - Supports custom slotted SVG fallback when external fetch fails or is blocked.
54
+ *
55
+ * @example
56
+ * ```html
57
+ * <sky-icon icon="ion:home" width="24" height="24" color="#3b82f6"></sky-icon>
58
+ * ```
59
+ * ```vue
60
+ * <template>
61
+ * <sky-icon icon="ion:home" width="24" height="24" color="#3b82f6"></sky-icon>
62
+ * </template>
63
+ * ```
64
+ * ```jsx
65
+ * export default function Demo() {
66
+ * return <sky-icon icon="ion:home" width="24" height="24" color="#3b82f6"></sky-icon>;
67
+ * }
68
+ * ```
69
+ */
70
+ export declare class SkyIcon extends LitElement {
71
+ /** Cache: icon name -> final SVG string (bounded by MAX_ICON_CACHE_SIZE, LRU eviction). */
72
+ private static _iconCache;
73
+ /** Cache for in-flight fetches: icon name -> Promise<svg> */
74
+ private static _iconPromiseCache;
75
+ /** Local icon sets (prefix -> Iconify set data) for offline/custom icons */
76
+ private static _localSets;
77
+ /** Single local icons (full name -> icon data) */
78
+ private static _localIcons;
79
+ /**
80
+ * Register a local icon set (Iconify-compatible JSON) for offline or custom icons.
81
+ * @param prefix - Set prefix (e.g. "ion", "custom"); use as icon="prefix:iconName".
82
+ * @param data - Set data with `icons` and optional defaults (width, height, left, top).
83
+ */
84
+ static registerLocalSet(prefix: string, data: IconifySetData): void;
85
+ /**
86
+ * Register a single local icon (one-off custom icon without a full set).
87
+ * @param fullName - Full icon name, e.g. "ion:heart".
88
+ * @param icon - Icon data (body, width, height, viewBox, etc.).
89
+ */
90
+ static registerLocalIcon(fullName: string, icon: IconifyIcon): void;
91
+ static styles: import("lit").CSSResult;
92
+ icon: string;
93
+ width: SkyIconSizeValue;
94
+ height: SkyIconSizeValue;
95
+ color: string;
96
+ inline: boolean;
97
+ flip: SkyIconFlip;
98
+ hFlip: boolean;
99
+ vFlip: boolean;
100
+ rotate: SkyIconRotateValue;
101
+ lazy: boolean;
102
+ private _svgContent;
103
+ private _hasSlottedSvg;
104
+ private _observer;
105
+ private _visible;
106
+ connectedCallback(): void;
107
+ disconnectedCallback(): void;
108
+ updated(changed: Map<string, unknown>): void;
109
+ private _onSlotChange;
110
+ private _startObserver;
111
+ private _stopObserver;
112
+ private _setSvgContent;
113
+ private _loadIcon;
114
+ private _fetchAndBuild;
115
+ private _buildSvg;
116
+ private _normalize;
117
+ private _rotationDeg;
118
+ private _flipHas;
119
+ private _transform;
120
+ private _baseStyle;
121
+ render(): import("lit-html").TemplateResult<1>;
122
+ }
123
+ export {};
@@ -0,0 +1,40 @@
1
+ import{__decorate as t,__metadata as e}from"tslib";import{LitElement as i,css as s,html as o}from"lit";import{property as n,state as r,customElement as h}from"lit/decorators.js";import{styleMap as l}from"lit/directives/style-map.js";import{resolveColor as c}from"../helper/utils/color-resolver.js";import a from"./ion-local.json.js";var d;let p=class extends i{constructor(){super(...arguments),this.icon="",this.width="",this.height="",this.color="currentColor",this.inline=!1,this.flip="",this.hFlip=!1,this.vFlip=!1,this.rotate=0,this.lazy=!1,this._svgContent=null,this._hasSlottedSvg=!1,this._observer=null,this._visible=!1}static{d=this}static{this._iconCache=new Map}static{this._iconPromiseCache=new Map}static{this._localSets=new Map}static{this._localIcons=new Map}static registerLocalSet(t,e){d._localSets.set(t,e);for(const e of d._iconCache.keys())e.startsWith(t+":")&&d._iconCache.delete(e)}static registerLocalIcon(t,e){d._localIcons.set(t,e),d._iconCache.delete(t)}static{this.styles=s`
2
+ :host {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ vertical-align: middle;
7
+ }
8
+ .icon {
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ line-height: 1;
13
+ }
14
+ .icon svg {
15
+ display: block;
16
+ width: 100%;
17
+ height: 100%;
18
+ flex-shrink: 0;
19
+ }
20
+ /* Custom SVG in slot: inherit size and color */
21
+ .icon::slotted(svg) {
22
+ display: block;
23
+ width: 100%;
24
+ height: 100%;
25
+ flex-shrink: 0;
26
+ fill: currentColor;
27
+ }
28
+ `}connectedCallback(){super.connectedCallback(),this.lazy?this._startObserver():(this._visible=!0,this.icon&&!this._hasSlottedSvg&&this._loadIcon())}disconnectedCallback(){super.disconnectedCallback(),this._stopObserver()}updated(t){t.has("lazy")&&(this.lazy?this._startObserver():(this._stopObserver(),this._visible=!0,this.icon&&!this._hasSlottedSvg&&this._loadIcon())),t.has("icon")&&(this._hasSlottedSvg?this._setSvgContent(null):!this.lazy||this._visible?this._loadIcon():this._setSvgContent(null))}_onSlotChange(t){const e=t.target.assignedNodes({flatten:!0}).some(t=>t.nodeType===Node.ELEMENT_NODE&&"SVG"===t.tagName);this._hasSlottedSvg!==e&&(this._hasSlottedSvg=e,e&&this.icon?this._setSvgContent(null):e||!this.icon||!this._visible&&this.lazy||this._loadIcon())}_startObserver(){"undefined"!=typeof window&&!this._observer&&"IntersectionObserver"in window&&(this._observer=new IntersectionObserver(t=>{t.some(t=>t.isIntersecting)&&(this._visible=!0,!this._hasSlottedSvg&&this.icon&&this._loadIcon(),this._stopObserver())}),this._observer.observe(this))}_stopObserver(){this._observer&&(this._observer.disconnect(),this._observer=null)}_setSvgContent(t){this._svgContent!==t&&("function"==typeof queueMicrotask?queueMicrotask(()=>{this._svgContent=t}):Promise.resolve().then(()=>{this._svgContent=t}))}async _loadIcon(){const t=this.icon.trim();if(!t)return void this._setSvgContent(null);const e=d._iconCache.get(t);if(e)return void this._setSvgContent(e);let i=d._iconPromiseCache.get(t);i||(i=this._fetchAndBuild(t),d._iconPromiseCache.set(t,i));try{const e=await i;if(this._setSvgContent(e),d._iconCache.size>=100){const t=d._iconCache.keys().next().value;null!=t&&d._iconCache.delete(t)}d._iconCache.set(t,e)}catch{this._setSvgContent(null)}finally{d._iconPromiseCache.delete(t)}}async _fetchAndBuild(t){const[e,i]=t.split(":");if(!e||!i)throw new Error("Invalid icon name");const s=d._localIcons.get(t);if(s)return this._buildSvg(s,{});const o=d._localSets.get(e);if(o?.icons?.[i])return this._buildSvg(o.icons[i],o);const n=`https://api.iconify.design/${e}.json?icons=${i}`,r=await fetch(n);if(!r.ok)throw new Error("Failed to fetch icon set");const h=await r.json(),l=h.icons?.[i];if(!l)throw new Error("Icon not found");return this._buildSvg(l,h)}_buildSvg(t,e){const i=t.body??"",s=t.left??e.left??0,o=t.top??e.top??0,n=t.width??e.width??24,r=t.height??e.height??24;return`\n <svg xmlns="http://www.w3.org/2000/svg"\n viewBox="${t.viewBox||`${s} ${o} ${n} ${r}`}"\n width="100%"\n height="100%"\n preserveAspectRatio="xMidYMid meet"\n fill="currentColor">\n ${i}\n </svg>\n `}_normalize(t){return"number"==typeof t||/^\d+$/.test(t)?`${t}px`:t}_rotationDeg(){const t=this.rotate;if("number"==typeof t)return 90*t;if("string"==typeof t){if(t.endsWith("deg"))return parseFloat(t);const e=parseInt(t,10);return Number.isFinite(e)?90*e:0}return 0}_flipHas(t){return this.flip.split(",").map(t=>t.trim().toLowerCase()).includes(t)}_transform(){const t=this._rotationDeg(),e=this.hFlip||this._flipHas("horizontal"),i=this.vFlip||this._flipHas("vertical"),s=[];return t&&s.push(`rotate(${t}deg)`),(e||i)&&s.push(`scale(${e?-1:1}, ${i?-1:1})`),s.join(" ")}_baseStyle(){const t={color:c(this.color)};return this.width&&(t.width=this._normalize(this.width)),this.height&&(t.height=this._normalize(this.height)),this.width||this.height||(t.width="1em",t.height="1em"),this.inline&&(t.verticalAlign="-0.125em"),t}render(){const t=this._baseStyle(),e=this._transform();e&&(t.transform=e);return!this._hasSlottedSvg&&this.icon&&this._svgContent?o`
29
+ <div
30
+ class="icon"
31
+ style=${l(t)}
32
+ part="icon"
33
+ .innerHTML=${this._svgContent}
34
+ ></div>
35
+ `:o`
36
+ <div class="icon" style=${l(t)} part="icon">
37
+ <slot @slotchange=${this._onSlotChange}></slot>
38
+ </div>
39
+ `}};t([n({type:String}),e("design:type",Object)],p.prototype,"icon",void 0),t([n({type:String}),e("design:type",Object)],p.prototype,"width",void 0),t([n({type:String}),e("design:type",Object)],p.prototype,"height",void 0),t([n({type:String}),e("design:type",Object)],p.prototype,"color",void 0),t([n({type:Boolean}),e("design:type",Object)],p.prototype,"inline",void 0),t([n({type:String}),e("design:type",String)],p.prototype,"flip",void 0),t([n({type:Boolean}),e("design:type",Object)],p.prototype,"hFlip",void 0),t([n({type:Boolean}),e("design:type",Object)],p.prototype,"vFlip",void 0),t([n({type:String}),e("design:type",Object)],p.prototype,"rotate",void 0),t([n({type:Boolean}),e("design:type",Object)],p.prototype,"lazy",void 0),t([r(),e("design:type",Object)],p.prototype,"_svgContent",void 0),t([r(),e("design:type",Object)],p.prototype,"_hasSlottedSvg",void 0),p=d=t([h("sky-icon")],p);const g=a;g?.icons&&p.registerLocalSet("ion",g);export{p as SkyIcon};
40
+ //# sourceMappingURL=sky-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sky-icon.js","sources":["../../src/sky-icon/sky-icon.ts"],"sourcesContent":[null],"names":["SkyIcon","LitElement","constructor","this","icon","width","height","color","inline","flip","hFlip","vFlip","rotate","lazy","_svgContent","_hasSlottedSvg","_observer","_visible","_iconCache","Map","_iconPromiseCache","_localSets","_localIcons","registerLocalSet","prefix","data","SkyIcon_1","set","key","keys","startsWith","delete","registerLocalIcon","fullName","styles","css","connectedCallback","super","_startObserver","_loadIcon","disconnectedCallback","_stopObserver","updated","changed","has","_setSvgContent","_onSlotChange","e","hasSvg","target","assignedNodes","flatten","some","n","nodeType","Node","ELEMENT_NODE","tagName","window","IntersectionObserver","entries","isIntersecting","observe","disconnect","svg","queueMicrotask","Promise","resolve","then","name","trim","cached","get","promise","_fetchAndBuild","size","firstKey","next","value","full","iconName","split","Error","singleLocal","_buildSvg","localSet","icons","url","res","fetch","ok","json","body","l","left","t","top","w","h","viewBox","_normalize","v","test","_rotationDeg","endsWith","parseFloat","parseInt","Number","isFinite","_flipHas","val","map","toLowerCase","includes","_transform","deg","tr","push","join","_baseStyle","style","resolveColor","verticalAlign","render","tf","transform","html","styleMap","__decorate","property","type","String","prototype","Boolean","state","customElement","defaultSet","skyLocalSetData"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./sky-image";
@@ -0,0 +1 @@
1
+ export * from './sky-image.js';
@@ -0,0 +1,102 @@
1
+ import { LitElement } from "lit";
2
+ export type SkyImageLoading = "lazy" | "eager";
3
+ export type SkyImageDecoding = "async" | "sync" | "auto";
4
+ /**
5
+ * @element sky-image
6
+ *
7
+ * @summary Responsive image component with style controls, `srcset`, and optional auto `sizes`.
8
+ *
9
+ * @status stable
10
+ * @since 1.0.0
11
+ *
12
+ * @documentation https://library.sky-ui.com/components/image
13
+ *
14
+ * @slot - No slots are exposed; image content is rendered internally.
15
+ * @property {string} src - Primary image source URL.
16
+ * @property {string} alt - Alternative text for accessibility.
17
+ * @property {string} width - CSS width for the rendered image.
18
+ * @property {string} height - CSS height for the rendered image.
19
+ * @property {string | null} aspectRatio - CSS `aspect-ratio` value.
20
+ * @property {string} borderRadius - CSS border radius.
21
+ * @property {string} boxShadow - CSS box shadow.
22
+ * @property {string} objectFit - CSS object-fit value.
23
+ * @property {string} objectPosition - CSS object-position value.
24
+ * @property {string} srcset - Responsive source set string.
25
+ * @property {string} sizes - Responsive sizes string.
26
+ * @property {boolean} autoSizes - Computes `sizes` from host width when true.
27
+ * @property {SkyImageLoading} loading - Native loading hint.
28
+ * @property {SkyImageDecoding} decoding - Native decoding hint.
29
+ *
30
+ * @csspart img - The underlying `<img>` element.
31
+ *
32
+ * @Behavior
33
+ * - Renders a fallback visual placeholder when `src` is empty
34
+ * - Supports automatic `sizes` updates using ResizeObserver
35
+ * - Forwards native image loading and decoding hints
36
+ *
37
+ * @example
38
+ * ```html
39
+ * <sky-image
40
+ * src="/images/photo-1280.jpg"
41
+ * srcset="/images/photo-640.jpg 640w, /images/photo-960.jpg 960w, /images/photo-1280.jpg 1280w"
42
+ * sizes="(max-width: 768px) 100vw, 50vw"
43
+ * alt="Responsive photo"
44
+ * width="100%"
45
+ * aspect-ratio="4/3"
46
+ * border-radius="8px"
47
+ * loading="lazy"
48
+ * ></sky-image>
49
+ * ```
50
+ * ```vue
51
+ * <template>
52
+ * <sky-image
53
+ * src="/images/photo-1280.jpg"
54
+ * srcset="/images/photo-640.jpg 640w, /images/photo-960.jpg 960w, /images/photo-1280.jpg 1280w"
55
+ * sizes="(max-width: 768px) 100vw, 50vw"
56
+ * alt="Responsive photo"
57
+ * width="100%"
58
+ * aspect-ratio="4/3"
59
+ * border-radius="8px"
60
+ * ></sky-image>
61
+ * </template>
62
+ * ```
63
+ * ```jsx
64
+ * export default function Demo() {
65
+ * return (
66
+ * <sky-image
67
+ * src="/images/photo-1280.jpg"
68
+ * srcset="/images/photo-640.jpg 640w, /images/photo-960.jpg 960w, /images/photo-1280.jpg 1280w"
69
+ * sizes="(max-width: 768px) 100vw, 50vw"
70
+ * alt="Responsive photo"
71
+ * width="100%"
72
+ * aspect-ratio="4/3"
73
+ * border-radius="8px"
74
+ * ></sky-image>
75
+ * );
76
+ * }
77
+ * ```
78
+ */
79
+ export declare class SkyImage extends LitElement {
80
+ src: string;
81
+ alt: string;
82
+ width: string;
83
+ height: string;
84
+ aspectRatio: string | null;
85
+ borderRadius: string;
86
+ boxShadow: string;
87
+ objectFit: string;
88
+ objectPosition: string;
89
+ srcset: string;
90
+ sizes: string;
91
+ autoSizes: boolean;
92
+ private _computedSizes;
93
+ loading: SkyImageLoading;
94
+ decoding: SkyImageDecoding;
95
+ static styles: import("lit").CSSResult;
96
+ private _ro?;
97
+ private _sizesRafId;
98
+ private _updateSizes;
99
+ firstUpdated(): void;
100
+ disconnectedCallback(): void;
101
+ render(): import("lit-html").TemplateResult<1>;
102
+ }