@duetds/components 4.33.1 → 4.33.2

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 (230) hide show
  1. package/hydrate/index.js +25 -104
  2. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  3. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  4. package/lib/cjs/duet-button_2.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-caption_4.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-choice_2.cjs.entry.js +2 -2
  9. package/lib/cjs/duet-collapsible.cjs.entry.js +4 -452
  10. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  12. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-editable-table-button.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-editable-table_4.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-grid_2.cjs.entry.js +20 -3
  19. package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-icon.cjs.entry.js +7 -17
  22. package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  26. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-tab_2.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  40. package/lib/cjs/duet.cjs.js +1 -1
  41. package/lib/cjs/{focus-utils-b609a7a5.js → focus-utils-27c696bb.js} +1 -1
  42. package/lib/cjs/{index-9a57d969.js → index-18b0f43a.js} +1 -8
  43. package/lib/cjs/loader.cjs.js +1 -1
  44. package/lib/cjs/tokens-8596cece.js +459 -0
  45. package/lib/collection/components/duet-grid/duet-grid.js +19 -2
  46. package/lib/collection/components/duet-icon/duet-icon.js +6 -2
  47. package/lib/collection/components/duet-icon/icon-utils.js +5 -15
  48. package/lib/custom-elements-bundle/index.js +25 -25
  49. package/lib/duet/duet.esm.js +1 -1
  50. package/lib/duet/duet.js +1 -1
  51. package/lib/duet/{p-af49d4f9.entry.js → p-042ec8b1.entry.js} +1 -1
  52. package/lib/duet/{p-a2a00146.system.entry.js → p-0435b54a.system.entry.js} +1 -1
  53. package/lib/duet/{p-75edcaed.entry.js → p-04b3e682.entry.js} +1 -1
  54. package/lib/duet/{p-2297d13f.system.entry.js → p-0ac2e60d.system.entry.js} +1 -1
  55. package/lib/duet/{p-73f9db25.system.entry.js → p-1082d9f2.system.entry.js} +1 -1
  56. package/lib/duet/{p-c742856b.system.entry.js → p-12fc4849.system.entry.js} +1 -1
  57. package/lib/duet/{p-85e52be8.entry.js → p-15fae689.entry.js} +1 -1
  58. package/lib/duet/{p-4c5eedf8.entry.js → p-1ad58142.entry.js} +1 -1
  59. package/lib/duet/{p-cf319832.system.entry.js → p-1c7d7cdd.system.entry.js} +1 -1
  60. package/lib/duet/{p-b314348c.system.js → p-1cf8dbc7.system.js} +2 -2
  61. package/lib/duet/p-1dcbd837.system.entry.js +4 -0
  62. package/lib/duet/{p-b25edbbe.entry.js → p-1ecddc1d.entry.js} +1 -1
  63. package/lib/duet/{p-7530be48.system.entry.js → p-2b4bd1b2.system.entry.js} +1 -1
  64. package/lib/duet/{p-71a77368.system.entry.js → p-2d8e0faa.system.entry.js} +1 -1
  65. package/lib/duet/{p-323643af.system.entry.js → p-33538e90.system.entry.js} +1 -1
  66. package/lib/duet/{p-e8123a53.entry.js → p-3364cfd2.entry.js} +1 -1
  67. package/lib/duet/p-350cea4e.system.entry.js +4 -0
  68. package/lib/duet/{p-43847557.entry.js → p-39e9d638.entry.js} +1 -1
  69. package/lib/duet/{p-e2596ea0.entry.js → p-3a7e519e.entry.js} +1 -1
  70. package/lib/duet/{p-3013c9bb.system.entry.js → p-3bcf2054.system.entry.js} +1 -1
  71. package/lib/duet/{p-6024e484.system.entry.js → p-3cad13af.system.entry.js} +1 -1
  72. package/lib/duet/{p-e1dc86b5.system.js → p-408e8cdb.system.js} +1 -1
  73. package/lib/duet/{p-fd613733.entry.js → p-4a14da52.entry.js} +1 -1
  74. package/lib/duet/{p-bf9f6d80.system.entry.js → p-4e17a6cb.system.entry.js} +1 -1
  75. package/lib/duet/{p-360086f8.entry.js → p-50b796eb.entry.js} +1 -1
  76. package/lib/duet/{p-7a8597c2.system.entry.js → p-5727cd82.system.entry.js} +1 -1
  77. package/lib/duet/{p-ef7251bf.entry.js → p-582f3a2c.entry.js} +1 -1
  78. package/lib/duet/{p-e70088d5.entry.js → p-5b9621e2.entry.js} +1 -1
  79. package/lib/duet/{p-e7b90769.system.entry.js → p-5f79eff8.system.entry.js} +1 -1
  80. package/lib/duet/{p-6fa6c4fb.system.entry.js → p-60e721aa.system.entry.js} +1 -1
  81. package/lib/duet/{p-f5a55b3c.entry.js → p-60ef3d05.entry.js} +1 -1
  82. package/lib/duet/{p-51955fc0.system.js → p-61fc3872.system.js} +1 -1
  83. package/lib/duet/{p-9e79e033.entry.js → p-637df820.entry.js} +1 -1
  84. package/lib/duet/{p-3ba62cf1.system.entry.js → p-6402041d.system.entry.js} +1 -1
  85. package/lib/duet/{p-68008644.entry.js → p-64c0aa2a.entry.js} +1 -1
  86. package/lib/duet/{p-2fdcff82.entry.js → p-65451003.entry.js} +1 -1
  87. package/lib/duet/{p-6a5ab3eb.entry.js → p-659d6cb7.entry.js} +1 -1
  88. package/lib/duet/p-66fdebc5.js +4 -0
  89. package/lib/duet/p-6708db8a.entry.js +4 -0
  90. package/lib/duet/{p-079795e5.entry.js → p-68635a1c.entry.js} +1 -1
  91. package/lib/duet/{p-e60ee8b0.entry.js → p-720a36f2.entry.js} +1 -1
  92. package/lib/duet/{p-b6e9860a.entry.js → p-72629304.entry.js} +1 -1
  93. package/lib/duet/{p-d67fff56.entry.js → p-75a104e3.entry.js} +1 -1
  94. package/lib/duet/{p-de5ec54e.system.entry.js → p-75e5d4d1.system.entry.js} +1 -1
  95. package/lib/duet/{p-6e4b1c0d.entry.js → p-7ab0bad8.entry.js} +1 -1
  96. package/lib/duet/{p-b4111e88.system.entry.js → p-7ceaf4ef.system.entry.js} +1 -1
  97. package/lib/duet/{p-6a4d85ed.system.entry.js → p-7f8cce41.system.entry.js} +1 -1
  98. package/lib/duet/p-7fed7f57.entry.js +4 -0
  99. package/lib/duet/p-8143f3de.js +4 -0
  100. package/lib/duet/{p-f0cfe033.system.entry.js → p-8c2f14d8.system.entry.js} +1 -1
  101. package/lib/duet/{p-0205162d.entry.js → p-8c730326.entry.js} +1 -1
  102. package/lib/duet/{p-32b7397d.entry.js → p-9125ed25.entry.js} +1 -1
  103. package/lib/duet/{p-2a822e91.system.entry.js → p-933c2774.system.entry.js} +1 -1
  104. package/lib/duet/{p-5cfc53f9.entry.js → p-9584411c.entry.js} +1 -1
  105. package/lib/duet/p-9930e52e.entry.js +4 -0
  106. package/lib/duet/{p-19d7d9d5.system.entry.js → p-9a09ac2b.system.entry.js} +1 -1
  107. package/lib/duet/{p-a545398c.entry.js → p-a09ddd8f.entry.js} +1 -1
  108. package/lib/duet/{p-6f36f647.system.entry.js → p-a2b2fa13.system.entry.js} +1 -1
  109. package/lib/duet/{p-020a2c42.system.entry.js → p-b1ad7a52.system.entry.js} +1 -1
  110. package/lib/duet/{p-dd76db9b.system.entry.js → p-b5dc29b8.system.entry.js} +1 -1
  111. package/lib/duet/{p-00210a63.entry.js → p-ba6214be.entry.js} +1 -1
  112. package/lib/duet/{p-e48f3a32.system.entry.js → p-be349a3d.system.entry.js} +1 -1
  113. package/lib/duet/{p-4b6e8558.system.entry.js → p-c0f3f60f.system.entry.js} +1 -1
  114. package/lib/duet/{p-b5c7d304.system.entry.js → p-c3c95a34.system.entry.js} +1 -1
  115. package/lib/duet/{p-df6f39a3.entry.js → p-c506017d.entry.js} +1 -1
  116. package/lib/duet/p-c74cecf2.system.entry.js +4 -0
  117. package/lib/duet/{p-1cbc6269.entry.js → p-c9a11360.entry.js} +1 -1
  118. package/lib/duet/{p-ba18b56e.entry.js → p-cd21755b.entry.js} +1 -1
  119. package/lib/duet/{p-5e77432e.system.entry.js → p-cd597d62.system.entry.js} +1 -1
  120. package/lib/duet/{p-e5031543.entry.js → p-cff461b6.entry.js} +1 -1
  121. package/lib/duet/{p-cbdb9e98.system.entry.js → p-d0fb19f7.system.entry.js} +1 -1
  122. package/lib/duet/{p-9f35d682.entry.js → p-d1dfa30e.entry.js} +1 -1
  123. package/lib/duet/{p-5decc259.system.entry.js → p-d4e706ac.system.entry.js} +1 -1
  124. package/lib/duet/{p-85ad012a.system.entry.js → p-d5e2bb48.system.entry.js} +1 -1
  125. package/lib/duet/{p-0a89315d.entry.js → p-dd79932a.entry.js} +1 -1
  126. package/lib/duet/{p-3fd9190b.system.entry.js → p-dd9b8fcb.system.entry.js} +1 -1
  127. package/lib/duet/{p-09013a48.system.entry.js → p-de43620d.system.entry.js} +1 -1
  128. package/lib/duet/{p-74f4a0d8.system.entry.js → p-e038da47.system.entry.js} +1 -1
  129. package/lib/duet/{p-c1a1ea1b.js → p-ebc4e334.js} +1 -1
  130. package/lib/duet/{p-bf4596bd.system.entry.js → p-f37ffb6f.system.entry.js} +1 -1
  131. package/lib/duet/{p-8aaf3383.entry.js → p-f8744611.entry.js} +1 -1
  132. package/lib/duet/p-fa99eaa4.system.js +4 -0
  133. package/lib/duet/{p-37cda933.entry.js → p-fd00b025.entry.js} +1 -1
  134. package/lib/esm/duet-alert.entry.js +1 -1
  135. package/lib/esm/duet-badge.entry.js +1 -1
  136. package/lib/esm/duet-button_2.entry.js +1 -1
  137. package/lib/esm/duet-caption_4.entry.js +1 -1
  138. package/lib/esm/duet-card.entry.js +1 -1
  139. package/lib/esm/duet-checkbox.entry.js +1 -1
  140. package/lib/esm/duet-choice_2.entry.js +2 -2
  141. package/lib/esm/duet-collapsible.entry.js +3 -451
  142. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  143. package/lib/esm/duet-date-picker.entry.js +2 -2
  144. package/lib/esm/duet-divider_2.entry.js +1 -1
  145. package/lib/esm/duet-editable-table-button.entry.js +1 -1
  146. package/lib/esm/duet-editable-table_4.entry.js +1 -1
  147. package/lib/esm/duet-empty-state.entry.js +1 -1
  148. package/lib/esm/duet-fieldset.entry.js +1 -1
  149. package/lib/esm/duet-footer.entry.js +1 -1
  150. package/lib/esm/duet-grid_2.entry.js +20 -3
  151. package/lib/esm/duet-header_2.entry.js +1 -1
  152. package/lib/esm/duet-hero.entry.js +1 -1
  153. package/lib/esm/duet-icon.entry.js +7 -17
  154. package/lib/esm/duet-input_2.entry.js +1 -1
  155. package/lib/esm/duet-layout.entry.js +1 -1
  156. package/lib/esm/duet-list_2.entry.js +1 -1
  157. package/lib/esm/duet-modal.entry.js +2 -2
  158. package/lib/esm/duet-notification_2.entry.js +1 -1
  159. package/lib/esm/duet-number-input.entry.js +1 -1
  160. package/lib/esm/duet-progress.entry.js +1 -1
  161. package/lib/esm/duet-radio_2.entry.js +1 -1
  162. package/lib/esm/duet-range-slider.entry.js +1 -1
  163. package/lib/esm/duet-select.entry.js +1 -1
  164. package/lib/esm/duet-step_2.entry.js +1 -1
  165. package/lib/esm/duet-tab_2.entry.js +1 -1
  166. package/lib/esm/duet-textarea.entry.js +1 -1
  167. package/lib/esm/duet-toggle.entry.js +1 -1
  168. package/lib/esm/duet-tooltip.entry.js +1 -1
  169. package/lib/esm/duet-tray.entry.js +1 -1
  170. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  171. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  172. package/lib/esm/duet.js +1 -1
  173. package/lib/esm/{focus-utils-aeb6ca93.js → focus-utils-c1fa24c4.js} +1 -1
  174. package/lib/esm/{index-e8c7d36f.js → index-05e43a37.js} +2 -8
  175. package/lib/esm/loader.js +1 -1
  176. package/lib/esm/tokens-e110dc89.js +453 -0
  177. package/lib/esm-es5/duet-alert.entry.js +1 -1
  178. package/lib/esm-es5/duet-badge.entry.js +1 -1
  179. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  180. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  181. package/lib/esm-es5/duet-card.entry.js +1 -1
  182. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  183. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  184. package/lib/esm-es5/duet-collapsible.entry.js +2 -2
  185. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  186. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  187. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  188. package/lib/esm-es5/duet-editable-table-button.entry.js +1 -1
  189. package/lib/esm-es5/duet-editable-table_4.entry.js +1 -1
  190. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  191. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  192. package/lib/esm-es5/duet-footer.entry.js +1 -1
  193. package/lib/esm-es5/duet-grid_2.entry.js +2 -2
  194. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  195. package/lib/esm-es5/duet-hero.entry.js +1 -1
  196. package/lib/esm-es5/duet-icon.entry.js +2 -2
  197. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  198. package/lib/esm-es5/duet-layout.entry.js +1 -1
  199. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  200. package/lib/esm-es5/duet-modal.entry.js +1 -1
  201. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  202. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  203. package/lib/esm-es5/duet-progress.entry.js +1 -1
  204. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  205. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  206. package/lib/esm-es5/duet-select.entry.js +1 -1
  207. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  208. package/lib/esm-es5/duet-tab_2.entry.js +1 -1
  209. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  210. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  211. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  212. package/lib/esm-es5/duet-tray.entry.js +1 -1
  213. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  214. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  215. package/lib/esm-es5/duet.js +1 -1
  216. package/lib/esm-es5/{focus-utils-aeb6ca93.js → focus-utils-c1fa24c4.js} +1 -1
  217. package/lib/esm-es5/{index-e8c7d36f.js → index-05e43a37.js} +2 -2
  218. package/lib/esm-es5/loader.js +1 -1
  219. package/lib/esm-es5/tokens-e110dc89.js +4 -0
  220. package/lib/types/components/duet-grid/duet-grid.d.ts +1 -0
  221. package/lib/types/components/duet-icon/duet-icon.d.ts +1 -1
  222. package/lib/types/components/duet-icon/icon-utils.d.ts +1 -1
  223. package/package.json +5 -6
  224. package/lib/duet/p-0e90f075.system.entry.js +0 -4
  225. package/lib/duet/p-3212a556.entry.js +0 -4
  226. package/lib/duet/p-4c827f0d.entry.js +0 -4
  227. package/lib/duet/p-5e0071d6.js +0 -4
  228. package/lib/duet/p-69385972.system.entry.js +0 -4
  229. package/lib/duet/p-e370c18b.entry.js +0 -4
  230. package/lib/duet/p-f2a087a8.system.entry.js +0 -4
