@moni-labs/moni-ui 0.2.0

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 (451) hide show
  1. package/LICENSE +34 -0
  2. package/README.md +264 -0
  3. package/custom-elements.json +12510 -0
  4. package/dist/actions/index.d.ts +2 -0
  5. package/dist/actions/index.d.ts.map +1 -0
  6. package/dist/actions/index.js +1 -0
  7. package/dist/assets/arch.svg +1 -0
  8. package/dist/assets/arrow.svg +1 -0
  9. package/dist/assets/boom.svg +1 -0
  10. package/dist/assets/bun.svg +1 -0
  11. package/dist/assets/burst.svg +1 -0
  12. package/dist/assets/circle.svg +1 -0
  13. package/dist/assets/clamshell.svg +1 -0
  14. package/dist/assets/diamond.svg +1 -0
  15. package/dist/assets/fan.svg +1 -0
  16. package/dist/assets/flower.svg +1 -0
  17. package/dist/assets/gem.svg +1 -0
  18. package/dist/assets/ghost-ish.svg +1 -0
  19. package/dist/assets/heart.svg +1 -0
  20. package/dist/assets/leaf-clover4.svg +1 -0
  21. package/dist/assets/leaf-clover8.svg +1 -0
  22. package/dist/assets/loading-indicator.svg +1 -0
  23. package/dist/assets/material-symbols-rounded.woff2 +0 -0
  24. package/dist/assets/material-symbols-subset.woff2 +0 -0
  25. package/dist/assets/oval.svg +1 -0
  26. package/dist/assets/pentagon.svg +1 -0
  27. package/dist/assets/pill.svg +1 -0
  28. package/dist/assets/pixel-circle.svg +1 -0
  29. package/dist/assets/pixel-triangle.svg +1 -0
  30. package/dist/assets/puffy-diamond.svg +1 -0
  31. package/dist/assets/puffy.svg +1 -0
  32. package/dist/assets/semicircle.svg +1 -0
  33. package/dist/assets/shapes/arch.svg +1 -0
  34. package/dist/assets/shapes/arrow.svg +1 -0
  35. package/dist/assets/shapes/boom.svg +1 -0
  36. package/dist/assets/shapes/burst.svg +1 -0
  37. package/dist/assets/shapes/circle.svg +1 -0
  38. package/dist/assets/shapes/clamshell.svg +1 -0
  39. package/dist/assets/shapes/diamond.svg +1 -0
  40. package/dist/assets/shapes/fan.svg +1 -0
  41. package/dist/assets/shapes/flower.svg +1 -0
  42. package/dist/assets/shapes/gem.svg +1 -0
  43. package/dist/assets/shapes/ghost-ish.svg +1 -0
  44. package/dist/assets/shapes/heart.svg +1 -0
  45. package/dist/assets/shapes/leaf-clover4.svg +1 -0
  46. package/dist/assets/shapes/leaf-clover8.svg +1 -0
  47. package/dist/assets/shapes/loading-indicator.svg +1 -0
  48. package/dist/assets/shapes/oval.svg +1 -0
  49. package/dist/assets/shapes/pentagon.svg +1 -0
  50. package/dist/assets/shapes/pill.svg +1 -0
  51. package/dist/assets/shapes/pixel-circle.svg +1 -0
  52. package/dist/assets/shapes/pixel-triangle.svg +1 -0
  53. package/dist/assets/shapes/puffy-diamond.svg +1 -0
  54. package/dist/assets/shapes/puffy.svg +1 -0
  55. package/dist/assets/shapes/semicircle.svg +1 -0
  56. package/dist/assets/shapes/sided-cookie12.svg +1 -0
  57. package/dist/assets/shapes/sided-cookie4.svg +1 -0
  58. package/dist/assets/shapes/sided-cookie6.svg +1 -0
  59. package/dist/assets/shapes/sided-cookie7.svg +1 -0
  60. package/dist/assets/shapes/sided-cookie9.svg +1 -0
  61. package/dist/assets/shapes/slanted.svg +1 -0
  62. package/dist/assets/shapes/soft-boom.svg +1 -0
  63. package/dist/assets/shapes/soft-burst.svg +1 -0
  64. package/dist/assets/shapes/square.svg +1 -0
  65. package/dist/assets/shapes/sunny.svg +1 -0
  66. package/dist/assets/shapes/triangle.svg +1 -0
  67. package/dist/assets/shapes/very-sunny.svg +1 -0
  68. package/dist/assets/shapes/wavy-circle.svg +1 -0
  69. package/dist/assets/shapes/wavy.svg +1 -0
  70. package/dist/assets/sided-cookie12.svg +1 -0
  71. package/dist/assets/sided-cookie4.svg +1 -0
  72. package/dist/assets/sided-cookie6.svg +1 -0
  73. package/dist/assets/sided-cookie7.svg +1 -0
  74. package/dist/assets/sided-cookie9.svg +1 -0
  75. package/dist/assets/slanted.svg +1 -0
  76. package/dist/assets/soft-boom.svg +1 -0
  77. package/dist/assets/soft-burst.svg +1 -0
  78. package/dist/assets/square.svg +1 -0
  79. package/dist/assets/star.svg +1 -0
  80. package/dist/assets/sunny.svg +1 -0
  81. package/dist/assets/triangle.svg +1 -0
  82. package/dist/assets/very-sunny.svg +1 -0
  83. package/dist/assets/wavy-circle.svg +1 -0
  84. package/dist/assets/wavy.svg +1 -0
  85. package/dist/components/_base/field-styles.d.ts +24 -0
  86. package/dist/components/_base/field-styles.d.ts.map +1 -0
  87. package/dist/components/_base/field-styles.js +504 -0
  88. package/dist/components/_base/index.d.ts +4 -0
  89. package/dist/components/_base/index.d.ts.map +1 -0
  90. package/dist/components/_base/index.js +3 -0
  91. package/dist/components/_base/interaction-styles.d.ts +22 -0
  92. package/dist/components/_base/interaction-styles.d.ts.map +1 -0
  93. package/dist/components/_base/interaction-styles.js +123 -0
  94. package/dist/components/_base/moni-element.d.ts +18 -0
  95. package/dist/components/_base/moni-element.d.ts.map +1 -0
  96. package/dist/components/_base/moni-element.js +19 -0
  97. package/dist/components/_base/shared-styles.d.ts +22 -0
  98. package/dist/components/_base/shared-styles.d.ts.map +1 -0
  99. package/dist/components/_base/shared-styles.js +146 -0
  100. package/dist/components/index.d.ts +42 -0
  101. package/dist/components/index.d.ts.map +1 -0
  102. package/dist/components/index.js +43 -0
  103. package/dist/components/loading-shapes.d.ts +10 -0
  104. package/dist/components/loading-shapes.d.ts.map +1 -0
  105. package/dist/components/loading-shapes.js +9 -0
  106. package/dist/components/moni-app-bar.d.ts +52 -0
  107. package/dist/components/moni-app-bar.d.ts.map +1 -0
  108. package/dist/components/moni-app-bar.js +207 -0
  109. package/dist/components/moni-badge.d.ts +37 -0
  110. package/dist/components/moni-badge.d.ts.map +1 -0
  111. package/dist/components/moni-badge.js +153 -0
  112. package/dist/components/moni-bottom-sheet.d.ts +52 -0
  113. package/dist/components/moni-bottom-sheet.d.ts.map +1 -0
  114. package/dist/components/moni-bottom-sheet.js +440 -0
  115. package/dist/components/moni-button-group.d.ts +55 -0
  116. package/dist/components/moni-button-group.d.ts.map +1 -0
  117. package/dist/components/moni-button-group.js +278 -0
  118. package/dist/components/moni-button-segment.d.ts +29 -0
  119. package/dist/components/moni-button-segment.d.ts.map +1 -0
  120. package/dist/components/moni-button-segment.js +300 -0
  121. package/dist/components/moni-button.d.ts +70 -0
  122. package/dist/components/moni-button.d.ts.map +1 -0
  123. package/dist/components/moni-button.js +727 -0
  124. package/dist/components/moni-card.d.ts +48 -0
  125. package/dist/components/moni-card.d.ts.map +1 -0
  126. package/dist/components/moni-card.js +216 -0
  127. package/dist/components/moni-carousel.d.ts +111 -0
  128. package/dist/components/moni-carousel.d.ts.map +1 -0
  129. package/dist/components/moni-carousel.js +1007 -0
  130. package/dist/components/moni-checkbox.d.ts +39 -0
  131. package/dist/components/moni-checkbox.d.ts.map +1 -0
  132. package/dist/components/moni-checkbox.js +212 -0
  133. package/dist/components/moni-chip.d.ts +57 -0
  134. package/dist/components/moni-chip.d.ts.map +1 -0
  135. package/dist/components/moni-chip.js +340 -0
  136. package/dist/components/moni-color-field.d.ts +33 -0
  137. package/dist/components/moni-color-field.d.ts.map +1 -0
  138. package/dist/components/moni-color-field.js +170 -0
  139. package/dist/components/moni-context-menu.d.ts +55 -0
  140. package/dist/components/moni-context-menu.d.ts.map +1 -0
  141. package/dist/components/moni-context-menu.js +184 -0
  142. package/dist/components/moni-dialog.d.ts +37 -0
  143. package/dist/components/moni-dialog.d.ts.map +1 -0
  144. package/dist/components/moni-dialog.js +257 -0
  145. package/dist/components/moni-divider.d.ts +33 -0
  146. package/dist/components/moni-divider.d.ts.map +1 -0
  147. package/dist/components/moni-divider.js +81 -0
  148. package/dist/components/moni-expansion.d.ts +25 -0
  149. package/dist/components/moni-expansion.d.ts.map +1 -0
  150. package/dist/components/moni-expansion.js +94 -0
  151. package/dist/components/moni-fab-menu.d.ts +58 -0
  152. package/dist/components/moni-fab-menu.d.ts.map +1 -0
  153. package/dist/components/moni-fab-menu.js +247 -0
  154. package/dist/components/moni-fab.d.ts +48 -0
  155. package/dist/components/moni-fab.d.ts.map +1 -0
  156. package/dist/components/moni-fab.js +284 -0
  157. package/dist/components/moni-file-field.d.ts +47 -0
  158. package/dist/components/moni-file-field.d.ts.map +1 -0
  159. package/dist/components/moni-file-field.js +189 -0
  160. package/dist/components/moni-icon.d.ts +30 -0
  161. package/dist/components/moni-icon.d.ts.map +1 -0
  162. package/dist/components/moni-icon.js +107 -0
  163. package/dist/components/moni-list-item.d.ts +51 -0
  164. package/dist/components/moni-list-item.d.ts.map +1 -0
  165. package/dist/components/moni-list-item.js +239 -0
  166. package/dist/components/moni-list.d.ts +32 -0
  167. package/dist/components/moni-list.d.ts.map +1 -0
  168. package/dist/components/moni-list.js +67 -0
  169. package/dist/components/moni-loading-indicator.d.ts +32 -0
  170. package/dist/components/moni-loading-indicator.d.ts.map +1 -0
  171. package/dist/components/moni-loading-indicator.js +189 -0
  172. package/dist/components/moni-menu-item.d.ts +27 -0
  173. package/dist/components/moni-menu-item.d.ts.map +1 -0
  174. package/dist/components/moni-menu-item.js +99 -0
  175. package/dist/components/moni-menu.d.ts +55 -0
  176. package/dist/components/moni-menu.d.ts.map +1 -0
  177. package/dist/components/moni-menu.js +295 -0
  178. package/dist/components/moni-morph-modal.d.ts +78 -0
  179. package/dist/components/moni-morph-modal.d.ts.map +1 -0
  180. package/dist/components/moni-morph-modal.js +1223 -0
  181. package/dist/components/moni-nav-item.d.ts +38 -0
  182. package/dist/components/moni-nav-item.d.ts.map +1 -0
  183. package/dist/components/moni-nav-item.js +262 -0
  184. package/dist/components/moni-nav.d.ts +46 -0
  185. package/dist/components/moni-nav.d.ts.map +1 -0
  186. package/dist/components/moni-nav.js +272 -0
  187. package/dist/components/moni-progress.d.ts +45 -0
  188. package/dist/components/moni-progress.d.ts.map +1 -0
  189. package/dist/components/moni-progress.js +333 -0
  190. package/dist/components/moni-radio.d.ts +38 -0
  191. package/dist/components/moni-radio.d.ts.map +1 -0
  192. package/dist/components/moni-radio.js +218 -0
  193. package/dist/components/moni-ripple.d.ts +35 -0
  194. package/dist/components/moni-ripple.d.ts.map +1 -0
  195. package/dist/components/moni-ripple.js +156 -0
  196. package/dist/components/moni-segmented-button.d.ts +52 -0
  197. package/dist/components/moni-segmented-button.d.ts.map +1 -0
  198. package/dist/components/moni-segmented-button.js +208 -0
  199. package/dist/components/moni-select-option.d.ts +27 -0
  200. package/dist/components/moni-select-option.d.ts.map +1 -0
  201. package/dist/components/moni-select-option.js +102 -0
  202. package/dist/components/moni-select.d.ts +76 -0
  203. package/dist/components/moni-select.d.ts.map +1 -0
  204. package/dist/components/moni-select.js +1136 -0
  205. package/dist/components/moni-shape.d.ts +30 -0
  206. package/dist/components/moni-shape.d.ts.map +1 -0
  207. package/dist/components/moni-shape.js +146 -0
  208. package/dist/components/moni-side-sheet.d.ts +62 -0
  209. package/dist/components/moni-side-sheet.d.ts.map +1 -0
  210. package/dist/components/moni-side-sheet.js +576 -0
  211. package/dist/components/moni-slider.d.ts +73 -0
  212. package/dist/components/moni-slider.d.ts.map +1 -0
  213. package/dist/components/moni-slider.js +422 -0
  214. package/dist/components/moni-snackbar.d.ts +40 -0
  215. package/dist/components/moni-snackbar.d.ts.map +1 -0
  216. package/dist/components/moni-snackbar.js +161 -0
  217. package/dist/components/moni-split-button.d.ts +33 -0
  218. package/dist/components/moni-split-button.d.ts.map +1 -0
  219. package/dist/components/moni-split-button.js +122 -0
  220. package/dist/components/moni-step.d.ts +30 -0
  221. package/dist/components/moni-step.d.ts.map +1 -0
  222. package/dist/components/moni-step.js +175 -0
  223. package/dist/components/moni-stepper.d.ts +35 -0
  224. package/dist/components/moni-stepper.d.ts.map +1 -0
  225. package/dist/components/moni-stepper.js +101 -0
  226. package/dist/components/moni-switch.d.ts +39 -0
  227. package/dist/components/moni-switch.d.ts.map +1 -0
  228. package/dist/components/moni-switch.js +258 -0
  229. package/dist/components/moni-tab.d.ts +27 -0
  230. package/dist/components/moni-tab.d.ts.map +1 -0
  231. package/dist/components/moni-tab.js +147 -0
  232. package/dist/components/moni-tabs.d.ts +31 -0
  233. package/dist/components/moni-tabs.d.ts.map +1 -0
  234. package/dist/components/moni-tabs.js +106 -0
  235. package/dist/components/moni-text-field.d.ts +46 -0
  236. package/dist/components/moni-text-field.d.ts.map +1 -0
  237. package/dist/components/moni-text-field.js +190 -0
  238. package/dist/components/moni-textarea.d.ts +57 -0
  239. package/dist/components/moni-textarea.d.ts.map +1 -0
  240. package/dist/components/moni-textarea.js +228 -0
  241. package/dist/components/moni-time-picker.d.ts +51 -0
  242. package/dist/components/moni-time-picker.d.ts.map +1 -0
  243. package/dist/components/moni-time-picker.js +823 -0
  244. package/dist/components/moni-toolbar.d.ts +35 -0
  245. package/dist/components/moni-toolbar.d.ts.map +1 -0
  246. package/dist/components/moni-toolbar.js +128 -0
  247. package/dist/components/moni-tooltip.d.ts +65 -0
  248. package/dist/components/moni-tooltip.d.ts.map +1 -0
  249. package/dist/components/moni-tooltip.js +320 -0
  250. package/dist/components/moni-typography.d.ts +42 -0
  251. package/dist/components/moni-typography.d.ts.map +1 -0
  252. package/dist/components/moni-typography.js +205 -0
  253. package/dist/index.d.ts +7 -0
  254. package/dist/index.d.ts.map +1 -0
  255. package/dist/index.js +7 -0
  256. package/dist/styles/animations.css +46 -0
  257. package/dist/styles/base.css +248 -0
  258. package/dist/styles/index.css +3 -0
  259. package/dist/styles/tokens.css +190 -0
  260. package/dist/utils/color.d.ts +51 -0
  261. package/dist/utils/color.d.ts.map +1 -0
  262. package/dist/utils/color.js +107 -0
  263. package/dist/utils/theme.svelte.d.ts +45 -0
  264. package/dist/utils/theme.svelte.d.ts.map +1 -0
  265. package/dist/utils/theme.svelte.js +168 -0
  266. package/dist/web-components.d.ts +3 -0
  267. package/dist/web-components.d.ts.map +1 -0
  268. package/dist/web-components.js +4 -0
  269. package/package.json +76 -0
  270. package/src/actions/index.ts +2 -0
  271. package/src/assets/arch.svg +1 -0
  272. package/src/assets/arrow.svg +1 -0
  273. package/src/assets/boom.svg +1 -0
  274. package/src/assets/bun.svg +1 -0
  275. package/src/assets/burst.svg +1 -0
  276. package/src/assets/circle.svg +1 -0
  277. package/src/assets/clamshell.svg +1 -0
  278. package/src/assets/diamond.svg +1 -0
  279. package/src/assets/fan.svg +1 -0
  280. package/src/assets/flower.svg +1 -0
  281. package/src/assets/gem.svg +1 -0
  282. package/src/assets/ghost-ish.svg +1 -0
  283. package/src/assets/heart.svg +1 -0
  284. package/src/assets/leaf-clover4.svg +1 -0
  285. package/src/assets/leaf-clover8.svg +1 -0
  286. package/src/assets/loading-indicator.svg +1 -0
  287. package/src/assets/material-symbols-rounded.woff2 +0 -0
  288. package/src/assets/material-symbols-subset.woff2 +0 -0
  289. package/src/assets/oval.svg +1 -0
  290. package/src/assets/pentagon.svg +1 -0
  291. package/src/assets/pill.svg +1 -0
  292. package/src/assets/pixel-circle.svg +1 -0
  293. package/src/assets/pixel-triangle.svg +1 -0
  294. package/src/assets/puffy-diamond.svg +1 -0
  295. package/src/assets/puffy.svg +1 -0
  296. package/src/assets/semicircle.svg +1 -0
  297. package/src/assets/shapes/arch.svg +1 -0
  298. package/src/assets/shapes/arrow.svg +1 -0
  299. package/src/assets/shapes/boom.svg +1 -0
  300. package/src/assets/shapes/burst.svg +1 -0
  301. package/src/assets/shapes/circle.svg +1 -0
  302. package/src/assets/shapes/clamshell.svg +1 -0
  303. package/src/assets/shapes/diamond.svg +1 -0
  304. package/src/assets/shapes/fan.svg +1 -0
  305. package/src/assets/shapes/flower.svg +1 -0
  306. package/src/assets/shapes/gem.svg +1 -0
  307. package/src/assets/shapes/ghost-ish.svg +1 -0
  308. package/src/assets/shapes/heart.svg +1 -0
  309. package/src/assets/shapes/leaf-clover4.svg +1 -0
  310. package/src/assets/shapes/leaf-clover8.svg +1 -0
  311. package/src/assets/shapes/loading-indicator.svg +1 -0
  312. package/src/assets/shapes/oval.svg +1 -0
  313. package/src/assets/shapes/pentagon.svg +1 -0
  314. package/src/assets/shapes/pill.svg +1 -0
  315. package/src/assets/shapes/pixel-circle.svg +1 -0
  316. package/src/assets/shapes/pixel-triangle.svg +1 -0
  317. package/src/assets/shapes/puffy-diamond.svg +1 -0
  318. package/src/assets/shapes/puffy.svg +1 -0
  319. package/src/assets/shapes/semicircle.svg +1 -0
  320. package/src/assets/shapes/sided-cookie12.svg +1 -0
  321. package/src/assets/shapes/sided-cookie4.svg +1 -0
  322. package/src/assets/shapes/sided-cookie6.svg +1 -0
  323. package/src/assets/shapes/sided-cookie7.svg +1 -0
  324. package/src/assets/shapes/sided-cookie9.svg +1 -0
  325. package/src/assets/shapes/slanted.svg +1 -0
  326. package/src/assets/shapes/soft-boom.svg +1 -0
  327. package/src/assets/shapes/soft-burst.svg +1 -0
  328. package/src/assets/shapes/square.svg +1 -0
  329. package/src/assets/shapes/sunny.svg +1 -0
  330. package/src/assets/shapes/triangle.svg +1 -0
  331. package/src/assets/shapes/very-sunny.svg +1 -0
  332. package/src/assets/shapes/wavy-circle.svg +1 -0
  333. package/src/assets/shapes/wavy.svg +1 -0
  334. package/src/assets/sided-cookie12.svg +1 -0
  335. package/src/assets/sided-cookie4.svg +1 -0
  336. package/src/assets/sided-cookie6.svg +1 -0
  337. package/src/assets/sided-cookie7.svg +1 -0
  338. package/src/assets/sided-cookie9.svg +1 -0
  339. package/src/assets/slanted.svg +1 -0
  340. package/src/assets/soft-boom.svg +1 -0
  341. package/src/assets/soft-burst.svg +1 -0
  342. package/src/assets/square.svg +1 -0
  343. package/src/assets/star.svg +1 -0
  344. package/src/assets/sunny.svg +1 -0
  345. package/src/assets/triangle.svg +1 -0
  346. package/src/assets/very-sunny.svg +1 -0
  347. package/src/assets/wavy-circle.svg +1 -0
  348. package/src/assets/wavy.svg +1 -0
  349. package/src/assets.d.ts +12 -0
  350. package/src/components/_base/field-styles.ts +507 -0
  351. package/src/components/_base/index.ts +3 -0
  352. package/src/components/_base/interaction-styles.ts +125 -0
  353. package/src/components/_base/moni-element.ts +21 -0
  354. package/src/components/_base/shared-styles.ts +148 -0
  355. package/src/components/index.ts +45 -0
  356. package/src/components/loading-shapes.ts +9 -0
  357. package/src/components/moni-app-bar.test.ts +86 -0
  358. package/src/components/moni-app-bar.ts +190 -0
  359. package/src/components/moni-badge.ts +138 -0
  360. package/src/components/moni-bottom-sheet.test.ts +420 -0
  361. package/src/components/moni-bottom-sheet.ts +425 -0
  362. package/src/components/moni-button-group.test.ts +148 -0
  363. package/src/components/moni-button-group.ts +277 -0
  364. package/src/components/moni-button-segment.ts +291 -0
  365. package/src/components/moni-button.test.ts +166 -0
  366. package/src/components/moni-button.ts +709 -0
  367. package/src/components/moni-card.test.ts +83 -0
  368. package/src/components/moni-card.ts +203 -0
  369. package/src/components/moni-carousel.test.ts +238 -0
  370. package/src/components/moni-carousel.ts +1027 -0
  371. package/src/components/moni-checkbox.test.ts +78 -0
  372. package/src/components/moni-checkbox.ts +192 -0
  373. package/src/components/moni-chip.test.ts +168 -0
  374. package/src/components/moni-chip.ts +335 -0
  375. package/src/components/moni-color-field.test.ts +56 -0
  376. package/src/components/moni-color-field.ts +135 -0
  377. package/src/components/moni-context-menu.test.ts +99 -0
  378. package/src/components/moni-context-menu.ts +166 -0
  379. package/src/components/moni-dialog.ts +240 -0
  380. package/src/components/moni-divider.test.ts +42 -0
  381. package/src/components/moni-divider.ts +77 -0
  382. package/src/components/moni-expansion.ts +86 -0
  383. package/src/components/moni-fab-menu.test.ts +118 -0
  384. package/src/components/moni-fab-menu.ts +237 -0
  385. package/src/components/moni-fab.test.ts +128 -0
  386. package/src/components/moni-fab.ts +262 -0
  387. package/src/components/moni-file-field.test.ts +81 -0
  388. package/src/components/moni-file-field.ts +149 -0
  389. package/src/components/moni-icon.test.ts +70 -0
  390. package/src/components/moni-icon.ts +97 -0
  391. package/src/components/moni-list-item.test.ts +114 -0
  392. package/src/components/moni-list-item.ts +222 -0
  393. package/src/components/moni-list.ts +59 -0
  394. package/src/components/moni-loading-indicator.test.ts +41 -0
  395. package/src/components/moni-loading-indicator.ts +188 -0
  396. package/src/components/moni-menu-item.ts +85 -0
  397. package/src/components/moni-menu.test.ts +87 -0
  398. package/src/components/moni-menu.ts +287 -0
  399. package/src/components/moni-morph-modal.test.ts +286 -0
  400. package/src/components/moni-morph-modal.ts +1312 -0
  401. package/src/components/moni-nav-item.ts +243 -0
  402. package/src/components/moni-nav.test.ts +139 -0
  403. package/src/components/moni-nav.ts +266 -0
  404. package/src/components/moni-progress.test.ts +90 -0
  405. package/src/components/moni-progress.ts +322 -0
  406. package/src/components/moni-radio.test.ts +86 -0
  407. package/src/components/moni-radio.ts +196 -0
  408. package/src/components/moni-ripple.ts +146 -0
  409. package/src/components/moni-segmented-button.test.ts +99 -0
  410. package/src/components/moni-segmented-button.ts +220 -0
  411. package/src/components/moni-select-option.ts +85 -0
  412. package/src/components/moni-select.test.ts +210 -0
  413. package/src/components/moni-select.ts +1107 -0
  414. package/src/components/moni-shape.ts +128 -0
  415. package/src/components/moni-side-sheet.test.ts +128 -0
  416. package/src/components/moni-side-sheet.ts +544 -0
  417. package/src/components/moni-slider.test.ts +82 -0
  418. package/src/components/moni-slider.ts +387 -0
  419. package/src/components/moni-snackbar.test.ts +82 -0
  420. package/src/components/moni-snackbar.ts +146 -0
  421. package/src/components/moni-split-button.ts +121 -0
  422. package/src/components/moni-step.test.ts +57 -0
  423. package/src/components/moni-step.ts +155 -0
  424. package/src/components/moni-stepper.test.ts +116 -0
  425. package/src/components/moni-stepper.ts +100 -0
  426. package/src/components/moni-switch.test.ts +117 -0
  427. package/src/components/moni-switch.ts +237 -0
  428. package/src/components/moni-tab.test.ts +54 -0
  429. package/src/components/moni-tab.ts +133 -0
  430. package/src/components/moni-tabs.ts +92 -0
  431. package/src/components/moni-text-field.test.ts +115 -0
  432. package/src/components/moni-text-field.ts +149 -0
  433. package/src/components/moni-textarea.test.ts +147 -0
  434. package/src/components/moni-textarea.ts +176 -0
  435. package/src/components/moni-time-picker.test.ts +61 -0
  436. package/src/components/moni-time-picker.ts +800 -0
  437. package/src/components/moni-toolbar.test.ts +93 -0
  438. package/src/components/moni-toolbar.ts +119 -0
  439. package/src/components/moni-tooltip.test.ts +122 -0
  440. package/src/components/moni-tooltip.ts +324 -0
  441. package/src/components/moni-typography.test.ts +119 -0
  442. package/src/components/moni-typography.ts +195 -0
  443. package/src/index.ts +65 -0
  444. package/src/styles/animations.css +46 -0
  445. package/src/styles/base.css +248 -0
  446. package/src/styles/index.css +3 -0
  447. package/src/styles/tokens.css +190 -0
  448. package/src/types/svelte-runes.d.ts +7 -0
  449. package/src/utils/color.ts +170 -0
  450. package/src/utils/theme.svelte.ts +206 -0
  451. package/src/web-components.ts +5 -0
