@wavemaker-ai/foundation-css 1.0.0-rc.647469

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 (630) hide show
  1. package/cjs/foundation-css.cjs +9454 -0
  2. package/cjs/src_tokens_mobile_components_accordion-pane_accordion-pane_json.foundation-css.cjs +14 -0
  3. package/cjs/src_tokens_mobile_components_accordion_accordion_json.foundation-css.cjs +14 -0
  4. package/cjs/src_tokens_mobile_components_anchor_anchor_json.foundation-css.cjs +14 -0
  5. package/cjs/src_tokens_mobile_components_audio_audio_json.foundation-css.cjs +14 -0
  6. package/cjs/src_tokens_mobile_components_badge_badge_json.foundation-css.cjs +14 -0
  7. package/cjs/src_tokens_mobile_components_barcodescanner_barcodescanner_json.foundation-css.cjs +14 -0
  8. package/cjs/src_tokens_mobile_components_bottomsheet_bottomsheet_json.foundation-css.cjs +14 -0
  9. package/cjs/src_tokens_mobile_components_breadcrumb_breadcrumb_json.foundation-css.cjs +14 -0
  10. package/cjs/src_tokens_mobile_components_button-group_button-group_json.foundation-css.cjs +14 -0
  11. package/cjs/src_tokens_mobile_components_button_button_json.foundation-css.cjs +14 -0
  12. package/cjs/src_tokens_mobile_components_calendar_calendar_json.foundation-css.cjs +14 -0
  13. package/cjs/src_tokens_mobile_components_camera_camera_json.foundation-css.cjs +14 -0
  14. package/cjs/src_tokens_mobile_components_cards_cards_json.foundation-css.cjs +14 -0
  15. package/cjs/src_tokens_mobile_components_carousel_carousel_json.foundation-css.cjs +14 -0
  16. package/cjs/src_tokens_mobile_components_checkbox_checkbox_json.foundation-css.cjs +14 -0
  17. package/cjs/src_tokens_mobile_components_checkboxset_checkboxset_json.foundation-css.cjs +14 -0
  18. package/cjs/src_tokens_mobile_components_chips_chips_json.foundation-css.cjs +14 -0
  19. package/cjs/src_tokens_mobile_components_container_container_json.foundation-css.cjs +14 -0
  20. package/cjs/src_tokens_mobile_components_currency_currency_json.foundation-css.cjs +14 -0
  21. package/cjs/src_tokens_mobile_components_datetime_datetime_json.foundation-css.cjs +14 -0
  22. package/cjs/src_tokens_mobile_components_dropdown-menu_dropdown-menu_json.foundation-css.cjs +14 -0
  23. package/cjs/src_tokens_mobile_components_fileupload_fileupload_json.foundation-css.cjs +14 -0
  24. package/cjs/src_tokens_mobile_components_form-controls_form-controls_json.foundation-css.cjs +14 -0
  25. package/cjs/src_tokens_mobile_components_form-wrapper_form-wrapper_json.foundation-css.cjs +14 -0
  26. package/cjs/src_tokens_mobile_components_grid-layout_grid-layout_json.foundation-css.cjs +14 -0
  27. package/cjs/src_tokens_mobile_components_icon_icon_json.foundation-css.cjs +14 -0
  28. package/cjs/src_tokens_mobile_components_label_label_json.foundation-css.cjs +14 -0
  29. package/cjs/src_tokens_mobile_components_list_list_json.foundation-css.cjs +14 -0
  30. package/cjs/src_tokens_mobile_components_listtemplate_listtemplate_json.foundation-css.cjs +14 -0
  31. package/cjs/src_tokens_mobile_components_login_login_json.foundation-css.cjs +14 -0
  32. package/cjs/src_tokens_mobile_components_lottie_lottie_json.foundation-css.cjs +14 -0
  33. package/cjs/src_tokens_mobile_components_message_message_json.foundation-css.cjs +14 -0
  34. package/cjs/src_tokens_mobile_components_modal-dialog_modal-dialog_json.foundation-css.cjs +14 -0
  35. package/cjs/src_tokens_mobile_components_nav_nav_json.foundation-css.cjs +14 -0
  36. package/cjs/src_tokens_mobile_components_navbar_navbar_json.foundation-css.cjs +14 -0
  37. package/cjs/src_tokens_mobile_components_navitem_navitem_json.foundation-css.cjs +14 -0
  38. package/cjs/src_tokens_mobile_components_page-content_page-content_json.foundation-css.cjs +14 -0
  39. package/cjs/src_tokens_mobile_components_page-left-nav_page-left-nav_json.foundation-css.cjs +14 -0
  40. package/cjs/src_tokens_mobile_components_panel-footer_panel-footer_json.foundation-css.cjs +14 -0
  41. package/cjs/src_tokens_mobile_components_panel_panel_json.foundation-css.cjs +14 -0
  42. package/cjs/src_tokens_mobile_components_partial-container_partial-container_json.foundation-css.cjs +14 -0
  43. package/cjs/src_tokens_mobile_components_picture_picture_json.foundation-css.cjs +14 -0
  44. package/cjs/src_tokens_mobile_components_popover_popover_json.foundation-css.cjs +14 -0
  45. package/cjs/src_tokens_mobile_components_progress-bar_progress-bar_json.foundation-css.cjs +14 -0
  46. package/cjs/src_tokens_mobile_components_progress-circle_progress-circle_json.foundation-css.cjs +14 -0
  47. package/cjs/src_tokens_mobile_components_radioset_radioset_json.foundation-css.cjs +14 -0
  48. package/cjs/src_tokens_mobile_components_rating_rating_json.foundation-css.cjs +14 -0
  49. package/cjs/src_tokens_mobile_components_scrollbar_scrollbar_json.foundation-css.cjs +14 -0
  50. package/cjs/src_tokens_mobile_components_search_search_json.foundation-css.cjs +14 -0
  51. package/cjs/src_tokens_mobile_components_select_select_json.foundation-css.cjs +14 -0
  52. package/cjs/src_tokens_mobile_components_slider_slider_json.foundation-css.cjs +14 -0
  53. package/cjs/src_tokens_mobile_components_spinner_spinner_json.foundation-css.cjs +14 -0
  54. package/cjs/src_tokens_mobile_components_switch_switch_json.foundation-css.cjs +14 -0
  55. package/cjs/src_tokens_mobile_components_tabbar_tabbar_json.foundation-css.cjs +14 -0
  56. package/cjs/src_tokens_mobile_components_tabs_tabs_json.foundation-css.cjs +14 -0
  57. package/cjs/src_tokens_mobile_components_textarea_textarea_json.foundation-css.cjs +14 -0
  58. package/cjs/src_tokens_mobile_components_tile_tile_json.foundation-css.cjs +14 -0
  59. package/cjs/src_tokens_mobile_components_toast_toast_json.foundation-css.cjs +14 -0
  60. package/cjs/src_tokens_mobile_components_toggle_toggle_json.foundation-css.cjs +14 -0
  61. package/cjs/src_tokens_mobile_components_video_video_json.foundation-css.cjs +14 -0
  62. package/cjs/src_tokens_mobile_components_webview_webview_json.foundation-css.cjs +14 -0
  63. package/cjs/src_tokens_mobile_components_wizard_wizard_json.foundation-css.cjs +14 -0
  64. package/cjs/src_tokens_web_components_accordion_accordion_json.foundation-css.cjs +14 -0
  65. package/cjs/src_tokens_web_components_anchor_anchor_json.foundation-css.cjs +14 -0
  66. package/cjs/src_tokens_web_components_audio_audio_json.foundation-css.cjs +14 -0
  67. package/cjs/src_tokens_web_components_badge_badge_json.foundation-css.cjs +14 -0
  68. package/cjs/src_tokens_web_components_breadcrumb_breadcrumb_json.foundation-css.cjs +14 -0
  69. package/cjs/src_tokens_web_components_button-group_button-group_json.foundation-css.cjs +14 -0
  70. package/cjs/src_tokens_web_components_button_button_json.foundation-css.cjs +14 -0
  71. package/cjs/src_tokens_web_components_calendar_calendar_json.foundation-css.cjs +14 -0
  72. package/cjs/src_tokens_web_components_cards_cards_json.foundation-css.cjs +14 -0
  73. package/cjs/src_tokens_web_components_carousel_carousel_json.foundation-css.cjs +14 -0
  74. package/cjs/src_tokens_web_components_checkbox_checkbox_json.foundation-css.cjs +14 -0
  75. package/cjs/src_tokens_web_components_checkboxset_checkboxset_json.foundation-css.cjs +14 -0
  76. package/cjs/src_tokens_web_components_chips_chips_json.foundation-css.cjs +14 -0
  77. package/cjs/src_tokens_web_components_color-picker_color-picker_json.foundation-css.cjs +14 -0
  78. package/cjs/src_tokens_web_components_container_container_json.foundation-css.cjs +14 -0
  79. package/cjs/src_tokens_web_components_currency_currency_json.foundation-css.cjs +14 -0
  80. package/cjs/src_tokens_web_components_data-table_data-table_json.foundation-css.cjs +14 -0
  81. package/cjs/src_tokens_web_components_date_date_json.foundation-css.cjs +14 -0
  82. package/cjs/src_tokens_web_components_dropdown-menu_dropdown-menu_json.foundation-css.cjs +14 -0
  83. package/cjs/src_tokens_web_components_fileupload_fileupload_json.foundation-css.cjs +14 -0
  84. package/cjs/src_tokens_web_components_form-controls_form-controls_json.foundation-css.cjs +14 -0
  85. package/cjs/src_tokens_web_components_grid-layout_grid-layout_json.foundation-css.cjs +14 -0
  86. package/cjs/src_tokens_web_components_icon_icon_json.foundation-css.cjs +14 -0
  87. package/cjs/src_tokens_web_components_iconbutton-toggleable_iconbutton-toggleable_json.foundation-css.cjs +14 -0
  88. package/cjs/src_tokens_web_components_iframe_iframe_json.foundation-css.cjs +14 -0
  89. package/cjs/src_tokens_web_components_label_label_json.foundation-css.cjs +14 -0
  90. package/cjs/src_tokens_web_components_list_list_json.foundation-css.cjs +14 -0
  91. package/cjs/src_tokens_web_components_message_message_json.foundation-css.cjs +14 -0
  92. package/cjs/src_tokens_web_components_modal-dialog_modal-dialog_json.foundation-css.cjs +14 -0
  93. package/cjs/src_tokens_web_components_nav_nav_json.foundation-css.cjs +14 -0
  94. package/cjs/src_tokens_web_components_page-content_page-content_json.foundation-css.cjs +14 -0
  95. package/cjs/src_tokens_web_components_page-footer_page-footer_json.foundation-css.cjs +14 -0
  96. package/cjs/src_tokens_web_components_page-header_page-header_json.foundation-css.cjs +14 -0
  97. package/cjs/src_tokens_web_components_page-left-nav_page-left-nav_json.foundation-css.cjs +14 -0
  98. package/cjs/src_tokens_web_components_page-right-nav_page-right-nav_json.foundation-css.cjs +14 -0
  99. package/cjs/src_tokens_web_components_page-top-nav_page-top-nav_json.foundation-css.cjs +14 -0
  100. package/cjs/src_tokens_web_components_pagination_pagination_json.foundation-css.cjs +14 -0
  101. package/cjs/src_tokens_web_components_panel_panel_json.foundation-css.cjs +14 -0
  102. package/cjs/src_tokens_web_components_picture_picture_json.foundation-css.cjs +14 -0
  103. package/cjs/src_tokens_web_components_popover_popover_json.foundation-css.cjs +14 -0
  104. package/cjs/src_tokens_web_components_progress-bar_progress-bar_json.foundation-css.cjs +14 -0
  105. package/cjs/src_tokens_web_components_progress-circle_progress-circle_json.foundation-css.cjs +14 -0
  106. package/cjs/src_tokens_web_components_radioset_radioset_json.foundation-css.cjs +14 -0
  107. package/cjs/src_tokens_web_components_rating_rating_json.foundation-css.cjs +14 -0
  108. package/cjs/src_tokens_web_components_richtext-editor_richtext-editor_json.foundation-css.cjs +14 -0
  109. package/cjs/src_tokens_web_components_scrollbar_scrollbar_json.foundation-css.cjs +14 -0
  110. package/cjs/src_tokens_web_components_search_search_json.foundation-css.cjs +14 -0
  111. package/cjs/src_tokens_web_components_slider_slider_json.foundation-css.cjs +14 -0
  112. package/cjs/src_tokens_web_components_spinner_spinner_json.foundation-css.cjs +14 -0
  113. package/cjs/src_tokens_web_components_switch_switch_json.foundation-css.cjs +14 -0
  114. package/cjs/src_tokens_web_components_tabs_tabs_json.foundation-css.cjs +14 -0
  115. package/cjs/src_tokens_web_components_tile_tile_json.foundation-css.cjs +14 -0
  116. package/cjs/src_tokens_web_components_time_time_json.foundation-css.cjs +14 -0
  117. package/cjs/src_tokens_web_components_toast_toast_json.foundation-css.cjs +14 -0
  118. package/cjs/src_tokens_web_components_toggle_toggle_json.foundation-css.cjs +14 -0
  119. package/cjs/src_tokens_web_components_tree_tree_json.foundation-css.cjs +14 -0
  120. package/cjs/src_tokens_web_components_video_video_json.foundation-css.cjs +14 -0
  121. package/cjs/src_tokens_web_components_wizard_wizard_json.foundation-css.cjs +14 -0
  122. package/foundation/fonts/fonts/roboto.ttf +0 -0
  123. package/foundation/fonts/icons/fontawesome/fontawesome-webfont.eot +0 -0
  124. package/foundation/fonts/icons/fontawesome/fontawesome-webfont.svg +686 -0
  125. package/foundation/fonts/icons/fontawesome/fontawesome-webfont.ttf +0 -0
  126. package/foundation/fonts/icons/fontawesome/fontawesome-webfont.woff +0 -0
  127. package/foundation/fonts/icons/material/materialicon.eot +0 -0
  128. package/foundation/fonts/icons/material/materialicon.svg +97 -0
  129. package/foundation/fonts/icons/material/materialicon.ttf +0 -0
  130. package/foundation/fonts/icons/material/materialicon.woff +0 -0
  131. package/foundation/fonts/icons/summernote/summernote.eot +0 -0
  132. package/foundation/fonts/icons/summernote/summernote.svg +63 -0
  133. package/foundation/fonts/icons/summernote/summernote.ttf +0 -0
  134. package/foundation/fonts/icons/summernote/summernote.woff +0 -0
  135. package/foundation/fonts/icons/wavicon/wavicon.eot +0 -0
  136. package/foundation/fonts/icons/wavicon/wavicon.svg +1160 -0
  137. package/foundation/fonts/icons/wavicon/wavicon.ttf +0 -0
  138. package/foundation/fonts/icons/wavicon/wavicon.woff +0 -0
  139. package/foundation/fonts/icons/wm-streamline-light/wm-streamline-light-icon.eot +0 -0
  140. package/foundation/fonts/icons/wm-streamline-light/wm-streamline-light-icon.svg +244 -0
  141. package/foundation/fonts/icons/wm-streamline-light/wm-streamline-light-icon.ttf +0 -0
  142. package/foundation/fonts/icons/wm-streamline-light/wm-streamline-light-icon.woff +0 -0
  143. package/foundation/fonts/icons/wm-streamline-regular/wm-streamline-regular-icon.eot +0 -0
  144. package/foundation/fonts/icons/wm-streamline-regular/wm-streamline-regular-icon.svg +216 -0
  145. package/foundation/fonts/icons/wm-streamline-regular/wm-streamline-regular-icon.ttf +0 -0
  146. package/foundation/fonts/icons/wm-streamline-regular/wm-streamline-regular-icon.woff +0 -0
  147. package/foundation/foundation.css +26884 -0
  148. package/foundation/foundation.min.css +1 -0
  149. package/foundation/icon-fonts.min.css +1 -0
  150. package/index.d.ts +10 -0
  151. package/index.js +64 -0
  152. package/index.js.map +1 -0
  153. package/native_mobile.index.d.ts +280 -0
  154. package/native_mobile.index.js +321 -0
  155. package/native_mobile.index.js.map +1 -0
  156. package/npm-shrinkwrap.json +4373 -0
  157. package/package-lock.json +4373 -0
  158. package/package.json +57 -0
  159. package/src/node/index.d.ts +1 -0
  160. package/src/node/index.js +2 -0
  161. package/src/node/index.js.map +1 -0
  162. package/src/styles/mobile/components/advanced/carousel/carousel-content.less +3 -0
  163. package/src/styles/mobile/components/advanced/carousel/carousel-template.less +3 -0
  164. package/src/styles/mobile/components/advanced/carousel.less +141 -0
  165. package/src/styles/mobile/components/advanced/customwidgetcontainer.less +0 -0
  166. package/src/styles/mobile/components/advanced/login.less +11 -0
  167. package/src/styles/mobile/components/advanced/network-toast.less +15 -0
  168. package/src/styles/mobile/components/advanced/webview.less +4 -0
  169. package/src/styles/mobile/components/basic/anchor.less +38 -0
  170. package/src/styles/mobile/components/basic/audio.less +3 -0
  171. package/src/styles/mobile/components/basic/base.less +0 -0
  172. package/src/styles/mobile/components/basic/bottomsheet.less +32 -0
  173. package/src/styles/mobile/components/basic/button.less +76 -0
  174. package/src/styles/mobile/components/basic/buttongroup.less +43 -0
  175. package/src/styles/mobile/components/basic/custom.less +6 -0
  176. package/src/styles/mobile/components/basic/icon.less +22 -0
  177. package/src/styles/mobile/components/basic/label.less +314 -0
  178. package/src/styles/mobile/components/basic/lottie.less +10 -0
  179. package/src/styles/mobile/components/basic/message.less +77 -0
  180. package/src/styles/mobile/components/basic/modal.less +9 -0
  181. package/src/styles/mobile/components/basic/picture.less +48 -0
  182. package/src/styles/mobile/components/basic/progress-bar.less +75 -0
  183. package/src/styles/mobile/components/basic/progress-circle.less +28 -0
  184. package/src/styles/mobile/components/basic/search.less +110 -0
  185. package/src/styles/mobile/components/basic/skeleton.less +9 -0
  186. package/src/styles/mobile/components/basic/spinner.less +41 -0
  187. package/src/styles/mobile/components/basic/video.less +4 -0
  188. package/src/styles/mobile/components/chart/area-chart.less +81 -0
  189. package/src/styles/mobile/components/chart/bar-chart.less +39 -0
  190. package/src/styles/mobile/components/chart/bubble-chart.less +36 -0
  191. package/src/styles/mobile/components/chart/column-chart.less +36 -0
  192. package/src/styles/mobile/components/chart/donut-chart.less +33 -0
  193. package/src/styles/mobile/components/chart/line-chart.less +36 -0
  194. package/src/styles/mobile/components/chart/pie-chart.less +30 -0
  195. package/src/styles/mobile/components/container/accordion/accordionpane.less +9 -0
  196. package/src/styles/mobile/components/container/accordion.less +150 -0
  197. package/src/styles/mobile/components/container/layoutgrid/gridcolumn.less +8 -0
  198. package/src/styles/mobile/components/container/layoutgrid/gridrow.less +7 -0
  199. package/src/styles/mobile/components/container/layoutgrid.less +11 -0
  200. package/src/styles/mobile/components/container/linearlayout/linearlayoutitem.less +3 -0
  201. package/src/styles/mobile/components/container/linearlayout.less +3 -0
  202. package/src/styles/mobile/components/container/panel/panel-content.less +3 -0
  203. package/src/styles/mobile/components/container/panel/panel-footer.less +15 -0
  204. package/src/styles/mobile/components/container/panel.less +168 -0
  205. package/src/styles/mobile/components/container/tabs/tab-header.less +67 -0
  206. package/src/styles/mobile/components/container/tabs/tabpane.less +4 -0
  207. package/src/styles/mobile/components/container/tabs.less +12 -0
  208. package/src/styles/mobile/components/container/tile.less +47 -0
  209. package/src/styles/mobile/components/container/wizard/wizardstep.less +3 -0
  210. package/src/styles/mobile/components/container/wizard.less +89 -0
  211. package/src/styles/mobile/components/container.less +50 -0
  212. package/src/styles/mobile/components/data/card/card-content.less +6 -0
  213. package/src/styles/mobile/components/data/card/card-footer.less +5 -0
  214. package/src/styles/mobile/components/data/card.less +55 -0
  215. package/src/styles/mobile/components/data/form/form-body.less +3 -0
  216. package/src/styles/mobile/components/data/form/form-field.less +9 -0
  217. package/src/styles/mobile/components/data/form/form-footer.less +3 -0
  218. package/src/styles/mobile/components/data/form.less +394 -0
  219. package/src/styles/mobile/components/data/list/list-action-template.less +6 -0
  220. package/src/styles/mobile/components/data/list/list-template.less +6 -0
  221. package/src/styles/mobile/components/data/list.less +20 -0
  222. package/src/styles/mobile/components/device/barcodescanner.less +25 -0
  223. package/src/styles/mobile/components/device/camera.less +18 -0
  224. package/src/styles/mobile/components/dialogs/alertdialog.less +15 -0
  225. package/src/styles/mobile/components/dialogs/confirmdialog.less +30 -0
  226. package/src/styles/mobile/components/dialogs/dialog.less +132 -0
  227. package/src/styles/mobile/components/dialogs/dialogactions.less +3 -0
  228. package/src/styles/mobile/components/dialogs/dialogcontent.less +3 -0
  229. package/src/styles/mobile/components/input/basedataset.less +0 -0
  230. package/src/styles/mobile/components/input/baseinput.less +0 -0
  231. package/src/styles/mobile/components/input/basenumber.less +0 -0
  232. package/src/styles/mobile/components/input/calendar/views.less +3 -0
  233. package/src/styles/mobile/components/input/calendar.less +110 -0
  234. package/src/styles/mobile/components/input/checkbox.less +47 -0
  235. package/src/styles/mobile/components/input/checkboxset.less +62 -0
  236. package/src/styles/mobile/components/input/chips.less +98 -0
  237. package/src/styles/mobile/components/input/composite.less +4 -0
  238. package/src/styles/mobile/components/input/currency.less +71 -0
  239. package/src/styles/mobile/components/input/epoch/wheelpickermodal/datetime-picker-modal.less +62 -0
  240. package/src/styles/mobile/components/input/fileupload.less +26 -0
  241. package/src/styles/mobile/components/input/radioset.less +75 -0
  242. package/src/styles/mobile/components/input/rating.less +30 -0
  243. package/src/styles/mobile/components/input/select.less +41 -0
  244. package/src/styles/mobile/components/input/slider.less +39 -0
  245. package/src/styles/mobile/components/input/switch.less +44 -0
  246. package/src/styles/mobile/components/input/toggle.less +61 -0
  247. package/src/styles/mobile/components/navigation/appnavbar.less +106 -0
  248. package/src/styles/mobile/components/navigation/basenav.less +3 -0
  249. package/src/styles/mobile/components/navigation/menu.less +52 -0
  250. package/src/styles/mobile/components/navigation/navbar.less +9 -0
  251. package/src/styles/mobile/components/navigation/navitem.less +88 -0
  252. package/src/styles/mobile/components/navigation/popover.less +83 -0
  253. package/src/styles/mobile/components/page/content.less +3 -0
  254. package/src/styles/mobile/components/page/left-panel.less +7 -0
  255. package/src/styles/mobile/components/page/page-content.less +4 -0
  256. package/src/styles/mobile/components/page/partial-container.less +4 -0
  257. package/src/styles/mobile/components/page/partial.less +6 -0
  258. package/src/styles/mobile/components/page/tabbar.less +93 -0
  259. package/src/styles/mobile/components/page.less +3 -0
  260. package/src/styles/mobile/components/prefab.less +6 -0
  261. package/src/styles/mobile/components/tokens.dark.css +68 -0
  262. package/src/styles/mobile/components/tokens.light.css +1354 -0
  263. package/src/styles/mobile/components/variables/accordion.variant.less +18 -0
  264. package/src/styles/mobile/components/variables/button.variant.less +254 -0
  265. package/src/styles/mobile/components/variables/cards.variant.less +23 -0
  266. package/src/styles/mobile/components/variables/carousel.variant.less +18 -0
  267. package/src/styles/mobile/components/variables/checkbox.variant.less +16 -0
  268. package/src/styles/mobile/components/variables/checkboxset.variant.less +18 -0
  269. package/src/styles/mobile/components/variables/chips.variant.less +40 -0
  270. package/src/styles/mobile/components/variables/container.variant.less +26 -0
  271. package/src/styles/mobile/components/variables/form-controls.variant.less +105 -0
  272. package/src/styles/mobile/components/variables/icon.variant.less +48 -0
  273. package/src/styles/mobile/components/variables/label.variant.less +155 -0
  274. package/src/styles/mobile/components/variables/message.variant.less +29 -0
  275. package/src/styles/mobile/components/variables/navitem.variant.less +14 -0
  276. package/src/styles/mobile/components/variables/panel.variant.less +55 -0
  277. package/src/styles/mobile/components/variables/picture.variant.less +28 -0
  278. package/src/styles/mobile/components/variables/progress-bar.variant.less +24 -0
  279. package/src/styles/mobile/components/variables/progress-circle.variant.less +24 -0
  280. package/src/styles/mobile/components/variables/radioset.variant.less +12 -0
  281. package/src/styles/mobile/components/variables/rating.variant.less +8 -0
  282. package/src/styles/mobile/components/variables/switch.variant.less +14 -0
  283. package/src/styles/mobile/components/variables/tabbar.variant.less +16 -0
  284. package/src/styles/mobile/components/variables/tabs.variant.less +21 -0
  285. package/src/styles/mobile/components/variables/tile.variant.less +79 -0
  286. package/src/styles/mobile/components/variables/toggle.variant.less +17 -0
  287. package/src/styles/mobile/components/variables/wizard.variant.less +26 -0
  288. package/src/styles/mobile/studio/advanced/carousel.less +75 -0
  289. package/src/styles/mobile/studio/advanced/login.less +6 -0
  290. package/src/styles/mobile/studio/advanced/styles.less +3 -0
  291. package/src/styles/mobile/studio/advanced/webview.less +4 -0
  292. package/src/styles/mobile/studio/basic/anchor.less +16 -0
  293. package/src/styles/mobile/studio/basic/button-group.less +47 -0
  294. package/src/styles/mobile/studio/basic/button.less +22 -0
  295. package/src/styles/mobile/studio/basic/icon.less +21 -0
  296. package/src/styles/mobile/studio/basic/label.less +29 -0
  297. package/src/styles/mobile/studio/basic/message.less +75 -0
  298. package/src/styles/mobile/studio/basic/picture.less +10 -0
  299. package/src/styles/mobile/studio/basic/progress-bar.less +6 -0
  300. package/src/styles/mobile/studio/basic/progress-circle.less +9 -0
  301. package/src/styles/mobile/studio/basic/search.less +39 -0
  302. package/src/styles/mobile/studio/basic/spinner.less +6 -0
  303. package/src/styles/mobile/studio/basic/styles.less +11 -0
  304. package/src/styles/mobile/studio/container/accordion.less +23 -0
  305. package/src/styles/mobile/studio/container/container.less +19 -0
  306. package/src/styles/mobile/studio/container/grid.less +8 -0
  307. package/src/styles/mobile/studio/container/linearlayout.less +8 -0
  308. package/src/styles/mobile/studio/container/panel.less +42 -0
  309. package/src/styles/mobile/studio/container/styles.less +7 -0
  310. package/src/styles/mobile/studio/container/tabs.less +122 -0
  311. package/src/styles/mobile/studio/container/tile.less +7 -0
  312. package/src/styles/mobile/studio/container/wizard.less +48 -0
  313. package/src/styles/mobile/studio/data/card.less +25 -0
  314. package/src/styles/mobile/studio/data/form.less +22 -0
  315. package/src/styles/mobile/studio/data/list.less +25 -0
  316. package/src/styles/mobile/studio/data/listtemplate.less +11 -0
  317. package/src/styles/mobile/studio/data/styles.less +4 -0
  318. package/src/styles/mobile/studio/device/barcode.less +17 -0
  319. package/src/styles/mobile/studio/device/camera.less +4 -0
  320. package/src/styles/mobile/studio/device/styles.less +2 -0
  321. package/src/styles/mobile/studio/dialogs/alert-dialog.less +10 -0
  322. package/src/styles/mobile/studio/dialogs/base-dialog.less +180 -0
  323. package/src/styles/mobile/studio/dialogs/confirm-dialog.less +26 -0
  324. package/src/styles/mobile/studio/dialogs/styles.less +3 -0
  325. package/src/styles/mobile/studio/input/calendar.less +68 -0
  326. package/src/styles/mobile/studio/input/checkbox.less +78 -0
  327. package/src/styles/mobile/studio/input/checkboxset.less +82 -0
  328. package/src/styles/mobile/studio/input/chips.less +11 -0
  329. package/src/styles/mobile/studio/input/currency.less +24 -0
  330. package/src/styles/mobile/studio/input/date.less +7 -0
  331. package/src/styles/mobile/studio/input/epoch/datetime-picker-modal.less +49 -0
  332. package/src/styles/mobile/studio/input/form.less +204 -0
  333. package/src/styles/mobile/studio/input/number.less +6 -0
  334. package/src/styles/mobile/studio/input/radioset.less +110 -0
  335. package/src/styles/mobile/studio/input/rating.less +21 -0
  336. package/src/styles/mobile/studio/input/select.less +39 -0
  337. package/src/styles/mobile/studio/input/slider.less +132 -0
  338. package/src/styles/mobile/studio/input/styles.less +17 -0
  339. package/src/styles/mobile/studio/input/switch.less +13 -0
  340. package/src/styles/mobile/studio/input/text.less +6 -0
  341. package/src/styles/mobile/studio/input/textarea.less +5 -0
  342. package/src/styles/mobile/studio/input/toggle.less +99 -0
  343. package/src/styles/mobile/studio/layouts/appnavbar.less +78 -0
  344. package/src/styles/mobile/studio/layouts/content.less +5 -0
  345. package/src/styles/mobile/studio/layouts/page-content.less +11 -0
  346. package/src/styles/mobile/studio/layouts/page.less +5 -0
  347. package/src/styles/mobile/studio/layouts/styles.less +5 -0
  348. package/src/styles/mobile/studio/layouts/tabbar.less +50 -0
  349. package/src/styles/mobile/studio/navigation/menu.less +21 -0
  350. package/src/styles/mobile/studio/navigation/nav.less +4 -0
  351. package/src/styles/mobile/studio/navigation/popover.less +31 -0
  352. package/src/styles/mobile/studio/navigation/styles.less +3 -0
  353. package/src/styles/mobile/studio/styles.less +17 -0
  354. package/src/token-validation/component-token-schema.d.ts +171 -0
  355. package/src/token-validation/component-token-schema.js +148 -0
  356. package/src/token-validation/component-token-schema.js.map +1 -0
  357. package/src/token-validation/constants.d.ts +42 -0
  358. package/src/token-validation/constants.js +55 -0
  359. package/src/token-validation/constants.js.map +1 -0
  360. package/src/token-validation/global-token-schema.d.ts +38 -0
  361. package/src/token-validation/global-token-schema.js +42 -0
  362. package/src/token-validation/global-token-schema.js.map +1 -0
  363. package/src/token-validation/validate-token.d.ts +72 -0
  364. package/src/token-validation/validate-token.js +1070 -0
  365. package/src/token-validation/validate-token.js.map +1 -0
  366. package/src/token-validation/validate-value.d.ts +13 -0
  367. package/src/token-validation/validate-value.js +57 -0
  368. package/src/token-validation/validate-value.js.map +1 -0
  369. package/src/token-validation/validator-utils/common/constants.d.ts +185 -0
  370. package/src/token-validation/validator-utils/common/constants.js +281 -0
  371. package/src/token-validation/validator-utils/common/constants.js.map +1 -0
  372. package/src/token-validation/validator-utils/common/primitives.d.ts +14 -0
  373. package/src/token-validation/validator-utils/common/primitives.js +35 -0
  374. package/src/token-validation/validator-utils/common/primitives.js.map +1 -0
  375. package/src/token-validation/validator-utils/common/utils.d.ts +192 -0
  376. package/src/token-validation/validator-utils/common/utils.js +418 -0
  377. package/src/token-validation/validator-utils/common/utils.js.map +1 -0
  378. package/src/token-validation/validator-utils/native_mobile.d.ts +1 -0
  379. package/src/token-validation/validator-utils/native_mobile.js +11 -0
  380. package/src/token-validation/validator-utils/native_mobile.js.map +1 -0
  381. package/src/token-validation/validator-utils/web.d.ts +1 -0
  382. package/src/token-validation/validator-utils/web.js +12 -0
  383. package/src/token-validation/validator-utils/web.js.map +1 -0
  384. package/src/tokens/mobile/components/accordion/accordion.json +518 -0
  385. package/src/tokens/mobile/components/accordion-pane/accordion-pane.json +65 -0
  386. package/src/tokens/mobile/components/anchor/anchor.json +129 -0
  387. package/src/tokens/mobile/components/audio/audio.json +15 -0
  388. package/src/tokens/mobile/components/badge/badge.json +122 -0
  389. package/src/tokens/mobile/components/barcodescanner/barcodescanner.json +140 -0
  390. package/src/tokens/mobile/components/bottomsheet/bottomsheet.json +154 -0
  391. package/src/tokens/mobile/components/breadcrumb/breadcrumb.json +86 -0
  392. package/src/tokens/mobile/components/button/button.json +736 -0
  393. package/src/tokens/mobile/components/button-group/button-group.json +51 -0
  394. package/src/tokens/mobile/components/calendar/calendar.json +435 -0
  395. package/src/tokens/mobile/components/camera/camera.json +73 -0
  396. package/src/tokens/mobile/components/cards/cards.json +180 -0
  397. package/src/tokens/mobile/components/carousel/carousel.json +603 -0
  398. package/src/tokens/mobile/components/checkbox/checkbox.json +232 -0
  399. package/src/tokens/mobile/components/checkboxset/checkboxset.json +334 -0
  400. package/src/tokens/mobile/components/chips/chips.json +423 -0
  401. package/src/tokens/mobile/components/container/container.json +191 -0
  402. package/src/tokens/mobile/components/currency/currency.json +96 -0
  403. package/src/tokens/mobile/components/datetime/datetime.json +223 -0
  404. package/src/tokens/mobile/components/dropdown-menu/dropdown-menu.json +199 -0
  405. package/src/tokens/mobile/components/fileupload/fileupload.json +121 -0
  406. package/src/tokens/mobile/components/form-controls/form-controls.json +727 -0
  407. package/src/tokens/mobile/components/form-wrapper/form-wrapper.json +361 -0
  408. package/src/tokens/mobile/components/grid-layout/grid-layout.json +30 -0
  409. package/src/tokens/mobile/components/icon/icon.json +246 -0
  410. package/src/tokens/mobile/components/label/label.json +618 -0
  411. package/src/tokens/mobile/components/list/list.json +66 -0
  412. package/src/tokens/mobile/components/listtemplate/listtemplate.json +84 -0
  413. package/src/tokens/mobile/components/login/login.json +65 -0
  414. package/src/tokens/mobile/components/lottie/lottie.json +52 -0
  415. package/src/tokens/mobile/components/message/message.json +336 -0
  416. package/src/tokens/mobile/components/modal-dialog/modal-dialog.json +353 -0
  417. package/src/tokens/mobile/components/nav/nav.json +14 -0
  418. package/src/tokens/mobile/components/navbar/navbar.json +368 -0
  419. package/src/tokens/mobile/components/navitem/navitem.json +521 -0
  420. package/src/tokens/mobile/components/page-content/page-content.json +31 -0
  421. package/src/tokens/mobile/components/page-left-nav/page-left-nav.json +56 -0
  422. package/src/tokens/mobile/components/panel/panel.json +478 -0
  423. package/src/tokens/mobile/components/panel-footer/panel-footer.json +116 -0
  424. package/src/tokens/mobile/components/partial-container/partial-container.json +23 -0
  425. package/src/tokens/mobile/components/picture/picture.json +166 -0
  426. package/src/tokens/mobile/components/popover/popover.json +387 -0
  427. package/src/tokens/mobile/components/progress-bar/progress-bar.json +216 -0
  428. package/src/tokens/mobile/components/progress-circle/progress-circle.json +176 -0
  429. package/src/tokens/mobile/components/radioset/radioset.json +279 -0
  430. package/src/tokens/mobile/components/rating/rating.json +117 -0
  431. package/src/tokens/mobile/components/scrollbar/scrollbar.json +38 -0
  432. package/src/tokens/mobile/components/search/search.json +408 -0
  433. package/src/tokens/mobile/components/select/select.json +229 -0
  434. package/src/tokens/mobile/components/slider/slider.json +111 -0
  435. package/src/tokens/mobile/components/spinner/spinner.json +92 -0
  436. package/src/tokens/mobile/components/switch/switch.json +213 -0
  437. package/src/tokens/mobile/components/tabbar/tabbar.json +415 -0
  438. package/src/tokens/mobile/components/tabs/tabs.json +432 -0
  439. package/src/tokens/mobile/components/textarea/textarea.json +16 -0
  440. package/src/tokens/mobile/components/tile/tile.json +377 -0
  441. package/src/tokens/mobile/components/toast/toast.json +186 -0
  442. package/src/tokens/mobile/components/toggle/toggle.json +239 -0
  443. package/src/tokens/mobile/components/video/video.json +23 -0
  444. package/src/tokens/mobile/components/webview/webview.json +32 -0
  445. package/src/tokens/mobile/components/wizard/wizard.json +550 -0
  446. package/src/tokens/mobile/global/border/border.json +90 -0
  447. package/src/tokens/mobile/global/border-style/border-style.json +30 -0
  448. package/src/tokens/mobile/global/box-shadow/box-shadow.json +40 -0
  449. package/src/tokens/mobile/global/colors/color.dark.json +150 -0
  450. package/src/tokens/mobile/global/colors/color.json +338 -0
  451. package/src/tokens/mobile/global/colors/color.light.json +1 -0
  452. package/src/tokens/mobile/global/elevation/elevation.json +36 -0
  453. package/src/tokens/mobile/global/font/font.json +377 -0
  454. package/src/tokens/mobile/global/gap/gap.json +60 -0
  455. package/src/tokens/mobile/global/icon/icon.json +15 -0
  456. package/src/tokens/mobile/global/margin/margin.json +60 -0
  457. package/src/tokens/mobile/global/opacity/opacity.json +6 -0
  458. package/src/tokens/mobile/global/radius/radius.json +15 -0
  459. package/src/tokens/mobile/global/space/space.json +18 -0
  460. package/src/tokens/mobile/global/spacer/spacer.json +15 -0
  461. package/src/tokens/web/components/accordion/Readme.md +18 -0
  462. package/src/tokens/web/components/accordion/Token.Readme.md +30 -0
  463. package/src/tokens/web/components/accordion/accordion.json +321 -0
  464. package/src/tokens/web/components/anchor/Token.Readme.md +20 -0
  465. package/src/tokens/web/components/anchor/anchor.json +189 -0
  466. package/src/tokens/web/components/audio/Token.Readme.md +9 -0
  467. package/src/tokens/web/components/audio/audio.json +15 -0
  468. package/src/tokens/web/components/badge/Token.Readme.md +19 -0
  469. package/src/tokens/web/components/badge/badge.json +100 -0
  470. package/src/tokens/web/components/breadcrumb/Readme.md +23 -0
  471. package/src/tokens/web/components/breadcrumb/Token.Readme.md +21 -0
  472. package/src/tokens/web/components/breadcrumb/breadcrumb.json +392 -0
  473. package/src/tokens/web/components/button/Readme.md +54 -0
  474. package/src/tokens/web/components/button/Token.Readme.md +29 -0
  475. package/src/tokens/web/components/button/button.json +734 -0
  476. package/src/tokens/web/components/button-group/Token.Readme.md +9 -0
  477. package/src/tokens/web/components/button-group/button-group.json +22 -0
  478. package/src/tokens/web/components/calendar/Token.Readme.md +63 -0
  479. package/src/tokens/web/components/calendar/calendar.json +501 -0
  480. package/src/tokens/web/components/cards/Readme.md +23 -0
  481. package/src/tokens/web/components/cards/Token.Readme.md +22 -0
  482. package/src/tokens/web/components/cards/cards.json +371 -0
  483. package/src/tokens/web/components/carousel/Token.Readme.md +20 -0
  484. package/src/tokens/web/components/carousel/carousel.json +160 -0
  485. package/src/tokens/web/components/checkbox/Token.Readme.md +25 -0
  486. package/src/tokens/web/components/checkbox/checkbox.json +274 -0
  487. package/src/tokens/web/components/checkboxset/Token.Readme.md +9 -0
  488. package/src/tokens/web/components/checkboxset/checkboxset.json +18 -0
  489. package/src/tokens/web/components/chips/Readme.md +26 -0
  490. package/src/tokens/web/components/chips/Token.Readme.md +43 -0
  491. package/src/tokens/web/components/chips/chips.json +653 -0
  492. package/src/tokens/web/components/color-picker/Token.Readme.md +10 -0
  493. package/src/tokens/web/components/color-picker/color-picker.json +24 -0
  494. package/src/tokens/web/components/container/Readme.md +23 -0
  495. package/src/tokens/web/components/container/Token.Readme.md +13 -0
  496. package/src/tokens/web/components/container/container.json +207 -0
  497. package/src/tokens/web/components/currency/Token.Readme.md +14 -0
  498. package/src/tokens/web/components/currency/currency.json +59 -0
  499. package/src/tokens/web/components/data-table/Readme.md +29 -0
  500. package/src/tokens/web/components/data-table/Token.Readme.md +54 -0
  501. package/src/tokens/web/components/data-table/data-table.json +603 -0
  502. package/src/tokens/web/components/date/Token.Readme.md +33 -0
  503. package/src/tokens/web/components/date/date.json +328 -0
  504. package/src/tokens/web/components/dropdown-menu/Readme.md +16 -0
  505. package/src/tokens/web/components/dropdown-menu/Token.Readme.md +25 -0
  506. package/src/tokens/web/components/dropdown-menu/dropdown-menu.json +259 -0
  507. package/src/tokens/web/components/fileupload/Token.Readme.md +44 -0
  508. package/src/tokens/web/components/fileupload/fileupload.json +328 -0
  509. package/src/tokens/web/components/form-controls/Token.Readme.md +48 -0
  510. package/src/tokens/web/components/form-controls/form-controls.json +548 -0
  511. package/src/tokens/web/components/grid-layout/Token.Readme.md +11 -0
  512. package/src/tokens/web/components/grid-layout/grid-layout.json +34 -0
  513. package/src/tokens/web/components/icon/Readme.md +22 -0
  514. package/src/tokens/web/components/icon/Token.Readme.md +14 -0
  515. package/src/tokens/web/components/icon/icon.json +364 -0
  516. package/src/tokens/web/components/iconbutton-toggleable/Readme.md +17 -0
  517. package/src/tokens/web/components/iconbutton-toggleable/Token.Readme.md +19 -0
  518. package/src/tokens/web/components/iconbutton-toggleable/iconbutton-toggleable.json +557 -0
  519. package/src/tokens/web/components/iframe/Token.Readme.md +10 -0
  520. package/src/tokens/web/components/iframe/iframe.json +23 -0
  521. package/src/tokens/web/components/label/Readme.md +55 -0
  522. package/src/tokens/web/components/label/Token.Readme.md +17 -0
  523. package/src/tokens/web/components/label/label.json +723 -0
  524. package/src/tokens/web/components/list/Token.Readme.md +19 -0
  525. package/src/tokens/web/components/list/list.json +198 -0
  526. package/src/tokens/web/components/message/Readme.md +19 -0
  527. package/src/tokens/web/components/message/Token.Readme.md +22 -0
  528. package/src/tokens/web/components/message/message.json +312 -0
  529. package/src/tokens/web/components/modal-dialog/Readme.md +35 -0
  530. package/src/tokens/web/components/modal-dialog/Token.Readme.md +31 -0
  531. package/src/tokens/web/components/modal-dialog/modal-dialog.json +462 -0
  532. package/src/tokens/web/components/nav/Readme.md +41 -0
  533. package/src/tokens/web/components/nav/Token.Readme.md +25 -0
  534. package/src/tokens/web/components/nav/nav.json +236 -0
  535. package/src/tokens/web/components/page-content/Token.Readme.md +9 -0
  536. package/src/tokens/web/components/page-content/page-content.json +17 -0
  537. package/src/tokens/web/components/page-footer/Token.Readme.md +18 -0
  538. package/src/tokens/web/components/page-footer/page-footer.json +98 -0
  539. package/src/tokens/web/components/page-header/Token.Readme.md +18 -0
  540. package/src/tokens/web/components/page-header/page-header.json +90 -0
  541. package/src/tokens/web/components/page-left-nav/Readme.md +27 -0
  542. package/src/tokens/web/components/page-left-nav/Token.Readme.md +55 -0
  543. package/src/tokens/web/components/page-left-nav/page-left-nav.json +961 -0
  544. package/src/tokens/web/components/page-right-nav/Readme.md +27 -0
  545. package/src/tokens/web/components/page-right-nav/Token.Readme.md +53 -0
  546. package/src/tokens/web/components/page-right-nav/page-right-nav.json +950 -0
  547. package/src/tokens/web/components/page-top-nav/Token.Readme.md +16 -0
  548. package/src/tokens/web/components/page-top-nav/page-top-nav.json +83 -0
  549. package/src/tokens/web/components/pagination/Readme.md +23 -0
  550. package/src/tokens/web/components/pagination/Token.Readme.md +35 -0
  551. package/src/tokens/web/components/pagination/pagination.json +477 -0
  552. package/src/tokens/web/components/panel/Readme.md +18 -0
  553. package/src/tokens/web/components/panel/Token.Readme.md +39 -0
  554. package/src/tokens/web/components/panel/panel.json +397 -0
  555. package/src/tokens/web/components/picture/Readme.md +24 -0
  556. package/src/tokens/web/components/picture/Token.Readme.md +16 -0
  557. package/src/tokens/web/components/picture/picture.json +233 -0
  558. package/src/tokens/web/components/popover/Token.Readme.md +34 -0
  559. package/src/tokens/web/components/popover/popover.json +222 -0
  560. package/src/tokens/web/components/progress-bar/Readme.md +35 -0
  561. package/src/tokens/web/components/progress-bar/Token.Readme.md +15 -0
  562. package/src/tokens/web/components/progress-bar/progress-bar.json +439 -0
  563. package/src/tokens/web/components/progress-circle/Readme.md +19 -0
  564. package/src/tokens/web/components/progress-circle/Token.Readme.md +16 -0
  565. package/src/tokens/web/components/progress-circle/progress-circle.json +257 -0
  566. package/src/tokens/web/components/radioset/Token.Readme.md +24 -0
  567. package/src/tokens/web/components/radioset/radioset.json +259 -0
  568. package/src/tokens/web/components/rating/Token.Readme.md +14 -0
  569. package/src/tokens/web/components/rating/rating.json +116 -0
  570. package/src/tokens/web/components/richtext-editor/Token.Readme.md +106 -0
  571. package/src/tokens/web/components/richtext-editor/richtext-editor.json +1054 -0
  572. package/src/tokens/web/components/scrollbar/Token.Readme.md +15 -0
  573. package/src/tokens/web/components/scrollbar/scrollbar.json +66 -0
  574. package/src/tokens/web/components/search/Token.Readme.md +39 -0
  575. package/src/tokens/web/components/search/search.json +390 -0
  576. package/src/tokens/web/components/slider/Token.Readme.md +24 -0
  577. package/src/tokens/web/components/slider/slider.json +153 -0
  578. package/src/tokens/web/components/spinner/Token.Readme.md +15 -0
  579. package/src/tokens/web/components/spinner/spinner.json +77 -0
  580. package/src/tokens/web/components/switch/Token.Readme.md +20 -0
  581. package/src/tokens/web/components/switch/switch.json +241 -0
  582. package/src/tokens/web/components/tabs/Token.Readme.md +36 -0
  583. package/src/tokens/web/components/tabs/tabs.json +328 -0
  584. package/src/tokens/web/components/tile/Readme.md +39 -0
  585. package/src/tokens/web/components/tile/Token.Readme.md +13 -0
  586. package/src/tokens/web/components/tile/tile.json +442 -0
  587. package/src/tokens/web/components/time/Token.Readme.md +37 -0
  588. package/src/tokens/web/components/time/time.json +263 -0
  589. package/src/tokens/web/components/toast/Readme.md +19 -0
  590. package/src/tokens/web/components/toast/Token.Readme.md +35 -0
  591. package/src/tokens/web/components/toast/toast.json +464 -0
  592. package/src/tokens/web/components/toggle/Token.Readme.md +20 -0
  593. package/src/tokens/web/components/toggle/toggle.json +249 -0
  594. package/src/tokens/web/components/tree/Token.Readme.md +27 -0
  595. package/src/tokens/web/components/tree/tree.json +265 -0
  596. package/src/tokens/web/components/video/Token.Readme.md +10 -0
  597. package/src/tokens/web/components/video/video.json +23 -0
  598. package/src/tokens/web/components/wizard/Readme.md +41 -0
  599. package/src/tokens/web/components/wizard/Token.Readme.md +76 -0
  600. package/src/tokens/web/components/wizard/wizard.json +1449 -0
  601. package/src/tokens/web/global/border/border.json +116 -0
  602. package/src/tokens/web/global/border-style/border-style.json +72 -0
  603. package/src/tokens/web/global/box-shadow/box-shadow.json +24 -0
  604. package/src/tokens/web/global/colors/color.dark.json +398 -0
  605. package/src/tokens/web/global/colors/color.json +566 -0
  606. package/src/tokens/web/global/colors/color.light.json +1 -0
  607. package/src/tokens/web/global/elevation/elevation.json +48 -0
  608. package/src/tokens/web/global/font/font.json +599 -0
  609. package/src/tokens/web/global/gap/gap.json +57 -0
  610. package/src/tokens/web/global/icon/icon.json +84 -0
  611. package/src/tokens/web/global/margin/margin.json +57 -0
  612. package/src/tokens/web/global/opacity/opacity.json +7 -0
  613. package/src/tokens/web/global/radius/radius.json +77 -0
  614. package/src/tokens/web/global/space/space.json +125 -0
  615. package/src/tokens/web/global/spacer/spacer.json +45 -0
  616. package/src/utils/style-dictionary-utils.d.ts +25 -0
  617. package/src/utils/style-dictionary-utils.js +360 -0
  618. package/src/utils/style-dictionary-utils.js.map +1 -0
  619. package/src/utils/utils.d.ts +15 -0
  620. package/src/utils/utils.js +25 -0
  621. package/src/utils/utils.js.map +1 -0
  622. package/src/wm-namespace.d.ts +11 -0
  623. package/src/wm-namespace.js +12 -0
  624. package/src/wm-namespace.js.map +1 -0
  625. package/web.index.d.ts +20 -0
  626. package/web.index.js +300 -0
  627. package/web.index.js.map +1 -0
  628. package/webpack.config.cjs +43 -0
  629. package/webpack.config.cjs.map +1 -0
  630. package/webpack.config.d.cts +32 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-token.js","sourceRoot":"./","sources":["src/token-validation/validate-token.js"],"names":[],"mappings":"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","sourcesContent":["import fs from \"fs\";\nimport Ajv from \"ajv\";\nimport path from \"path\";\nimport { fileURLToPath } from \"url\";\n\nimport geComponentTokenSchema from \"./component-token-schema.js\";\nimport getGlobalTokenSchema from \"./global-token-schema.js\";\nimport validateTokenValue, { isTokenReference } from \"./validate-value.js\";\nimport {\n VALIDATION_RULES,\n ERROR_TYPES,\n TOKEN_TYPES,\n ALLOWED_PROPERTIES_BY_CONTEXT,\n VALIDATION_SCOPE,\n VALUE_RELATED_KEYWORDS,\n PLATFORM,\n FOLDER_TYPE\n} from \"./constants.js\";\n\n\n//Maps each token type to its validation schema and the rules enabled during validation.\nconst TOKEN_TYPE_CONFIG = {\n [TOKEN_TYPES.GLOBAL]: {\n getSchema: () => getGlobalTokenSchema(),\n resolveRules: () => ({\n [VALIDATION_RULES.STRUCTURE]: false,\n [VALIDATION_RULES.METADATA]: false,\n [VALIDATION_RULES.REFERENCES]: true,\n [VALIDATION_RULES.OVERRIDES]: false,\n [VALIDATION_RULES.VALUES]: true\n })\n },\n\n [TOKEN_TYPES.COMPONENT]: {\n getSchema: (enabledRules) => geComponentTokenSchema(enabledRules),\n resolveRules: (validationOptions) =>\n resolveEnabledValidationRules(validationOptions)\n }\n};\n\n/*\n * Normalizes and stores a validation error.\n * Inputs:\n * - errorType: category of validation error\n * - fieldName: dot-separated path of the invalid field\n * - message: human-readable error message\n * - fileName: name of the file being validated (optional)\n * - allowedValues: list of allowed values for the field (optional)\n * Output: - Adds a normalized error object to the internal validation error list\n */\nconst pushError = ({ errorType, fieldName, message, fileName, allowedValues, actualValue }, validationErrors) => {\n const error = { errorType, fieldName, message };\n if (allowedValues) error.allowedValues = allowedValues;\n if (fileName) error.fileName = fileName;\n if(actualValue !== undefined) error.actualValue = actualValue;\n\n validationErrors.push(error);\n};\n\n/*\n * Validates that leaf token nodes define a valid string value.\n * Inputs:\n * - _schema: AJV keyword schema value (not used)\n * - node: token node being validated\n * - ctx: AJV validation context containing the instance path\n * Output:\n * - Returns true if node is valid or not applicable\n * - Returns false and reports validation errors if leaf token is invalid\n */\nfunction leafMustHaveValueValidate(_schema, node, ctx) {\n // Skip meta subtree\n if (\n ctx.instancePath?.includes(\"/meta\") ||\n ctx.instancePath?.includes(\"/attributes\") ||\n ctx.instancePath?.endsWith(\"/type\")\n ) {\n return true;\n }\n\n // Primitive string leaf\n if (typeof node === \"string\") {\n leafMustHaveValueValidate.errors = [\n {\n keyword: \"leafMustHaveValue\",\n message:\n `Invalid token definition.\\n` +\n `Leaf tokens must be objects with a \"value\" property.\\n\\n` +\n `Expected format: { \"value\": \"16px\" }`\n }\n ];\n return false;\n }\n\n // null node\n if (node === null) {\n leafMustHaveValueValidate.errors = [\n {\n keyword: \"leafMustHaveValue\",\n message:\n `Invalid token definition.\\n` +\n `Token cannot be null.\\n\\n` +\n `Expected format: { \"value\": \"16px\" }`\n }\n ];\n return false;\n }\n\n //Ignore meta keys when deciding leaf\n const TOKEN_META_KEYS = new Set([\"value\",\"type\",\"attributes\",\"meta\"]);\n\n const childKeys = Object.keys(node).filter(\n k => !TOKEN_META_KEYS.has(k)\n );\n\n const hasNestedTokenChildren = childKeys.length > 0 && childKeys.some(k => node[k] && typeof node[k] === \"object\");\n const hasValue = \"value\" in node;\n\n //nodes with \"value\" cannot have nested token children\n if (hasValue && hasNestedTokenChildren) {\n leafMustHaveValueValidate.errors = [\n {\n keyword: \"leafMustHaveValue\",\n message:\n `Invalid token structure.\\n` +\n `A token that defines \"value\" cannot contain nested token objects.\\n` +\n `Move nested tokens to a separate level.`\n }\n ];\n return false;\n }\n // Object leaf without value\n if (!hasNestedTokenChildren && !hasValue) {\n leafMustHaveValueValidate.errors = [\n {\n keyword: \"leafMustHaveValue\",\n message:\n `Invalid token definition.\\n` +\n `Leaf tokens must be objects with a \"value\" property.\\n` +\n `Expected format: { \"value\": \"16px\" }`\n }\n ];\n return false;\n }\n\n // Invalid string literals\n const INVALID_STRING_LITERALS = new Set([\"null\", \"undefined\", \"nan\"]);\n\n if (\n typeof node.value === \"string\" &&\n INVALID_STRING_LITERALS.has(node.value.trim().toLowerCase())\n ) {\n leafMustHaveValueValidate.errors = [\n {\n keyword: \"leafMustHaveValue\",\n message:\n `Invalid token value.\\n` +\n `\"${node.value}\" is not allowed as a token value.`\n }\n ];\n return false;\n }\n\n return true;\n}\n\n/*\n * Resolves the token subtype from foundationMappingRegistry for an appearances override token.\n * Translates the AJV instancePath into a mapping registry lookup by stripping the appearances\n * hierarchy (appearances/<name>/mapping | variantGroups/<group>/<variant> | states/<state>)\n * and any embedded states segments from the remaining token path.\n *\n * Inputs:\n * - instancePath: AJV instance path of the token node (e.g. /btn/appearances/filled/mapping/border/color)\n * - foundationMappingRegistry: registry built from foundation component mappings\n * Output:\n * - Returns the subtype string if found, or null\n */\nfunction resolveSubtypeFromMapping(instancePath, foundationMappingRegistry) {\n const segments = instancePath.replace(/^\\//, \"\").split(\"/\").filter(Boolean);\n if (!segments.length) return null;\n\n const componentName = segments[0];\n const mappingRoot = foundationMappingRegistry[componentName];\n if (!mappingRoot) return null;\n\n const appearancesIdx = segments.indexOf(\"appearances\");\n if (appearancesIdx === -1) return null;\n\n // Start after: appearances/<appearanceName>\n let idx = appearancesIdx + 2;\n\n // Skip the override context prefix\n if (segments[idx] === \"mapping\") {\n idx += 1;\n } else if (segments[idx] === \"variantGroups\") {\n idx += 3; // variantGroups/<group>/<variant>\n } else if (segments[idx] === \"states\") {\n idx += 2; // states/<stateName>\n if (segments[idx] === \"mapping\") idx += 1; // strip trailing mapping if present\n }\n\n // Build token path, skipping any embedded states/<stateName> segments\n const tokenPath = [];\n while (idx < segments.length) {\n if (segments[idx] === \"states\") {\n idx += 2;\n } else {\n tokenPath.push(segments[idx]);\n idx++;\n }\n }\n\n // Traverse the mapping structure\n let node = mappingRoot;\n for (const key of tokenPath) {\n if (!node || typeof node !== \"object\") return null;\n node = node[key];\n }\n\n return node?.__subtype ?? null;\n}\n\n/*\n * Validates actual token values against platform/subtype rules.\n * For tokens in the `appearances` section that lack attributes.subtype, the subtype\n * is resolved from foundationMappingRegistry. Reports an error if the subtype cannot\n * be determined for an appearances override.\n *\n * Inputs:\n * - _schema: AJV keyword schema value (not used)\n * - node: token node being validated\n * - ctx: AJV validation context (provides instancePath)\n * Output:\n * - Returns true if not a leaf, rule disabled, or value is valid\n * - Returns false and reports validation errors if value is invalid or subtype is unresolvable\n */\nfunction tokenValueContentValidate(_schema, node, _parentSchema, ctx) {\n const { enabledRules, platform, foundationMappingRegistry } = this.context;\n tokenValueContentValidate.errors = null;\n\n // Only validate leaf tokens (objects that define a value)\n if (!node || typeof node !== \"object\" || !(\"value\" in node)) return true;\n\n // Rule disabled\n if (!enabledRules?.[VALIDATION_RULES.VALUES]) return true;\n\n let subtype = node.attributes?.subtype;\n\n if (!subtype) {\n const instancePath = ctx.instancePath ?? \"\";\n if (instancePath.includes(\"/appearances/\")) {\n // For appearance overrides, resolve subtype from the foundation mapping registry\n subtype = resolveSubtypeFromMapping(instancePath, foundationMappingRegistry);\n if (!subtype) {\n // const fieldName = instancePath.replace(/^\\//, \"\").replace(/\\//g, \".\");\n // tokenValueContentValidate.errors = [\n // {\n // keyword: \"tokenValueContent\",\n // message: `Cannot determine subtype for override token at \"${fieldName}\". No matching entry found in foundation mapping.`\n // }\n // ];\n return true;\n }\n } else {\n // Base mapping token without subtype — not validatable, skip\n return true;\n }\n }\n\n const value = node.value;\n\n // Reference values are validated by the references rule\n if (isTokenReference(value)) return true;\n\n const result = validateTokenValue(value, subtype, platform ?? PLATFORM.WEB);\n if (!result.valid) {\n const errorObj = result.errorObject;\n const message = errorObj\n ? `Invalid value \"${errorObj.value}\" for subtype \"${errorObj.subtype}\". Expected: ${errorObj.expectedFormat}`\n : `Invalid value \"${value}\" for subtype \"${subtype}\"`;\n\n tokenValueContentValidate.errors = [{ keyword: \"tokenValueContent\", message }];\n return false;\n }\n\n return true;\n}\n\n/*\n * Validates token string values for reference placeholders.\n * Inputs:\n * - _schema: AJV keyword schema value (not used, required by AJV signature)\n * - tokenValue: string token value being validated\n * Output:\n * - Returns true if all references are valid or rule is disabled\n * - Returns false and attaches validation errors if any reference is invalid\n */\nfunction validateTokenReference(_unusedSchema, tokenValue) {\n const { enabledRules, globalTokenRegistry } = this.context;\n validateTokenReference.errors = null;\n if (!enabledRules?.[VALIDATION_RULES.REFERENCES]) return true;\n\n const referencePlaceholders =\n typeof tokenValue === \"string\" ? tokenValue.match(/{[^}]+}/g) : null;\n\n if (!referencePlaceholders) return true;\n\n const invalidReference = referencePlaceholders.find(referenceExpression => {\n const rawReferencePath = referenceExpression.replace(/[{}]/g, \"\")?.trim();\n\n // Reject empty references\n if (!rawReferencePath) {\n validateTokenReference.errors = [\n {\n keyword: \"refExists\",\n message: `Empty reference is not allowed → ${referenceExpression}`\n }\n ];\n return true;\n }\n\n // Ensure reference ends with `.value`\n if (!rawReferencePath.endsWith(\".value\")) {\n validateTokenReference.errors = [\n {\n keyword: \"refExists\",\n message: `Reference must end with .value → ${referenceExpression}`\n }\n ];\n return true;\n }\n\n const resolvedTokenPath = rawReferencePath.replace(/\\.value$/, \"\");\n // Ensure referenced token exists globally\n return !globalTokenRegistry[resolvedTokenPath];\n });\n\n if (invalidReference) {\n if (!validateTokenReference.errors) {\n validateTokenReference.errors = [\n {\n keyword: \"refExists\",\n message: `Reference does not exist → ${invalidReference}`\n }\n ];\n }\n return false;\n }\n\n return true;\n}\n\n/*\n * Creates the override validation function used by the overrideContext AJV keyword.\n * Inputs:\n * - _schema: AJV keyword schema value (not used)\n * - _parentSchema: parent schema (not used)\n * Output:\n * - Returns a validator function that AJV executes during validation\n */\nfunction compileOverrideKeyword() {\n return function validateOverrideAgainstBaseMapping(overrideNode, ctx) {\n const { enabledRules, foundationMappingRegistry } = this.context;\n //STOP — do not run override validation on primitives\n if (overrideNode === null || typeof overrideNode !== \"object\") {\n return true;\n }\n\n //STOP — do not run override validation on token leaf\n if (\"value\" in overrideNode) {\n return true;\n }\n\n // Rule disabled\n if (!enabledRules?.[VALIDATION_RULES.OVERRIDES]) return true;\n\n const instancePath = ctx.instancePath;\n\n const isOverrideRoot =\n instancePath.endsWith(\"/mapping\") ||\n instancePath.match(/\\/states\\/[^/]+$/) ||\n instancePath.match(/\\/variantGroups\\/[^/]+\\/[^/]+$/) ||\n instancePath.match(/\\/variantGroups\\/[^/]+\\/[^/]+\\/states\\/[^/]+$/);\n\n if (!isOverrideRoot) return true;\n\n const root = ctx.rootData;\n\n // Component name from override JSON\n const componentName = Object.keys(root)[0];\n\n // BASE STRUCTURE MUST COME FROM FOUNDATION\n const baseStructure = foundationMappingRegistry[componentName];\n\n // If foundation has no mapping, skip validation\n if (!baseStructure) return true;\n\n const overrideErrors = [];\n const basePath = deriveBasePath(componentName, instancePath);\n\n validateOverridePathRecursively(\n overrideNode,\n baseStructure,\n basePath,\n overrideErrors,\n instancePath\n );\n\n if (overrideErrors.length) {\n validateOverrideAgainstBaseMapping.errors = overrideErrors.map(e => ({\n instancePath: e.instancePath,\n keyword: \"overrideContext\",\n message: e.message\n }));\n return false;\n }\n\n return true;\n };\n}\n\n// Resolves the root directory of foundation tokens.\nfunction resolveFoundationTokenRootDir(platform = PLATFORM.WEB) {\n if(!Object.values(PLATFORM).includes(platform)) {\n throw new Error(\n \"Platform property is invalid, allowed properties are \" +\n Object.values(PLATFORM).join(\", \")\n );\n }\n\n // Full path of this file (validate-token.js)\n const currentFilePath = fileURLToPath(import.meta.url);\n\n // Directory containing this file (scripts/)\n const currentDirPath = path.dirname(currentFilePath);\n const folder = platform == PLATFORM.MOBILE ? FOLDER_TYPE.MOBILE : FOLDER_TYPE.WEB;\n return path.resolve(\n currentDirPath,\n \"../../src/tokens\",\n folder\n );\n}\n\n/*\n * Validates override paths against the foundation component mapping recursively.\n * Inputs:\n * - overrideNode: override token node being validated\n * - baseNode: corresponding foundation mapping node\n * - path: dot-separated path representing the current base mapping location\n * - overrideErrors: array used to collect override validation errors\n * - instancePath: AJV instance path of the current override node\n * Output:\n * - Populates the overrideErrors array with invalid override path errors\n */\nfunction validateOverridePathRecursively(\n overrideNode,\n baseNode,\n path,\n overrideErrors,\n instancePath\n) {\n\n if (path.endsWith(\".states\")) {\n return;\n }\n\n //stop recursion at token leaf object\n if (\n overrideNode &&\n typeof overrideNode === \"object\" &&\n (\"value\" in overrideNode || \"type\" in overrideNode || \"attributes\" in overrideNode)\n ) {\n return;\n }\n\n // Base missing\n if (!baseNode) {\n overrideErrors.push({\n instancePath,\n message: `Override path does NOT exist in base mapping → ${path}`\n });\n return;\n }\n\n // Override must be object\n if (overrideNode === null || typeof overrideNode !== \"object\") {\n return;\n }\n\n // BASE IS LEAF\n if (baseNode.__leaf) {\n\n for (const key of Object.keys(overrideNode || {})) {\n if (![\"value\", \"type\", \"attributes\"].includes(key)) {\n overrideErrors.push({\n instancePath: `${instancePath}/${key}`,\n message: `Override path does NOT exist in base mapping → ${path}.${key}`\n });\n }\n }\n\n return;\n }\n\n for (const key of Object.keys(overrideNode)) {\n // NEVER validate \"states\" structurally\n if (key === \"states\") {\n continue;\n }\n\n if (!baseNode[key]) {\n overrideErrors.push({\n instancePath: `${instancePath}/${key}`,\n message: `Override path does NOT exist in base mapping → ${path}.${key}`\n });\n continue;\n }\n\n validateOverridePathRecursively(\n overrideNode[key],\n baseNode[key],\n `${path}.${key}`,\n overrideErrors,\n `${instancePath}/${key}`\n );\n }\n}\n\n/*\n * Registers all token paths that define a concrete value by traversing a token JSON tree.\n * Inputs:\n * - tokenNode: token JSON object to traverse\n * - parentPath: dot-separated parent token path (used during recursion)\n * Output:\n * - Populates the global token registry with resolved token paths\n */\nfunction registerTokenDefinitionsRecursively(tokenNode,registry, parentPath = \"\") {\n if (!tokenNode || typeof tokenNode !== \"object\") return;\n\n Object.keys(tokenNode).forEach(tokenKey => {\n const currentTokenPath = parentPath\n ? `${parentPath}.${tokenKey}`\n : tokenKey;\n\n const tokenValue = tokenNode[tokenKey];\n\n // Register tokens that define a concrete value\n if (\n tokenValue &&\n typeof tokenValue === \"object\" &&\n \"value\" in tokenValue\n ) {\n if (!registry[currentTokenPath]) {\n registry[currentTokenPath] = true;\n }\n }\n\n // Continue traversal for nested token objects\n if (tokenValue && typeof tokenValue === \"object\") {\n registerTokenDefinitionsRecursively(tokenValue,registry, currentTokenPath);\n }\n });\n}\n\n/*\n * Registers all discovered token definitions into the global token registry.\n * Inputs:\n * - directoryPath: root directory to scan for token JSON files\n * Output:\n * - Registers all discovered token definitions into the global token registry\n */\nfunction collectAllTokenDefinitionsFromDir(directoryPath,registry) {\n fs.readdirSync(directoryPath).forEach(entryName => {\n const entryPath = path.join(directoryPath, entryName);\n const entryStats = fs.statSync(entryPath);\n\n // Recurse into subdirectories\n if (entryStats.isDirectory()) {\n return collectAllTokenDefinitionsFromDir(entryPath,registry);\n }\n\n // Process only JSON token files\n if (!entryName.endsWith(\".json\")) return;\n\n const tokenFileContent = JSON.parse(\n fs.readFileSync(entryPath, \"utf8\")\n );\n registerTokenDefinitionsRecursively(tokenFileContent,registry);\n });\n}\n\n//Builds the foundation global tokens directory path and passes it for token definition collection.\nfunction collectFoundationGlobalTokens(foundationRootDir) {\n const registry = {};\n const globalDir = path.join(foundationRootDir, \"global\");\n collectAllTokenDefinitionsFromDir(globalDir,registry);\n return registry;\n}\n\n//Builds the foundation components directory path and collects component mapping structures for override validation.\nfunction collectFoundationComponentMappings(foundationRootDir) {\n const registry = {};\n const componentsDir = path.join(foundationRootDir, \"components\");\n collectFoundationMappings(componentsDir, registry);\n return registry;\n}\n\n/*\n * Determines which properties are allowed for a given JSON path.\n * Inputs:\n * - instancePath: AJV instance path of the current validation error\n * Output:\n * - Returns a list of allowed property names for the path\n * - Returns undefined if no specific rule applies\n */\nfunction resolveAllowedProperties(instancePath) {\n const normalizedPath = instancePath\n ? instancePath.replace(/^\\//, \"\").replace(/\\//g, \".\")\n : \"\";\n\n for (const rule of ALLOWED_PROPERTIES_BY_CONTEXT) {\n if (rule.match(normalizedPath)) {\n return rule.allowed;\n }\n }\n\n return undefined;\n}\n\n/*\n * Resolves which validation rules are enabled for the current validation run.\n * Inputs: - validationOptions: configuration that may specify enabled validation rules\n * Output: - Returns an object mapping each validation rule to a boolean flag\n */\nfunction resolveEnabledValidationRules({ rules = [], isFoundationValidation = false } = {}) {\n const allAvailableRules = Object.values(VALIDATION_RULES);\n \n // Define rules when no rules are set explicitly \n const defaultEnabledRules = new Set([VALIDATION_RULES.STRUCTURE, VALIDATION_RULES.METADATA]);\n\n return Object.fromEntries(\n allAvailableRules.map(rule => {\n if (isFoundationValidation) {\n //Excluding reference rule for foundation css\n if (rule === VALIDATION_RULES.REFERENCES) {\n return [rule, false];\n }\n return [rule, true];\n }\n\n //If rules set explicity then enable only those rules\n if (rules.length > 0) return [rule, rules.includes(rule)];\n\n //Enable only if NOT in the default enabled set of rules for component validation\n return [rule, !defaultEnabledRules.has(rule)];\n })\n );\n}\n\n/*\n * Processes AJV validation errors and converts them into normalized validation errors.\n * Inputs:\n * - validate: compiled AJV validation function containing validation errors\n * - filePath: path of the JSON file being validated (optional)\n*/\nfunction handleValidationErrors({ validate, filePath }, validationErrors) {\n\n const fileName = filePath ? filePath.split(\"/\").pop() : undefined;\n\n if(validate.errors) {\n validate.errors.forEach(ajvError => {\n const { fieldName, errorMessage, errorMetadata } = extractValidationErrorDetails(ajvError);\n\n // Default error object\n let errorObj = {\n errorType: ERROR_TYPES.INVALID_VALUE,\n fieldName,\n message: errorMessage,\n fileName\n };\n\n switch (ajvError.keyword) {\n\n // RULE-3 → Reference errors\n case \"refExists\":\n errorObj.errorType = ERROR_TYPES.INVALID_REFERENCE;\n break;\n\n // RULE-4 → Invalid override fields\n case \"overrideContext\":\n errorObj.errorType = ERROR_TYPES.INVALID_FIELD;\n break;\n\n // Leaf / enum value validation\n case \"leafMustHaveValue\":\n case \"enum\":\n if (errorMetadata.allowedValues) {\n errorObj.allowedValues = errorMetadata.allowedValues;\n }\n break;\n\n // TYPE errors → structure or value\n case \"type\": {\n const expectedType = ajvError.params?.type;\n const actualType = Array.isArray(ajvError.data)\n ? \"array\"\n : typeof ajvError.data;\n\n if (expectedType === \"object\") {\n errorObj.errorType = ERROR_TYPES.INVALID_STRUCTURE;\n errorObj.message = `Expected a token object, but found ${actualType}`;\n }\n break;\n }\n\n // JSON structure issues\n case \"required\":\n case \"minProperties\":\n case \"maxProperties\":\n errorObj.errorType = ERROR_TYPES.INVALID_STRUCTURE;\n break;\n\n case \"additionalProperties\":\n errorObj.errorType = ERROR_TYPES.INVALID_STRUCTURE;\n const allowedValues = resolveAllowedProperties(ajvError.instancePath);\n if (allowedValues) {\n errorObj.allowedValues = allowedValues;\n }\n break;\n\n default:\n // RULE-2 → Missing metadata\n if (errorMessage.includes('must match \"then\" schema')) {\n errorObj.errorType = ERROR_TYPES.MISSING_FIELD;\n errorObj.message =\n \"Missing required metadata: type, attributes.subtype, attributes.description\";\n }\n }\n if (VALUE_RELATED_KEYWORDS.has(ajvError.keyword)) {\n errorObj.actualValue = ajvError.data;\n }\n\n pushError(errorObj, validationErrors);\n });\n }\n}\n\n/*\n * Extracts readable validation error details from an AJV error object.\n *\n * Input:\n * - ajvError: a single validation error produced by AJV\n *\n * Output:\n * - fieldName: dot-separated path of the invalid field\n * - errorMessage: human-readable validation message\n * - errorMetadata: additional details such as allowed values (when applicable)\n */\nfunction extractValidationErrorDetails(ajvError) {\n const fieldName =\n ajvError.instancePath\n ? ajvError.instancePath.replace(/^\\//, \"\").replace(/\\//g, \".\")\n : \"(root)\";\n\n const errorMessage = ajvError.message || \"Invalid token value\";\n\n const errorMetadata = {};\n\n // ENUM-specific metadata\n if (ajvError.keyword === \"enum\" && Array.isArray(ajvError.params?.allowedValues)) {\n errorMetadata.allowedValues = ajvError.params.allowedValues;\n }\n\n return {\n fieldName,\n errorMessage,\n errorMetadata\n };\n}\n\n//Validates the token type against supported values and normalizes it.\nfunction validateAndNormalizeTokenType(tokenType) {\n if (typeof tokenType !== \"string\") {\n throw new Error(`tokenType must be a string`);\n }\n\n const normalizedTokenType = tokenType.toLowerCase();\n\n if (!TOKEN_TYPE_CONFIG[normalizedTokenType]) {\n throw new Error(\n `Invalid tokenType \"${tokenType}\". Allowed values: ${Object.keys(TOKEN_TYPE_CONFIG).join(\", \")}`\n );\n }\n\n return normalizedTokenType;\n}\n\n/*\n * Collects structural mapping definitions for all foundation components.\n * Input:\n * - directoryPath: root directory containing foundation component token files\n *\n * Output:\n * - Populates the foundation mapping registry with structure-only representations of each component’s mapping\n */\nfunction collectFoundationMappings(directoryPath,componentsMappingregistry = {}) {\n // Read all entries(files + folders ) in the directory\n fs.readdirSync(directoryPath).forEach(entryName => {\n\n // Absolute path to the current entry\n const entryPath = path.join(directoryPath, entryName);\n\n // File system metadata (file or directory)\n const entryStats = fs.statSync(entryPath);\n\n // Recurse into subdirectories\n if (entryStats.isDirectory()) {\n collectFoundationMappings(entryPath, componentsMappingregistry);\n return;\n }\n\n if (!entryName.endsWith(\".json\")) return;\n\n const componentJson = JSON.parse(fs.readFileSync(entryPath, \"utf8\"));\n\n for (const componentName of Object.keys(componentJson)) {\n const mapping = componentJson[componentName]?.mapping;\n if (!mapping) continue;\n\n componentsMappingregistry[componentName] = extractMappingStructure(mapping);\n }\n });\n return componentsMappingregistry;\n}\n\n/*\n * Extracts the structural shape of a foundation component mapping for override validation.\n *\n * Input:\n * - componentMapping / node: the `mapping` object of a foundation component token\n *\n * Output:\n * - Returns a structure-only representation of the mapping\n * - Leaf nodes are marked to indicate valid override endpoints\n */\nfunction extractMappingStructure(node) {\n if (!node || typeof node !== \"object\") {\n return { __leaf: true };\n }\n\n const keys = Object.keys(node).filter(\n k => ![\"value\", \"type\", \"attributes\", \"states\"].includes(k)\n );\n\n // LEAF TOKEN\n if (keys.length === 0) {\n const leaf = { __leaf: true };\n if (node.attributes?.subtype) leaf.__subtype = node.attributes.subtype;\n return leaf;\n }\n\n const structure = {};\n\n for (const key of keys) {\n structure[key] = extractMappingStructure(node[key]);\n }\n\n return structure;\n}\n\n//Finds the correct starting point for validating an override.\nfunction deriveBasePath(componentName, instancePath) {\n if (instancePath.includes(\"/variantGroups\")) {\n return `${componentName}.variantGroups`;\n }\n if (instancePath.includes(\"/states\")) {\n return `${componentName}.states`;\n }\n return `${componentName}.mapping`;\n}\n\n/*\n * Collects token definitions from an array of JSON objects.\n * Inputs: - jsonArray: an array of token JSON objects\n * Output: Registers all token paths that define a concrete value into the internal global token registry\n */\nfunction collectTokenDefinitionsFromJsonArray(registry, jsonArray = []) {\n if (!Array.isArray(jsonArray)) return;\n\n jsonArray.forEach((json) => {\n if (!json || typeof json !== \"object\") return;\n\n registerTokenDefinitionsRecursively(json,registry);\n });\n}\n\n/*\n * Validates a single token JSON object (global or component).\n * Inputs:\n * - json: The token JSON object to validate.\n * - tokenType: The type of token being validated (\"global\" or \"component\").\n * - validationConfig:Controls which validation rules are enabled for this run.\n * - rules: optional list of rule names to enable explicitly\n * - isFoundationValidation: when true, all rules are enabled\n * - externalGlobalTokenJsons: Optional additional global token JSONs whose token values can be referenced during validation.\n * Output:Validation errors are collected internally and can be retrieved using getValidationErrors().\n * - In the next iteration, project directory overrides will be used instead of externalGlobalTokenJsons.\n */\nexport class TokenValidator {\n constructor(args) {\n this.externalGlobalTokenJsons = args.externalGlobalTokenJsons || [];\n this.validationErrors = [];\n this.ajvEngine = new TokenAjvEngine();\n this.ajv = this.ajvEngine.getValidatorEngine();\n this.platform = args.platform ?? PLATFORM.WEB;\n this.foundationTokensDir = resolveFoundationTokenRootDir(this.platform);\n const globalTokenRegistry = collectFoundationGlobalTokens(this.foundationTokensDir);\n if (Array.isArray(this.externalGlobalTokenJsons)) {\n collectTokenDefinitionsFromJsonArray(globalTokenRegistry,this.externalGlobalTokenJsons);\n }\n this.ajv.context.globalTokenRegistry = globalTokenRegistry;\n this.ajv.context.platform = this.platform;\n }\n // Validates a token JSON object against the appropriate schema and rules based on its type.\n validateTokenJson({ json, validationConfig = {}, tokenType }) {\n if (!json || typeof json !== \"object\") {\n throw new Error(\"validateTokenJson requires a valid JSON object\");\n }\n\n // Reset validation errors for each run\n this.validationErrors.length = 0;\n const resolvedTokenType = validateAndNormalizeTokenType(tokenType);\n const tokenConfig = TOKEN_TYPE_CONFIG[resolvedTokenType];\n this.ajv.context.enabledRules = tokenConfig.resolveRules(validationConfig);\n this.ajv.context.foundationMappingRegistry = {};\n if(tokenType === TOKEN_TYPES.COMPONENT) {\n this.ajv.context.foundationMappingRegistry = collectFoundationComponentMappings(this.foundationTokensDir);\n }\n const schema = tokenConfig.getSchema(this.ajv.context.enabledRules);\n const validate = this.ajv.compile(schema);\n validate(json);\n handleValidationErrors({ validate}, this.validationErrors);\n }\n\n getValidationErrors() {\n return this.validationErrors;\n }\n}\n\n// Custom AJV engine class to encapsulate validator instance and custom keyword registrations\n class TokenAjvEngine {\n constructor() {\n this.validatorEngine = new Ajv({ allErrors: true, verbose: true, allowMatchingProperties: true });\n\n this.validatorEngine.context = {\n enabledRules: null,\n globalTokenRegistry: {},\n foundationMappingRegistry: {},\n platform: PLATFORM.WEB\n }\n this.registerCustomValidations();\n }\n \n registerCustomValidations() {\n const CUSTOM_VALIDATIONS = [\n {\n keyword: \"refExists\",\n type: \"string\",\n errors: true,\n validate: validateTokenReference\n },\n {\n keyword: \"overrideContext\",\n type: \"object\",\n errors: true,\n compile: compileOverrideKeyword\n },\n {\n keyword: \"leafMustHaveValue\",\n type: [\"object\", \"string\"],\n errors: true,\n validate: leafMustHaveValueValidate\n },\n {\n keyword: \"tokenValueContent\",\n type: \"object\",\n errors: true,\n validate: tokenValueContentValidate\n }\n ];\n CUSTOM_VALIDATIONS.forEach(k => this.validatorEngine.addKeyword(k));\n }\n getValidatorEngine() {\n return this.validatorEngine;\n }\n}\n/*\n Validates an entire folder hierarchy of token JSON files.\n * Constructor inputs:\n * 1) validationScope:\n * - Determines the validation mode.\n * - Possible values:\n * - VALIDATION_SCOPE.FOUNDATION → validates foundation CSS tokens\n * - VALIDATION_SCOPE.PROJECT → validates project override tokens\n *\n * 2) projectOverrideDirs - Exact directories where project token validation should run.\n *\n * 3) isWebFolder:\n * - Indicates whether validation should target the web or mobile\n * foundation token folder.\n * - Used to resolve the correct foundation token root directory.\n *\n*/\nexport class TokenFolderValidator {\n constructor(args) {\n this.validationScope = args.validationScope || VALIDATION_SCOPE.PROJECT;\n this.projectOverrideDirs = args.projectOverrideDirs || [];\n this.validationErrors = [];\n this.ajvEngine = new TokenAjvEngine();\n this.ajv = this.ajvEngine.getValidatorEngine();\n this.platform = args.platform ?? PLATFORM.WEB;\n this.foundationTokensDir = resolveFoundationTokenRootDir(this.platform);\n this.createAjvContext();\n this.resolvedValidationTargets = this.resolveValidationTargets();\n }\n\n createAjvContext() {\n this.isFoundation = this.validationScope === VALIDATION_SCOPE.FOUNDATION;\n this.isProject = this.validationScope === VALIDATION_SCOPE.PROJECT;\n this.ajv.context.platform = this.platform;\n if (this.isProject && this.projectOverrideDirs.length === 0) {\n pushError({\n errorType: ERROR_TYPES.BUILD_ERROR,\n fieldName: \"Root\",\n message: \"Project validation requires at least one project override directory, but none were provided.\"\n }, this.validationErrors);\n return;\n }\n\n this.ajv.context.foundationMappingRegistry = collectFoundationComponentMappings(this.foundationTokensDir);\n const globalTokenRegistry = collectFoundationGlobalTokens(this.foundationTokensDir);\n\n if (this.isProject) {\n this.projectOverrideDirs.forEach(projectDir => {\n const { globalDir } = this.resolveProjectOverrideDirs(projectDir);\n if (globalDir && fs.existsSync(globalDir)) {\n collectAllTokenDefinitionsFromDir(globalDir, globalTokenRegistry);\n }\n });\n }\n\n this.ajv.context.globalTokenRegistry = globalTokenRegistry;\n }\n\n // Resolves which folders should be validated.\n resolveValidationTargets() {\n const validationTargets = [];\n\n if (this.isProject) {\n this.projectOverrideDirs.forEach(projectDir => {\n if (!fs.existsSync(projectDir)) return;\n\n const { globalDir, componentsDir } = this.resolveProjectOverrideDirs(projectDir);\n\n if (globalDir && fs.existsSync(globalDir)) {\n validationTargets.push({ type: TOKEN_TYPES.GLOBAL, dir: globalDir });\n }\n\n if (componentsDir && fs.existsSync(componentsDir)) {\n validationTargets.push({ type: TOKEN_TYPES.COMPONENT, dir: componentsDir });\n }\n });\n }\n\n //Resolve folders to validate\n if (this.isFoundation) {\n const globalDir = path.join(this.foundationTokensDir, \"global\");\n const componentsDir = path.join(this.foundationTokensDir, \"components\");\n validationTargets.push({ type: TOKEN_TYPES.GLOBAL, dir: globalDir });\n validationTargets.push({ type: TOKEN_TYPES.COMPONENT, dir: componentsDir });\n }\n\n return validationTargets;\n }\n\n /* Main entry point that validates all token JSON files in the resolved folders \n Inputs : \n 1) validationConfig:Controls which validation rules are enabled for this run.\n * - rules: optional list of rule names to enable explicitly\n * - isFoundationValidation: when true, all rules are enabled\n */\n validateFolder(validationConfig = {}) {\n // Nothing to validate\n if (this.isProject && this.projectOverrideDirs.length === 0) {\n return;\n }\n\n // Clear previous errors\n this.validationErrors.length = 0;\n\n this.resolvedValidationTargets.forEach(({ type, dir }) => {\n const tokenConfig = TOKEN_TYPE_CONFIG[type];\n\n // Enable rules for this run\n this.ajv.context.enabledRules = tokenConfig.resolveRules(\n {\n ...validationConfig,\n isFoundationValidation: this.isFoundation\n });\n\n const schema = tokenConfig.getSchema(this.ajv.context.enabledRules);\n\n const validate = this.ajv.compile(schema);\n\n this.traverseAndValidateJsonFiles(dir, validate);\n });\n }\n\n // Returns all collected validation errors.\n getValidationErrors() {\n return this.validationErrors;\n }\n\n //Resolves the available global and component override directories for a project.\n resolveProjectOverrideDirs(overridesDir) {\n const globalDir = path.join(overridesDir, \"global\");\n const componentsDir = path.join(overridesDir, \"components\");\n\n return {\n globalDir: fs.existsSync(globalDir) ? globalDir : null,\n componentsDir: fs.existsSync(componentsDir) ? componentsDir : null\n };\n }\n\n /*\n * Validates a single JSON file using schema and custom validation rules.\n * Inputs:\n * - filePath: path to the JSON file being validated\n * - validate: compiled AJV validation function\n * Output:\n * - Parses and validates the file\n * - Collects validation errors if any are found\n */\n validateFile(filePath, validate) {\n\n const { ok, json, error } = this.parseJsonSafely(filePath);\n const file = path.basename(filePath);\n\n //JSON STRUCTURE VALIDATION\n if (!ok) {\n pushError({\n errorType: ERROR_TYPES.INVALID_JSON,\n fieldName: \"(root)\",\n message: error.message,\n fileName: file\n }\n );\n return; // don't run AJV\n }\n\n validate(json);\n\n handleValidationErrors({\n validate,\n filePath\n }, this.validationErrors);\n }\n\n /*\n * Safely reads and parses a JSON file without throwing runtime errors.\n * Inputs: filePath: path to the JSON file\n * Output: Returns an object with either the parsed JSON or the parsing error\n */\n parseJsonSafely(filePath) {\n try {\n const content = fs.readFileSync(filePath, \"utf8\");\n return { ok: true, json: JSON.parse(content) };\n } catch (err) {\n return { ok: false, error: err };\n }\n }\n\n /*\n * Recursively traverses a directory and validates all JSON files found.\n * Inputs:\n * - dir: root directory to traverse\n * - validate: compiled AJV validation function\n * Output: - Validates each JSON file and collects validation errors\n */\n traverseAndValidateJsonFiles(dir, validate, visitedSet = new Set()) {\n // Resolve the real path of the current directory\n const realDir = fs.realpathSync(dir);\n\n // If we’ve already visited this path, skip it to avoid cycles\n if (visitedSet.has(realDir)) return;\n visitedSet.add(realDir);\n\n // Read directory contents\n fs.readdirSync(dir).forEach(name => {\n const full = path.join(dir, name);\n let stat;\n try {\n stat = fs.statSync(full);\n } catch (err) {\n console.warn(`Skipping inaccessible file: ${full}`);\n return;\n }\n\n if (stat.isDirectory()) {\n this.traverseAndValidateJsonFiles(full, validate, visitedSet);\n } else if (name.endsWith(\".json\")) {\n this.validateFile(full, validate);\n }\n });\n }\n\n /**\n * Generates a Markdown validation report summarizing all errors.\n * Output:\n * - Creates a README-style markdown file listing validation errors in generated folder\n */\n generateValidationReport(outputDir) {\n // Default to <project-root>/generated if outputDir is not provided\n const baseDir = outputDir || path.join(process.cwd(), \"generated\");\n\n // Ensure folder exists\n if (!fs.existsSync(baseDir)) {\n fs.mkdirSync(baseDir, { recursive: true });\n }\n\n if (!this.validationErrors.length) {\n const content = `# Token Validation Report\\n\\n No validation errors found.\\n`;\n fs.writeFileSync(path.join(baseDir, \"VALIDATION_REPORT.md\"), content);\n return;\n }\n\n const groupedByFile = {};\n\n // Group errors by file\n this.validationErrors.forEach(err => {\n const file = err.fileName || \"(unknown file)\";\n if (!groupedByFile[file]) groupedByFile[file] = [];\n groupedByFile[file].push(err);\n });\n\n let md = `# Token Validation Report\\n\\n`;\n md += `Generated on: ${new Date().toLocaleString()}\\n\\n`;\n md += `Total Errors: **${this.validationErrors.length}**\\n\\n`;\n md += `---\\n`;\n\n Object.entries(groupedByFile).forEach(([file, errors]) => {\n md += `## ${file} – ${errors.length} error${errors.length > 1 ? \"s\" : \"\"}\\n\\n`;\n\n errors.forEach((err, index) => {\n md += `### ${index + 1}. ${err.errorType}\\n`;\n md += `- **Path**: \\`${err.fieldName}\\`\\n`;\n md += `- **Message**: ${err.message}\\n`;\n\n if (err.allowedValues) {\n md += `- **Allowed Values**: ${err.allowedValues.join(\", \")}\\n`;\n }\n if (err.actualValue) {\n md += `- **Actual value**: ${err.actualValue}\\n `;\n }\n\n md += `\\n`;\n });\n\n md += `---\\n`;\n });\n const reportName = this.platform === PLATFORM.MOBILE\n ? \"mobile_tokens_validation_report.md\"\n : \"web_tokens_validation_report.md\";\n fs.writeFileSync(\n path.join(baseDir, reportName),\n md,\n \"utf8\"\n );\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Validates a token value against platform and subtype rules.