@@ -0,0 +1,459 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ 'use strict';
5
+
6
+ const color_warning = "rgb(247, 178, 40)";
7
+ const color_gray_darker = "rgb(101, 119, 135)";
8
+ const color_gray_lighter = "rgb(245, 248, 250)";
9
+ const color_category_home = "rgb(211, 36, 131)";
10
+ const color_primary = "rgb(0, 119, 179)";
11
+ const color_category_vehicle = "rgb(54, 74, 129)";
12
+ const color_success = "rgb(0, 135, 90)";
13
+ const color_category_family = "rgb(11, 114, 136)";
14
+ const color_primary_lightest = "rgb(243, 249, 252)";
15
+ const color_primary_lighter = "rgb(230, 242, 248)";
16
+ const color_brand_blue = "rgb(0, 161, 212)";
17
+ const color_primary_dark = "rgb(0, 77, 128)";
18
+ const color_gray_lightest = "rgb(255, 255, 255)";
19
+ const color_category_finance = "rgb(122, 1, 196)";
20
+ const color_gray_dark = "rgb(144, 149, 153)";
21
+ const color_gray_light = "rgb(225, 227, 230)";
22
+ const color_secondary = "rgb(0, 41, 77)";
23
+ const color_category_pet = "rgb(168, 1, 78)";
24
+ const color_primary_light = "rgb(205, 229, 241)";
25
+ const color_category_travel = "rgb(213, 66, 3)";
26
+ const color_gray = "rgb(207, 210, 212)";
27
+ const color_danger = "rgb(222, 35, 98)";
28
+ const color_gray_darker_turva = "rgb(68, 68, 69)";
29
+ const color_gray_lighter_turva = "rgb(245, 245, 247)";
30
+ const color_category_home_turva = "rgb(161, 10, 78)";
31
+ const color_primary_turva = "rgb(198, 12, 48)";
32
+ const color_category_vehicle_turva = "rgb(23, 28, 58)";
33
+ const color_success_turva = "rgb(8, 135, 78)";
34
+ const color_primary_lightest_turva = "rgb(252, 243, 244)";
35
+ const color_category_family_turva = "rgb(199, 12, 112)";
36
+ const color_category_union_turva = "rgb(169, 69, 124)";
37
+ const color_primary_lighter_turva = "rgb(249, 230, 234)";
38
+ const color_primary_dark_turva = "rgb(148, 9, 37)";
39
+ const color_gray_lightest_turva = "rgb(255, 255, 255)";
40
+ const color_gray_dark_turva = "rgb(116, 116, 117)";
41
+ const color_gray_light_turva = "rgb(228, 228, 230)";
42
+ const color_brand_gray_turva = "rgb(178, 180, 179)";
43
+ const color_secondary_turva = "rgb(23, 28, 58)";
44
+ const color_primary_light_turva = "rgb(244, 207, 214)";
45
+ const color_category_travel_turva = "rgb(9, 129, 148)";
46
+ const color_gray_turva = "rgb(207, 207, 209)";
47
+ const color_danger_turva = "rgb(224, 42, 13)";
48
+ const color_warning_turva = "rgb(250, 164, 15)";
49
+ const color_data_07 = "rgb(192, 101, 247)";
50
+ const color_data_08 = "rgb(0, 105, 191)";
51
+ const color_data_09 = "rgb(19, 120, 53)";
52
+ const color_data_10 = "rgb(179, 60, 24)";
53
+ const color_data_11 = "rgb(13, 163, 166)";
54
+ const color_data_01 = "rgb(122, 1, 196)";
55
+ const color_data_12 = "rgb(11, 114, 136)";
56
+ const color_data_02 = "rgb(0, 155, 204)";
57
+ const color_data_13 = "rgb(179, 137, 24)";
58
+ const color_data_03 = "rgb(27, 171, 75)";
59
+ const color_data_14 = "rgb(128, 98, 17)";
60
+ const color_data_04 = "rgb(255, 86, 34)";
61
+ const color_data_15 = "rgb(0, 41, 77)";
62
+ const color_data_05 = "rgb(245, 76, 154)";
63
+ const color_data_06 = "rgb(194, 21, 101)";
64
+ const font_weight_extra_bold = "800";
65
+ const letter_spacing_heading = "-0.01rem";
66
+ const font_family_heading_turva = "'turva-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
67
+ const font_family_text_turva = "'turva-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
68
+ const font_family_heading = "'localtapiola-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
69
+ const font_family_text = "'localtapiola-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
70
+ const font_weight_bold = "700";
71
+ const font_weight_normal = "400";
72
+ const font_weight_semi_bold = "600";
73
+ const font_size_xxxx_large = "4.5rem";
74
+ const font_size_xxx_large = "3rem";
75
+ const font_size_xx_large = "2.25rem";
76
+ const font_size_x_large = "1.5rem";
77
+ const font_size_large = "1.25rem";
78
+ const font_size_medium = "1rem";
79
+ const font_size_small = "0.875rem";
80
+ const font_size_x_small = "0.75rem";
81
+ const radius_sharp = "0";
82
+ const radius_default = "4px";
83
+ const radius_circle = "50%";
84
+ const radius_pill = "20rem";
85
+ const shadow_tooltip_turva = "0 2px 10px 0 rgba(117, 117, 117, 0.13)";
86
+ const shadow_default = "0 2px 6px 0 rgba(0, 41, 77, 0.07)";
87
+ const shadow_tooltip = "0 2px 10px 0 rgba(0, 41, 77, 0.07)";
88
+ const shadow_card_turva = "0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)";
89
+ const shadow_modal = "0 2px 20px 0 rgba(0, 0, 0, 0.2)";
90
+ const shadow_card = "0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)";
91
+ const shadow_hover_turva = "0 2px 10px 0 rgba(117, 117, 117, 0.15)";
92
+ const shadow_hover = "0 2px 10px 0 rgba(0, 41, 77, 0.1)";
93
+ const shadow_default_turva = "0 2px 6px 0 rgba(117, 117, 117, 0.13)";
94
+ const space_xx_small = "4px";
95
+ const space_large = "20px";
96
+ const space_x_small = "8px";
97
+ const space_xxx_small = "2px";
98
+ const space_small = "12px";
99
+ const space_medium = "16px";
100
+ const space_xx_large = "36px";
101
+ const space_xxxx_large = "72px";
102
+ const space_xxxxx_large = "94px";
103
+ const space_xxx_large = "48px";
104
+ const space_x_large = "28px";
105
+ const size_icon_xx_large = "48px";
106
+ const size_form_border = "1px";
107
+ const size_step_medium = "40px";
108
+ const size_button_min_width = "8rem";
109
+ const size_header = "4rem";
110
+ const size_icon_xxx_large = "72px";
111
+ const size_icon_x_large = "36px";
112
+ const size_icon_xx_small = "10px";
113
+ const size_step_small = "30px";
114
+ const size_navigation = "3rem";
115
+ const size_icon_large = "30px";
116
+ const size_layout_max_width = "1110px";
117
+ const size_tappable_square = "48px";
118
+ const size_icon_x_small = "16px";
119
+ const size_icon_xxx_small = "7px";
120
+ const size_button_border = "2px";
121
+ const size_button_tiny_border = "1px";
122
+ const size_icon_medium = "24px";
123
+ const size_icon_small = "20px";
124
+ const opacity_85 = "0.85";
125
+ const opacity_75 = "0.75";
126
+ const opacity_50 = "0.50";
127
+ const opacity_30 = "0.30";
128
+ const z_index_dropdown = "600";
129
+ const z_index_spinner = "800";
130
+ const z_index_default = "1";
131
+ const z_index_toast = "500";
132
+ const z_index_popup = "950";
133
+ const z_index_modal = "900";
134
+ const z_index_sticky = "300";
135
+ const z_index_masked = "100";
136
+ const z_index_deep = "-999999";
137
+ const z_index_overlay = "700";
138
+ const z_index_mask = "200";
139
+ const z_index_header = "400";
140
+ const line_height_medium = "1.5";
141
+ const line_height_small = "1.25";
142
+ const line_height_x_small = "1.1";
143
+ const transition_quickly = "300ms ease";
144
+ const transition_slowly = "600ms ease";
145
+ const media_query_xx_small = "'(max-width: 22.5em)'";
146
+ const media_query_x_small = "'(max-width: 35.9375em)'";
147
+ const media_query_small = "'(min-width: 36em)'";
148
+ const media_query_medium = "'(min-width: 48em)'";
149
+ const media_query_large = "'(min-width: 62em)'";
150
+ const media_query_x_large = "'(min-width: 64.0625em)'";
151
+ const media_query_xx_large = "'(min-width: 76.25em)'";
152
+ const media_query_xxx_large = "'(min-width: 106.25em)'";
153
+ const tokens = {
154
+ color_warning: color_warning,
155
+ color_gray_darker: color_gray_darker,
156
+ color_gray_lighter: color_gray_lighter,
157
+ color_category_home: color_category_home,
158
+ color_primary: color_primary,
159
+ color_category_vehicle: color_category_vehicle,
160
+ color_success: color_success,
161
+ color_category_family: color_category_family,
162
+ color_primary_lightest: color_primary_lightest,
163
+ color_primary_lighter: color_primary_lighter,
164
+ color_brand_blue: color_brand_blue,
165
+ color_primary_dark: color_primary_dark,
166
+ color_gray_lightest: color_gray_lightest,
167
+ color_category_finance: color_category_finance,
168
+ color_gray_dark: color_gray_dark,
169
+ color_gray_light: color_gray_light,
170
+ color_secondary: color_secondary,
171
+ color_category_pet: color_category_pet,
172
+ color_primary_light: color_primary_light,
173
+ color_category_travel: color_category_travel,
174
+ color_gray: color_gray,
175
+ color_danger: color_danger,
176
+ color_gray_darker_turva: color_gray_darker_turva,
177
+ color_gray_lighter_turva: color_gray_lighter_turva,
178
+ color_category_home_turva: color_category_home_turva,
179
+ color_primary_turva: color_primary_turva,
180
+ color_category_vehicle_turva: color_category_vehicle_turva,
181
+ color_success_turva: color_success_turva,
182
+ color_primary_lightest_turva: color_primary_lightest_turva,
183
+ color_category_family_turva: color_category_family_turva,
184
+ color_category_union_turva: color_category_union_turva,
185
+ color_primary_lighter_turva: color_primary_lighter_turva,
186
+ color_primary_dark_turva: color_primary_dark_turva,
187
+ color_gray_lightest_turva: color_gray_lightest_turva,
188
+ color_gray_dark_turva: color_gray_dark_turva,
189
+ color_gray_light_turva: color_gray_light_turva,
190
+ color_brand_gray_turva: color_brand_gray_turva,
191
+ color_secondary_turva: color_secondary_turva,
192
+ color_primary_light_turva: color_primary_light_turva,
193
+ color_category_travel_turva: color_category_travel_turva,
194
+ color_gray_turva: color_gray_turva,
195
+ color_danger_turva: color_danger_turva,
196
+ color_warning_turva: color_warning_turva,
197
+ color_data_07: color_data_07,
198
+ color_data_08: color_data_08,
199
+ color_data_09: color_data_09,
200
+ color_data_10: color_data_10,
201
+ color_data_11: color_data_11,
202
+ color_data_01: color_data_01,
203
+ color_data_12: color_data_12,
204
+ color_data_02: color_data_02,
205
+ color_data_13: color_data_13,
206
+ color_data_03: color_data_03,
207
+ color_data_14: color_data_14,
208
+ color_data_04: color_data_04,
209
+ color_data_15: color_data_15,
210
+ color_data_05: color_data_05,
211
+ color_data_06: color_data_06,
212
+ font_weight_extra_bold: font_weight_extra_bold,
213
+ letter_spacing_heading: letter_spacing_heading,
214
+ font_family_heading_turva: font_family_heading_turva,
215
+ font_family_text_turva: font_family_text_turva,
216
+ font_family_heading: font_family_heading,
217
+ font_family_text: font_family_text,
218
+ font_weight_bold: font_weight_bold,
219
+ font_weight_normal: font_weight_normal,
220
+ font_weight_semi_bold: font_weight_semi_bold,
221
+ font_size_xxxx_large: font_size_xxxx_large,
222
+ font_size_xxx_large: font_size_xxx_large,
223
+ font_size_xx_large: font_size_xx_large,
224
+ font_size_x_large: font_size_x_large,
225
+ font_size_large: font_size_large,
226
+ font_size_medium: font_size_medium,
227
+ font_size_small: font_size_small,
228
+ font_size_x_small: font_size_x_small,
229
+ radius_sharp: radius_sharp,
230
+ radius_default: radius_default,
231
+ radius_circle: radius_circle,
232
+ radius_pill: radius_pill,
233
+ shadow_tooltip_turva: shadow_tooltip_turva,
234
+ shadow_default: shadow_default,
235
+ shadow_tooltip: shadow_tooltip,
236
+ shadow_card_turva: shadow_card_turva,
237
+ shadow_modal: shadow_modal,
238
+ shadow_card: shadow_card,
239
+ shadow_hover_turva: shadow_hover_turva,
240
+ shadow_hover: shadow_hover,
241
+ shadow_default_turva: shadow_default_turva,
242
+ space_xx_small: space_xx_small,
243
+ space_large: space_large,
244
+ space_x_small: space_x_small,
245
+ space_xxx_small: space_xxx_small,
246
+ space_small: space_small,
247
+ space_medium: space_medium,
248
+ space_xx_large: space_xx_large,
249
+ space_xxxx_large: space_xxxx_large,
250
+ space_xxxxx_large: space_xxxxx_large,
251
+ space_xxx_large: space_xxx_large,
252
+ space_x_large: space_x_large,
253
+ size_icon_xx_large: size_icon_xx_large,
254
+ size_form_border: size_form_border,
255
+ size_step_medium: size_step_medium,
256
+ size_button_min_width: size_button_min_width,
257
+ size_header: size_header,
258
+ size_icon_xxx_large: size_icon_xxx_large,
259
+ size_icon_x_large: size_icon_x_large,
260
+ size_icon_xx_small: size_icon_xx_small,
261
+ size_step_small: size_step_small,
262
+ size_navigation: size_navigation,
263
+ size_icon_large: size_icon_large,
264
+ size_layout_max_width: size_layout_max_width,
265
+ size_tappable_square: size_tappable_square,
266
+ size_icon_x_small: size_icon_x_small,
267
+ size_icon_xxx_small: size_icon_xxx_small,
268
+ size_button_border: size_button_border,
269
+ size_button_tiny_border: size_button_tiny_border,
270
+ size_icon_medium: size_icon_medium,
271
+ size_icon_small: size_icon_small,
272
+ opacity_85: opacity_85,
273
+ opacity_75: opacity_75,
274
+ opacity_50: opacity_50,
275
+ opacity_30: opacity_30,
276
+ z_index_dropdown: z_index_dropdown,
277
+ z_index_spinner: z_index_spinner,
278
+ z_index_default: z_index_default,
279
+ z_index_toast: z_index_toast,
280
+ z_index_popup: z_index_popup,
281
+ z_index_modal: z_index_modal,
282
+ z_index_sticky: z_index_sticky,
283
+ z_index_masked: z_index_masked,
284
+ z_index_deep: z_index_deep,
285
+ z_index_overlay: z_index_overlay,
286
+ z_index_mask: z_index_mask,
287
+ z_index_header: z_index_header,
288
+ line_height_medium: line_height_medium,
289
+ line_height_small: line_height_small,
290
+ line_height_x_small: line_height_x_small,
291
+ transition_quickly: transition_quickly,
292
+ transition_slowly: transition_slowly,
293
+ media_query_xx_small: media_query_xx_small,
294
+ media_query_x_small: media_query_x_small,
295
+ media_query_small: media_query_small,
296
+ media_query_medium: media_query_medium,
297
+ media_query_large: media_query_large,
298
+ media_query_x_large: media_query_x_large,
299
+ media_query_xx_large: media_query_xx_large,
300
+ media_query_xxx_large: media_query_xxx_large
301
+ };
302
+
303
+ const tokens$1 = /*#__PURE__*/Object.freeze({
304
+ __proto__: null,
305
+ color_warning: color_warning,
306
+ color_gray_darker: color_gray_darker,
307
+ color_gray_lighter: color_gray_lighter,
308
+ color_category_home: color_category_home,
309
+ color_primary: color_primary,
310
+ color_category_vehicle: color_category_vehicle,
311
+ color_success: color_success,
312
+ color_category_family: color_category_family,
313
+ color_primary_lightest: color_primary_lightest,
314
+ color_primary_lighter: color_primary_lighter,
315
+ color_brand_blue: color_brand_blue,
316
+ color_primary_dark: color_primary_dark,
317
+ color_gray_lightest: color_gray_lightest,
318
+ color_category_finance: color_category_finance,
319
+ color_gray_dark: color_gray_dark,
320
+ color_gray_light: color_gray_light,
321
+ color_secondary: color_secondary,
322
+ color_category_pet: color_category_pet,
323
+ color_primary_light: color_primary_light,
324
+ color_category_travel: color_category_travel,
325
+ color_gray: color_gray,
326
+ color_danger: color_danger,
327
+ color_gray_darker_turva: color_gray_darker_turva,
328
+ color_gray_lighter_turva: color_gray_lighter_turva,
329
+ color_category_home_turva: color_category_home_turva,
330
+ color_primary_turva: color_primary_turva,
331
+ color_category_vehicle_turva: color_category_vehicle_turva,
332
+ color_success_turva: color_success_turva,
333
+ color_primary_lightest_turva: color_primary_lightest_turva,
334
+ color_category_family_turva: color_category_family_turva,
335
+ color_category_union_turva: color_category_union_turva,
336
+ color_primary_lighter_turva: color_primary_lighter_turva,
337
+ color_primary_dark_turva: color_primary_dark_turva,
338
+ color_gray_lightest_turva: color_gray_lightest_turva,
339
+ color_gray_dark_turva: color_gray_dark_turva,
340
+ color_gray_light_turva: color_gray_light_turva,
341
+ color_brand_gray_turva: color_brand_gray_turva,
342
+ color_secondary_turva: color_secondary_turva,
343
+ color_primary_light_turva: color_primary_light_turva,
344
+ color_category_travel_turva: color_category_travel_turva,
345
+ color_gray_turva: color_gray_turva,
346
+ color_danger_turva: color_danger_turva,
347
+ color_warning_turva: color_warning_turva,
348
+ color_data_07: color_data_07,
349
+ color_data_08: color_data_08,
350
+ color_data_09: color_data_09,
351
+ color_data_10: color_data_10,
352
+ color_data_11: color_data_11,
353
+ color_data_01: color_data_01,
354
+ color_data_12: color_data_12,
355
+ color_data_02: color_data_02,
356
+ color_data_13: color_data_13,
357
+ color_data_03: color_data_03,
358
+ color_data_14: color_data_14,
359
+ color_data_04: color_data_04,
360
+ color_data_15: color_data_15,
361
+ color_data_05: color_data_05,
362
+ color_data_06: color_data_06,
363
+ font_weight_extra_bold: font_weight_extra_bold,
364
+ letter_spacing_heading: letter_spacing_heading,
365
+ font_family_heading_turva: font_family_heading_turva,
366
+ font_family_text_turva: font_family_text_turva,
367
+ font_family_heading: font_family_heading,
368
+ font_family_text: font_family_text,
369
+ font_weight_bold: font_weight_bold,
370
+ font_weight_normal: font_weight_normal,
371
+ font_weight_semi_bold: font_weight_semi_bold,
372
+ font_size_xxxx_large: font_size_xxxx_large,
373
+ font_size_xxx_large: font_size_xxx_large,
374
+ font_size_xx_large: font_size_xx_large,
375
+ font_size_x_large: font_size_x_large,
376
+ font_size_large: font_size_large,
377
+ font_size_medium: font_size_medium,
378
+ font_size_small: font_size_small,
379
+ font_size_x_small: font_size_x_small,
380
+ radius_sharp: radius_sharp,
381
+ radius_default: radius_default,
382
+ radius_circle: radius_circle,
383
+ radius_pill: radius_pill,
384
+ shadow_tooltip_turva: shadow_tooltip_turva,
385
+ shadow_default: shadow_default,
386
+ shadow_tooltip: shadow_tooltip,
387
+ shadow_card_turva: shadow_card_turva,
388
+ shadow_modal: shadow_modal,
389
+ shadow_card: shadow_card,
390
+ shadow_hover_turva: shadow_hover_turva,
391
+ shadow_hover: shadow_hover,
392
+ shadow_default_turva: shadow_default_turva,
393
+ space_xx_small: space_xx_small,
394
+ space_large: space_large,
395
+ space_x_small: space_x_small,
396
+ space_xxx_small: space_xxx_small,
397
+ space_small: space_small,
398
+ space_medium: space_medium,
399
+ space_xx_large: space_xx_large,
400
+ space_xxxx_large: space_xxxx_large,
401
+ space_xxxxx_large: space_xxxxx_large,
402
+ space_xxx_large: space_xxx_large,
403
+ space_x_large: space_x_large,
404
+ size_icon_xx_large: size_icon_xx_large,
405
+ size_form_border: size_form_border,
406
+ size_step_medium: size_step_medium,
407
+ size_button_min_width: size_button_min_width,
408
+ size_header: size_header,
409
+ size_icon_xxx_large: size_icon_xxx_large,
410
+ size_icon_x_large: size_icon_x_large,
411
+ size_icon_xx_small: size_icon_xx_small,
412
+ size_step_small: size_step_small,
413
+ size_navigation: size_navigation,
414
+ size_icon_large: size_icon_large,
415
+ size_layout_max_width: size_layout_max_width,
416
+ size_tappable_square: size_tappable_square,
417
+ size_icon_x_small: size_icon_x_small,
418
+ size_icon_xxx_small: size_icon_xxx_small,
419
+ size_button_border: size_button_border,
420
+ size_button_tiny_border: size_button_tiny_border,
421
+ size_icon_medium: size_icon_medium,
422
+ size_icon_small: size_icon_small,
423
+ opacity_85: opacity_85,
424
+ opacity_75: opacity_75,
425
+ opacity_50: opacity_50,
426
+ opacity_30: opacity_30,
427
+ z_index_dropdown: z_index_dropdown,
428
+ z_index_spinner: z_index_spinner,
429
+ z_index_default: z_index_default,
430
+ z_index_toast: z_index_toast,
431
+ z_index_popup: z_index_popup,
432
+ z_index_modal: z_index_modal,
433
+ z_index_sticky: z_index_sticky,
434
+ z_index_masked: z_index_masked,
435
+ z_index_deep: z_index_deep,
436
+ z_index_overlay: z_index_overlay,
437
+ z_index_mask: z_index_mask,
438
+ z_index_header: z_index_header,
439
+ line_height_medium: line_height_medium,
440
+ line_height_small: line_height_small,
441
+ line_height_x_small: line_height_x_small,
442
+ transition_quickly: transition_quickly,
443
+ transition_slowly: transition_slowly,
444
+ media_query_xx_small: media_query_xx_small,
445
+ media_query_x_small: media_query_x_small,
446
+ media_query_small: media_query_small,
447
+ media_query_medium: media_query_medium,
448
+ media_query_large: media_query_large,
449
+ media_query_x_large: media_query_x_large,
450
+ media_query_xx_large: media_query_xx_large,
451
+ media_query_xxx_large: media_query_xxx_large,
452
+ 'default': tokens
453
+ });
454
+
455
+ exports.font_size_medium = font_size_medium;
456
+ exports.media_query_large = media_query_large;
457
+ exports.media_query_medium = media_query_medium;
458
+ exports.media_query_small = media_query_small;
459
+ exports.tokens = tokens$1;
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
+ import { media_query_large, media_query_medium, media_query_small } from "@duetds/tokens/lib/tokens.json";
4
5
  import { Component, Element, h, Host, Prop, State, Watch } from "@stencil/core";