@@ -0,0 +1,258 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, css } from 'lit';
8
+ import { customElement, property, query } from 'lit/decorators.js';
9
+ import { ifDefined } from 'lit/directives/if-defined.js';
10
+ import { MoniElement, sharedStyles } from './_base/index.js';
11
+ import './moni-icon.js';
12
+ /**
13
+ * Switch styled per Material Design 3 specs.
14
+ *
15
+ * M3 measurements (`m3-docs/components/switch/specs.md`):
16
+ * - Track: 52dp × 32dp, 2dp outline, full corner radius
17
+ * - Handle (thumb): 16dp unselected, 24dp selected, 28dp pressed
18
+ * - State layer: 40dp circular ripple on hover/focus/pressed
19
+ * - Icon (optional): 16dp on selected and/or unselected handle
20
+ *
21
+ * Attributes:
22
+ * - label: text label (displayed to the right of the switch)
23
+ * - checked: present
24
+ * - disabled: present
25
+ * - icon: present → renders check/close icons inside the thumb
26
+ * - name: forwarded to input.name
27
+ * - value: forwarded to input.value
28
+ */
29
+ let MoniSwitch = class MoniSwitch extends MoniElement {
30
+ constructor() {
31
+ super(...arguments);
32
+ this.label = '';
33
+ this.checked = false;
34
+ this.disabled = false;
35
+ this.icon = false;
36
+ this.name = '';
37
+ this.value = '';
38
+ }
39
+ updated(changed) {
40
+ if (this._input) {
41
+ if (changed.has('checked'))
42
+ this._input.checked = this.checked;
43
+ if (changed.has('disabled'))
44
+ this._input.disabled = this.disabled;
45
+ }
46
+ }
47
+ _onChange(e) {
48
+ this.checked = e.target.checked;
49
+ this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));
50
+ }
51
+ static { this.styles = [
52
+ sharedStyles,
53
+ css `
54
+ :host {
55
+ display: inline-flex;
56
+ font-family: var(--font);
57
+ }
58
+
59
+ .switch {
60
+ --_thumb: 1rem; /* 16dp unselected (M3) */
61
+ --_track-w: 3.25rem; /* 52dp */
62
+ --_track-h: 2rem; /* 32dp */
63
+ inline-size: auto;
64
+ block-size: auto;
65
+ line-height: normal;
66
+ white-space: nowrap;
67
+ cursor: pointer;
68
+ display: inline-flex;
69
+ align-items: center;
70
+ direction: ltr;
71
+ }
72
+
73
+ /* Input hit area: 52dp × 32dp track */
74
+ .switch > input {
75
+ inline-size: var(--_track-w);
76
+ block-size: var(--_track-h);
77
+ opacity: 0;
78
+ cursor: pointer;
79
+ flex: none;
80
+ }
81
+
82
+ /* Text label span */
83
+ .switch > span {
84
+ display: inline-flex;
85
+ align-items: center;
86
+ color: var(--on-surface);
87
+ font-size: 0.875rem;
88
+ position: relative;
89
+ }
90
+
91
+ /* Track */
92
+ .switch > span::after {
93
+ content: "";
94
+ position: absolute;
95
+ inset: 50% auto auto 0;
96
+ background-color: var(--surface-container-highest);
97
+ border: 0.125rem solid var(--outline);
98
+ box-sizing: border-box;
99
+ inline-size: var(--_track-w);
100
+ block-size: var(--_track-h);
101
+ border-radius: var(--_track-h);
102
+ /* Shift the track to sit behind the input (input is to the left) */
103
+ transform: translate(calc(-1 * var(--_track-w)), -50%);
104
+ pointer-events: none;
105
+ transition: background-color var(--speed2), border-color var(--speed2);
106
+ }
107
+
108
+ /* Thumb (handle) */
109
+ .switch > span::before,
110
+ .switch.icon > span > i {
111
+ position: absolute;
112
+ inset: 50% auto auto 0;
113
+ display: inline-flex;
114
+ align-items: center;
115
+ justify-content: center;
116
+ border-radius: 50%;
117
+ transition: all var(--speed2);
118
+ font-size: calc(var(--_thumb) - 0.25rem);
119
+ user-select: none;
120
+ min-inline-size: var(--_thumb);
121
+ min-block-size: var(--_thumb);
122
+ content: "";
123
+ color: var(--on-surface-variant);
124
+ background-color: var(--outline);
125
+ /* Unchecked: 16dp thumb sits 2dp from track start */
126
+ transform: translate(calc(-1 * var(--_track-w) + 0.25rem), -50%);
127
+ z-index: 2;
128
+ pointer-events: none;
129
+ }
130
+
131
+ /* Icon mode uses a 24dp thumb at rest */
132
+ .switch.icon > span > i {
133
+ --_thumb: 1.5rem;
134
+ transform: translate(calc(-1 * var(--_track-w) + 0.25rem), -50%);
135
+ font-family: var(--font-icon);
136
+ }
137
+
138
+ /* 40dp circular state layer behind the thumb on hover/focus */
139
+ .switch > span::before,
140
+ .switch.icon > span > i {
141
+ box-shadow: 0 0 0 0 transparent;
142
+ }
143
+ .switch > input:not(:disabled):is(:focus, :hover) + span::before,
144
+ .switch.icon > input:not(:disabled):is(:focus, :hover) + span > i {
145
+ box-shadow: 0 0 0 0.5rem color-mix(in srgb, var(--on-surface) 8%, transparent);
146
+ }
147
+ .switch > input:not(:disabled):is(:focus, :hover):checked + span::before,
148
+ .switch.icon > input:not(:disabled):is(:focus, :hover):checked + span > i {
149
+ box-shadow: 0 0 0 0.5rem color-mix(in srgb, var(--primary) 12%, transparent);
150
+ }
151
+
152
+ /* Checked: track fills with primary */
153
+ .switch > input:checked + span::after {
154
+ border: none;
155
+ background-color: var(--primary);
156
+ }
157
+
158
+ /* Checked: thumb grows to 24dp and slides right */
159
+ .switch > input:checked + span::before {
160
+ --_thumb: 1.5rem;
161
+ content: "";
162
+ color: var(--primary);
163
+ background-color: var(--on-primary);
164
+ transform: translate(calc(-1.75rem), -50%);
165
+ }
166
+
167
+ /* Checked icon mode: show check icon */
168
+ .switch.icon > input:checked + span > i {
169
+ content: "check";
170
+ color: var(--primary);
171
+ background-color: var(--on-primary);
172
+ transform: translate(-1.75rem, -50%);
173
+ font-family: var(--font-icon);
174
+ }
175
+
176
+ /* Active (pressed) states: 28dp thumb */
177
+ .switch > input:active:not(:disabled) + span::before,
178
+ .switch.icon > input:active:not(:disabled) + span > i {
179
+ --_thumb: 1.75rem;
180
+ transform: translate(calc(-1 * var(--_track-w) + 0.25rem), -50%);
181
+ }
182
+
183
+ .switch > input:active:checked:not(:disabled) + span::before,
184
+ .switch.icon > input:active:checked:not(:disabled) + span > i {
185
+ --_thumb: 1.75rem;
186
+ transform: translate(-1.625rem, -50%);
187
+ }
188
+
189
+ /* Icon mode: toggle visibility of close/check icons */
190
+ .icon > input:checked + span > i:first-child,
191
+ .icon > span > i:last-child {
192
+ opacity: 0;
193
+ }
194
+
195
+ .icon > input:checked + span > i:last-child,
196
+ .icon > span > i:first-child {
197
+ opacity: 1;
198
+ }
199
+
200
+ /* Disabled */
201
+ .switch > input:disabled + span {
202
+ opacity: 0.5;
203
+ cursor: not-allowed;
204
+ }
205
+
206
+ /* Focus outline on the track */
207
+ .switch > :focus-visible + span::after {
208
+ outline: 0.125rem solid var(--primary);
209
+ outline-offset: 0.25rem;
210
+ }
211
+ `
212
+ ]; }
213
+ render() {
214
+ return html `<label class=${this.icon ? 'switch icon' : 'switch'} part="switch">
215
+ <input
216
+ type="checkbox"
217
+ role="switch"
218
+ .checked=${this.checked}
219
+ ?disabled=${this.disabled}
220
+ name=${ifDefined(this.name || undefined)}
221
+ value=${ifDefined(this.value || undefined)}
222
+ @change=${this._onChange}
223
+ />
224
+ <span>
225
+ ${this.icon ? html `<i>close</i><i>check</i>` : ''}
226
+ ${this.label
227
+ ? html `<span class="label" part="label">&nbsp;${this.label}</span>`
228
+ : html `<slot></slot>`}
229
+ </span>
230
+ </label>`;
231
+ }
232
+ };
233
+ __decorate([
234
+ property({ reflect: true })
235
+ ], MoniSwitch.prototype, "label", void 0);
236
+ __decorate([
237
+ property({ type: Boolean, reflect: true })
238
+ ], MoniSwitch.prototype, "checked", void 0);
239
+ __decorate([
240
+ property({ type: Boolean, reflect: true })
241
+ ], MoniSwitch.prototype, "disabled", void 0);
242
+ __decorate([
243
+ property({ type: Boolean, reflect: true })
244
+ ], MoniSwitch.prototype, "icon", void 0);
245
+ __decorate([
246
+ property({ reflect: true })
247
+ ], MoniSwitch.prototype, "name", void 0);
248
+ __decorate([
249
+ property({ reflect: true })
250
+ ], MoniSwitch.prototype, "value", void 0);
251
+ __decorate([
252
+ query('input')
253
+ ], MoniSwitch.prototype, "_input", void 0);
254
+ MoniSwitch = __decorate([
255
+ customElement('moni-switch')
256
+ ], MoniSwitch);
257
+ export { MoniSwitch };
258
+ export default MoniSwitch;
@@ -0,0 +1,27 @@
1
+ import { MoniElement } from './_base/index.js';
2
+ import './moni-icon.js';
3
+ /**
4
+ * Visual-only tab. Renders an `<a>` styled with the BeerCSS `.tabs > a`
5
+ * helper.
6
+ *
7
+ * Attributes:
8
+ * - active: present → active style
9
+ * - icon: Material Symbols name
10
+ * - label: tab text
11
+ * - href: link target
12
+ */
13
+ export declare class MoniTab extends MoniElement {
14
+ active: boolean;
15
+ icon: string;
16
+ label: string;
17
+ href: string;
18
+ static styles: import("lit").CSSResult[];
19
+ render(): import("lit-html").TemplateResult<1>;
20
+ }
21
+ declare global {
22
+ interface HTMLElementTagNameMap {
23
+ 'moni-tab': MoniTab;
24
+ }
25
+ }
26
+ export default MoniTab;
27
+ //# sourceMappingURL=moni-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moni-tab.d.ts","sourceRoot":"","sources":["../../src/components/moni-tab.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,gBAAgB,CAAC;AAExB;;;;;;;;;GASG;AACH,qBACa,OAAQ,SAAQ,WAAW;IACK,MAAM,UAAS;IAC9B,IAAI,SAAM;IACV,KAAK,SAAM;IACX,IAAI,SAAO;IAExC,OAAgB,MAAM,4BAuFpB;IAEO,MAAM;CAaf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,UAAU,EAAE,OAAO,CAAC;KACpB;CACD;AAED,eAAe,OAAO,CAAC"}
@@ -0,0 +1,147 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, css } from 'lit';
8
+ import { customElement, property } from 'lit/decorators.js';
9
+ import { MoniElement, sharedStyles } from './_base/index.js';
10
+ import './moni-icon.js';
11
+ /**
12
+ * Visual-only tab. Renders an `<a>` styled with the BeerCSS `.tabs > a`
13
+ * helper.
14
+ *
15
+ * Attributes:
16
+ * - active: present → active style
17
+ * - icon: Material Symbols name
18
+ * - label: tab text
19
+ * - href: link target
20
+ */
21
+ let MoniTab = class MoniTab extends MoniElement {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.active = false;
25
+ this.icon = '';
26
+ this.label = '';
27
+ this.href = '#';
28
+ }
29
+ static { this.styles = [
30
+ sharedStyles,
31
+ css `
32
+ :host {
33
+ display: inline-flex;
34
+ font-family: var(--font);
35
+ }
36
+
37
+ :host-context(moni-tabs[vertical]) {
38
+ display: flex;
39
+ inline-size: 100%;
40
+ }
41
+
42
+ a {
43
+ position: relative;
44
+ display: flex;
45
+ font-size: 0.875rem;
46
+ font-weight: 500;
47
+ color: var(--on-surface-variant);
48
+ padding: 0.5rem 1rem;
49
+ text-align: center;
50
+ min-block-size: 3rem;
51
+ inline-size: 100%;
52
+ gap: 0.25rem;
53
+ text-decoration: none;
54
+ align-items: center;
55
+ justify-content: center;
56
+ cursor: pointer;
57
+ transition: color var(--speed2);
58
+ }
59
+
60
+ :host-context(moni-tabs[vertical]) a {
61
+ flex-direction: column;
62
+ gap: 0.25rem;
63
+ min-block-size: 4.5rem;
64
+ border-inline-end: 0.125rem solid transparent;
65
+ border-block-end: none;
66
+ }
67
+
68
+ a:hover {
69
+ color: var(--primary);
70
+ }
71
+
72
+ a.active,
73
+ a.active > * {
74
+ color: var(--primary);
75
+ }
76
+
77
+ a.active::before {
78
+ content: '';
79
+ position: absolute;
80
+ inset: auto 0 0 0;
81
+ /* M3 Expressive: indicator thickness 3dp. */
82
+ block-size: 0.1875rem;
83
+ /* M3 Expressive default: full tab width. */
84
+ border-radius: 0.75rem;
85
+ background-color: var(--primary);
86
+ }
87
+
88
+ :host-context(moni-tabs[vertical]) a.active::before {
89
+ inset: 0 0 0 auto;
90
+ inline-size: 0.1875rem;
91
+ block-size: auto;
92
+ }
93
+
94
+ /* M3 indicator-size='min': 24dp tall (centered on tab) with
95
+ 8dp top/bottom radius — matches M3 spec § Indicator anatomy. */
96
+ :host-context(moni-tabs[indicator-size='min']) a.active::before {
97
+ margin: 0 auto;
98
+ max-inline-size: min(100%, 4rem);
99
+ block-size: 1.5rem;
100
+ border-radius: 0.5rem;
101
+ }
102
+
103
+ :host-context(moni-tabs[vertical][indicator-size='min'])
104
+ a.active::before {
105
+ margin: auto 0;
106
+ max-block-size: 4rem;
107
+ max-inline-size: 0.1875rem;
108
+ border-radius: 0.5rem;
109
+ }
110
+
111
+ /* M3 indicator-size='max': full tab height, no rounding. */
112
+ :host-context(moni-tabs[indicator-size='max']) a.active::before {
113
+ border-radius: 0;
114
+ }
115
+ `
116
+ ]; }
117
+ render() {
118
+ return html `<a
119
+ href=${this.href || '#'}
120
+ class=${this.active ? 'active' : ''}
121
+ part="tab"
122
+ aria-selected=${this.active}
123
+ >
124
+ ${this.icon
125
+ ? html `<moni-icon name="${this.icon}" part="icon"></moni-icon>`
126
+ : html `<slot name="icon"></slot>`}
127
+ <span part="label"><slot>${this.label}</slot></span>
128
+ </a>`;
129
+ }
130
+ };
131
+ __decorate([
132
+ property({ type: Boolean, reflect: true })
133
+ ], MoniTab.prototype, "active", void 0);
134
+ __decorate([
135
+ property({ reflect: true })
136
+ ], MoniTab.prototype, "icon", void 0);
137
+ __decorate([
138
+ property({ reflect: true })
139
+ ], MoniTab.prototype, "label", void 0);
140
+ __decorate([
141
+ property({ reflect: true })
142
+ ], MoniTab.prototype, "href", void 0);
143
+ MoniTab = __decorate([
144
+ customElement('moni-tab')
145
+ ], MoniTab);
146
+ export { MoniTab };
147
+ export default MoniTab;
@@ -0,0 +1,31 @@
1
+ import { MoniElement } from './_base/index.js';
2
+ /**
3
+ * Visual-only tab bar. Renders a `<nav>` styled with the BeerCSS `.tabs`
4
+ * helper.
5
+ *
6
+ * Attributes:
7
+ * - mode: primary (default) | secondary
8
+ * - scrollable: present → overflow-x: auto
9
+ * - align: default (space-around) | left | center | right
10
+ * - indicator: default (full) | min | max
11
+ * - vertical: present → icon above label
12
+ *
13
+ * Slots:
14
+ * - default: <moni-tab> children
15
+ */
16
+ export declare class MoniTabs extends MoniElement {
17
+ mode: 'primary' | 'secondary';
18
+ scrollable: boolean;
19
+ vertical: boolean;
20
+ align: 'default' | 'left' | 'center' | 'right';
21
+ indicatorSize: 'default' | 'min' | 'max';
22
+ static styles: import("lit").CSSResult[];
23
+ render(): import("lit-html").TemplateResult<1>;
24
+ }
25
+ declare global {
26
+ interface HTMLElementTagNameMap {
27
+ 'moni-tabs': MoniTabs;
28
+ }
29
+ }
30
+ export default MoniTabs;
31
+ //# sourceMappingURL=moni-tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moni-tabs.d.ts","sourceRoot":"","sources":["../../src/components/moni-tabs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAE7D;;;;;;;;;;;;;GAaG;AACH,qBACa,QAAS,SAAQ,WAAW;IAExC,IAAI,EAAE,SAAS,GAAG,WAAW,CAAa;IACE,UAAU,UAAS;IACnB,QAAQ,UAAS;IAE7D,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAa;IAE3D,aAAa,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK,CAAa;IAErD,OAAgB,MAAM,4BAsCpB;IAEO,MAAM;CAcf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,WAAW,EAAE,QAAQ,CAAC;KACtB;CACD;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,106 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, css } from 'lit';
8
+ import { customElement, property } from 'lit/decorators.js';
9
+ import { MoniElement, sharedStyles } from './_base/index.js';
10
+ /**
11
+ * Visual-only tab bar. Renders a `<nav>` styled with the BeerCSS `.tabs`
12
+ * helper.
13
+ *
14
+ * Attributes:
15
+ * - mode: primary (default) | secondary
16
+ * - scrollable: present → overflow-x: auto
17
+ * - align: default (space-around) | left | center | right
18
+ * - indicator: default (full) | min | max
19
+ * - vertical: present → icon above label
20
+ *
21
+ * Slots:
22
+ * - default: <moni-tab> children
23
+ */
24
+ let MoniTabs = class MoniTabs extends MoniElement {
25
+ constructor() {
26
+ super(...arguments);
27
+ this.mode = 'primary';
28
+ this.scrollable = false;
29
+ this.vertical = false;
30
+ this.align = 'default';
31
+ this.indicatorSize = 'default';
32
+ }
33
+ static { this.styles = [
34
+ sharedStyles,
35
+ css `
36
+ :host {
37
+ display: block;
38
+ font-family: var(--font);
39
+ }
40
+
41
+ nav {
42
+ display: flex;
43
+ white-space: nowrap;
44
+ border-block-end: 0.0625rem solid var(--surface-variant);
45
+ border-radius: 0;
46
+ overflow-x: auto;
47
+ }
48
+
49
+ nav.left-align {
50
+ justify-content: flex-start;
51
+ }
52
+ nav.center-align {
53
+ justify-content: center;
54
+ }
55
+ nav.right-align {
56
+ justify-content: flex-end;
57
+ }
58
+ :host(:not([align])) nav,
59
+ nav:not(.left-align):not(.center-align):not(.right-align) {
60
+ justify-content: space-around;
61
+ }
62
+
63
+ :host([vertical]) nav {
64
+ flex-direction: column;
65
+ border-block-end: none;
66
+ border-inline-end: 0.0625rem solid var(--surface-variant);
67
+ overflow-x: visible;
68
+ overflow-y: auto;
69
+ }
70
+ `
71
+ ]; }
72
+ render() {
73
+ const classes = [
74
+ 'tabs',
75
+ this.align === 'default' ? '' : `${this.align}-align`,
76
+ this.indicatorSize === 'default' ? '' : this.indicatorSize,
77
+ this.mode,
78
+ this.vertical ? 'vertical' : ''
79
+ ]
80
+ .filter(Boolean)
81
+ .join(' ');
82
+ return html `<nav class=${classes} part="tabs">
83
+ <slot></slot>
84
+ </nav>`;
85
+ }
86
+ };
87
+ __decorate([
88
+ property({ reflect: true })
89
+ ], MoniTabs.prototype, "mode", void 0);
90
+ __decorate([
91
+ property({ type: Boolean, reflect: true })
92
+ ], MoniTabs.prototype, "scrollable", void 0);
93
+ __decorate([
94
+ property({ type: Boolean, reflect: true })
95
+ ], MoniTabs.prototype, "vertical", void 0);
96
+ __decorate([
97
+ property({ reflect: true })
98
+ ], MoniTabs.prototype, "align", void 0);
99
+ __decorate([
100
+ property({ reflect: true, attribute: 'indicator-size' })
101
+ ], MoniTabs.prototype, "indicatorSize", void 0);
102
+ MoniTabs = __decorate([
103
+ customElement('moni-tabs')
104
+ ], MoniTabs);
105
+ export { MoniTabs };
106
+ export default MoniTabs;
@@ -0,0 +1,46 @@
1
+ import { MoniElement } from './_base/index.js';
2
+ import './moni-icon.js';
3
+ import './moni-progress.js';
4
+ /**
5
+ * Visual-only text field. Renders the `.field` family of BeerCSS helpers
6
+ * with a native `<input>`.
7
+ *
8
+ * This component is **visual-only**: it does NOT listen to `@input` to
9
+ * sync the `value` attribute back from the underlying input. Consumers
10
+ * either use form submission or wire their own change handling.
11
+ *
12
+ * Attributes:
13
+ * - name, label, value, variant, size, shape, type, icon, trailing-icon,
14
+ * prefix, suffix, helper, error, error-text, disabled, placeholder — see below.
15
+ * - loading: present → shows indeterminate circular progress
16
+ */
17
+ export declare class MoniTextField extends MoniElement {
18
+ name: string;
19
+ label: string;
20
+ variant: 'filled' | 'outlined';
21
+ size: 'small' | 'medium' | 'large' | 'extra';
22
+ shape: 'round' | 'square' | 'no-round';
23
+ type: 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';
24
+ icon: string;
25
+ trailingIcon: string;
26
+ prefix: string;
27
+ suffix: string;
28
+ helper: string;
29
+ errorText: string;
30
+ error: boolean;
31
+ loading: boolean;
32
+ disabled: boolean;
33
+ value: string;
34
+ placeholder: string;
35
+ private _input;
36
+ updated(changed: Map<string, unknown>): void;
37
+ static styles: import("lit").CSSResult[];
38
+ render(): import("lit-html").TemplateResult<1>;
39
+ }
40
+ declare global {
41
+ interface HTMLElementTagNameMap {
42
+ 'moni-text-field': MoniTextField;
43
+ }
44
+ }
45
+ export default MoniTextField;
46
+ //# sourceMappingURL=moni-text-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moni-text-field.d.ts","sourceRoot":"","sources":["../../src/components/moni-text-field.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAA6B,MAAM,kBAAkB,CAAC;AAC1E,OAAO,gBAAgB,CAAC;AACxB,OAAO,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;GAYG;AACH,qBACa,aAAc,SAAQ,WAAW;IAChB,IAAI,SAAM;IACV,KAAK,SAAM;IACX,OAAO,EAAE,QAAQ,GAAG,UAAU,CAAY;IAEvE,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAY;IAExD,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAc;IAEpD,IAAI,EACD,MAAM,GACN,UAAU,GACV,OAAO,GACP,QAAQ,GACR,KAAK,GACL,KAAK,GACL,QAAQ,CAAU;IACQ,IAAI,SAAM;IACkB,YAAY,SAAM;IAC9C,MAAM,SAAM;IACZ,MAAM,SAAM;IACZ,MAAM,SAAM;IACa,SAAS,SAAM;IACzB,KAAK,UAAS;IACd,OAAO,UAAS;IAChB,QAAQ,UAAS;IAChC,KAAK,SAAM;IACX,WAAW,SAAM;IAE9B,OAAO,CAAC,MAAM,CAAoB;IAEzC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAO9C,OAAgB,MAAM,4BAA+B;IAE5C,MAAM;CA8Ef;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,iBAAiB,EAAE,aAAa,CAAC;KACjC;CACD;AAED,eAAe,aAAa,CAAC"}