3
+ *
4
+ * @param {string|number} value - The raw token value.
5
+ * @param {string} subtype - e.g. "font-size", "color", "space".
6
+ * @param {string} platform - "native_mobile" | "web"
7
+ * @returns {{ valid: boolean, errorObject?: object }}
8
+ */
9
+ export default function validateTokenValue(value: string | number, subtype: string, platform: string): {
10
+ valid: boolean;
11
+ errorObject?: object;
12
+ };
13
+ export function isTokenReference(value: any): boolean;
@@ -0,0 +1,57 @@
1
+ import { WEB_VALIDATION_RULES } from "./validator-utils/web.js";
2
+ import { MOBILE_RULES } from "./validator-utils/native_mobile.js";
3
+ import { createErrorResponse, createSuccessResponse, getRuleDescription } from "./validator-utils/common/utils.js";
4
+ import { PLATFORM } from "./constants.js";
5
+ const RULES_BY_PLATFORM = {
6
+ [PLATFORM.MOBILE]: MOBILE_RULES,
7
+ [PLATFORM.WEB]: WEB_VALIDATION_RULES,
8
+ };
9
+ /**
10
+ * Validates a value against the rule set for the given platform and subtype.
11
+ */
12
+ function validateValue(value, subtype, platform) {
13
+ const rules = RULES_BY_PLATFORM[platform];
14
+ const rule = rules?.[subtype];
15
+ if (!rule?.validate)
16
+ return createSuccessResponse();
17
+ const result = rule.validate(value, rule);
18
+ if (!result.valid) {
19
+ return createErrorResponse(subtype, value, getRuleDescription(rule), platform);
20
+ }
21
+ return createSuccessResponse();
22
+ }
23
+ /**
24
+ * Validates a token value against platform and subtype rules.
25
+ *
26
+ * @param {string|number} value - The raw token value.
27
+ * @param {string} subtype - e.g. "font-size", "color", "space".
28
+ * @param {string} platform - "native_mobile" | "web"
29
+ * @returns {{ valid: boolean, errorObject?: object }}
30
+ */
31
+ export default function validateTokenValue(value, subtype, platform) {
32
+ //Remove this for web
33
+ if (platform !== PLATFORM.MOBILE)
34
+ return { valid: true };
35
+ // TODO Handling empty values
36
+ if (value === undefined || value === null || value === "")
37
+ return { valid: true };
38
+ if (isTokenReference(value))
39
+ return { valid: true };
40
+ const normalised = typeof value === "string" ? value.trim() : String(value);
41
+ return validateValue(normalised, subtype, platform);
42
+ }
43
+ export const isTokenReference = (value) => {
44
+ //TODO add given token exists from existing implementation
45
+ if (typeof value !== "string")
46
+ return false;
47
+ const referencePlaceholders = value.match(/{[^}]+}/g);
48
+ if (!referencePlaceholders)
49
+ return false;
50
+ return referencePlaceholders.every((referenceExpression) => {
51
+ const rawReferencePath = referenceExpression.replace(/[{}]/g, "")?.trim();
52
+ if (!rawReferencePath)
53
+ return false;
54
+ return rawReferencePath.endsWith(".value");
55
+ });
56
+ };
57
+ //# sourceMappingURL=validate-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-value.js","sourceRoot":"./","sources":["src/token-validation/validate-value.js"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACnH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,iBAAiB,GAAG;IACtB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY;IAC/B,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,oBAAoB;CACvC,CAAC;AAEF;;GAEG;AACH,SAAS,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ;IAC3C,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;IAE9B,IAAI,CAAC,IAAI,EAAE,QAAQ;QAAE,OAAO,qBAAqB,EAAE,CAAC;IAEpD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,qBAAqB,EAAE,CAAC;AACnC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ;IAC/D,qBAAqB;IACrB,IAAG,QAAQ,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAExD,6BAA6B;IAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAClF,IAAI,gBAAgB,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACpD,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5E,OAAO,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,EAAE;IACtC,0DAA0D;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,qBAAqB,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,CAAC,qBAAqB;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,EAAE;QACvD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;QAC1E,IAAI,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAC;QACpC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC","sourcesContent":["\nimport { WEB_VALIDATION_RULES } from \"./validator-utils/web.js\";\nimport { MOBILE_RULES } from \"./validator-utils/native_mobile.js\";\nimport { createErrorResponse, createSuccessResponse, getRuleDescription } from \"./validator-utils/common/utils.js\";\nimport { PLATFORM } from \"./constants.js\";\n\nconst RULES_BY_PLATFORM = {\n [PLATFORM.MOBILE]: MOBILE_RULES,\n [PLATFORM.WEB]: WEB_VALIDATION_RULES,\n};\n\n/**\n * Validates a value against the rule set for the given platform and subtype.\n */\nfunction validateValue(value, subtype, platform) {\n const rules = RULES_BY_PLATFORM[platform];\n const rule = rules?.[subtype];\n\n if (!rule?.validate) return createSuccessResponse();\n\n const result = rule.validate(value, rule);\n if (!result.valid) {\n return createErrorResponse(subtype, value, getRuleDescription(rule), platform);\n }\n\n return createSuccessResponse();\n}\n\n/**\n * Validates a token value against platform and subtype rules.\n *\n * @param {string|number} value - The raw token value.\n * @param {string} subtype - e.g. \"font-size\", \"color\", \"space\".\n * @param {string} platform - \"native_mobile\" | \"web\"\n * @returns {{ valid: boolean, errorObject?: object }}\n */\nexport default function validateTokenValue(value, subtype, platform) {\n //Remove this for web\n if(platform !== PLATFORM.MOBILE) return { valid: true };\n\n // TODO Handling empty values\n if (value === undefined || value === null || value === \"\") return { valid: true };\n if (isTokenReference(value)) return { valid: true };\n const normalised = typeof value === \"string\" ? value.trim() : String(value);\n return validateValue(normalised, subtype, platform);\n}\n\nexport const isTokenReference = (value) => {\n //TODO add given token exists from existing implementation\n if (typeof value !== \"string\") return false;\n const referencePlaceholders = value.match(/{[^}]+}/g);\n if (!referencePlaceholders) return false;\n return referencePlaceholders.every((referenceExpression) => {\n const rawReferencePath = referenceExpression.replace(/[{}]/g, \"\")?.trim();\n if (!rawReferencePath) return false;\n return rawReferencePath.endsWith(\".value\");\n });\n};\n"]}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * Generate platform-specific rule configuration
3
+ * @param {string} subtype - The subtype name
4
+ * @param {string} platform - Platform ('native_mobile' or 'web')
5
+ * @returns {Object} Platform-specific rule configuration
6
+ */
7
+ export function getPlatformRule(subtype: string, platform: string): any;
8
+ /**
9
+ * Generate platform-specific validation rules from BASE_SUBTYPE_CONFIGS.
10
+ * @param {string} platform - 'native_mobile' or 'web'
11
+ * @param {Object} validators - Validator functions (see COMMON_VALIDATORS in utils.js)
12
+ * @returns {Object} Rules indexed by subtype, each with a .validate function
13
+ */
14
+ export function generatePlatformRules(platform: string, validators: any): any;
15
+ /**
16
+ * Resolve an executable validator function from rule type + subtype.
17
+ */
18
+ export function resolveRuleValidator(type: any, subtype: any, platform: any, validators: any): any;
19
+ export const BASE_SUBTYPE_CONFIGS: {
20
+ "border-style": {
21
+ type: string;
22
+ native_mobile: {
23
+ allowed: string[];
24
+ };
25
+ web: {
26
+ allowed: string[];
27
+ };
28
+ };
29
+ "border-width": {
30
+ type: string;
31
+ allowMultiValue: boolean;
32
+ native_mobile: {
33
+ allowedUnits: string[];
34
+ allowUnitless: boolean;
35
+ allowedKeywords: never[];
36
+ };
37
+ web: {
38
+ allowedUnits: string[];
39
+ allowUnitless: boolean;
40
+ allowedKeywords: string[];
41
+ };
42
+ };
43
+ "font-family": {
44
+ type: string;
45
+ customDescription: {
46
+ native_mobile: string;
47
+ web: string;
48
+ };
49
+ native_mobile: {
50
+ allowMultipleFonts: boolean;
51
+ separator: null;
52
+ maxFonts: number;
53
+ allowGenericFallbacks: boolean;
54
+ };
55
+ web: {
56
+ allowMultipleFonts: boolean;
57
+ separator: string;
58
+ maxFonts: null;
59
+ allowGenericFallbacks: boolean;
60
+ };
61
+ };
62
+ "font-size": {
63
+ type: string;
64
+ native_mobile: {
65
+ allowedUnits: string[];
66
+ allowUnitless: boolean;
67
+ allowedKeywords: never[];
68
+ };
69
+ web: {
70
+ allowedUnits: string[];
71
+ allowUnitless: boolean;
72
+ allowedKeywords: string[];
73
+ };
74
+ };
75
+ "font-weight": {
76
+ type: string;
77
+ range: number[];
78
+ stepSize: number;
79
+ native_mobile: {
80
+ keywords: string[];
81
+ };
82
+ web: {
83
+ keywords: string[];
84
+ };
85
+ };
86
+ "icon-size": {
87
+ type: string;
88
+ native_mobile: {
89
+ allowedUnits: string[];
90
+ allowUnitless: boolean;
91
+ };
92
+ web: {
93
+ allowedUnits: string[];
94
+ allowUnitless: boolean;
95
+ };
96
+ };
97
+ "letter-spacing": {
98
+ type: string;
99
+ native_mobile: {
100
+ allowedUnits: string[];
101
+ allowUnitless: boolean;
102
+ allowNegative: boolean;
103
+ };
104
+ web: {
105
+ allowedUnits: string[];
106
+ allowUnitless: boolean;
107
+ allowedKeywords: string[];
108
+ allowNegative: boolean;
109
+ };
110
+ };
111
+ "line-height": {
112
+ type: string;
113
+ customDescription: {
114
+ native_mobile: string;
115
+ };
116
+ native_mobile: {
117
+ allowedUnits: string[];
118
+ allowUnitless: boolean;
119
+ };
120
+ web: {
121
+ allowedUnits: string[];
122
+ allowUnitless: boolean;
123
+ allowedKeywords: string[];
124
+ };
125
+ };
126
+ opacity: {
127
+ type: string;
128
+ min: number;
129
+ max: number;
130
+ percentMin: number;
131
+ percentMax: number;
132
+ };
133
+ radius: {
134
+ type: string;
135
+ allowMultiValue: boolean;
136
+ allowPercent: boolean;
137
+ native_mobile: {
138
+ allowedUnits: string[];
139
+ allowUnitless: boolean;
140
+ };
141
+ web: {
142
+ allowedUnits: string[];
143
+ allowUnitless: boolean;
144
+ };
145
+ };
146
+ space: {
147
+ type: string;
148
+ allowMultiValue: boolean;
149
+ allowAuto: boolean;
150
+ allowPercent: boolean;
151
+ native_mobile: {
152
+ allowedUnits: string[];
153
+ allowUnitless: boolean;
154
+ };
155
+ web: {
156
+ allowedUnits: string[];
157
+ allowUnitless: boolean;
158
+ };
159
+ };
160
+ margin: {
161
+ type: string;
162
+ allowMultiValue: boolean;
163
+ allowAuto: boolean;
164
+ allowNegative: boolean;
165
+ native_mobile: {
166
+ allowedUnits: string[];
167
+ allowUnitless: boolean;
168
+ };
169
+ web: {
170
+ allowedUnits: string[];
171
+ allowUnitless: boolean;
172
+ };
173
+ };
174
+ spacer: {
175
+ type: string;
176
+ native_mobile: {
177
+ allowedUnits: string[];
178
+ allowUnitless: boolean;
179
+ };
180
+ web: {
181
+ allowedUnits: string[];
182
+ allowUnitless: boolean;
183
+ };
184
+ };
185
+ };