5
6
  import { watchForElement, watchForOptions } from "../../utils/watch-options";
6
7
  function isGridItem(element) {
@@ -8,6 +9,11 @@ function isGridItem(element) {
8
9
  }
9
10
  export class DuetGrid {
10
11
  constructor() {
12
+ this.mql = [
13
+ window.matchMedia(media_query_large.replace(/'/g, "")),
14
+ window.matchMedia(media_query_medium.replace(/'/g, "")),
15
+ window.matchMedia(media_query_small.replace(/'/g, "")),
16
+ ];
11
17
  this.distributeFormElement = false;
12
18
  /**
13
19
  * Enable or disable the automatic responsive behaviour of the grid component.
@@ -62,10 +68,15 @@ export class DuetGrid {
62
68
  this.mutationO = watchForOptions(el, "duet-grid-item", () => {
63
69
  this.updateGridItems();
64
70
  });
71
+ // the next two functions are used to watch for changes in the grid items, and are process intensive - so only run when needed
65
72
  if (this.distributeFormElement) {
66
73
  this.mutation1 = watchForElement(el, "duet-input", () => {
67
74
  this.updateGridItemsWithInputFields();
68
75
  });
76
+ // listen for potential mediaquery changes and reset layout
77
+ for (let i = 0; i < this.mql.length; i++) {
78
+ this.mql[i].addEventListener("change", this.updateGridItemsWithInputFields.bind(this));
79
+ }
69
80
  }
70
81
  this.updateGridItems();
71
82
  }
@@ -78,6 +89,10 @@ export class DuetGrid {
78
89
  this.mutation1.disconnect();
79
90
  this.mutation1 = undefined;
80
91
  }
92
+ // listen for potential mediaquery changes and reset layout
93
+ for (let i = 0; i < this.mql.length; i++) {
94
+ this.mql[i].removeEventListener("change", this.updateGridItemsWithInputFields.bind(this));
95
+ }
81
96
  }
82
97
  /**
83
98
  * Local methods
@@ -91,6 +106,8 @@ export class DuetGrid {
91
106
  }
92
107
  async updateGridItemsWithInputFields() {
93
108
  const items = Array.from(this.element.children).filter(isGridItem);
109
+ // if layout changes to columns instead of row, remove all padding
110
+ const hasColumnLayout = window ? window.getComputedStyle(this.element).flexDirection === "column" : false;
94
111
  let maxHeight = 0;
95
112
  const sizes = [];
96
113
  items.forEach(item => {
@@ -102,10 +119,10 @@ export class DuetGrid {
102
119
  items.forEach(item => {
103
120
  const inputErrorDom = item.querySelector("span.duet-input-error");
104
121
  const height = inputErrorDom ? this.outerHeight(inputErrorDom) : 0;
105
- if (height < maxHeight) {
122
+ if (height < maxHeight && !hasColumnLayout) {
106
123
  item.setAttribute("style", `padding-bottom: ${maxHeight - height}px;`);
107
124
  }
108
- else if (height === maxHeight) {
125
+ else if (height === maxHeight || hasColumnLayout) {
109
126
  item.setAttribute("style", `padding-bottom: 0px;`);
110
127
  }
111
128
  });
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { Component, Element, h, Host, Prop, State, Watch } from "@stencil/core";
4
+ import { Build, Component, Element, h, Host, Prop, State, Watch } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../utils/themeable-component";
6
6
  import { getColorByName } from "../../utils/token-utils";
7
7
  import { buildIconUrl, fetchIconByUrl } from "./icon-utils";
@@ -58,7 +58,7 @@ export class DuetIcon {
58
58
  if (this.src && this.icon) {
59
59
  console.warn("[DUET COMPONENTS]: <duet-icon> should have either have src or icon attributes, but not both. icon attribute will take precedence", "icon:", this.icon, "src:", this.src);
60
60
  }
61
- return this.loadIcon();
61
+ this.loadIcon();
62
62
  }
63
63
  async loadIcon() {
64
64
  // static icon known at build-time, so we can set it synchronously
@@ -66,6 +66,10 @@ export class DuetIcon {
66
66
  this.svgContent = this.icon;
67
67
  return;
68
68
  }
69
+ // on server, don't make requests
70
+ if (!Build.isBrowser) {
71
+ return;
72
+ }
69
73
  // dynamically load icon from url
70
74
  const src = this.src ? this.src : buildIconUrl(this.name);
71
75
  try {
@@ -47,28 +47,18 @@ export const buildIconUrl = (iconName) => {
47
47
  }
48
48
  };
49
49
  const iconCache = {};
50
- export function fetchIconByUrl(url, isServer = Build.isServer) {
50
+ export function fetchIconByUrl(url) {
51
51
  if (iconCache[url]) {
52
52
  return iconCache[url];
53
53
  }
54
54
  // we create a function that covers all the fetching, cleanup, validation etc,
55
55
  // this way we can perform that work just once, and then return the same promise in future.
56
56
  async function doFetch() {
57
- let responseText = "";
58
- if (isServer) {
59
- const fs = require("fs");
60
- const path = require("path");
61
- const iconsPath = `${path.resolve(path.dirname(require.resolve("@duetds/icons")), "..")}/lib/assets`;
62
- const filenameFromUrl = url.split("/").pop().split("#")[0].split("?")[0];
63
- responseText = fs.readFileSync(`${iconsPath}/${filenameFromUrl}`, "utf-8");
64
- }
65
- else {
66
- const res = await fetch(url);
67
- if (!res.ok) {
68
- throw new Error(`SVG request failed: ${res.status} ${res.statusText}`);
69
- }
70
- responseText = await res.text();
57
+ const res = await fetch(url);
58
+ if (!res.ok) {
59
+ throw new Error(`SVG request failed: ${res.status} ${res.statusText}`);
71
60
  }
61
+ const responseText = await res.text();
72
62
  const svgElement = cleanupSvg(responseText);
73
63
  if (!isValid(svgElement)) {
74
64
  throw new Error("SVG validation failed");