@flitsmeister/design-system 2.2.36 → 3.0.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 (572) hide show
  1. package/README.md +33 -52
  2. package/dist/fm-button/fm-button-core.d.ts +25 -0
  3. package/dist/fm-button/fm-button-core.d.ts.map +1 -0
  4. package/dist/fm-button/fm-button-core.js +23 -0
  5. package/dist/fm-button/fm-button-core.js.map +1 -0
  6. package/dist/fm-button/fm-button.d.ts +83 -0
  7. package/dist/fm-button/fm-button.d.ts.map +1 -0
  8. package/dist/fm-button/fm-button.js +256 -0
  9. package/dist/fm-button/fm-button.js.map +1 -0
  10. package/dist/fm-button/fm-button.style.d.ts +2 -0
  11. package/dist/fm-button/fm-button.style.d.ts.map +1 -0
  12. package/dist/fm-button/fm-button.style.js +395 -0
  13. package/dist/fm-button/fm-button.style.js.map +1 -0
  14. package/dist/fm-dropdown/fm-dropdown-core.d.ts +34 -0
  15. package/dist/fm-dropdown/fm-dropdown-core.d.ts.map +1 -0
  16. package/dist/fm-dropdown/fm-dropdown-core.js +137 -0
  17. package/dist/fm-dropdown/fm-dropdown-core.js.map +1 -0
  18. package/dist/fm-dropdown/fm-dropdown-mobile.d.ts +11 -0
  19. package/dist/fm-dropdown/fm-dropdown-mobile.d.ts.map +1 -0
  20. package/dist/fm-dropdown/fm-dropdown-mobile.js +47 -0
  21. package/dist/fm-dropdown/fm-dropdown-mobile.js.map +1 -0
  22. package/dist/fm-dropdown/fm-dropdown.d.ts +107 -0
  23. package/dist/fm-dropdown/fm-dropdown.d.ts.map +1 -0
  24. package/dist/fm-dropdown/fm-dropdown.js +727 -0
  25. package/dist/fm-dropdown/fm-dropdown.js.map +1 -0
  26. package/dist/fm-dropdown/fm-dropdown.style.d.ts +2 -0
  27. package/dist/fm-dropdown/fm-dropdown.style.d.ts.map +1 -0
  28. package/dist/fm-dropdown/fm-dropdown.style.js +480 -0
  29. package/dist/fm-dropdown/fm-dropdown.style.js.map +1 -0
  30. package/dist/fm-icon/all.d.ts +6 -0
  31. package/dist/fm-icon/all.d.ts.map +1 -0
  32. package/dist/fm-icon/all.js +11 -0
  33. package/dist/fm-icon/all.js.map +1 -0
  34. package/dist/fm-icon/fm-icon.d.ts +47 -0
  35. package/dist/fm-icon/fm-icon.d.ts.map +1 -0
  36. package/dist/fm-icon/fm-icon.js +100 -0
  37. package/dist/fm-icon/fm-icon.js.map +1 -0
  38. package/dist/fm-icon/fm-icon.style.d.ts +2 -0
  39. package/dist/fm-icon/fm-icon.style.d.ts.map +1 -0
  40. package/dist/fm-icon/fm-icon.style.js +102 -0
  41. package/dist/fm-icon/fm-icon.style.js.map +1 -0
  42. package/dist/fm-icon/icon-registry.d.ts +4 -0
  43. package/dist/fm-icon/icon-registry.d.ts.map +1 -0
  44. package/dist/fm-icon/icon-registry.generated.d.ts +9 -0
  45. package/dist/fm-icon/icon-registry.generated.d.ts.map +1 -0
  46. package/dist/fm-icon/icon-registry.generated.js +96 -0
  47. package/dist/fm-icon/icon-registry.generated.js.map +1 -0
  48. package/dist/fm-icon/icon-registry.js +11 -0
  49. package/dist/fm-icon/icon-registry.js.map +1 -0
  50. package/dist/fm-icon/icons/bold-add.d.ts +5 -0
  51. package/dist/fm-icon/icons/bold-add.d.ts.map +1 -0
  52. package/dist/fm-icon/icons/bold-add.js +6 -0
  53. package/dist/fm-icon/icons/bold-add.js.map +1 -0
  54. package/dist/fm-icon/icons/bold-check.d.ts +5 -0
  55. package/dist/fm-icon/icons/bold-check.d.ts.map +1 -0
  56. package/dist/fm-icon/icons/bold-check.js +6 -0
  57. package/dist/fm-icon/icons/bold-check.js.map +1 -0
  58. package/dist/fm-icon/icons/bold-checkbox-checked.d.ts +5 -0
  59. package/dist/fm-icon/icons/bold-checkbox-checked.d.ts.map +1 -0
  60. package/dist/fm-icon/icons/bold-checkbox-checked.js +6 -0
  61. package/dist/fm-icon/icons/bold-checkbox-checked.js.map +1 -0
  62. package/dist/fm-icon/icons/bold-checkbox-unchecked.d.ts +5 -0
  63. package/dist/fm-icon/icons/bold-checkbox-unchecked.d.ts.map +1 -0
  64. package/dist/fm-icon/icons/bold-checkbox-unchecked.js +6 -0
  65. package/dist/fm-icon/icons/bold-checkbox-unchecked.js.map +1 -0
  66. package/dist/fm-icon/icons/bold-chevron-backward.d.ts +5 -0
  67. package/dist/fm-icon/icons/bold-chevron-backward.d.ts.map +1 -0
  68. package/dist/fm-icon/icons/bold-chevron-backward.js +6 -0
  69. package/dist/fm-icon/icons/bold-chevron-backward.js.map +1 -0
  70. package/dist/fm-icon/icons/bold-chevron-down.d.ts +5 -0
  71. package/dist/fm-icon/icons/bold-chevron-down.d.ts.map +1 -0
  72. package/dist/fm-icon/icons/bold-chevron-down.js +6 -0
  73. package/dist/fm-icon/icons/bold-chevron-down.js.map +1 -0
  74. package/dist/fm-icon/icons/bold-chevron-forward.d.ts +5 -0
  75. package/dist/fm-icon/icons/bold-chevron-forward.d.ts.map +1 -0
  76. package/dist/fm-icon/icons/bold-chevron-forward.js +6 -0
  77. package/dist/fm-icon/icons/bold-chevron-forward.js.map +1 -0
  78. package/dist/fm-icon/icons/bold-chevron-up.d.ts +5 -0
  79. package/dist/fm-icon/icons/bold-chevron-up.d.ts.map +1 -0
  80. package/dist/fm-icon/icons/bold-chevron-up.js +6 -0
  81. package/dist/fm-icon/icons/bold-chevron-up.js.map +1 -0
  82. package/dist/fm-icon/icons/bold-close-1.d.ts +5 -0
  83. package/dist/fm-icon/icons/bold-close-1.d.ts.map +1 -0
  84. package/dist/fm-icon/icons/bold-close-1.js +6 -0
  85. package/dist/fm-icon/icons/bold-close-1.js.map +1 -0
  86. package/dist/fm-icon/icons/bold-close.d.ts +5 -0
  87. package/dist/fm-icon/icons/bold-close.d.ts.map +1 -0
  88. package/dist/fm-icon/icons/bold-close.js +6 -0
  89. package/dist/fm-icon/icons/bold-close.js.map +1 -0
  90. package/dist/fm-icon/icons/bold-dot.d.ts +5 -0
  91. package/dist/fm-icon/icons/bold-dot.d.ts.map +1 -0
  92. package/dist/fm-icon/icons/bold-dot.js +6 -0
  93. package/dist/fm-icon/icons/bold-dot.js.map +1 -0
  94. package/dist/fm-icon/icons/bold-open-external.d.ts +5 -0
  95. package/dist/fm-icon/icons/bold-open-external.d.ts.map +1 -0
  96. package/dist/fm-icon/icons/bold-open-external.js +6 -0
  97. package/dist/fm-icon/icons/bold-open-external.js.map +1 -0
  98. package/dist/fm-icon/icons/bold-prominent-1.d.ts +5 -0
  99. package/dist/fm-icon/icons/bold-prominent-1.d.ts.map +1 -0
  100. package/dist/fm-icon/icons/bold-prominent-1.js +6 -0
  101. package/dist/fm-icon/icons/bold-prominent-1.js.map +1 -0
  102. package/dist/fm-icon/icons/bold-prominent.d.ts +5 -0
  103. package/dist/fm-icon/icons/bold-prominent.d.ts.map +1 -0
  104. package/dist/fm-icon/icons/bold-prominent.js +6 -0
  105. package/dist/fm-icon/icons/bold-prominent.js.map +1 -0
  106. package/dist/fm-icon/icons/bold-question.d.ts +5 -0
  107. package/dist/fm-icon/icons/bold-question.d.ts.map +1 -0
  108. package/dist/fm-icon/icons/bold-question.js +6 -0
  109. package/dist/fm-icon/icons/bold-question.js.map +1 -0
  110. package/dist/fm-icon/icons/bold-remove.d.ts +5 -0
  111. package/dist/fm-icon/icons/bold-remove.d.ts.map +1 -0
  112. package/dist/fm-icon/icons/bold-remove.js +6 -0
  113. package/dist/fm-icon/icons/bold-remove.js.map +1 -0
  114. package/dist/fm-icon/icons/bold-search.d.ts +5 -0
  115. package/dist/fm-icon/icons/bold-search.d.ts.map +1 -0
  116. package/dist/fm-icon/icons/bold-search.js +6 -0
  117. package/dist/fm-icon/icons/bold-search.js.map +1 -0
  118. package/dist/fm-icon/icons/bold-spinner.d.ts +5 -0
  119. package/dist/fm-icon/icons/bold-spinner.d.ts.map +1 -0
  120. package/dist/fm-icon/icons/bold-spinner.js +6 -0
  121. package/dist/fm-icon/icons/bold-spinner.js.map +1 -0
  122. package/dist/fm-icon/icons/bold-warning.d.ts +5 -0
  123. package/dist/fm-icon/icons/bold-warning.d.ts.map +1 -0
  124. package/dist/fm-icon/icons/bold-warning.js +6 -0
  125. package/dist/fm-icon/icons/bold-warning.js.map +1 -0
  126. package/dist/fm-icon/icons/duotone-check.d.ts +5 -0
  127. package/dist/fm-icon/icons/duotone-check.d.ts.map +1 -0
  128. package/dist/fm-icon/icons/duotone-check.js +6 -0
  129. package/dist/fm-icon/icons/duotone-check.js.map +1 -0
  130. package/dist/fm-icon/icons/filled-achievements.d.ts +5 -0
  131. package/dist/fm-icon/icons/filled-achievements.d.ts.map +1 -0
  132. package/dist/fm-icon/icons/filled-achievements.js +6 -0
  133. package/dist/fm-icon/icons/filled-achievements.js.map +1 -0
  134. package/dist/fm-icon/icons/filled-add.d.ts +5 -0
  135. package/dist/fm-icon/icons/filled-add.d.ts.map +1 -0
  136. package/dist/fm-icon/icons/filled-add.js +6 -0
  137. package/dist/fm-icon/icons/filled-add.js.map +1 -0
  138. package/dist/fm-icon/icons/filled-app-settings.d.ts +5 -0
  139. package/dist/fm-icon/icons/filled-app-settings.d.ts.map +1 -0
  140. package/dist/fm-icon/icons/filled-app-settings.js +6 -0
  141. package/dist/fm-icon/icons/filled-app-settings.js.map +1 -0
  142. package/dist/fm-icon/icons/filled-calendar.d.ts +5 -0
  143. package/dist/fm-icon/icons/filled-calendar.d.ts.map +1 -0
  144. package/dist/fm-icon/icons/filled-calendar.js +6 -0
  145. package/dist/fm-icon/icons/filled-calendar.js.map +1 -0
  146. package/dist/fm-icon/icons/filled-car-simplified.d.ts +5 -0
  147. package/dist/fm-icon/icons/filled-car-simplified.d.ts.map +1 -0
  148. package/dist/fm-icon/icons/filled-car-simplified.js +6 -0
  149. package/dist/fm-icon/icons/filled-car-simplified.js.map +1 -0
  150. package/dist/fm-icon/icons/filled-check.d.ts +5 -0
  151. package/dist/fm-icon/icons/filled-check.d.ts.map +1 -0
  152. package/dist/fm-icon/icons/filled-check.js +6 -0
  153. package/dist/fm-icon/icons/filled-check.js.map +1 -0
  154. package/dist/fm-icon/icons/filled-clock.d.ts +5 -0
  155. package/dist/fm-icon/icons/filled-clock.d.ts.map +1 -0
  156. package/dist/fm-icon/icons/filled-clock.js +6 -0
  157. package/dist/fm-icon/icons/filled-clock.js.map +1 -0
  158. package/dist/fm-icon/icons/filled-close.d.ts +5 -0
  159. package/dist/fm-icon/icons/filled-close.d.ts.map +1 -0
  160. package/dist/fm-icon/icons/filled-close.js +6 -0
  161. package/dist/fm-icon/icons/filled-close.js.map +1 -0
  162. package/dist/fm-icon/icons/filled-control.d.ts +5 -0
  163. package/dist/fm-icon/icons/filled-control.d.ts.map +1 -0
  164. package/dist/fm-icon/icons/filled-control.js +6 -0
  165. package/dist/fm-icon/icons/filled-control.js.map +1 -0
  166. package/dist/fm-icon/icons/filled-danger.d.ts +5 -0
  167. package/dist/fm-icon/icons/filled-danger.d.ts.map +1 -0
  168. package/dist/fm-icon/icons/filled-danger.js +6 -0
  169. package/dist/fm-icon/icons/filled-danger.js.map +1 -0
  170. package/dist/fm-icon/icons/filled-delete.d.ts +5 -0
  171. package/dist/fm-icon/icons/filled-delete.d.ts.map +1 -0
  172. package/dist/fm-icon/icons/filled-delete.js +6 -0
  173. package/dist/fm-icon/icons/filled-delete.js.map +1 -0
  174. package/dist/fm-icon/icons/filled-deviceOne.d.ts +5 -0
  175. package/dist/fm-icon/icons/filled-deviceOne.d.ts.map +1 -0
  176. package/dist/fm-icon/icons/filled-deviceOne.js +6 -0
  177. package/dist/fm-icon/icons/filled-deviceOne.js.map +1 -0
  178. package/dist/fm-icon/icons/filled-deviceTwo.d.ts +5 -0
  179. package/dist/fm-icon/icons/filled-deviceTwo.d.ts.map +1 -0
  180. package/dist/fm-icon/icons/filled-deviceTwo.js +6 -0
  181. package/dist/fm-icon/icons/filled-deviceTwo.js.map +1 -0
  182. package/dist/fm-icon/icons/filled-disputeFine.d.ts +5 -0
  183. package/dist/fm-icon/icons/filled-disputeFine.d.ts.map +1 -0
  184. package/dist/fm-icon/icons/filled-disputeFine.js +6 -0
  185. package/dist/fm-icon/icons/filled-disputeFine.js.map +1 -0
  186. package/dist/fm-icon/icons/filled-email.d.ts +5 -0
  187. package/dist/fm-icon/icons/filled-email.d.ts.map +1 -0
  188. package/dist/fm-icon/icons/filled-email.js +6 -0
  189. package/dist/fm-icon/icons/filled-email.js.map +1 -0
  190. package/dist/fm-icon/icons/filled-gasPrices.d.ts +5 -0
  191. package/dist/fm-icon/icons/filled-gasPrices.d.ts.map +1 -0
  192. package/dist/fm-icon/icons/filled-gasPrices.js +6 -0
  193. package/dist/fm-icon/icons/filled-gasPrices.js.map +1 -0
  194. package/dist/fm-icon/icons/filled-hazard.d.ts +5 -0
  195. package/dist/fm-icon/icons/filled-hazard.d.ts.map +1 -0
  196. package/dist/fm-icon/icons/filled-hazard.js +6 -0
  197. package/dist/fm-icon/icons/filled-hazard.js.map +1 -0
  198. package/dist/fm-icon/icons/filled-highway.d.ts +5 -0
  199. package/dist/fm-icon/icons/filled-highway.d.ts.map +1 -0
  200. package/dist/fm-icon/icons/filled-highway.js +6 -0
  201. package/dist/fm-icon/icons/filled-highway.js.map +1 -0
  202. package/dist/fm-icon/icons/filled-info.d.ts +5 -0
  203. package/dist/fm-icon/icons/filled-info.d.ts.map +1 -0
  204. package/dist/fm-icon/icons/filled-info.js +6 -0
  205. package/dist/fm-icon/icons/filled-info.js.map +1 -0
  206. package/dist/fm-icon/icons/filled-lock-close.d.ts +5 -0
  207. package/dist/fm-icon/icons/filled-lock-close.d.ts.map +1 -0
  208. package/dist/fm-icon/icons/filled-lock-close.js +6 -0
  209. package/dist/fm-icon/icons/filled-lock-close.js.map +1 -0
  210. package/dist/fm-icon/icons/filled-lock-open.d.ts +5 -0
  211. package/dist/fm-icon/icons/filled-lock-open.d.ts.map +1 -0
  212. package/dist/fm-icon/icons/filled-lock-open.js +6 -0
  213. package/dist/fm-icon/icons/filled-lock-open.js.map +1 -0
  214. package/dist/fm-icon/icons/filled-lock.d.ts +5 -0
  215. package/dist/fm-icon/icons/filled-lock.d.ts.map +1 -0
  216. package/dist/fm-icon/icons/filled-lock.js +6 -0
  217. package/dist/fm-icon/icons/filled-lock.js.map +1 -0
  218. package/dist/fm-icon/icons/filled-microphone.d.ts +5 -0
  219. package/dist/fm-icon/icons/filled-microphone.d.ts.map +1 -0
  220. package/dist/fm-icon/icons/filled-microphone.js +6 -0
  221. package/dist/fm-icon/icons/filled-microphone.js.map +1 -0
  222. package/dist/fm-icon/icons/filled-notificaiton-unread.d.ts +5 -0
  223. package/dist/fm-icon/icons/filled-notificaiton-unread.d.ts.map +1 -0
  224. package/dist/fm-icon/icons/filled-notificaiton-unread.js +6 -0
  225. package/dist/fm-icon/icons/filled-notificaiton-unread.js.map +1 -0
  226. package/dist/fm-icon/icons/filled-notificaiton.d.ts +5 -0
  227. package/dist/fm-icon/icons/filled-notificaiton.d.ts.map +1 -0
  228. package/dist/fm-icon/icons/filled-notificaiton.js +6 -0
  229. package/dist/fm-icon/icons/filled-notificaiton.js.map +1 -0
  230. package/dist/fm-icon/icons/filled-parking.d.ts +5 -0
  231. package/dist/fm-icon/icons/filled-parking.d.ts.map +1 -0
  232. package/dist/fm-icon/icons/filled-parking.js +6 -0
  233. package/dist/fm-icon/icons/filled-parking.js.map +1 -0
  234. package/dist/fm-icon/icons/filled-play.d.ts +5 -0
  235. package/dist/fm-icon/icons/filled-play.d.ts.map +1 -0
  236. package/dist/fm-icon/icons/filled-play.js +6 -0
  237. package/dist/fm-icon/icons/filled-play.js.map +1 -0
  238. package/dist/fm-icon/icons/filled-question.d.ts +5 -0
  239. package/dist/fm-icon/icons/filled-question.d.ts.map +1 -0
  240. package/dist/fm-icon/icons/filled-question.js +6 -0
  241. package/dist/fm-icon/icons/filled-question.js.map +1 -0
  242. package/dist/fm-icon/icons/filled-rating-empty.d.ts +5 -0
  243. package/dist/fm-icon/icons/filled-rating-empty.d.ts.map +1 -0
  244. package/dist/fm-icon/icons/filled-rating-empty.js +6 -0
  245. package/dist/fm-icon/icons/filled-rating-empty.js.map +1 -0
  246. package/dist/fm-icon/icons/filled-rating-full.d.ts +5 -0
  247. package/dist/fm-icon/icons/filled-rating-full.d.ts.map +1 -0
  248. package/dist/fm-icon/icons/filled-rating-full.js +6 -0
  249. package/dist/fm-icon/icons/filled-rating-full.js.map +1 -0
  250. package/dist/fm-icon/icons/filled-rating-half.d.ts +5 -0
  251. package/dist/fm-icon/icons/filled-rating-half.d.ts.map +1 -0
  252. package/dist/fm-icon/icons/filled-rating-half.js +6 -0
  253. package/dist/fm-icon/icons/filled-rating-half.js.map +1 -0
  254. package/dist/fm-icon/icons/filled-remove.d.ts +5 -0
  255. package/dist/fm-icon/icons/filled-remove.d.ts.map +1 -0
  256. package/dist/fm-icon/icons/filled-remove.js +6 -0
  257. package/dist/fm-icon/icons/filled-remove.js.map +1 -0
  258. package/dist/fm-icon/icons/filled-return-location.d.ts +5 -0
  259. package/dist/fm-icon/icons/filled-return-location.d.ts.map +1 -0
  260. package/dist/fm-icon/icons/filled-return-location.js +6 -0
  261. package/dist/fm-icon/icons/filled-return-location.js.map +1 -0
  262. package/dist/fm-icon/icons/filled-support.d.ts +5 -0
  263. package/dist/fm-icon/icons/filled-support.d.ts.map +1 -0
  264. package/dist/fm-icon/icons/filled-support.js +6 -0
  265. package/dist/fm-icon/icons/filled-support.js.map +1 -0
  266. package/dist/fm-icon/icons/filled-toll.d.ts +5 -0
  267. package/dist/fm-icon/icons/filled-toll.d.ts.map +1 -0
  268. package/dist/fm-icon/icons/filled-toll.js +6 -0
  269. package/dist/fm-icon/icons/filled-toll.js.map +1 -0
  270. package/dist/fm-icon/icons/filled-tripHistory.d.ts +5 -0
  271. package/dist/fm-icon/icons/filled-tripHistory.d.ts.map +1 -0
  272. package/dist/fm-icon/icons/filled-tripHistory.js +6 -0
  273. package/dist/fm-icon/icons/filled-tripHistory.js.map +1 -0
  274. package/dist/fm-icon/icons/filled-truck.d.ts +5 -0
  275. package/dist/fm-icon/icons/filled-truck.d.ts.map +1 -0
  276. package/dist/fm-icon/icons/filled-truck.js +6 -0
  277. package/dist/fm-icon/icons/filled-truck.js.map +1 -0
  278. package/dist/fm-icon/icons/filled-user-pin.d.ts +5 -0
  279. package/dist/fm-icon/icons/filled-user-pin.d.ts.map +1 -0
  280. package/dist/fm-icon/icons/filled-user-pin.js +6 -0
  281. package/dist/fm-icon/icons/filled-user-pin.js.map +1 -0
  282. package/dist/fm-icon/icons/filled-user-profile.d.ts +5 -0
  283. package/dist/fm-icon/icons/filled-user-profile.d.ts.map +1 -0
  284. package/dist/fm-icon/icons/filled-user-profile.js +6 -0
  285. package/dist/fm-icon/icons/filled-user-profile.js.map +1 -0
  286. package/dist/fm-icon/icons/filled-warning.d.ts +5 -0
  287. package/dist/fm-icon/icons/filled-warning.d.ts.map +1 -0
  288. package/dist/fm-icon/icons/filled-warning.js +6 -0
  289. package/dist/fm-icon/icons/filled-warning.js.map +1 -0
  290. package/dist/fm-icon/icons/filled-zone-default.d.ts +5 -0
  291. package/dist/fm-icon/icons/filled-zone-default.d.ts.map +1 -0
  292. package/dist/fm-icon/icons/filled-zone-default.js +6 -0
  293. package/dist/fm-icon/icons/filled-zone-default.js.map +1 -0
  294. package/dist/fm-icon/icons/filled-zone-indoor.d.ts +5 -0
  295. package/dist/fm-icon/icons/filled-zone-indoor.d.ts.map +1 -0
  296. package/dist/fm-icon/icons/filled-zone-indoor.js +6 -0
  297. package/dist/fm-icon/icons/filled-zone-indoor.js.map +1 -0
  298. package/dist/fm-icon/icons/filled-zone-street.d.ts +5 -0
  299. package/dist/fm-icon/icons/filled-zone-street.d.ts.map +1 -0
  300. package/dist/fm-icon/icons/filled-zone-street.js +6 -0
  301. package/dist/fm-icon/icons/filled-zone-street.js.map +1 -0
  302. package/dist/fm-icon/icons/stroke-arrow-Down.d.ts +5 -0
  303. package/dist/fm-icon/icons/stroke-arrow-Down.d.ts.map +1 -0
  304. package/dist/fm-icon/icons/stroke-arrow-Down.js +6 -0
  305. package/dist/fm-icon/icons/stroke-arrow-Down.js.map +1 -0
  306. package/dist/fm-icon/icons/stroke-arrow-Up.d.ts +5 -0
  307. package/dist/fm-icon/icons/stroke-arrow-Up.d.ts.map +1 -0
  308. package/dist/fm-icon/icons/stroke-arrow-Up.js +6 -0
  309. package/dist/fm-icon/icons/stroke-arrow-Up.js.map +1 -0
  310. package/dist/fm-icon/icons/stroke-arrow-left.d.ts +5 -0
  311. package/dist/fm-icon/icons/stroke-arrow-left.d.ts.map +1 -0
  312. package/dist/fm-icon/icons/stroke-arrow-left.js +6 -0
  313. package/dist/fm-icon/icons/stroke-arrow-left.js.map +1 -0
  314. package/dist/fm-icon/icons/stroke-arrow-right.d.ts +5 -0
  315. package/dist/fm-icon/icons/stroke-arrow-right.d.ts.map +1 -0
  316. package/dist/fm-icon/icons/stroke-arrow-right.js +6 -0
  317. package/dist/fm-icon/icons/stroke-arrow-right.js.map +1 -0
  318. package/dist/fm-icon/icons/stroke-check.d.ts +5 -0
  319. package/dist/fm-icon/icons/stroke-check.d.ts.map +1 -0
  320. package/dist/fm-icon/icons/stroke-check.js +6 -0
  321. package/dist/fm-icon/icons/stroke-check.js.map +1 -0
  322. package/dist/fm-icon/icons/stroke-checkbox-checked.d.ts +5 -0
  323. package/dist/fm-icon/icons/stroke-checkbox-checked.d.ts.map +1 -0
  324. package/dist/fm-icon/icons/stroke-checkbox-checked.js +6 -0
  325. package/dist/fm-icon/icons/stroke-checkbox-checked.js.map +1 -0
  326. package/dist/fm-icon/icons/stroke-checkbox-unchecked.d.ts +5 -0
  327. package/dist/fm-icon/icons/stroke-checkbox-unchecked.d.ts.map +1 -0
  328. package/dist/fm-icon/icons/stroke-checkbox-unchecked.js +6 -0
  329. package/dist/fm-icon/icons/stroke-checkbox-unchecked.js.map +1 -0
  330. package/dist/fm-icon/icons/stroke-chevron-backward.d.ts +5 -0
  331. package/dist/fm-icon/icons/stroke-chevron-backward.d.ts.map +1 -0
  332. package/dist/fm-icon/icons/stroke-chevron-backward.js +6 -0
  333. package/dist/fm-icon/icons/stroke-chevron-backward.js.map +1 -0
  334. package/dist/fm-icon/icons/stroke-chevron-down.d.ts +5 -0
  335. package/dist/fm-icon/icons/stroke-chevron-down.d.ts.map +1 -0
  336. package/dist/fm-icon/icons/stroke-chevron-down.js +6 -0
  337. package/dist/fm-icon/icons/stroke-chevron-down.js.map +1 -0
  338. package/dist/fm-icon/icons/stroke-chevron-forward.d.ts +5 -0
  339. package/dist/fm-icon/icons/stroke-chevron-forward.d.ts.map +1 -0
  340. package/dist/fm-icon/icons/stroke-chevron-forward.js +6 -0
  341. package/dist/fm-icon/icons/stroke-chevron-forward.js.map +1 -0
  342. package/dist/fm-icon/icons/stroke-chevron-up.d.ts +5 -0
  343. package/dist/fm-icon/icons/stroke-chevron-up.d.ts.map +1 -0
  344. package/dist/fm-icon/icons/stroke-chevron-up.js +6 -0
  345. package/dist/fm-icon/icons/stroke-chevron-up.js.map +1 -0
  346. package/dist/fm-icon/icons/stroke-clock.d.ts +5 -0
  347. package/dist/fm-icon/icons/stroke-clock.d.ts.map +1 -0
  348. package/dist/fm-icon/icons/stroke-clock.js +6 -0
  349. package/dist/fm-icon/icons/stroke-clock.js.map +1 -0
  350. package/dist/fm-icon/icons/stroke-close-1.d.ts +5 -0
  351. package/dist/fm-icon/icons/stroke-close-1.d.ts.map +1 -0
  352. package/dist/fm-icon/icons/stroke-close-1.js +6 -0
  353. package/dist/fm-icon/icons/stroke-close-1.js.map +1 -0
  354. package/dist/fm-icon/icons/stroke-close.d.ts +5 -0
  355. package/dist/fm-icon/icons/stroke-close.d.ts.map +1 -0
  356. package/dist/fm-icon/icons/stroke-close.js +6 -0
  357. package/dist/fm-icon/icons/stroke-close.js.map +1 -0
  358. package/dist/fm-icon/icons/stroke-download.d.ts +5 -0
  359. package/dist/fm-icon/icons/stroke-download.d.ts.map +1 -0
  360. package/dist/fm-icon/icons/stroke-download.js +6 -0
  361. package/dist/fm-icon/icons/stroke-download.js.map +1 -0
  362. package/dist/fm-icon/icons/stroke-email.d.ts +5 -0
  363. package/dist/fm-icon/icons/stroke-email.d.ts.map +1 -0
  364. package/dist/fm-icon/icons/stroke-email.js +6 -0
  365. package/dist/fm-icon/icons/stroke-email.js.map +1 -0
  366. package/dist/fm-icon/icons/stroke-hamburger.d.ts +5 -0
  367. package/dist/fm-icon/icons/stroke-hamburger.d.ts.map +1 -0
  368. package/dist/fm-icon/icons/stroke-hamburger.js +6 -0
  369. package/dist/fm-icon/icons/stroke-hamburger.js.map +1 -0
  370. package/dist/fm-icon/icons/stroke-login.d.ts +5 -0
  371. package/dist/fm-icon/icons/stroke-login.d.ts.map +1 -0
  372. package/dist/fm-icon/icons/stroke-login.js +6 -0
  373. package/dist/fm-icon/icons/stroke-login.js.map +1 -0
  374. package/dist/fm-icon/icons/stroke-logout.d.ts +5 -0
  375. package/dist/fm-icon/icons/stroke-logout.d.ts.map +1 -0
  376. package/dist/fm-icon/icons/stroke-logout.js +6 -0
  377. package/dist/fm-icon/icons/stroke-logout.js.map +1 -0
  378. package/dist/fm-icon/icons/stroke-more.d.ts +5 -0
  379. package/dist/fm-icon/icons/stroke-more.d.ts.map +1 -0
  380. package/dist/fm-icon/icons/stroke-more.js +6 -0
  381. package/dist/fm-icon/icons/stroke-more.js.map +1 -0
  382. package/dist/fm-icon/icons/stroke-open-external.d.ts +5 -0
  383. package/dist/fm-icon/icons/stroke-open-external.d.ts.map +1 -0
  384. package/dist/fm-icon/icons/stroke-open-external.js +6 -0
  385. package/dist/fm-icon/icons/stroke-open-external.js.map +1 -0
  386. package/dist/fm-icon/icons/stroke-question.d.ts +5 -0
  387. package/dist/fm-icon/icons/stroke-question.d.ts.map +1 -0
  388. package/dist/fm-icon/icons/stroke-question.js +6 -0
  389. package/dist/fm-icon/icons/stroke-question.js.map +1 -0
  390. package/dist/fm-icon/icons/stroke-search.d.ts +5 -0
  391. package/dist/fm-icon/icons/stroke-search.d.ts.map +1 -0
  392. package/dist/fm-icon/icons/stroke-search.js +6 -0
  393. package/dist/fm-icon/icons/stroke-search.js.map +1 -0
  394. package/dist/fm-icon/icons/stroke-spinner.d.ts +5 -0
  395. package/dist/fm-icon/icons/stroke-spinner.d.ts.map +1 -0
  396. package/dist/fm-icon/icons/stroke-spinner.js +6 -0
  397. package/dist/fm-icon/icons/stroke-spinner.js.map +1 -0
  398. package/dist/fm-icon/icons/stroke-warning.d.ts +5 -0
  399. package/dist/fm-icon/icons/stroke-warning.d.ts.map +1 -0
  400. package/dist/fm-icon/icons/stroke-warning.js +6 -0
  401. package/dist/fm-icon/icons/stroke-warning.js.map +1 -0
  402. package/dist/fm-input/fm-input.d.ts +95 -0
  403. package/dist/fm-input/fm-input.d.ts.map +1 -0
  404. package/dist/fm-input/fm-input.js +343 -0
  405. package/dist/fm-input/fm-input.js.map +1 -0
  406. package/dist/fm-input/fm-input.style.d.ts +2 -0
  407. package/dist/fm-input/fm-input.style.d.ts.map +1 -0
  408. package/dist/fm-input/fm-input.style.js +221 -0
  409. package/dist/fm-input/fm-input.style.js.map +1 -0
  410. package/dist/fm-radio-input/fm-radio-input.d.ts +54 -0
  411. package/dist/fm-radio-input/fm-radio-input.d.ts.map +1 -0
  412. package/dist/fm-radio-input/fm-radio-input.js +88 -0
  413. package/dist/fm-radio-input/fm-radio-input.js.map +1 -0
  414. package/dist/fm-radio-input/fm-radio-input.style.d.ts +2 -0
  415. package/dist/fm-radio-input/fm-radio-input.style.d.ts.map +1 -0
  416. package/dist/fm-radio-input/fm-radio-input.style.js +151 -0
  417. package/dist/fm-radio-input/fm-radio-input.style.js.map +1 -0
  418. package/dist/fm-segmented-controller/fm-segmented-controller-core.d.ts +22 -0
  419. package/dist/fm-segmented-controller/fm-segmented-controller-core.d.ts.map +1 -0
  420. package/dist/fm-segmented-controller/fm-segmented-controller-core.js +64 -0
  421. package/dist/fm-segmented-controller/fm-segmented-controller-core.js.map +1 -0
  422. package/dist/fm-segmented-controller/fm-segmented-controller.d.ts +51 -0
  423. package/dist/fm-segmented-controller/fm-segmented-controller.d.ts.map +1 -0
  424. package/dist/fm-segmented-controller/fm-segmented-controller.js +166 -0
  425. package/dist/fm-segmented-controller/fm-segmented-controller.js.map +1 -0
  426. package/dist/fm-segmented-controller/fm-segmented-controller.style.d.ts +2 -0
  427. package/dist/fm-segmented-controller/fm-segmented-controller.style.d.ts.map +1 -0
  428. package/dist/fm-segmented-controller/fm-segmented-controller.style.js +197 -0
  429. package/dist/fm-segmented-controller/fm-segmented-controller.style.js.map +1 -0
  430. package/dist/fm-wizard/fm-wizard-core.d.ts +106 -0
  431. package/dist/fm-wizard/fm-wizard-core.d.ts.map +1 -0
  432. package/dist/fm-wizard/fm-wizard-core.js +263 -0
  433. package/dist/fm-wizard/fm-wizard-core.js.map +1 -0
  434. package/dist/fm-wizard/fm-wizard-node.d.ts +34 -0
  435. package/dist/fm-wizard/fm-wizard-node.d.ts.map +1 -0
  436. package/dist/fm-wizard/fm-wizard-node.js +70 -0
  437. package/dist/fm-wizard/fm-wizard-node.js.map +1 -0
  438. package/dist/fm-wizard/fm-wizard.d.ts +66 -0
  439. package/dist/fm-wizard/fm-wizard.d.ts.map +1 -0
  440. package/dist/fm-wizard/fm-wizard.js +293 -0
  441. package/dist/fm-wizard/fm-wizard.js.map +1 -0
  442. package/dist/fm-wizard/fm-wizard.style.d.ts +2 -0
  443. package/dist/fm-wizard/fm-wizard.style.d.ts.map +1 -0
  444. package/dist/fm-wizard/fm-wizard.style.js +197 -0
  445. package/dist/fm-wizard/fm-wizard.style.js.map +1 -0
  446. package/dist/index.d.ts +8 -0
  447. package/dist/index.d.ts.map +1 -0
  448. package/dist/index.js +8 -0
  449. package/dist/index.js.map +1 -0
  450. package/package.json +104 -67
  451. package/scripts/build-report.js +92 -0
  452. package/scripts/enrich-custom-elements-manifest.js +70 -0
  453. package/scripts/generate-icon-registry.js +80 -0
  454. package/scripts/install-cli.mjs +157 -0
  455. package/dist-lib/assets/style-entry-l0sNRNKZ.js +0 -1
  456. package/dist-lib/flitsmeister-design-system.es.js +0 -506
  457. package/dist-lib/flitsmeister-design-system.umd.js +0 -1
  458. package/dist-lib/main.css +0 -2
  459. package/dist-lib/style.css +0 -1
  460. package/index.js +0 -4
  461. package/tokens/schema_exports/fm-design-system/fm-design-system.css +0 -286
  462. package/tokens/schema_exports/fm-design-system/fm-design-system.json +0 -562
  463. package/tokens/schema_exports/fm-design-system/fm-design-system.xml +0 -207
  464. package/tokens/schema_exports/safedrive/safedrive.css +0 -349
  465. package/tokens/schema_exports/safedrive/safedrive.json +0 -658
  466. package/tokens/schema_exports/safedrive/safedrive.xml +0 -248
  467. package/web/components/CookieConsent.vue +0 -115
  468. package/web/components/Flag.vue +0 -47
  469. package/web/components/Icon.vue +0 -31
  470. package/web/components/LanguageSwitcher.vue +0 -77
  471. package/web/components/PermissionToggle.vue +0 -49
  472. package/web/components/button-with-loader.vue +0 -26
  473. package/web/components/fmxButton.vue +0 -287
  474. package/web/components/fmxDropdown.vue +0 -226
  475. package/web/components/fmxInput.vue +0 -319
  476. package/web/components/loader.vue +0 -22
  477. package/web/components/modal.vue +0 -61
  478. package/web/components/navbar.vue +0 -72
  479. package/web/icons/bold/add.svg +0 -3
  480. package/web/icons/bold/check.svg +0 -3
  481. package/web/icons/bold/checkbox-checked.svg +0 -4
  482. package/web/icons/bold/checkbox-unchecked.svg +0 -3
  483. package/web/icons/bold/chevron-backward.svg +0 -3
  484. package/web/icons/bold/chevron-down.svg +0 -3
  485. package/web/icons/bold/chevron-forward.svg +0 -3
  486. package/web/icons/bold/chevron-up.svg +0 -3
  487. package/web/icons/bold/close-1.svg +0 -3
  488. package/web/icons/bold/close.svg +0 -4
  489. package/web/icons/bold/dot.svg +0 -3
  490. package/web/icons/bold/open-external.svg +0 -3
  491. package/web/icons/bold/prominent-1.svg +0 -3
  492. package/web/icons/bold/prominent.svg +0 -3
  493. package/web/icons/bold/question.svg +0 -4
  494. package/web/icons/bold/remove.svg +0 -3
  495. package/web/icons/bold/search.svg +0 -3
  496. package/web/icons/bold/spinner.svg +0 -3
  497. package/web/icons/bold/warning.svg +0 -3
  498. package/web/icons/duotone/check.svg +0 -4
  499. package/web/icons/filled/achievements.svg +0 -3
  500. package/web/icons/filled/add.svg +0 -3
  501. package/web/icons/filled/app-settings.svg +0 -3
  502. package/web/icons/filled/calendar.svg +0 -7
  503. package/web/icons/filled/car-simplified.svg +0 -3
  504. package/web/icons/filled/check.svg +0 -3
  505. package/web/icons/filled/clock.svg +0 -3
  506. package/web/icons/filled/close.svg +0 -3
  507. package/web/icons/filled/control.svg +0 -7
  508. package/web/icons/filled/danger.svg +0 -3
  509. package/web/icons/filled/delete.svg +0 -3
  510. package/web/icons/filled/deviceOne.svg +0 -3
  511. package/web/icons/filled/deviceTwo.svg +0 -3
  512. package/web/icons/filled/disputeFine.svg +0 -3
  513. package/web/icons/filled/email.svg +0 -3
  514. package/web/icons/filled/gasPrices.svg +0 -3
  515. package/web/icons/filled/hazard.svg +0 -3
  516. package/web/icons/filled/highway.svg +0 -3
  517. package/web/icons/filled/info.svg +0 -3
  518. package/web/icons/filled/lock-close.svg +0 -3
  519. package/web/icons/filled/lock-open.svg +0 -3
  520. package/web/icons/filled/lock.svg +0 -3
  521. package/web/icons/filled/microphone.svg +0 -4
  522. package/web/icons/filled/notificaiton-unread.svg +0 -4
  523. package/web/icons/filled/notificaiton.svg +0 -3
  524. package/web/icons/filled/parking.svg +0 -3
  525. package/web/icons/filled/play.svg +0 -8
  526. package/web/icons/filled/question.svg +0 -3
  527. package/web/icons/filled/rating-empty.svg +0 -3
  528. package/web/icons/filled/rating-full.svg +0 -3
  529. package/web/icons/filled/rating-half.svg +0 -4
  530. package/web/icons/filled/remove.svg +0 -3
  531. package/web/icons/filled/return-location.svg +0 -3
  532. package/web/icons/filled/support.svg +0 -3
  533. package/web/icons/filled/toll.svg +0 -3
  534. package/web/icons/filled/tripHistory.svg +0 -3
  535. package/web/icons/filled/truck.svg +0 -3
  536. package/web/icons/filled/user-pin.svg +0 -3
  537. package/web/icons/filled/user-profile.svg +0 -3
  538. package/web/icons/filled/warning.svg +0 -3
  539. package/web/icons/filled/zone-default.svg +0 -3
  540. package/web/icons/filled/zone-indoor.svg +0 -3
  541. package/web/icons/filled/zone-street.svg +0 -3
  542. package/web/icons/stroke/arrow-Down.svg +0 -3
  543. package/web/icons/stroke/arrow-Up.svg +0 -3
  544. package/web/icons/stroke/arrow-left.svg +0 -3
  545. package/web/icons/stroke/arrow-right.svg +0 -3
  546. package/web/icons/stroke/check.svg +0 -3
  547. package/web/icons/stroke/checkbox-checked.svg +0 -4
  548. package/web/icons/stroke/checkbox-unchecked.svg +0 -3
  549. package/web/icons/stroke/chevron-backward.svg +0 -3
  550. package/web/icons/stroke/chevron-down.svg +0 -3
  551. package/web/icons/stroke/chevron-forward.svg +0 -3
  552. package/web/icons/stroke/chevron-up.svg +0 -3
  553. package/web/icons/stroke/clock.svg +0 -3
  554. package/web/icons/stroke/close-1.svg +0 -3
  555. package/web/icons/stroke/close.svg +0 -4
  556. package/web/icons/stroke/download.svg +0 -4
  557. package/web/icons/stroke/email.svg +0 -4
  558. package/web/icons/stroke/hamburger.svg +0 -3
  559. package/web/icons/stroke/login.svg +0 -4
  560. package/web/icons/stroke/logout.svg +0 -3
  561. package/web/icons/stroke/more.svg +0 -5
  562. package/web/icons/stroke/open-external.svg +0 -3
  563. package/web/icons/stroke/question.svg +0 -4
  564. package/web/icons/stroke/search.svg +0 -3
  565. package/web/icons/stroke/spinner.svg +0 -3
  566. package/web/icons/stroke/warning.svg +0 -3
  567. package/web/index.js +0 -55
  568. package/web/styles/flashmaster/primitives.json +0 -604
  569. package/web/styles/flashmaster/sample_fmdx_android.xml +0 -223
  570. package/web/styles/flashmaster/sample_fmdx_ios.json +0 -265
  571. package/web/styles/flashmaster.scss +0 -21
  572. package/web/styles/main.pcss +0 -143
