@luzmo/lucero 1.0.1-alpha.83 → 1.0.1-alpha.84

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 (538) hide show
  1. package/README.dist.md +94 -0
  2. package/README.md +480 -69
  3. package/dist/LICENSE +16 -0
  4. package/dist/README.md +94 -0
  5. package/dist/components/chat-message/index.cjs +18 -0
  6. package/{components → dist/components}/chat-message/index.js +1 -1
  7. package/{components/chat-message-D0w4eA3E.cjs → dist/components/chat-message-CNE-mGuP.cjs} +1 -1
  8. package/{components/chat-message-CoT3CcJv.js → dist/components/chat-message-DJgocVNj.js} +1 -1
  9. package/dist/components/index.cjs +18 -0
  10. package/{components → dist/components}/index.js +10 -9
  11. package/dist/components/skeleton-loader/index.cjs +18 -0
  12. package/dist/components/skeleton-loader/index.d.ts +7 -0
  13. package/dist/components/skeleton-loader/index.js +25 -0
  14. package/dist/components/skeleton-loader/skeleton-loader.d.ts +22 -0
  15. package/dist/components/skeleton-loader-B8NgELvX.cjs +18 -0
  16. package/dist/components/skeleton-loader-C1XG3m_u.js +46 -0
  17. package/dist/components/slider/index.cjs +18 -0
  18. package/{components → dist/components}/slider/index.js +1 -1
  19. package/dist/components/status-light/index.cjs +18 -0
  20. package/{components → dist/components}/status-light/index.js +1 -1
  21. package/dist/components/suggestion/index.cjs +18 -0
  22. package/{components → dist/components}/suggestion/index.js +1 -1
  23. package/dist/components/switch/index.cjs +18 -0
  24. package/{components → dist/components}/switch/index.js +1 -1
  25. package/{components → dist/components}/tabs/index.cjs +1 -1
  26. package/{components → dist/components}/tabs/index.js +1 -1
  27. package/{components/tabs-BXqhaKKj.cjs → dist/components/tabs-BfTgzdid.cjs} +1 -1
  28. package/{components/tabs-0fYsddQN.js → dist/components/tabs-BthdwrmW.js} +1 -1
  29. package/{components → dist/components}/toast/index.cjs +1 -1
  30. package/{components → dist/components}/toast/index.js +1 -1
  31. package/dist/components/top-nav/index.cjs +18 -0
  32. package/{components → dist/components}/top-nav/index.js +1 -1
  33. package/{components/top-nav-CMVB3G_v.js → dist/components/top-nav-DVQ5ASMa.js} +1 -1
  34. package/{components/top-nav-bekRXHUk.cjs → dist/components/top-nav-DlTojz8S.cjs} +1 -1
  35. package/{custom-elements.json → dist/custom-elements.json} +1 -1
  36. package/{index.d.ts → dist/index.d.ts} +1 -0
  37. package/dist/package.json +399 -0
  38. package/package.json +141 -373
  39. package/components/chat-message/index.cjs +0 -18
  40. package/components/index.cjs +0 -18
  41. package/components/slider/index.cjs +0 -18
  42. package/components/status-light/index.cjs +0 -18
  43. package/components/suggestion/index.cjs +0 -18
  44. package/components/switch/index.cjs +0 -18
  45. package/components/top-nav/index.cjs +0 -18
  46. /package/{components → dist/components}/accordion/accordion-item.d.ts +0 -0
  47. /package/{components → dist/components}/accordion/accordion.d.ts +0 -0
  48. /package/{components → dist/components}/accordion/index.cjs +0 -0
  49. /package/{components → dist/components}/accordion/index.d.ts +0 -0
  50. /package/{components → dist/components}/accordion/index.js +0 -0
  51. /package/{components → dist/components}/accordion-BHBIfsLU.cjs +0 -0
  52. /package/{components → dist/components}/accordion-DC7cjb1c.js +0 -0
  53. /package/{components → dist/components}/action-bar/action-bar.d.ts +0 -0
  54. /package/{components → dist/components}/action-bar/index.cjs +0 -0
  55. /package/{components → dist/components}/action-bar/index.d.ts +0 -0
  56. /package/{components → dist/components}/action-bar/index.js +0 -0
  57. /package/{components → dist/components}/action-bar-BMHZ4e_p.cjs +0 -0
  58. /package/{components → dist/components}/action-bar-CmLjsljR.js +0 -0
  59. /package/{components → dist/components}/action-button/action-button.d.ts +0 -0
  60. /package/{components → dist/components}/action-button/index.cjs +0 -0
  61. /package/{components → dist/components}/action-button/index.d.ts +0 -0
  62. /package/{components → dist/components}/action-button/index.js +0 -0
  63. /package/{components → dist/components}/action-button-B4_UEJle.js +0 -0
  64. /package/{components → dist/components}/action-button-G0PWSrZo.cjs +0 -0
  65. /package/{components → dist/components}/action-group/action-group.d.ts +0 -0
  66. /package/{components → dist/components}/action-group/index.cjs +0 -0
  67. /package/{components → dist/components}/action-group/index.d.ts +0 -0
  68. /package/{components → dist/components}/action-group/index.js +0 -0
  69. /package/{components → dist/components}/action-group-CH8FTW0i.cjs +0 -0
  70. /package/{components → dist/components}/action-group-DYKpp-mz.js +0 -0
  71. /package/{components → dist/components}/action-menu/action-menu.d.ts +0 -0
  72. /package/{components → dist/components}/action-menu/index.cjs +0 -0
  73. /package/{components → dist/components}/action-menu/index.d.ts +0 -0
  74. /package/{components → dist/components}/action-menu/index.js +0 -0
  75. /package/{components → dist/components}/action-menu-CJyB0mmO.cjs +0 -0
  76. /package/{components → dist/components}/action-menu-FiS1vhW7.js +0 -0
  77. /package/{components → dist/components}/avatar/avatar.d.ts +0 -0
  78. /package/{components → dist/components}/avatar/index.cjs +0 -0
  79. /package/{components → dist/components}/avatar/index.d.ts +0 -0
  80. /package/{components → dist/components}/avatar/index.js +0 -0
  81. /package/{components → dist/components}/avatar-CyY_ZSD0.js +0 -0
  82. /package/{components → dist/components}/avatar-PulwjkMI.cjs +0 -0
  83. /package/{components → dist/components}/badge/badge.d.ts +0 -0
  84. /package/{components → dist/components}/badge/index.cjs +0 -0
  85. /package/{components → dist/components}/badge/index.d.ts +0 -0
  86. /package/{components → dist/components}/badge/index.js +0 -0
  87. /package/{components → dist/components}/badge-D1Ry32wi.cjs +0 -0
  88. /package/{components → dist/components}/badge-D6p2hPj8.js +0 -0
  89. /package/{components → dist/components}/button/button-base.d.ts +0 -0
  90. /package/{components → dist/components}/button/button.d.ts +0 -0
  91. /package/{components → dist/components}/button/clear-button.d.ts +0 -0
  92. /package/{components → dist/components}/button/close-button.d.ts +0 -0
  93. /package/{components → dist/components}/button/index.cjs +0 -0
  94. /package/{components → dist/components}/button/index.d.ts +0 -0
  95. /package/{components → dist/components}/button/index.js +0 -0
  96. /package/{components → dist/components}/button-CRNRP8P0.js +0 -0
  97. /package/{components → dist/components}/button-D3ZTogni.cjs +0 -0
  98. /package/{components → dist/components}/button-base-BYV3Lp3P.cjs +0 -0
  99. /package/{components → dist/components}/button-base-SHgEJgk2.js +0 -0
  100. /package/{components → dist/components}/button-group/button-group.d.ts +0 -0
  101. /package/{components → dist/components}/button-group/index.cjs +0 -0
  102. /package/{components → dist/components}/button-group/index.d.ts +0 -0
  103. /package/{components → dist/components}/button-group/index.js +0 -0
  104. /package/{components → dist/components}/button-group-CJVpgiLq.js +0 -0
  105. /package/{components → dist/components}/button-group-rEK_YaF3.cjs +0 -0
  106. /package/{components → dist/components}/calendar/calendar.d.ts +0 -0
  107. /package/{components → dist/components}/calendar/index.cjs +0 -0
  108. /package/{components → dist/components}/calendar/index.d.ts +0 -0
  109. /package/{components → dist/components}/calendar/index.js +0 -0
  110. /package/{components → dist/components}/calendar-CKr5T_zV.js +0 -0
  111. /package/{components → dist/components}/calendar-WRhzTEyZ.cjs +0 -0
  112. /package/{components → dist/components}/chat-message/chat-message.d.ts +0 -0
  113. /package/{components → dist/components}/chat-message/index.d.ts +0 -0
  114. /package/{components → dist/components}/chat-message-group/chat-message-group.d.ts +0 -0
  115. /package/{components → dist/components}/chat-message-group/index.cjs +0 -0
  116. /package/{components → dist/components}/chat-message-group/index.d.ts +0 -0
  117. /package/{components → dist/components}/chat-message-group/index.js +0 -0
  118. /package/{components → dist/components}/chat-message-group-B4U2MzHx.js +0 -0
  119. /package/{components → dist/components}/chat-message-group-COmhCN-R.cjs +0 -0
  120. /package/{components → dist/components}/checkbox/checkbox-base.d.ts +0 -0
  121. /package/{components → dist/components}/checkbox/checkbox-mixin.d.ts +0 -0
  122. /package/{components → dist/components}/checkbox/checkbox.d.ts +0 -0
  123. /package/{components → dist/components}/checkbox/index.cjs +0 -0
  124. /package/{components → dist/components}/checkbox/index.d.ts +0 -0
  125. /package/{components → dist/components}/checkbox/index.js +0 -0
  126. /package/{components → dist/components}/checkbox-CPS-tR_i.js +0 -0
  127. /package/{components → dist/components}/checkbox-DFwDrIdY.cjs +0 -0
  128. /package/{components → dist/components}/checkbox-mixin-C5sLMo5L.js +0 -0
  129. /package/{components → dist/components}/checkbox-mixin-D4HeLrMj.cjs +0 -0
  130. /package/{components → dist/components}/chunk-D-qHiVGv.cjs +0 -0
  131. /package/{components → dist/components}/close-button-BeXYep8K.js +0 -0
  132. /package/{components → dist/components}/close-button-BzapEpcF.cjs +0 -0
  133. /package/{components → dist/components}/color-area/color-area.d.ts +0 -0
  134. /package/{components → dist/components}/color-area/index.cjs +0 -0
  135. /package/{components → dist/components}/color-area/index.d.ts +0 -0
  136. /package/{components → dist/components}/color-area/index.js +0 -0
  137. /package/{components → dist/components}/color-area-DA3ps2-c.cjs +0 -0
  138. /package/{components → dist/components}/color-area-DViRjuKo.js +0 -0
  139. /package/{components → dist/components}/color-controller-DueaXfnX.cjs +0 -0
  140. /package/{components → dist/components}/color-controller-G2_v2xSl.js +0 -0
  141. /package/{components → dist/components}/color-field/color-field.d.ts +0 -0
  142. /package/{components → dist/components}/color-field/index.cjs +0 -0
  143. /package/{components → dist/components}/color-field/index.d.ts +0 -0
  144. /package/{components → dist/components}/color-field/index.js +0 -0
  145. /package/{components → dist/components}/color-field-CxdIoSq6.js +0 -0
  146. /package/{components → dist/components}/color-field-D7_7z2A2.cjs +0 -0
  147. /package/{components → dist/components}/color-handle/color-handle.d.ts +0 -0
  148. /package/{components → dist/components}/color-handle/index.cjs +0 -0
  149. /package/{components → dist/components}/color-handle/index.d.ts +0 -0
  150. /package/{components → dist/components}/color-handle/index.js +0 -0
  151. /package/{components → dist/components}/color-handle-BOusOFFx.js +0 -0
  152. /package/{components → dist/components}/color-handle-Cka48yPY.cjs +0 -0
  153. /package/{components → dist/components}/color-loupe/color-loupe.d.ts +0 -0
  154. /package/{components → dist/components}/color-loupe/index.cjs +0 -0
  155. /package/{components → dist/components}/color-loupe/index.d.ts +0 -0
  156. /package/{components → dist/components}/color-loupe/index.js +0 -0
  157. /package/{components → dist/components}/color-loupe-DMk8uWZW.cjs +0 -0
  158. /package/{components → dist/components}/color-loupe-bEzi2P0y.js +0 -0
  159. /package/{components → dist/components}/color-menu/color-menu.d.ts +0 -0
  160. /package/{components → dist/components}/color-menu/index.cjs +0 -0
  161. /package/{components → dist/components}/color-menu/index.d.ts +0 -0
  162. /package/{components → dist/components}/color-menu/index.js +0 -0
  163. /package/{components → dist/components}/color-menu-DwbTxeqv.cjs +0 -0
  164. /package/{components → dist/components}/color-menu-Lxc9PTzl.js +0 -0
  165. /package/{components → dist/components}/color-palette/color-palette.d.ts +0 -0
  166. /package/{components → dist/components}/color-palette/index.cjs +0 -0
  167. /package/{components → dist/components}/color-palette/index.d.ts +0 -0
  168. /package/{components → dist/components}/color-palette/index.js +0 -0
  169. /package/{components → dist/components}/color-palette-349EkPMg.cjs +0 -0
  170. /package/{components → dist/components}/color-palette-BAdaNySC.js +0 -0
  171. /package/{components → dist/components}/color-palette-group/color-palette-group.d.ts +0 -0
  172. /package/{components → dist/components}/color-palette-group/index.cjs +0 -0
  173. /package/{components → dist/components}/color-palette-group/index.d.ts +0 -0
  174. /package/{components → dist/components}/color-palette-group/index.js +0 -0
  175. /package/{components → dist/components}/color-palette-group-BvP09zmT.cjs +0 -0
  176. /package/{components → dist/components}/color-palette-group-D8Mavsd2.js +0 -0
  177. /package/{components → dist/components}/color-picker/color-picker.d.ts +0 -0
  178. /package/{components → dist/components}/color-picker/index.cjs +0 -0
  179. /package/{components → dist/components}/color-picker/index.d.ts +0 -0
  180. /package/{components → dist/components}/color-picker/index.js +0 -0
  181. /package/{components → dist/components}/color-picker-CSWiU-X5.cjs +0 -0
  182. /package/{components → dist/components}/color-picker-DqjfTvYf.js +0 -0
  183. /package/{components → dist/components}/color-slider/color-slider.d.ts +0 -0
  184. /package/{components → dist/components}/color-slider/index.cjs +0 -0
  185. /package/{components → dist/components}/color-slider/index.d.ts +0 -0
  186. /package/{components → dist/components}/color-slider/index.js +0 -0
  187. /package/{components → dist/components}/color-slider-DxjJ72ue.cjs +0 -0
  188. /package/{components → dist/components}/color-slider-ihAIFt5p.js +0 -0
  189. /package/{components → dist/components}/condition-attribute-with-id-DauPaLSS.cjs +0 -0
  190. /package/{components → dist/components}/condition-attribute-with-id-Duo51HZ7.js +0 -0
  191. /package/{components → dist/components}/date-range-picker/date-range-picker.d.ts +0 -0
  192. /package/{components → dist/components}/date-range-picker/index.cjs +0 -0
  193. /package/{components → dist/components}/date-range-picker/index.d.ts +0 -0
  194. /package/{components → dist/components}/date-range-picker/index.js +0 -0
  195. /package/{components → dist/components}/date-range-picker/types.d.ts +0 -0
  196. /package/{components → dist/components}/date-range-picker-BdRQep--.js +0 -0
  197. /package/{components → dist/components}/date-range-picker-CgitOe0i.cjs +0 -0
  198. /package/{components → dist/components}/date-time-picker/date-time-picker.d.ts +0 -0
  199. /package/{components → dist/components}/date-time-picker/index.cjs +0 -0
  200. /package/{components → dist/components}/date-time-picker/index.d.ts +0 -0
  201. /package/{components → dist/components}/date-time-picker/index.js +0 -0
  202. /package/{components → dist/components}/date-time-picker/shared/helpers.d.ts +0 -0
  203. /package/{components → dist/components}/date-time-picker/shared/segments/date/day-segment.d.ts +0 -0
  204. /package/{components → dist/components}/date-time-picker/shared/segments/date/month-segment.d.ts +0 -0
  205. /package/{components → dist/components}/date-time-picker/shared/segments/date/year-segment.d.ts +0 -0
  206. /package/{components → dist/components}/date-time-picker/shared/segments/date-time-segments.d.ts +0 -0
  207. /package/{components → dist/components}/date-time-picker/shared/segments/editable-segment.d.ts +0 -0
  208. /package/{components → dist/components}/date-time-picker/shared/segments/literal-segment.d.ts +0 -0
  209. /package/{components → dist/components}/date-time-picker/shared/segments/modifiers/clear-modifier.d.ts +0 -0
  210. /package/{components → dist/components}/date-time-picker/shared/segments/modifiers/decrement-modifier.d.ts +0 -0
  211. /package/{components → dist/components}/date-time-picker/shared/segments/modifiers/increment-modifier.d.ts +0 -0
  212. /package/{components → dist/components}/date-time-picker/shared/segments/modifiers/input-modifier.d.ts +0 -0
  213. /package/{components → dist/components}/date-time-picker/shared/segments/modifiers/segments-modifier.d.ts +0 -0
  214. /package/{components → dist/components}/date-time-picker/shared/segments/segments-factory.d.ts +0 -0
  215. /package/{components → dist/components}/date-time-picker/shared/segments/segments-formatter.d.ts +0 -0
  216. /package/{components → dist/components}/date-time-picker/shared/segments/time/day-period-segment.d.ts +0 -0
  217. /package/{components → dist/components}/date-time-picker/shared/segments/time/hour-segment.d.ts +0 -0
  218. /package/{components → dist/components}/date-time-picker/shared/segments/time/millisecond-segment.d.ts +0 -0
  219. /package/{components → dist/components}/date-time-picker/shared/segments/time/minute-segment.d.ts +0 -0
  220. /package/{components → dist/components}/date-time-picker/shared/segments/time/second-segment.d.ts +0 -0
  221. /package/{components → dist/components}/date-time-picker/shared/types.d.ts +0 -0
  222. /package/{components → dist/components}/date-time-picker-Bz8XwSOR.cjs +0 -0
  223. /package/{components → dist/components}/date-time-picker-Ct_ln8Ot.js +0 -0
  224. /package/{components → dist/components}/decorate-B2wePfNm.cjs +0 -0
  225. /package/{components → dist/components}/decorate-aGxJUVxg.js +0 -0
  226. /package/{components → dist/components}/dependency-manger-CHy9t__e.cjs +0 -0
  227. /package/{components → dist/components}/dependency-manger-DMrulWcJ.js +0 -0
  228. /package/{components → dist/components}/divider/divider.d.ts +0 -0
  229. /package/{components → dist/components}/divider/index.cjs +0 -0
  230. /package/{components → dist/components}/divider/index.d.ts +0 -0
  231. /package/{components → dist/components}/divider/index.js +0 -0
  232. /package/{components → dist/components}/divider-Dn8XqbB6.cjs +0 -0
  233. /package/{components → dist/components}/divider-cU0lVwOp.js +0 -0
  234. /package/{components → dist/components}/divider.module-C65RfSUa.js +0 -0
  235. /package/{components → dist/components}/divider.module-CL60P_z8.cjs +0 -0
  236. /package/{components → dist/components}/element-resolution-Bs1x89vU.js +0 -0
  237. /package/{components → dist/components}/element-resolution-C0aiOB0Y.cjs +0 -0
  238. /package/{components → dist/components}/field-group/field-group.d.ts +0 -0
  239. /package/{components → dist/components}/field-group/index.cjs +0 -0
  240. /package/{components → dist/components}/field-group/index.d.ts +0 -0
  241. /package/{components → dist/components}/field-group/index.js +0 -0
  242. /package/{components → dist/components}/field-group-C7ROsWq3.js +0 -0
  243. /package/{components → dist/components}/field-group-OcI5Lgu7.cjs +0 -0
  244. /package/{components → dist/components}/field-label/field-label.d.ts +0 -0
  245. /package/{components → dist/components}/field-label/index.cjs +0 -0
  246. /package/{components → dist/components}/field-label/index.d.ts +0 -0
  247. /package/{components → dist/components}/field-label/index.js +0 -0
  248. /package/{components → dist/components}/field-label-BCl6R1uO.cjs +0 -0
  249. /package/{components → dist/components}/field-label-CtGCEmdp.js +0 -0
  250. /package/{components → dist/components}/focus-group-BshI1RpM.js +0 -0
  251. /package/{components → dist/components}/focus-group-SF8Kj7iB.cjs +0 -0
  252. /package/{components → dist/components}/focus-visible-B0NNezGc.cjs +0 -0
  253. /package/{components → dist/components}/focus-visible-CrooVCUu.js +0 -0
  254. /package/{components → dist/components}/focusable-BmS8IzhH.js +0 -0
  255. /package/{components → dist/components}/focusable-CupEoHmn.cjs +0 -0
  256. /package/{components → dist/components}/focusable-selectors-5n5liBn0.cjs +0 -0
  257. /package/{components → dist/components}/focusable-selectors-Bg60_Kra.js +0 -0
  258. /package/{components → dist/components}/get-label-from-slot-5vVnfSgN.js +0 -0
  259. /package/{components → dist/components}/get-label-from-slot-LO_DZP60.cjs +0 -0
  260. /package/{components → dist/components}/icon/icon-base.d.ts +0 -0
  261. /package/{components → dist/components}/icon/icon.d.ts +0 -0
  262. /package/{components → dist/components}/icon/index.cjs +0 -0
  263. /package/{components → dist/components}/icon/index.d.ts +0 -0
  264. /package/{components → dist/components}/icon/index.js +0 -0
  265. /package/{components → dist/components}/icon-B7hKwn_q.cjs +0 -0
  266. /package/{components → dist/components}/icon-CwBAE1eU.js +0 -0
  267. /package/{components → dist/components}/infield-button/index.cjs +0 -0
  268. /package/{components → dist/components}/infield-button/index.d.ts +0 -0
  269. /package/{components → dist/components}/infield-button/index.js +0 -0
  270. /package/{components → dist/components}/infield-button/infield-button.d.ts +0 -0
  271. /package/{components → dist/components}/infield-button-B2z0dLzq.js +0 -0
  272. /package/{components → dist/components}/infield-button-BVKotWqr.cjs +0 -0
  273. /package/{components → dist/components}/label/index.cjs +0 -0
  274. /package/{components → dist/components}/label/index.d.ts +0 -0
  275. /package/{components → dist/components}/label/index.js +0 -0
  276. /package/{components → dist/components}/label/label.d.ts +0 -0
  277. /package/{components → dist/components}/label-ClJE2esm.js +0 -0
  278. /package/{components → dist/components}/label-CqolZbJo.cjs +0 -0
  279. /package/{components → dist/components}/language-resolution-BYemISJC.cjs +0 -0
  280. /package/{components → dist/components}/language-resolution-BpfGTC29.js +0 -0
  281. /package/{components → dist/components}/like-anchor-BZJXts_H.cjs +0 -0
  282. /package/{components → dist/components}/like-anchor-DeOXX-MX.js +0 -0
  283. /package/{components → dist/components}/manage-help-text-CF0xBh0F.js +0 -0
  284. /package/{components → dist/components}/manage-help-text-D9VbYRf_.cjs +0 -0
  285. /package/{components → dist/components}/menu/index.cjs +0 -0
  286. /package/{components → dist/components}/menu/index.d.ts +0 -0
  287. /package/{components → dist/components}/menu/index.js +0 -0
  288. /package/{components → dist/components}/menu/menu-divider.d.ts +0 -0
  289. /package/{components → dist/components}/menu/menu-group.d.ts +0 -0
  290. /package/{components → dist/components}/menu/menu-item.d.ts +0 -0
  291. /package/{components → dist/components}/menu/menu.d.ts +0 -0
  292. /package/{components → dist/components}/menu--ukVtSq7.js +0 -0
  293. /package/{components → dist/components}/menu-DAA51y45.cjs +0 -0
  294. /package/{components → dist/components}/multi-language-field/index.cjs +0 -0
  295. /package/{components → dist/components}/multi-language-field/index.d.ts +0 -0
  296. /package/{components → dist/components}/multi-language-field/index.js +0 -0
  297. /package/{components → dist/components}/multi-language-field/multi-language-field.d.ts +0 -0
  298. /package/{components → dist/components}/multi-language-field-BzY75rOY.js +0 -0
  299. /package/{components → dist/components}/multi-language-field-DmoMyCBH.cjs +0 -0
  300. /package/{components → dist/components}/number-field/index.cjs +0 -0
  301. /package/{components → dist/components}/number-field/index.d.ts +0 -0
  302. /package/{components → dist/components}/number-field/index.js +0 -0
  303. /package/{components → dist/components}/number-field/number-field.d.ts +0 -0
  304. /package/{components → dist/components}/number-field-B4RSFeTR.cjs +0 -0
  305. /package/{components → dist/components}/number-field-C66dTUMM.js +0 -0
  306. /package/{components → dist/components}/observe-slot-presence-BCqd3VSd.js +0 -0
  307. /package/{components → dist/components}/observe-slot-presence-Dx8hzNzK.cjs +0 -0
  308. /package/{components → dist/components}/observe-slot-text-BhTcGuHY.cjs +0 -0
  309. /package/{components → dist/components}/observe-slot-text-Ddf1OC6F.js +0 -0
  310. /package/{components → dist/components}/options/index.cjs +0 -0
  311. /package/{components → dist/components}/options/index.d.ts +0 -0
  312. /package/{components → dist/components}/options/index.js +0 -0
  313. /package/{components → dist/components}/options/option.d.ts +0 -0
  314. /package/{components → dist/components}/options/options-divider.d.ts +0 -0
  315. /package/{components → dist/components}/options/options.d.ts +0 -0
  316. /package/{components → dist/components}/options-BPNAm4MW.cjs +0 -0
  317. /package/{components → dist/components}/options-Dz-ejkxF.js +0 -0
  318. /package/{components → dist/components}/overlay/abstract-overlay.d.ts +0 -0
  319. /package/{components → dist/components}/overlay/click-controller.d.ts +0 -0
  320. /package/{components → dist/components}/overlay/events.d.ts +0 -0
  321. /package/{components → dist/components}/overlay/full-size-plugin.d.ts +0 -0
  322. /package/{components → dist/components}/overlay/hover-controller.d.ts +0 -0
  323. /package/{components → dist/components}/overlay/index.cjs +0 -0
  324. /package/{components → dist/components}/overlay/index.d.ts +0 -0
  325. /package/{components → dist/components}/overlay/index.js +0 -0
  326. /package/{components → dist/components}/overlay/interaction-controller.d.ts +0 -0
  327. /package/{components → dist/components}/overlay/loader.d.ts +0 -0
  328. /package/{components → dist/components}/overlay/longpress-controller.d.ts +0 -0
  329. /package/{components → dist/components}/overlay/overlay-dialog.d.ts +0 -0
  330. /package/{components → dist/components}/overlay/overlay-events.d.ts +0 -0
  331. /package/{components → dist/components}/overlay/overlay-no-popover.d.ts +0 -0
  332. /package/{components → dist/components}/overlay/overlay-popover.d.ts +0 -0
  333. /package/{components → dist/components}/overlay/overlay-stack.d.ts +0 -0
  334. /package/{components → dist/components}/overlay/overlay-timer.d.ts +0 -0
  335. /package/{components → dist/components}/overlay/overlay-trigger-directive.d.ts +0 -0
  336. /package/{components → dist/components}/overlay/overlay-trigger.d.ts +0 -0
  337. /package/{components → dist/components}/overlay/overlay-types.d.ts +0 -0
  338. /package/{components → dist/components}/overlay/overlay.d.ts +0 -0
  339. /package/{components → dist/components}/overlay/placement-controller.d.ts +0 -0
  340. /package/{components → dist/components}/overlay/slottable-request-directive.d.ts +0 -0
  341. /package/{components → dist/components}/overlay/slottable-request-event.d.ts +0 -0
  342. /package/{components → dist/components}/overlay/strategies.d.ts +0 -0
  343. /package/{components → dist/components}/overlay/virtual-trigger.d.ts +0 -0
  344. /package/{components → dist/components}/overlay-8tN0KPbR.js +0 -0
  345. /package/{components → dist/components}/overlay-CMd2Dnpv.cjs +0 -0
  346. /package/{components → dist/components}/overlay-CwR_36OV.js +0 -0
  347. /package/{components → dist/components}/overlay-DdrfkOry.cjs +0 -0
  348. /package/{components → dist/components}/pending-state-DFcNf5rd.js +0 -0
  349. /package/{components → dist/components}/pending-state-DIeF18qg.cjs +0 -0
  350. /package/{components → dist/components}/picker/index.cjs +0 -0
  351. /package/{components → dist/components}/picker/index.d.ts +0 -0
  352. /package/{components → dist/components}/picker/index.js +0 -0
  353. /package/{components → dist/components}/picker/picker.d.ts +0 -0
  354. /package/{components → dist/components}/picker-C4RVOxLq.cjs +0 -0
  355. /package/{components → dist/components}/picker-agQW7YNo.js +0 -0
  356. /package/{components → dist/components}/picker-button/index.cjs +0 -0
  357. /package/{components → dist/components}/picker-button/index.d.ts +0 -0
  358. /package/{components → dist/components}/picker-button/index.js +0 -0
  359. /package/{components → dist/components}/picker-button/picker-button.d.ts +0 -0
  360. /package/{components → dist/components}/picker-button-BLbeT3Yu.js +0 -0
  361. /package/{components → dist/components}/picker-button-D34YXyXp.cjs +0 -0
  362. /package/{components → dist/components}/platform-B7Sk7Qon.cjs +0 -0
  363. /package/{components → dist/components}/platform-D4V_cOJF.js +0 -0
  364. /package/{components → dist/components}/popover/index.cjs +0 -0
  365. /package/{components → dist/components}/popover/index.d.ts +0 -0
  366. /package/{components → dist/components}/popover/index.js +0 -0
  367. /package/{components → dist/components}/popover/popover.d.ts +0 -0
  368. /package/{components → dist/components}/popover-DyC9xGhX.js +0 -0
  369. /package/{components → dist/components}/popover-dgL04x6P.cjs +0 -0
  370. /package/{components → dist/components}/progress-bar/index.cjs +0 -0
  371. /package/{components → dist/components}/progress-bar/index.d.ts +0 -0
  372. /package/{components → dist/components}/progress-bar/index.js +0 -0
  373. /package/{components → dist/components}/progress-bar/progress-bar.d.ts +0 -0
  374. /package/{components → dist/components}/progress-bar-BR28tISC.cjs +0 -0
  375. /package/{components → dist/components}/progress-bar-DHgFRml1.js +0 -0
  376. /package/{components → dist/components}/progress-circle/index.cjs +0 -0
  377. /package/{components → dist/components}/progress-circle/index.d.ts +0 -0
  378. /package/{components → dist/components}/progress-circle/index.js +0 -0
  379. /package/{components → dist/components}/progress-circle/progress-circle.d.ts +0 -0
  380. /package/{components → dist/components}/progress-circle-Cg_ua9Ff.js +0 -0
  381. /package/{components → dist/components}/progress-circle-DuzwUiGN.cjs +0 -0
  382. /package/{components → dist/components}/progress-steps/index.cjs +0 -0
  383. /package/{components → dist/components}/progress-steps/index.d.ts +0 -0
  384. /package/{components → dist/components}/progress-steps/index.js +0 -0
  385. /package/{components → dist/components}/progress-steps/progress-steps.d.ts +0 -0
  386. /package/{components → dist/components}/progress-steps/types.d.ts +0 -0
  387. /package/{components → dist/components}/progress-steps-Da8aZWx3.js +0 -0
  388. /package/{components → dist/components}/progress-steps-WriXaZpE.cjs +0 -0
  389. /package/{components → dist/components}/prompt-box/controllers/attachments-controller.d.ts +0 -0
  390. /package/{components → dist/components}/prompt-box/controllers/recording-controller.d.ts +0 -0
  391. /package/{components → dist/components}/prompt-box/controllers/rich-input-controller.d.ts +0 -0
  392. /package/{components → dist/components}/prompt-box/controllers/trigger-menu-controller.d.ts +0 -0
  393. /package/{components → dist/components}/prompt-box/index.cjs +0 -0
  394. /package/{components → dist/components}/prompt-box/index.d.ts +0 -0
  395. /package/{components → dist/components}/prompt-box/index.js +0 -0
  396. /package/{components → dist/components}/prompt-box/keyboard-focus-tracker.d.ts +0 -0
  397. /package/{components → dist/components}/prompt-box/prompt-box-templates.d.ts +0 -0
  398. /package/{components → dist/components}/prompt-box/prompt-box.d.ts +0 -0
  399. /package/{components → dist/components}/prompt-box/range-from-point.d.ts +0 -0
  400. /package/{components → dist/components}/prompt-box/selection-utils.d.ts +0 -0
  401. /package/{components → dist/components}/prompt-box/slot-state-sync.d.ts +0 -0
  402. /package/{components → dist/components}/prompt-box/types.d.ts +0 -0
  403. /package/{components → dist/components}/prompt-box-Bnnqs_Eg.js +0 -0
  404. /package/{components → dist/components}/prompt-box-CiipC5xS.cjs +0 -0
  405. /package/{components → dist/components}/radio/index.cjs +0 -0
  406. /package/{components → dist/components}/radio/index.d.ts +0 -0
  407. /package/{components → dist/components}/radio/index.js +0 -0
  408. /package/{components → dist/components}/radio/radio-group.d.ts +0 -0
  409. /package/{components → dist/components}/radio/radio.d.ts +0 -0
  410. /package/{components → dist/components}/radio-BzEPGUmQ.js +0 -0
  411. /package/{components → dist/components}/radio-d-2GUbYE.cjs +0 -0
  412. /package/{components → dist/components}/random-id-B51lUxUB.cjs +0 -0
  413. /package/{components → dist/components}/random-id-Dd4boCPV.js +0 -0
  414. /package/{components → dist/components}/rolldown-runtime-CAFD8bLK.js +0 -0
  415. /package/{components → dist/components}/roving-tabindex-B7x5ePUB.cjs +0 -0
  416. /package/{components → dist/components}/roving-tabindex-BP6mQbXf.js +0 -0
  417. /package/{components/scaled-indicator-BoLeYSgL.js → dist/components/scaled-indicator-BcO2BOsf.js} +0 -0
  418. /package/{components/scaled-indicator-DF45Sc3W.cjs → dist/components/scaled-indicator-p8-3k2cJ.cjs} +0 -0
  419. /package/{components → dist/components}/search/index.cjs +0 -0
  420. /package/{components → dist/components}/search/index.d.ts +0 -0
  421. /package/{components → dist/components}/search/index.js +0 -0
  422. /package/{components → dist/components}/search/search.d.ts +0 -0
  423. /package/{components → dist/components}/search-CmLfd2dF.js +0 -0
  424. /package/{components → dist/components}/search-DRTD4xsE.cjs +0 -0
  425. /package/{components → dist/components}/segments-factory-CHo9oQw7.cjs +0 -0
  426. /package/{components → dist/components}/segments-factory-D0IveW-q.js +0 -0
  427. /package/{components → dist/components}/select/index.cjs +0 -0
  428. /package/{components → dist/components}/select/index.d.ts +0 -0
  429. /package/{components → dist/components}/select/index.js +0 -0
  430. /package/{components → dist/components}/select/select.d.ts +0 -0
  431. /package/{components → dist/components}/select--vrG59GQ.cjs +0 -0
  432. /package/{components → dist/components}/select-DPeI0jP9.js +0 -0
  433. /package/{components → dist/components}/sized-mixin-DaBoZkVS.js +0 -0
  434. /package/{components → dist/components}/sized-mixin-StFA4y0J.cjs +0 -0
  435. /package/{components → dist/components}/slider/index.d.ts +0 -0
  436. /package/{components → dist/components}/slider/slider.d.ts +0 -0
  437. /package/{components/slider-Fy-VeKrU.js → dist/components/slider-3QBnq0S8.js} +0 -0
  438. /package/{components/slider-D8w2ipBg.cjs → dist/components/slider-uXRKcOz5.cjs} +0 -0
  439. /package/{components → dist/components}/slottable-request-event-DZ2Z_BLk.js +0 -0
  440. /package/{components → dist/components}/slottable-request-event-gAcEQan2.cjs +0 -0
  441. /package/{components → dist/components}/status-light/index.d.ts +0 -0
  442. /package/{components → dist/components}/status-light/status-light.d.ts +0 -0
  443. /package/{components/status-light-DXWPBufE.js → dist/components/status-light-Bf8jGu4G.js} +0 -0
  444. /package/{components/status-light-BG_kopZQ.cjs → dist/components/status-light-CBaAFRUc.cjs} +0 -0
  445. /package/{components → dist/components}/strategies-DhxJGIZT.js +0 -0
  446. /package/{components → dist/components}/strategies-kuvLVIKO.cjs +0 -0
  447. /package/{components → dist/components}/streaming-listener-2NcP7ys7.js +0 -0
  448. /package/{components → dist/components}/streaming-listener-BnDW38lt.cjs +0 -0
  449. /package/{components → dist/components}/suggestion/index.d.ts +0 -0
  450. /package/{components → dist/components}/suggestion/suggestion.d.ts +0 -0
  451. /package/{components/suggestion-CoB4dtAn.cjs → dist/components/suggestion-CEJiW_7y.cjs} +0 -0
  452. /package/{components/suggestion-DFC4JEK1.js → dist/components/suggestion-DK5gxxDI.js} +0 -0
  453. /package/{components → dist/components}/swatch/index.cjs +0 -0
  454. /package/{components → dist/components}/swatch/index.d.ts +0 -0
  455. /package/{components → dist/components}/swatch/index.js +0 -0
  456. /package/{components → dist/components}/swatch/swatch-group.d.ts +0 -0
  457. /package/{components → dist/components}/swatch/swatch.d.ts +0 -0
  458. /package/{components → dist/components}/swatch-BLuV-hlF.js +0 -0
  459. /package/{components → dist/components}/swatch-G70JUe6I.cjs +0 -0
  460. /package/{components → dist/components}/switch/index.d.ts +0 -0
  461. /package/{components → dist/components}/switch/switch.d.ts +0 -0
  462. /package/{components/switch-C5g5t5x2.js → dist/components/switch-BdE-hI69.js} +0 -0
  463. /package/{components/switch-COhz9ka9.cjs → dist/components/switch-KzkrF-ob.cjs} +0 -0
  464. /package/{components → dist/components}/tabs/index.d.ts +0 -0
  465. /package/{components → dist/components}/tabs/tab-panel.d.ts +0 -0
  466. /package/{components → dist/components}/tabs/tab.d.ts +0 -0
  467. /package/{components → dist/components}/tabs/tabs-overflow.d.ts +0 -0
  468. /package/{components → dist/components}/tabs/tabs.d.ts +0 -0
  469. /package/{components → dist/components}/tags/index.cjs +0 -0
  470. /package/{components → dist/components}/tags/index.d.ts +0 -0
  471. /package/{components → dist/components}/tags/index.js +0 -0
  472. /package/{components → dist/components}/tags/tag.d.ts +0 -0
  473. /package/{components → dist/components}/tags/tags.d.ts +0 -0
  474. /package/{components → dist/components}/tags-D5d4qKdQ.js +0 -0
  475. /package/{components → dist/components}/tags-DWkhLadz.cjs +0 -0
  476. /package/{components → dist/components}/text-field/help-text-manager.d.ts +0 -0
  477. /package/{components → dist/components}/text-field/help-text.d.ts +0 -0
  478. /package/{components → dist/components}/text-field/index.cjs +0 -0
  479. /package/{components → dist/components}/text-field/index.d.ts +0 -0
  480. /package/{components → dist/components}/text-field/index.js +0 -0
  481. /package/{components → dist/components}/text-field/manage-help-text.d.ts +0 -0
  482. /package/{components → dist/components}/text-field/text-field.d.ts +0 -0
  483. /package/{components → dist/components}/text-field-A4Obzs4l.cjs +0 -0
  484. /package/{components → dist/components}/text-field-BoGAvXvh.js +0 -0
  485. /package/{components → dist/components}/text-field-Cs8HYRYL.js +0 -0
  486. /package/{components → dist/components}/text-field-FJr8ZUhI.cjs +0 -0
  487. /package/{components → dist/components}/text-field.module-Btsve-VN.js +0 -0
  488. /package/{components → dist/components}/text-field.module-D5oDP7MB.cjs +0 -0
  489. /package/{components → dist/components}/toast/index.d.ts +0 -0
  490. /package/{components → dist/components}/toast/toast.d.ts +0 -0
  491. /package/{components/toast-DL40wb8G.cjs → dist/components/toast-CJSQUzoW.cjs} +0 -0
  492. /package/{components/toast-BoPYq3c-.js → dist/components/toast-DKwphMrp.js} +0 -0
  493. /package/{components → dist/components}/tooltip/index.cjs +0 -0
  494. /package/{components → dist/components}/tooltip/index.d.ts +0 -0
  495. /package/{components → dist/components}/tooltip/index.js +0 -0
  496. /package/{components → dist/components}/tooltip/tooltip-directive.d.ts +0 -0
  497. /package/{components → dist/components}/tooltip/tooltip.d.ts +0 -0
  498. /package/{components → dist/components}/tooltip-C3O4AQ1l.js +0 -0
  499. /package/{components → dist/components}/tooltip-DY1trLtg.cjs +0 -0
  500. /package/{components → dist/components}/top-nav/index.d.ts +0 -0
  501. /package/{components → dist/components}/top-nav/top-nav-item.d.ts +0 -0
  502. /package/{components → dist/components}/top-nav/top-nav.d.ts +0 -0
  503. /package/{components → dist/components}/utils.cjs +0 -0
  504. /package/{components → dist/components}/utils.js +0 -0
  505. /package/{components → dist/components}/voice-recorder-477xPHRU.js +0 -0
  506. /package/{components → dist/components}/voice-recorder-BUtmSvPO.cjs +0 -0
  507. /package/{utils → dist/utils}/base.d.ts +0 -0
  508. /package/{utils → dist/utils}/button-interaction-controllers/desktop-controller.d.ts +0 -0
  509. /package/{utils → dist/utils}/button-interaction-controllers/interaction-controller.d.ts +0 -0
  510. /package/{utils → dist/utils}/button-interaction-controllers/mobile-controller.d.ts +0 -0
  511. /package/{utils → dist/utils}/button-interaction-controllers/strategies.d.ts +0 -0
  512. /package/{utils → dist/utils}/condition-attribute-with-id.d.ts +0 -0
  513. /package/{utils → dist/utils}/first-focusable-in.d.ts +0 -0
  514. /package/{utils → dist/utils}/focus-visible.d.ts +0 -0
  515. /package/{utils → dist/utils}/focusable-selectors.d.ts +0 -0
  516. /package/{utils → dist/utils}/focusable.d.ts +0 -0
  517. /package/{utils → dist/utils}/get-css-variable.d.ts +0 -0
  518. /package/{utils → dist/utils}/get-label-from-slot.d.ts +0 -0
  519. /package/{utils → dist/utils}/index.d.ts +0 -0
  520. /package/{utils → dist/utils}/like-anchor.d.ts +0 -0
  521. /package/{utils → dist/utils}/observe-slot-presence.d.ts +0 -0
  522. /package/{utils → dist/utils}/observe-slot-text.d.ts +0 -0
  523. /package/{utils → dist/utils}/platform.d.ts +0 -0
  524. /package/{utils → dist/utils}/random-id.d.ts +0 -0
  525. /package/{utils → dist/utils}/reactive-controllers/color-controller.d.ts +0 -0
  526. /package/{utils → dist/utils}/reactive-controllers/color.d.ts +0 -0
  527. /package/{utils → dist/utils}/reactive-controllers/dependency-manger.d.ts +0 -0
  528. /package/{utils → dist/utils}/reactive-controllers/element-resolution.d.ts +0 -0
  529. /package/{utils → dist/utils}/reactive-controllers/focus-group.d.ts +0 -0
  530. /package/{utils → dist/utils}/reactive-controllers/language-resolution.d.ts +0 -0
  531. /package/{utils → dist/utils}/reactive-controllers/match-media.d.ts +0 -0
  532. /package/{utils → dist/utils}/reactive-controllers/pending-state.d.ts +0 -0
  533. /package/{utils → dist/utils}/reactive-controllers/roving-tabindex.d.ts +0 -0
  534. /package/{utils → dist/utils}/reparent-child.d.ts +0 -0
  535. /package/{utils → dist/utils}/scaled-indicator.d.ts +0 -0
  536. /package/{utils → dist/utils}/sized-mixin.d.ts +0 -0
  537. /package/{utils → dist/utils}/streaming-listener.d.ts +0 -0
  538. /package/{utils → dist/utils}/voice-recorder.d.ts +0 -0
package/README.dist.md ADDED
@@ -0,0 +1,94 @@
1
+ # Lucero
2
+
3
+ **Luzmo's Design System** — A collection of reusable web components built with [Lit](https://lit.dev/) for creating consistent, accessible, and beautiful user interfaces.
4
+
5
+ ## Alpha
6
+
7
+ > ⚠️ This package is in alpha state. Do not use in production. Expect breaking changes.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npm install @luzmo/lucero
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ Import individual components:
18
+
19
+ ```typescript
20
+ import '@luzmo/lucero/button';
21
+ import '@luzmo/lucero/text-field';
22
+ import '@luzmo/lucero/menu';
23
+ ```
24
+
25
+ Use in your HTML:
26
+
27
+ ```html
28
+ <luzmo-button variant="primary">Click me</luzmo-button>
29
+ <luzmo-text-field
30
+ label="Email"
31
+ placeholder="Enter your email"
32
+ ></luzmo-text-field>
33
+ ```
34
+
35
+ ## Available Components
36
+
37
+ | Component | Import |
38
+ | -------------------- | ------------------------------------ |
39
+ | Accordion | `@luzmo/lucero/accordion` |
40
+ | Action Bar | `@luzmo/lucero/action-bar` |
41
+ | Action Button | `@luzmo/lucero/action-button` |
42
+ | Action Group | `@luzmo/lucero/action-group` |
43
+ | Action Menu | `@luzmo/lucero/action-menu` |
44
+ | Avatar | `@luzmo/lucero/avatar` |
45
+ | Button | `@luzmo/lucero/button` |
46
+ | Button Group | `@luzmo/lucero/button-group` |
47
+ | Calendar | `@luzmo/lucero/calendar` |
48
+ | Chat Message | `@luzmo/lucero/chat-message` |
49
+ | Chat Message Group | `@luzmo/lucero/chat-message-group` |
50
+ | Checkbox | `@luzmo/lucero/checkbox` |
51
+ | Color Area | `@luzmo/lucero/color-area` |
52
+ | Color Field | `@luzmo/lucero/color-field` |
53
+ | Color Menu | `@luzmo/lucero/color-menu` |
54
+ | Color Palette | `@luzmo/lucero/color-palette` |
55
+ | Color Picker | `@luzmo/lucero/color-picker` |
56
+ | Color Slider | `@luzmo/lucero/color-slider` |
57
+ | Date Time Picker | `@luzmo/lucero/date-time-picker` |
58
+ | Divider | `@luzmo/lucero/divider` |
59
+ | Field Group | `@luzmo/lucero/field-group` |
60
+ | Field Label | `@luzmo/lucero/field-label` |
61
+ | Icon | `@luzmo/lucero/icon` |
62
+ | Menu | `@luzmo/lucero/menu` |
63
+ | Multi Language Field | `@luzmo/lucero/multi-language-field` |
64
+ | Number Field | `@luzmo/lucero/number-field` |
65
+ | Options | `@luzmo/lucero/options` |
66
+ | Picker | `@luzmo/lucero/picker` |
67
+ | Picker Button | `@luzmo/lucero/picker-button` |
68
+ | Progress Circle | `@luzmo/lucero/progress-circle` |
69
+ | Prompt Box | `@luzmo/lucero/prompt-box` |
70
+ | Radio | `@luzmo/lucero/radio` |
71
+ | Search | `@luzmo/lucero/search` |
72
+ | Select | `@luzmo/lucero/select` |
73
+ | Slider | `@luzmo/lucero/slider` |
74
+ | Suggestion | `@luzmo/lucero/suggestion` |
75
+ | Swatch | `@luzmo/lucero/swatch` |
76
+ | Switch | `@luzmo/lucero/switch` |
77
+ | Tabs | `@luzmo/lucero/tabs` |
78
+ | Tags | `@luzmo/lucero/tags` |
79
+ | Text Field | `@luzmo/lucero/text-field` |
80
+ | Toast | `@luzmo/lucero/toast` |
81
+ | Tooltip | `@luzmo/lucero/tooltip` |
82
+
83
+ ## Browser Support
84
+
85
+ - Last 2 versions of Chrome
86
+ - Last 2 versions of Firefox
87
+ - Last 2 versions of Safari
88
+ - Last 2 versions of Edge
89
+
90
+ ## License
91
+
92
+ Copyright © 2025 Luzmo. All rights reserved.
93
+
94
+ Lucero must be used according to the [Luzmo Terms of Service](https://www.luzmo.com/information-pages/terms-of-use). This license allows users with a current active Luzmo account to use Lucero.
package/README.md CHANGED
@@ -2,9 +2,7 @@
2
2
 
3
3
  **Luzmo's Design System** — A collection of reusable web components built with [Lit](https://lit.dev/) for creating consistent, accessible, and beautiful user interfaces.
4
4
 
5
- ## Alpha
6
-
7
- > ⚠️ This package is in alpha state. Do not use in production. Expect breaking changes.
5
+ Lucero provides the foundational UI building blocks used across Luzmo products, ensuring visual consistency and reducing development time.
8
6
 
9
7
  ## Installation
10
8
 
@@ -12,83 +10,496 @@
12
10
  npm install @luzmo/lucero
13
11
  ```
14
12
 
15
- ## Usage
16
-
17
- Import individual components:
18
-
19
- ```typescript
13
+ ```ts
20
14
  import '@luzmo/lucero/button';
21
- import '@luzmo/lucero/text-field';
22
- import '@luzmo/lucero/menu';
23
15
  ```
24
16
 
25
- Use in your HTML:
26
-
27
17
  ```html
28
- <luzmo-button variant="primary">Click me</luzmo-button>
29
- <luzmo-text-field
30
- label="Email"
31
- placeholder="Enter your email"
32
- ></luzmo-text-field>
18
+ <luzmo-button>Click me</luzmo-button>
33
19
  ```
34
20
 
35
- ## Available Components
36
-
37
- | Component | Import |
38
- | -------------------- | ------------------------------------ |
39
- | Accordion | `@luzmo/lucero/accordion` |
40
- | Action Bar | `@luzmo/lucero/action-bar` |
41
- | Action Button | `@luzmo/lucero/action-button` |
42
- | Action Group | `@luzmo/lucero/action-group` |
43
- | Action Menu | `@luzmo/lucero/action-menu` |
44
- | Avatar | `@luzmo/lucero/avatar` |
45
- | Button | `@luzmo/lucero/button` |
46
- | Button Group | `@luzmo/lucero/button-group` |
47
- | Calendar | `@luzmo/lucero/calendar` |
48
- | Chat Message | `@luzmo/lucero/chat-message` |
49
- | Chat Message Group | `@luzmo/lucero/chat-message-group` |
50
- | Checkbox | `@luzmo/lucero/checkbox` |
51
- | Color Area | `@luzmo/lucero/color-area` |
52
- | Color Field | `@luzmo/lucero/color-field` |
53
- | Color Menu | `@luzmo/lucero/color-menu` |
54
- | Color Palette | `@luzmo/lucero/color-palette` |
55
- | Color Picker | `@luzmo/lucero/color-picker` |
56
- | Color Slider | `@luzmo/lucero/color-slider` |
57
- | Date Time Picker | `@luzmo/lucero/date-time-picker` |
58
- | Divider | `@luzmo/lucero/divider` |
59
- | Field Group | `@luzmo/lucero/field-group` |
60
- | Field Label | `@luzmo/lucero/field-label` |
61
- | Icon | `@luzmo/lucero/icon` |
62
- | Menu | `@luzmo/lucero/menu` |
63
- | Multi Language Field | `@luzmo/lucero/multi-language-field` |
64
- | Number Field | `@luzmo/lucero/number-field` |
65
- | Options | `@luzmo/lucero/options` |
66
- | Picker | `@luzmo/lucero/picker` |
67
- | Picker Button | `@luzmo/lucero/picker-button` |
68
- | Progress Circle | `@luzmo/lucero/progress-circle` |
69
- | Prompt Box | `@luzmo/lucero/prompt-box` |
70
- | Radio | `@luzmo/lucero/radio` |
71
- | Search | `@luzmo/lucero/search` |
72
- | Select | `@luzmo/lucero/select` |
73
- | Slider | `@luzmo/lucero/slider` |
74
- | Suggestion | `@luzmo/lucero/suggestion` |
75
- | Swatch | `@luzmo/lucero/swatch` |
76
- | Switch | `@luzmo/lucero/switch` |
77
- | Tabs | `@luzmo/lucero/tabs` |
78
- | Tags | `@luzmo/lucero/tags` |
79
- | Text Field | `@luzmo/lucero/text-field` |
80
- | Toast | `@luzmo/lucero/toast` |
81
- | Tooltip | `@luzmo/lucero/tooltip` |
82
-
83
- ## Browser Support
21
+ ## Alpha
22
+
23
+ This repository is in alpha state. Do not use the web components in production.
24
+ Expect breaking changes.
25
+
26
+ ## Requirements
27
+
28
+ Supported desktop browsers:
84
29
 
85
30
  - Last 2 versions of Chrome
86
31
  - Last 2 versions of Firefox
87
32
  - Last 2 versions of Safari
88
33
  - Last 2 versions of Edge
89
34
 
90
- ## License
35
+ ## Design System
36
+
37
+ ### When to Create a Component
38
+
39
+ Create a new component when:
40
+
41
+ - **Reusability**: The UI pattern appears in 2+ places across the product
42
+ - **Encapsulation**: The pattern has distinct behavior, state, or styling that should be isolated
43
+ - **Composability**: It can be combined with other components to build complex UIs
44
+
45
+ Do **not** create a component for:
46
+
47
+ - One-off UI that won't be reused
48
+ - Simple styling that can be achieved with CSS
49
+ - Layout concerns (use CSS Grid/Flexbox instead)
50
+
51
+ ### Component Scope
52
+
53
+ **Minimum scope** — A component should:
54
+
55
+ - Do one thing well (single responsibility)
56
+ - Be self-contained with its own styles and behavior
57
+ - Work independently without requiring specific parent components
58
+
59
+ **Maximum scope** — A design component should not:
60
+
61
+ - Handle business logic or data fetching
62
+ - Know about application-level routing or state
63
+ - Exceed ~1000 lines of code (consider splitting)
64
+
65
+ **Examples of good boundaries:**
66
+
67
+ | ✅ Good | ❌ Too broad | ❌ Too narrow |
68
+ | ------------ | ---------------------- | ---------------- |
69
+ | `button` | `user-dashboard` | `button-text` |
70
+ | `text-field` | `checkout-form` | `input-border` |
71
+ | `menu` | `navigation-with-auth` | `menu-item-icon` |
72
+
73
+ ## Naming Conventions
74
+
75
+ ### General Principles
76
+
77
+ - **No abbreviations** — use full, descriptive words (`button` not `btn`, `configuration` not `cfg`)
78
+ - **Consistency** — follow existing patterns in the codebase
79
+ - **Clarity** — names should be self-documenting
80
+
81
+ ### Component Names
82
+
83
+ - **Prefix**: All components use `luzmo-` prefix
84
+ - **Format**: `luzmo-{component-name}` in kebab-case
85
+ - **Class name**: PascalCase with `Luzmo` prefix (`LuzmoButton`, `LuzmoTextField`)
86
+
87
+ ```html
88
+ <!-- ✅ Good -->
89
+ <luzmo-button>
90
+ <luzmo-text-field>
91
+ <luzmo-action-menu>
92
+ <luzmo-date-time-picker>
93
+ <!-- ❌ Bad -->
94
+ <luzmo-btn>
95
+ <!-- Avoid abbreviations -->
96
+ <luzmo-textfield>
97
+ <!-- Use kebab-case for multi-word -->
98
+ <luzmo-ActionMenu>
99
+ <!-- No PascalCase in HTML --></luzmo-ActionMenu
100
+ ></luzmo-textfield
101
+ ></luzmo-btn
102
+ ></luzmo-date-time-picker
103
+ ></luzmo-action-menu
104
+ ></luzmo-text-field
105
+ ></luzmo-button
106
+ >
107
+ ```
108
+
109
+ ### Attributes & Properties
110
+
111
+ | Type | HTML Attribute | JS Property | Example |
112
+ | --------------- | ----------------- | ----------- | ------------------------------- |
113
+ | Boolean | `kebab-case` | `camelCase` | `read-only` → `readOnly` |
114
+ | String/enum | `kebab-case` | `camelCase` | `static-color` → `staticColor` |
115
+ | Complex objects | _(not reflected)_ | `camelCase` | `formatOptions`, `selectedItem` |
116
+
117
+ **Rules:**
118
+
119
+ 1. **Boolean attributes** — presence means `true`, absence means `false`
120
+
121
+ ```html
122
+ <luzmo-button disabled>
123
+ <!-- disabled = true -->
124
+ <luzmo-button> <!-- disabled = false --></luzmo-button></luzmo-button
125
+ >
126
+ ```
127
+
128
+ 2. **Reflect to attribute** — primitive values should sync between property and attribute
129
+
130
+ ```javascript
131
+ el.size = 'large';
132
+ el.getAttribute('size'); // 'large'
133
+ ```
134
+
135
+ 3. **Kebab in HTML, camelCase in JS** — multi-word attributes
136
+
137
+ ```html
138
+ <luzmo-field
139
+ read-only
140
+ static-color="white"
141
+ pending-label="Loading..."
142
+ ></luzmo-field>
143
+ ```
144
+
145
+ ```javascript
146
+ el.readOnly = true;
147
+ el.staticColor = 'white';
148
+ el.pendingLabel = 'Loading...';
149
+ ```
150
+
151
+ 4. **Common boolean attributes** — use short, descriptive adjectives:
152
+
153
+ | ✅ Good | ❌ Avoid |
154
+ | ---------- | ------------ |
155
+ | `disabled` | `isDisabled` |
156
+ | `readonly` | `isReadOnly` |
157
+ | `open` | `isOpen` |
158
+ | `pending` | `isPending` |
159
+ | `invalid` | `hasError` |
160
+ | `quiet` | `isQuiet` |
161
+ | `focused` | `isFocused` |
162
+
163
+ 5. **Enum/variant attributes** — use lowercase values:
164
+
165
+ ```html
166
+ <luzmo-button variant="primary" size="m" treatment="fill">
167
+ <luzmo-picker placement="bottom-start"></luzmo-picker
168
+ ></luzmo-button>
169
+ ```
170
+
171
+ ### Methods
172
+
173
+ | Type | Format | Example |
174
+ | -------------- | ------------ | ------------------------------------------- |
175
+ | Public | `camelCase` | `focus()`, `click()`, `toggle()`, `close()` |
176
+ | Event handlers | `handle*` | `handleChange()`, `handleKeydown()` |
177
+ | Internal | `_camelCase` | `_updateValue()`, `_cachedItems` |
178
+
179
+ **Rules:**
180
+
181
+ 1. **Action methods** — use imperative verbs
182
+
183
+ ```typescript
184
+ toggle(open?: boolean): void // Toggle state
185
+ close(): void // Close the component
186
+ focus(options?: FocusOptions): void
187
+ select(): void // Select all text
188
+ checkValidity(): boolean // Validate and return result
189
+ ```
190
+
191
+ 2. **Getters/setters** — use noun-based names
192
+
193
+ ```typescript
194
+ get focusElement(): HTMLElement
195
+ get selectedItem(): LuzmoMenuItem | undefined
196
+ set value(val: string)
197
+ ```
198
+
199
+ 3. **Internal methods** — use `@internal` JSDoc or underscore prefix
200
+
201
+ ```typescript
202
+ /** @internal */
203
+ protected _updateCache(): void
204
+ private _handleSlotchange(): void
205
+ ```
206
+
207
+ ### Events
208
+
209
+ | Type | Format | Example |
210
+ | ---------------- | ---------------------- | ---------------------------------- |
211
+ | Standard HTML | lowercase | `change`, `input`, `focus`, `blur` |
212
+ | Custom component | `luzmo-` + kebab-case | `luzmo-opened`, `luzmo-closed` |
213
+ | Internal | `luzmo-` + descriptive | `luzmo-menu-item-added-or-updated` |
214
+
215
+ **Rules:**
216
+
217
+ 1. **Prefer standard events** — when behavior matches HTML semantics
218
+
219
+ ```typescript
220
+ // Use standard 'change' for value changes
221
+ this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));
222
+ ```
223
+
224
+ 2. **Custom events** — use `luzmo-` prefix with descriptive names
225
+
226
+ ```typescript
227
+ // Component lifecycle events
228
+ this.dispatchEvent(
229
+ new Event('luzmo-opened', { bubbles: true, composed: true })
230
+ );
231
+ this.dispatchEvent(
232
+ new Event('luzmo-closed', { bubbles: true, composed: true })
233
+ );
234
+
235
+ // With detail data
236
+ this.dispatchEvent(
237
+ new CustomEvent('luzmo-change', {
238
+ detail: { value, oldValue },
239
+ bubbles: true,
240
+ composed: true
241
+ })
242
+ );
243
+ ```
244
+
245
+ 3. **Event naming pattern**:
246
+
247
+ | Pattern | Use case |
248
+ | ----------------------- | ------------------------- |
249
+ | `luzmo-{verb}-ed` | After action completed |
250
+ | `luzmo-{noun}-{action}` | Specific component events |
251
+
252
+ ### CSS Custom Properties
253
+
254
+ | Type | Format | Example |
255
+ | ------------------ | ---------------------------- | ------------------------------------- |
256
+ | Design tokens | `--luzmo-{category}-{name}` | `--luzmo-primary`, `--luzmo-shadow-m` |
257
+ | Component-specific | `--luzmo-{component}-{prop}` | `--luzmo-button-height` |
258
+
259
+ **Examples:**
260
+
261
+ ```css
262
+ /* Color tokens */
263
+ --luzmo-primary
264
+ --luzmo-background-color
265
+ --luzmo-font-color
266
+ --luzmo-border-color
267
+
268
+ /* Sizing/spacing */
269
+ --luzmo-shadow-s
270
+ --luzmo-shadow-m
271
+ --luzmo-shadow-l
272
+ ```
273
+
274
+ ### Slots
275
+
276
+ | Format | Example |
277
+ | ------- | ----------------------------------------------- |
278
+ | Default | `<slot></slot>` — main content |
279
+ | Named | `<slot name="icon">`, `<slot name="help-text">` |
280
+
281
+ **Common slot names:**
282
+
283
+ - `icon` — icon slot
284
+ - `label` — label content
285
+ - `help-text` — helper text below field
286
+ - `negative-help-text` — error message
287
+ - `description` — descriptive text
288
+ - `tooltip` — tooltip content
289
+
290
+ ### File Names
291
+
292
+ | Type | Format | Example |
293
+ | ------------ | ----------------------------- | ------------------------ |
294
+ | Component | `{component}.ts` | `button.ts` |
295
+ | Styles | `{component}.module.scss` | `button.module.scss` |
296
+ | Stories | `{component}.stories.ts` | `button.stories.ts` |
297
+ | Unit tests | `{component}.test.ts` | `button.test.ts` |
298
+ | Visual tests | `{component}-visual.test.ts` | `button-visual.test.ts` |
299
+ | Memory tests | `{component}-memory.test.ts` | `button-memory.test.ts` |
300
+ | Interactions | `{component}.interactions.ts` | `button.interactions.ts` |
301
+
302
+ ### TypeScript Types & Interfaces
303
+
304
+ | Type | Format | Example |
305
+ | ---------- | ---------- | ------------------------------------ |
306
+ | Types | PascalCase | `ButtonVariants`, `Placement` |
307
+ | Interfaces | PascalCase | `MenuChildItem`, `OpenableElement` |
308
+ | Enums | PascalCase | `OverlayState`, `TriggerInteraction` |
309
+
310
+ ### Common Naming Patterns Summary
311
+
312
+ | Category | Pattern | ✅ Good | ❌ Avoid |
313
+ | ---------- | --------------------------- | ----------------- | --------------------- |
314
+ | Components | `luzmo-{name}` | `luzmo-button` | `luzmo-btn` |
315
+ | Properties | camelCase | `pendingLabel` | `pending_label` |
316
+ | Attributes | kebab-case | `pending-label` | `pendingLabel` |
317
+ | Methods | camelCase verb | `handleChange()` | `change_handler()` |
318
+ | Events | `luzmo-` prefix | `luzmo-opened` | `onOpen`, `openEvent` |
319
+ | CSS vars | `--luzmo-{name}` | `--luzmo-primary` | `--primary` |
320
+ | Internal | `_camelCase` or `@internal` | `_cachedItems` | `cachedItems__` |
321
+
322
+ ## CSS Reset Protection
323
+
324
+ Lucero components are used in host apps that include CSS resets (Tailwind, Normalize, etc.). Tailwind's preflight injects `* { border-width: 0; border-style: solid; border-color: #e5e7eb; }`, which — per the CSS cascade spec — overrides normal `:host` styles in Shadow DOM because outer-context author styles take precedence.
325
+
326
+ **Rule**: All `border-width`, `border-style`, `border-color`, and `border` shorthand declarations on any `:host(...)` selector (including state variants and pseudo-elements) **must** use `!important`.
327
+
328
+ ```scss
329
+ :host {
330
+ // a lot of reset css from libraries like tailwind, so we set !important
331
+ border-width: var(--luzmo-tag-border-width, var(--tag-border-width)) !important;
332
+ border-style: solid !important;
333
+ border-color: var(
334
+ --highcontrast-tag-border-color,
335
+ var(--luzmo-tag-border-color, var(--tag-border-color))
336
+ ) !important;
337
+ }
338
+ ```
339
+
340
+ This is safe because `!important` in the inner tree always beats `!important` in the outer tree, and consumer customization via CSS custom properties is unaffected. See `rules/styles.md` for the full rationale and what does/doesn't need protection.
341
+
342
+ ## Testing
343
+
344
+ ### Commands
345
+
346
+ | Command | Description |
347
+ | ---------------------------- | --------------------------------------- |
348
+ | `npm run test` | Run unit + visual tests in all browsers |
349
+ | `npm run test:chromium` | Run unit + visual tests in Chromium |
350
+ | `npm run test:firefox` | Run unit tests in Firefox |
351
+ | `npm run test:webkit` | Run unit tests in WebKit |
352
+ | `npm run test:visual` | Run visual regression tests only |
353
+ | `npm run test:visual:update` | Update visual regression screenshots |
354
+ | `npm run test:memory` | Run memory leak tests |
355
+ | `npm run test:storybook` | Run Storybook interaction tests |
356
+ | `npm run test:all` | Run all tests |
357
+
358
+ ### Test File Structure
359
+
360
+ ```
361
+ src/components/{component}/
362
+ ├── {component}.ts # Component implementation
363
+ ├── {component}.module.scss # Component styles
364
+ ├── tests/
365
+ │ ├── *.test.ts # Unit + behavioral a11y tests
366
+ │ ├── *-a11y.test.ts # Static axe-core a11y scan
367
+ │ ├── *-visual.test.ts # Visual regression tests
368
+ │ ├── *-memory.test.ts # Memory leak tests
369
+ │ ├── *.interactions.ts # Storybook interaction tests
370
+ │ └── __screenshots__/ # Visual test reference images
371
+ └── stories/
372
+ └── *.stories.ts # Storybook stories
373
+ ```
374
+
375
+ See [File Names](#file-names) for naming conventions.
376
+
377
+ ### Test Types
378
+
379
+ #### Unit Tests (`*.test.ts`)
380
+
381
+ Standard Vitest tests for component behavior, accessibility, and API validation.
382
+
383
+ ```typescript
384
+ import { fixture, expect } from '@open-wc/testing';
385
+ import { html } from 'lit';
386
+
387
+ describe('Component', () => {
388
+ it('should render', async () => {
389
+ const el = await fixture(html`<luzmo-component></luzmo-component>`);
390
+ expect(el).to.exist;
391
+ });
392
+ });
393
+ ```
394
+
395
+ #### Visual Regression Tests (`*-visual.test.ts`)
396
+
397
+ Screenshot-based tests using Storybook stories. Run only in Chromium.
398
+
399
+ ```typescript
400
+ import { composeStories } from 'storybook/preview-api';
401
+ import * as stories from '../stories/{component}.stories';
402
+
403
+ const composedStories = composeStories(stories);
404
+
405
+ it('Default - renders correctly', async () => {
406
+ const el = await renderStory(composedStories.Default);
407
+ await expect(el).toMatchScreenshot('{component}-default');
408
+ });
409
+ ```
410
+
411
+ #### Memory Tests (`*-memory.test.ts`)
412
+
413
+ Tests for memory leaks when components mount/unmount repeatedly.
414
+
415
+ ```typescript
416
+ import { testForMemoryLeaks } from '../../../test-utils/testing-helpers.js';
417
+ import { componentMarkup } from '../stories/template.js';
418
+
419
+ testForMemoryLeaks(componentMarkup({}));
420
+ ```
421
+
422
+ #### Interaction Tests (`*.interactions.ts`)
423
+
424
+ Storybook play functions for testing user interactions. Used in stories with `play` property.
425
+
426
+ ```typescript
427
+ import { expect, userEvent } from 'storybook/test';
428
+
429
+ export const testDefault = async ({ canvasElement }) => {
430
+ const el = canvasElement.querySelector('luzmo-component');
431
+ await expect(el).toBeInTheDocument();
432
+ await userEvent.click(el);
433
+ };
434
+ ```
435
+
436
+ #### Accessibility Tests
437
+
438
+ Every component must include two types of accessibility tests:
439
+
440
+ ##### Static A11y Tests (`*-a11y.test.ts`)
441
+
442
+ Axe-core scans that check for WCAG 2.x violations on the component's default rendering. Create a separate `*-a11y.test.ts` file for each component:
443
+
444
+ ```typescript
445
+ import { afterEach, describe, expect, it } from 'vitest';
446
+ import { a11yFixture, html, runAxe } from '../../../test-utils/a11y-test-helpers';
447
+ import '../';
448
+
449
+ afterEach(() => { document.body.innerHTML = ''; });
450
+
451
+ describe('luzmo-component - accessibility', () => {
452
+ it('has no axe violations', async () => {
453
+ const { el } = await a11yFixture(html`
454
+ <luzmo-component label="Example"></luzmo-component>
455
+ `);
456
+ const results = await runAxe(el);
457
+ expect(results.violations).toEqual([]);
458
+ });
459
+ });
460
+ ```
461
+
462
+ ##### Behavioral A11y Tests (in `*.test.ts`)
463
+
464
+ Keyboard navigation, focus management, and ARIA state transition tests. Added as a `describe('keyboard navigation', ...)` block in the main test file. Expected coverage depends on the component's ARIA role:
465
+
466
+ | ARIA pattern | Expected keyboard tests |
467
+ |---|---|
468
+ | Composite widget (menu, listbox, radio group, toolbar, tablist) | Arrow key navigation, Home/End, skip disabled, wrap-around |
469
+ | Expandable (accordion, disclosure, combobox, picker) | Enter/Space to toggle, Escape to close, focus management on open/close |
470
+ | Value (slider, number-field, color-area) | Arrow keys to adjust value, Home/End for min/max, step modifiers |
471
+ | Overlay (dialog, popover) | Escape to dismiss, focus trap (modal), focus return to trigger |
472
+ | Form submit (prompt-box, search) | Enter to submit |
473
+
474
+ Example (roving tabindex navigation):
475
+
476
+ ```typescript
477
+ it('moves focus with ArrowDown', async () => {
478
+ const el = await fixture(html`
479
+ <luzmo-component>
480
+ <luzmo-item class="first">A</luzmo-item>
481
+ <luzmo-item class="second">B</luzmo-item>
482
+ </luzmo-component>
483
+ `);
484
+ const first = el.querySelector('.first');
485
+ const second = el.querySelector('.second');
486
+ await elementUpdated(el);
487
+
488
+ first.focus();
489
+ await elementUpdated(el);
490
+
491
+ el.dispatchEvent(arrowDownEvent());
492
+ await nextFrame();
493
+
494
+ expect(document.activeElement).to.equal(second);
495
+ });
496
+ ```
91
497
 
92
- Copyright © 2025 Luzmo. All rights reserved.
498
+ ### Expectations
93
499
 
94
- Lucero must be used according to the [Luzmo Terms of Service](https://www.luzmo.com/information-pages/terms-of-use). This license allows users with a current active Luzmo account to use Lucero.
500
+ - **All components** should have unit tests covering core functionality
501
+ - **All components** must have a static axe a11y test (`*-a11y.test.ts`)
502
+ - **Interactive components** must have behavioral keyboard navigation tests in their main `*.test.ts`
503
+ - **Visual tests** should cover key visual states (default, disabled, sizes, variants)
504
+ - **Memory tests** ensure components don't leak memory on mount/unmount cycles
505
+ - **Interaction tests** validate user flows in Storybook
package/dist/LICENSE ADDED
@@ -0,0 +1,16 @@
1
+ Lucero - The design system for Luzmo.
2
+
3
+ Copyright © 2025 Luzmo
4
+ All rights reserved.
5
+ Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
6
+ This license allows users with a current active Luzmo account to use Lucero.
7
+ This license terminates automatically if a user no longer has an active Luzmo account.
8
+ Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
9
+
10
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
13
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
14
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
15
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
+ SOFTWARE.