package/README.md CHANGED
@@ -1,72 +1,53 @@
1
+ # @flitsmeister/design-system
1
2
 
2
- # Flitsmeister Design System
3
+ Flitsmeister design system — **Lit web components** (npm **v3+**).
3
4
 
4
- This project serves two main purposes:
5
+ | Versie | Inhoud | Repo |
6
+ |--------|--------|------|
7
+ | **3.x** | Web components (`fm-button`, `fm-input`, …) | [design-system-v2](https://github.com/flitsmeister/design-system-v2) |
8
+ | **2.x** | Vue components + design tokens | [design-system](https://github.com/flitsmeister/design-system) |
5
9
 
6
- 1. **Dev Docs Site**: A documentation and demo site for developing and previewing the design system.
7
- 2. **Library Use**: A consumable library of Vue components and design tokens for use in other projects.
10
+ Imports gebruiken subpaths, bijv. `@flitsmeister/design-system/fm-button`.
8
11
 
9
- ---
12
+ ## Installatie
10
13
 
11
- ## Consuming the Design System as a Library
14
+ Interactieve CLI:
12
15
 
13
- ### 1. Using Design Tokens (CSS)
14
-
15
-
16
- Design tokens are exported as platform-specific files in `tokens/schema_exports/`. For easier consumption, the package maps these files to the `themes/` export path (see the `exports` field in `package.json`).
17
-
18
- **How to import CSS tokens:**
19
-
20
- - Choose the appropriate CSS file for your schema (e.g., `fm-design-system.css`) and import it using the `themes/` alias:
21
-
22
- ```js
23
- import '@flitsmeister/design-system/themes/fm-design-system/fm-design-system.css';
24
- ```
25
-
26
- - This will provide all color, spacing, and other design tokens as CSS custom properties. You can use these variables directly in your own CSS or with Tailwind.
27
-
28
-
29
- ### 2. Using Vue Components
30
-
31
- Import the components you need:
32
-
33
- ```js
34
- import { fmxButton, fmxInput, fmxDropdown } from "@flitsmeister/design-system";
16
+ ```bash
17
+ pnpm dlx @flitsmeister/design-system design-system-install
35
18
  ```
36
19
 
37
- Register and use them as standard Vue 3 single-file components. Overview of each:
38
-
39
- - **fmxButton** — Button with multiple visual variants. Props: `role` (e.g. primary, secondary, success, warning, danger, info, strong, weak), `buttontype` (filled, text, outline, squared), `size` (sm, md, lg, xl), `icon` (symbol id for your SVG sprite), `iconPosition` (prepend, append), `disabled`, `customClasses`. Use `href` and `target` for link-style buttons. If you use `icon`, the consuming app must provide an SVG sprite that includes the referenced symbol ids.
40
-
41
- - **fmxInput** — v-model text-style input with optional validation and floating placeholder. Props: `placeholder`, `rules` (array of validator functions), `customClass` (wrapper spacing/layout), `inputClass` (on the input element). To show a visible default border, set on a parent: `--fmx-input-border-default: var(--color-surface-neutral-default);` (focus and error states stay correct). To validate from a parent (e.g. on submit), use a ref and call `validate()`.
20
+ Of met npx:
42
21
 
43
- - **fmxDropdown** — v-model select. Pass `options` as an array of `{ value, label }` and bind `v-model` to the selected value. Use the `option` slot to customize option rendering. Set `fullScreen` to true for a mobile-friendly modal overlay.
44
-
45
- ### 3. Using Icons
22
+ ```bash
23
+ npx @flitsmeister/design-system design-system-install
24
+ ```
46
25
 
47
- SVG icon files are available via the `icons/` export path. You can import any icon directly:
26
+ Na installatie in je project:
48
27
 
49
- ```js
50
- import iconCar from '@flitsmeister/design-system/icons/filled/car.svg';
28
+ ```bash
29
+ pnpm exec design-system-install
51
30
  ```
52
31
 
53
- You can also reference icons by their path for use in `<img>`, `<svg>`, or as assets in your build system.
32
+ (`fm-ui-install` blijft alias op dezelfde CLI.)
54
33
 
55
- > **Browse all available icons and their names at:** [https://fmdx.netlify.app/icons](https://fmdx.netlify.app/icons)
34
+ ## Lokaal testen
56
35
 
57
- ---
36
+ ```bash
37
+ pnpm dlx file:/pad/naar/design-system-v2/package design-system-install
38
+ ```
58
39
 
59
- ## About the Design System
40
+ Of link:
60
41
 
61
- - Provides Flitsmeister design system colors, typography, buttons, icons, input, and dropdown components.
62
- - Design tokens are managed and exported from Figma, with automated scripts generating platform-specific outputs (CSS, iOS JSON, Android XML, etc.).
63
- - See the `/tokens/schema_exports/` directory for all available exports.
42
+ ```bash
43
+ # In design-system-v2/package:
44
+ pnpm link --global
64
45
 
65
- ## Automated Design Token Export Workflow
46
+ # In je andere repo:
47
+ pnpm link @flitsmeister/design-system
48
+ pnpm exec design-system-install
49
+ ```
66
50
 
67
- 1. **Source of Truth**: All design tokens are exported from Figma as JSON and stored in `tokens/schema_sourcefiles/`.
68
- 2. **Automated Exports**: Run `tokens/scripts/export-tokens.js` to generate fully resolved, platform-specific files in `tokens/schema_exports/{schema}/`.
69
- 3. **Schema Index & Documentation**: The `/schemas` page in the dev site lists all schemas and export formats with download links.
70
- 4. **Static File Serving**: All schema sourcefiles and exports are served as static files for easy download and integration.
71
- 5. **Best Practices**: Never edit generated files by hand. Always update the Figma export and re-run the export script to propagate changes.
51
+ ## Component ontwikkeling
72
52
 
53
+ Zie [How-to: FM Web Component maken](../docs/web-component-how-to.md).
@@ -0,0 +1,25 @@
1
+ export type ButtonType = 'button' | 'submit' | 'reset';
2
+ export type Size = 'sm' | 'md' | 'lg' | 'xl';
3
+ export type IconSize = 'sm' | 'md' | 'lg';
4
+ export type Role = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'dangeralt' | 'danger-alt' | 'info' | 'strong' | 'weak';
5
+ export type ButtonVariant = 'filled' | 'text' | 'outline' | 'squared';
6
+ export type IconPosition = 'prepend' | 'append';
7
+ export declare const FM_BUTTON_ERROR_PHASE_MS = 1500;
8
+ export interface FmButtonClassesInput {
9
+ size: Size;
10
+ role: Role;
11
+ buttontype: ButtonVariant;
12
+ loading: boolean;
13
+ error: boolean;
14
+ success: boolean;
15
+ customClasses: string;
16
+ }
17
+ export declare function buildButtonClasses(input: FmButtonClassesInput): string;
18
+ export declare function iconSizeForButtonSize(size: Size): IconSize;
19
+ export interface FmButtonMorphWidthInput {
20
+ loading: boolean;
21
+ savedWidth: number;
22
+ retryMorphWidth: number;
23
+ }
24
+ export declare function morphWidthInlineStyle(input: FmButtonMorphWidthInput): string | null;
25
+ //# sourceMappingURL=fm-button-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-button-core.d.ts","sourceRoot":"","sources":["../../src/fm-button/fm-button-core.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;AACtD,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAC5C,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AACzC,MAAM,MAAM,IAAI,GACZ,SAAS,GACT,WAAW,GACX,SAAS,GACT,SAAS,GACT,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,MAAM,CAAA;AACV,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;AACrE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE/C,eAAO,MAAM,wBAAwB,OAAO,CAAA;AAE5C,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,EAAE,aAAa,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAQtE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,CAG1D;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM,GAAG,IAAI,CAInF"}
@@ -0,0 +1,23 @@
1
+ export const FM_BUTTON_ERROR_PHASE_MS = 1500;
2
+ export function buildButtonClasses(input) {
3
+ const { size, role, buttontype, loading, error, success, customClasses } = input;
4
+ const base = `btn btn-size-${size} btn-role-${role} btn-buttontype-${buttontype}`;
5
+ const loadingClass = loading ? ' btn--loading' : '';
6
+ const errorShake = error ? ' btn--error-shake' : '';
7
+ const errorClass = error ? ' btn--error' : '';
8
+ const successClass = success ? ' btn--success' : '';
9
+ return `${base}${loadingClass}${errorShake}${errorClass}${successClass} ${customClasses}`.trim();
10
+ }
11
+ export function iconSizeForButtonSize(size) {
12
+ if (size === 'xl')
13
+ return 'lg';
14
+ return size;
15
+ }
16
+ export function morphWidthInlineStyle(input) {
17
+ if (input.loading && input.savedWidth > 0)
18
+ return `width: ${input.savedWidth}px`;
19
+ if (input.retryMorphWidth > 0)
20
+ return `width: ${input.retryMorphWidth}px`;
21
+ return null;
22
+ }
23
+ //# sourceMappingURL=fm-button-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-button-core.js","sourceRoot":"","sources":["../../src/fm-button/fm-button-core.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAA;AAY5C,MAAM,UAAU,kBAAkB,CAAC,KAA2B;IAC5D,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,KAAK,CAAA;IAChF,MAAM,IAAI,GAAG,gBAAgB,IAAI,aAAa,IAAI,mBAAmB,UAAU,EAAE,CAAA;IACjF,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,OAAO,GAAG,IAAI,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,IAAI,aAAa,EAAE,CAAC,IAAI,EAAE,CAAA;AAClG,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAU;IAC9C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC9B,OAAO,IAAgB,CAAA;AACzB,CAAC;AAQD,MAAM,UAAU,qBAAqB,CAAC,KAA8B;IAClE,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC;QAAE,OAAO,UAAU,KAAK,CAAC,UAAU,IAAI,CAAA;IAChF,IAAI,KAAK,CAAC,eAAe,GAAG,CAAC;QAAE,OAAO,UAAU,KAAK,CAAC,eAAe,IAAI,CAAA;IACzE,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { LitElement } from 'lit';
2
+ import type { IconVariant } from '../fm-icon/icon-registry.generated.js';
3
+ import '../fm-icon/icons/bold-check.js';
4
+ import '../fm-icon/icons/bold-spinner.js';
5
+ import '../fm-icon/icons/bold-warning.js';
6
+ import type { ButtonType, ButtonVariant, IconPosition, Role, Size } from './fm-button-core.js';
7
+ export type { ButtonType, ButtonVariant, FmButtonClassesInput, FmButtonMorphWidthInput, IconPosition, IconSize, Role, Size } from './fm-button-core.js';
8
+ /**
9
+ * Flitsmeister button web component. Styled, accessible button with multiple roles, sizes and variants.
10
+ *
11
+ * @element fm-button
12
+ *
13
+ * @slot default - Button label (text or HTML).
14
+ *
15
+ * @example
16
+ * ```html
17
+ * <fm-button role="primary" buttontype="filled">Save</fm-button>
18
+ * ```
19
+ *
20
+ * @example
21
+ * ```html
22
+ * <fm-button role="primary" icon="add" icon-variant="bold">Toevoegen</fm-button>
23
+ * <fm-button role="secondary" icon="chevron-forward" icon-position="append">Volgende</fm-button>
24
+ * ```
25
+ */
26
+ export declare class FmButton extends LitElement {
27
+ /** Native button type: 'button' | 'submit' | 'reset'. Default `'button'`. */
28
+ type: ButtonType;
29
+ /** Title/tooltip text. */
30
+ title: string;
31
+ /** Reserved for link-style usage; not rendered on the native button. */
32
+ href: string;
33
+ /** Reserved for link-style usage; not rendered on the native button. */
34
+ target: string;
35
+ /** Size: 'sm' | 'md' | 'lg' | 'xl'. Default `'md'`. */
36
+ size: Size;
37
+ /** Visual role (color): 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'dangeralt' | 'danger-alt' | 'info' | 'strong' | 'weak'. Default `'strong'`. */
38
+ role: Role;
39
+ /** Variant: 'filled' | 'text' | 'outline' | 'squared'. Default `'filled'`. */
40
+ buttontype: ButtonVariant;
41
+ /** Icon name for fm-icon (from icon registry). Use with icon-variant; page must register icons (e.g. import fm-icon/all or per-icon). */
42
+ icon: string;
43
+ /** Icon variant for fm-icon: 'bold' | 'filled' | 'stroke' | 'duotone'. Default `'bold'`. */
44
+ iconVariant: IconVariant;
45
+ /** Icon position: 'prepend' | 'append'. Default `'prepend'`. */
46
+ iconPosition: IconPosition;
47
+ /** Disabled state. Reflected to attribute. */
48
+ disabled: boolean;
49
+ /** Loading state: button becomes circle with centered spinner. */
50
+ loading: boolean;
51
+ /** Error state: shows danger-alt + warning icon for 1s, then clears and optionally shows errorRetryLabel. */
52
+ error: boolean;
53
+ /** Success state: shows success background + check icon in a circle; does not auto-clear. */
54
+ success: boolean;
55
+ /** Label shown after the 1s error phase (e.g. "Probeer opnieuw"). Empty = keep slot content. */
56
+ errorRetryLabel: string;
57
+ /** Extra CSS classes applied to the inner button. */
58
+ customClasses: string;
59
+ /** When true, button stretches to full width of its parent (e.g. in a column). Default false (sizes to content). */
60
+ fullWidth: boolean;
61
+ private showRetryLabel;
62
+ private errorTimeout;
63
+ private _button;
64
+ private _savedWidth;
65
+ private _justEnteredLoading;
66
+ private _retryMorphWidth;
67
+ private _justEnteredRetry;
68
+ private get buttonClasses();
69
+ private handleShakeEnd;
70
+ willUpdate(changed: Map<string, unknown>): void;
71
+ updated(changed: Map<string, unknown>): void;
72
+ disconnectedCallback(): void;
73
+ private get _morphWidthStyle();
74
+ private get _iconSize();
75
+ render(): import("lit").TemplateResult<1>;
76
+ static styles: import("lit").CSSResult[];
77
+ }
78
+ declare global {
79
+ interface HTMLElementTagNameMap {
80
+ 'fm-button': FmButton;
81
+ }
82
+ }
83
+ //# sourceMappingURL=fm-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-button.d.ts","sourceRoot":"","sources":["../../src/fm-button/fm-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAA;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AACxE,OAAO,gCAAgC,CAAA;AACvC,OAAO,kCAAkC,CAAA;AACzC,OAAO,kCAAkC,CAAA;AAQzC,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,YAAY,EAEZ,IAAI,EACJ,IAAI,EACL,MAAM,qBAAqB,CAAA;AAE5B,YAAY,EACV,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACvB,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,IAAI,EACL,MAAM,qBAAqB,CAAA;AAM5B;;;;;;;;;;;;;;;;;GAiBG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,6EAA6E;IACjD,IAAI,EAAE,UAAU,CAAW;IAEvD,0BAA0B;IACE,KAAK,SAAK;IAEtC,wEAAwE;IAC5C,IAAI,SAAM;IAEtC,wEAAwE;IAC5C,MAAM,SAAU;IAE5C,uDAAuD;IAC3B,IAAI,EAAE,IAAI,CAAO;IAE7C,qKAAqK;IACzI,IAAI,EAAE,IAAI,CAAW;IAEjD,8EAA8E;IACzB,UAAU,EAAE,aAAa,CAAW;IAEzF,yIAAyI;IAC7G,IAAI,SAAK;IAErC,4FAA4F;IACrC,WAAW,EAAE,WAAW,CAAS;IAExF,gEAAgE;IACR,YAAY,EAAE,YAAY,CAAY;IAE9F,8CAA8C;IACF,QAAQ,UAAQ;IAE5D,kEAAkE;IACtB,OAAO,UAAQ;IAE3D,6GAA6G;IACjE,KAAK,UAAQ;IAEzD,6FAA6F;IACjD,OAAO,UAAQ;IAE3D,gGAAgG;IACpC,eAAe,SAAK;IAEhF,qDAAqD;IACI,aAAa,SAAK;IAE3E,oHAAoH;IAC/C,SAAS,UAAQ;IAE7E,OAAO,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,YAAY,CAA6C;IAEhD,OAAO,CAAC,OAAO,CAAoB;IACpD,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,gBAAgB,CAAI;IAC5B,OAAO,CAAC,iBAAiB,CAAQ;IAEjC,OAAO,KAAK,aAAa,GAUxB;IAED,OAAO,CAAC,cAAc;IAEb,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAuB/C,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAyB5C,oBAAoB,IAAI,IAAI;IAQrC,OAAO,KAAK,gBAAgB,GAO3B;IAED,OAAO,KAAK,SAAS,GAEpB;IAED,MAAM;IAqCN,MAAM,CAAC,MAAM,4BAAkB;CAChC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAA;KACtB;CACF"}
@@ -0,0 +1,256 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, nothing } from 'lit';
8
+ import { customElement, property, state, query } from 'lit/decorators.js';
9
+ import { FmIcon } from '../fm-icon/fm-icon.js';
10
+ import '../fm-icon/icons/bold-check.js';
11
+ import '../fm-icon/icons/bold-spinner.js';
12
+ import '../fm-icon/icons/bold-warning.js';
13
+ import { fmButtonStyle } from './fm-button.style.js';
14
+ import { FM_BUTTON_ERROR_PHASE_MS, buildButtonClasses, iconSizeForButtonSize, morphWidthInlineStyle } from './fm-button-core.js';
15
+ if (!customElements.get('fm-icon')) {
16
+ customElements.define('fm-icon', FmIcon);
17
+ }
18
+ /**
19
+ * Flitsmeister button web component. Styled, accessible button with multiple roles, sizes and variants.
20
+ *
21
+ * @element fm-button
22
+ *
23
+ * @slot default - Button label (text or HTML).
24
+ *
25
+ * @example
26
+ * ```html
27
+ * <fm-button role="primary" buttontype="filled">Save</fm-button>
28
+ * ```
29
+ *
30
+ * @example
31
+ * ```html
32
+ * <fm-button role="primary" icon="add" icon-variant="bold">Toevoegen</fm-button>
33
+ * <fm-button role="secondary" icon="chevron-forward" icon-position="append">Volgende</fm-button>
34
+ * ```
35
+ */
36
+ let FmButton = class FmButton extends LitElement {
37
+ constructor() {
38
+ super(...arguments);
39
+ /** Native button type: 'button' | 'submit' | 'reset'. Default `'button'`. */
40
+ this.type = 'button';
41
+ /** Title/tooltip text. */
42
+ this.title = '';
43
+ /** Reserved for link-style usage; not rendered on the native button. */
44
+ this.href = '/';
45
+ /** Reserved for link-style usage; not rendered on the native button. */
46
+ this.target = '_self';
47
+ /** Size: 'sm' | 'md' | 'lg' | 'xl'. Default `'md'`. */
48
+ this.size = 'md';
49
+ /** Visual role (color): 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'dangeralt' | 'danger-alt' | 'info' | 'strong' | 'weak'. Default `'strong'`. */
50
+ this.role = 'strong';
51
+ /** Variant: 'filled' | 'text' | 'outline' | 'squared'. Default `'filled'`. */
52
+ this.buttontype = 'filled';
53
+ /** Icon name for fm-icon (from icon registry). Use with icon-variant; page must register icons (e.g. import fm-icon/all or per-icon). */
54
+ this.icon = '';
55
+ /** Icon variant for fm-icon: 'bold' | 'filled' | 'stroke' | 'duotone'. Default `'bold'`. */
56
+ this.iconVariant = 'bold';
57
+ /** Icon position: 'prepend' | 'append'. Default `'prepend'`. */
58
+ this.iconPosition = 'prepend';
59
+ /** Disabled state. Reflected to attribute. */
60
+ this.disabled = false;
61
+ /** Loading state: button becomes circle with centered spinner. */
62
+ this.loading = false;
63
+ /** Error state: shows danger-alt + warning icon for 1s, then clears and optionally shows errorRetryLabel. */
64
+ this.error = false;
65
+ /** Success state: shows success background + check icon in a circle; does not auto-clear. */
66
+ this.success = false;
67
+ /** Label shown after the 1s error phase (e.g. "Probeer opnieuw"). Empty = keep slot content. */
68
+ this.errorRetryLabel = '';
69
+ /** Extra CSS classes applied to the inner button. */
70
+ this.customClasses = '';
71
+ /** When true, button stretches to full width of its parent (e.g. in a column). Default false (sizes to content). */
72
+ this.fullWidth = false;
73
+ this.showRetryLabel = false;
74
+ this.errorTimeout = null;
75
+ this._savedWidth = 0;
76
+ this._justEnteredLoading = false;
77
+ this._retryMorphWidth = 0;
78
+ this._justEnteredRetry = false;
79
+ }
80
+ get buttonClasses() {
81
+ return buildButtonClasses({
82
+ size: this.size,
83
+ role: this.role,
84
+ buttontype: this.buttontype,
85
+ loading: this.loading,
86
+ error: this.error,
87
+ success: this.success,
88
+ customClasses: this.customClasses
89
+ });
90
+ }
91
+ handleShakeEnd(_e) { }
92
+ willUpdate(changed) {
93
+ if (changed.has('loading') && this.loading) {
94
+ this.showRetryLabel = false;
95
+ this.success = false;
96
+ this._justEnteredLoading = true;
97
+ }
98
+ if (changed.has('error') && this.error) {
99
+ if (this.errorTimeout) {
100
+ clearTimeout(this.errorTimeout);
101
+ this.errorTimeout = null;
102
+ }
103
+ this.errorTimeout = setTimeout(() => {
104
+ this.error = false;
105
+ this.showRetryLabel = true;
106
+ this.errorTimeout = null;
107
+ }, FM_BUTTON_ERROR_PHASE_MS);
108
+ }
109
+ if (changed.has('showRetryLabel') && this.showRetryLabel && this._button) {
110
+ this._retryMorphWidth = this._button.offsetWidth;
111
+ this._justEnteredRetry = true;
112
+ }
113
+ }
114
+ updated(changed) {
115
+ if (!this.loading && !this.error && !this.success && !this._retryMorphWidth && this._button)
116
+ this._savedWidth = this._button.offsetWidth;
117
+ if (this.loading && this._justEnteredLoading && this._button) {
118
+ requestAnimationFrame(() => {
119
+ this._button.style.width = '';
120
+ this._justEnteredLoading = false;
121
+ });
122
+ }
123
+ if (this._justEnteredRetry) {
124
+ this._justEnteredRetry = false;
125
+ const circleWidth = this._retryMorphWidth;
126
+ this._button.style.removeProperty('width');
127
+ const naturalWidth = this._button.offsetWidth;
128
+ this._button.style.width = `${circleWidth}px`;
129
+ requestAnimationFrame(() => {
130
+ this._retryMorphWidth = naturalWidth;
131
+ this.requestUpdate();
132
+ setTimeout(() => {
133
+ this._retryMorphWidth = 0;
134
+ this.requestUpdate();
135
+ }, 350);
136
+ });
137
+ }
138
+ }
139
+ disconnectedCallback() {
140
+ super.disconnectedCallback();
141
+ if (this.errorTimeout) {
142
+ clearTimeout(this.errorTimeout);
143
+ this.errorTimeout = null;
144
+ }
145
+ }
146
+ get _morphWidthStyle() {
147
+ const inline = morphWidthInlineStyle({
148
+ loading: this.loading,
149
+ savedWidth: this._savedWidth,
150
+ retryMorphWidth: this._retryMorphWidth
151
+ });
152
+ return inline ?? nothing;
153
+ }
154
+ get _iconSize() {
155
+ return iconSizeForButtonSize(this.size);
156
+ }
157
+ render() {
158
+ return html `
159
+ <button
160
+ type=${this.type}
161
+ class=${this.buttonClasses}
162
+ style=${this._morphWidthStyle}
163
+ title=${this.title}
164
+ ?disabled=${this.disabled || this.loading}
165
+ aria-busy=${this.loading}
166
+ data-role=${this.role}
167
+ data-buttontype=${this.buttontype}
168
+ data-size=${this.size}
169
+ @animationend=${this.handleShakeEnd}
170
+ >
171
+ ${this.loading
172
+ ? html `<span class="btn-spinner-wrapper"><fm-icon name="spinner" variant="bold" size="md"></fm-icon></span>`
173
+ : this.error
174
+ ? html `<span class="btn-error-content"><fm-icon name="warning" variant="bold" size="lg" color="danger"></fm-icon></span>`
175
+ : this.success
176
+ ? html `<span class="btn-success-content"><fm-icon name="check" variant="bold" size="lg" color="succes"></fm-icon></span>`
177
+ : this.showRetryLabel && this.errorRetryLabel
178
+ ? this.errorRetryLabel
179
+ : html `
180
+ <span class="btn-content">
181
+ ${this.icon && this.iconPosition === 'prepend'
182
+ ? html `<span class="btn-icon btn-icon--prepend"><fm-icon name="${this.icon}" variant="${this.iconVariant}" size="${this._iconSize}"></fm-icon></span>`
183
+ : ''}
184
+ <slot></slot>
185
+ ${this.icon && this.iconPosition === 'append'
186
+ ? html `<span class="btn-icon btn-icon--append"><fm-icon name="${this.icon}" variant="${this.iconVariant}" size="${this._iconSize}"></fm-icon></span>`
187
+ : ''}
188
+ </span>
189
+ `}
190
+ </button>
191
+ `;
192
+ }
193
+ static { this.styles = [fmButtonStyle]; }
194
+ };
195
+ __decorate([
196
+ property({ type: String })
197
+ ], FmButton.prototype, "type", void 0);
198
+ __decorate([
199
+ property({ type: String })
200
+ ], FmButton.prototype, "title", void 0);
201
+ __decorate([
202
+ property({ type: String })
203
+ ], FmButton.prototype, "href", void 0);
204
+ __decorate([
205
+ property({ type: String })
206
+ ], FmButton.prototype, "target", void 0);
207
+ __decorate([
208
+ property({ type: String })
209
+ ], FmButton.prototype, "size", void 0);
210
+ __decorate([
211
+ property({ type: String })
212
+ ], FmButton.prototype, "role", void 0);
213
+ __decorate([
214
+ property({ type: String, attribute: 'buttontype' })
215
+ ], FmButton.prototype, "buttontype", void 0);
216
+ __decorate([
217
+ property({ type: String })
218
+ ], FmButton.prototype, "icon", void 0);
219
+ __decorate([
220
+ property({ type: String, attribute: 'icon-variant' })
221
+ ], FmButton.prototype, "iconVariant", void 0);
222
+ __decorate([
223
+ property({ type: String, attribute: 'icon-position' })
224
+ ], FmButton.prototype, "iconPosition", void 0);
225
+ __decorate([
226
+ property({ type: Boolean, reflect: true })
227
+ ], FmButton.prototype, "disabled", void 0);
228
+ __decorate([
229
+ property({ type: Boolean, reflect: true })
230
+ ], FmButton.prototype, "loading", void 0);
231
+ __decorate([
232
+ property({ type: Boolean, reflect: true })
233
+ ], FmButton.prototype, "error", void 0);
234
+ __decorate([
235
+ property({ type: Boolean, reflect: true })
236
+ ], FmButton.prototype, "success", void 0);
237
+ __decorate([
238
+ property({ type: String, attribute: 'error-retry-label' })
239
+ ], FmButton.prototype, "errorRetryLabel", void 0);
240
+ __decorate([
241
+ property({ type: String, attribute: 'custom-classes' })
242
+ ], FmButton.prototype, "customClasses", void 0);
243
+ __decorate([
244
+ property({ type: Boolean, attribute: 'full-width', reflect: true })
245
+ ], FmButton.prototype, "fullWidth", void 0);
246
+ __decorate([
247
+ state()
248
+ ], FmButton.prototype, "showRetryLabel", void 0);
249
+ __decorate([
250
+ query('button')
251
+ ], FmButton.prototype, "_button", void 0);
252
+ FmButton = __decorate([
253
+ customElement('fm-button')
254
+ ], FmButton);
255
+ export { FmButton };
256
+ //# sourceMappingURL=fm-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-button.js","sourceRoot":"","sources":["../../src/fm-button/fm-button.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const fmButtonStyle: import("lit").CSSResult;
2
+ //# sourceMappingURL=fm-button.style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-button.style.d.ts","sourceRoot":"","sources":["../../src/fm-button/fm-button.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,yBAwYzB,CAAC"}