@postnord/pn-marketweb-components 1.0.49-beta4 → 2.0.1

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 (237) hide show
  1. package/cjs/{index-9027dc96.js → index-28bbc937.js} +1 -1
  2. package/cjs/{index-0a6b1eef.js → index-e3e27c79.js} +6 -0
  3. package/cjs/loader.cjs.js +2 -2
  4. package/cjs/pn-bonus-progressbar-level.cjs.entry.js +1 -1
  5. package/cjs/pn-bonus-progressbar.cjs.entry.js +1 -1
  6. package/cjs/pn-choice-button.cjs.entry.js +1 -1
  7. package/cjs/pn-filter-checkbox.cjs.entry.js +1 -1
  8. package/cjs/pn-find-price-result.cjs.entry.js +5 -5
  9. package/cjs/{pn-find-price-store-f9766c41.js → pn-find-price-store-6aab7fd0.js} +1 -2
  10. package/cjs/pn-find-price.cjs.entry.js +9 -12
  11. package/cjs/pn-find-service-and-price-result.cjs.entry.js +3 -3
  12. package/cjs/{pn-find-service-and-price-store-914d170b.js → pn-find-service-and-price-store-16a7936c.js} +1 -1
  13. package/cjs/pn-find-service-and-price.cjs.entry.js +3 -3
  14. package/cjs/pn-language-selector_9.cjs.entry.js +65 -5
  15. package/cjs/pn-mainnav-link.cjs.entry.js +3 -3
  16. package/cjs/{pn-mainnav-store-f8bacb50.js → pn-mainnav-store-61a75ea0.js} +1 -1
  17. package/cjs/pn-market-web-components.cjs.js +2 -2
  18. package/cjs/pn-marketweb-input.cjs.entry.js +76 -0
  19. package/cjs/pn-marketweb-search.cjs.entry.js +103 -0
  20. package/cjs/pn-marketweb-sitefooter.cjs.entry.js +1 -1
  21. package/cjs/pn-marketweb-siteheader.cjs.entry.js +6 -4
  22. package/cjs/pn-pex-pricefinder.cjs.entry.js +11 -3
  23. package/cjs/pn-product-card_3.cjs.entry.js +9 -9
  24. package/cjs/pn-product-pricelist-result.cjs.entry.js +3 -3
  25. package/cjs/{pn-product-pricelist-store-d101b50e.js → pn-product-pricelist-store-86310b5a.js} +1 -1
  26. package/cjs/pn-product-pricelist.cjs.entry.js +4 -4
  27. package/cjs/pn-product-tile_3.cjs.entry.js +1 -1
  28. package/cjs/pn-profile-selector-option.cjs.entry.js +1 -1
  29. package/cjs/pn-profile-selector.cjs.entry.js +1 -1
  30. package/cjs/pn-sidenav-level.cjs.entry.js +3 -3
  31. package/cjs/pn-sidenav-link.cjs.entry.js +3 -3
  32. package/cjs/{pn-sidenav-store-eed02285.js → pn-sidenav-store-d9bd9e00.js} +1 -1
  33. package/cjs/pn-sidenav.cjs.entry.js +3 -3
  34. package/cjs/pn-site-footer_2.cjs.entry.js +1 -1
  35. package/collection/collection-manifest.json +2 -1
  36. package/collection/components/input/pn-marketweb-input/marketweb-input.stories.js +51 -0
  37. package/collection/components/input/pn-marketweb-input/pn-marketweb-input.css +156 -0
  38. package/collection/components/input/pn-marketweb-input/pn-marketweb-input.js +412 -0
  39. package/collection/components/input/{pn-filter-search/search-field.stories.js → pn-marketweb-search/marketweb-search-field.stories.js} +15 -3
  40. package/collection/components/input/{pn-filter-search/pn-filter-search.css → pn-marketweb-search/pn-marketweb-search.css} +22 -17
  41. package/collection/components/input/{pn-filter-search/pn-filter-search.js → pn-marketweb-search/pn-marketweb-search.js} +67 -9
  42. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-search-store.js +9 -0
  43. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-search.js +79 -3
  44. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.js +23 -3
  45. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.stories.js +3 -3
  46. package/collection/components/widgets/pn-find-price/img/clouds.svg +5 -0
  47. package/collection/components/widgets/pn-find-price/pn-find-price-result.js +2 -2
  48. package/collection/components/widgets/pn-find-price/pn-find-price-store.js +0 -1
  49. package/collection/components/widgets/pn-find-price/pn-find-price-translations.js +1 -6
  50. package/collection/components/widgets/pn-find-price/pn-find-price.css +14 -4
  51. package/collection/components/widgets/pn-find-price/pn-find-price.js +4 -3
  52. package/collection/components/widgets/pn-pex-pricefinder/pn-pex-pricefinder.js +10 -2
  53. package/collection/components/widgets/pn-product-card/pn-product-card-info.css +6 -7
  54. package/collection/components/widgets/pn-product-card/pn-product-card-info.js +2 -3
  55. package/collection/components/widgets/pn-product-card/pn-product-card-price.css +22 -5
  56. package/collection/components/widgets/pn-product-card/pn-product-card-price.js +1 -1
  57. package/collection/components/widgets/pn-product-card/pn-product-card.css +88 -30
  58. package/collection/components/widgets/pn-product-card/pn-product-card.js +1 -1
  59. package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist.css +1 -0
  60. package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist.stories.js +1 -1
  61. package/custom-elements/index.d.ts +12 -6
  62. package/custom-elements/index.js +298 -126
  63. package/esm/{index-70b099b5.js → index-5397620b.js} +7 -1
  64. package/esm/{index-d3007e8f.js → index-7b21ecff.js} +1 -1
  65. package/esm/loader.js +2 -2
  66. package/esm/pn-bonus-progressbar-level.entry.js +1 -1
  67. package/esm/pn-bonus-progressbar.entry.js +1 -1
  68. package/esm/pn-choice-button.entry.js +1 -1
  69. package/esm/pn-filter-checkbox.entry.js +1 -1
  70. package/esm/pn-find-price-result.entry.js +5 -5
  71. package/esm/{pn-find-price-store-ddd3f427.js → pn-find-price-store-3301df0a.js} +1 -2
  72. package/esm/pn-find-price.entry.js +9 -12
  73. package/esm/pn-find-service-and-price-result.entry.js +3 -3
  74. package/esm/{pn-find-service-and-price-store-012f2e49.js → pn-find-service-and-price-store-65df46a0.js} +1 -1
  75. package/esm/pn-find-service-and-price.entry.js +3 -3
  76. package/esm/pn-language-selector_9.entry.js +79 -19
  77. package/esm/pn-mainnav-link.entry.js +3 -3
  78. package/esm/{pn-mainnav-store-395ee066.js → pn-mainnav-store-28571e54.js} +1 -1
  79. package/esm/pn-market-web-components.js +2 -2
  80. package/esm/pn-marketweb-input.entry.js +72 -0
  81. package/esm/pn-marketweb-search.entry.js +99 -0
  82. package/esm/pn-marketweb-sitefooter.entry.js +1 -1
  83. package/esm/pn-marketweb-siteheader.entry.js +6 -4
  84. package/esm/pn-pex-pricefinder.entry.js +11 -3
  85. package/esm/pn-product-card_3.entry.js +9 -9
  86. package/esm/pn-product-pricelist-result.entry.js +3 -3
  87. package/esm/{pn-product-pricelist-store-909c5238.js → pn-product-pricelist-store-2c336043.js} +1 -1
  88. package/esm/pn-product-pricelist.entry.js +4 -4
  89. package/esm/pn-product-tile_3.entry.js +1 -1
  90. package/esm/pn-profile-selector-option.entry.js +1 -1
  91. package/esm/pn-profile-selector.entry.js +1 -1
  92. package/esm/pn-sidenav-level.entry.js +3 -3
  93. package/esm/pn-sidenav-link.entry.js +3 -3
  94. package/esm/{pn-sidenav-store-f0db4a1f.js → pn-sidenav-store-50b186d6.js} +1 -1
  95. package/esm/pn-sidenav.entry.js +3 -3
  96. package/esm/pn-site-footer_2.entry.js +1 -1
  97. package/esm-es5/{index-70b099b5.js → index-5397620b.js} +1 -1
  98. package/esm-es5/{index-d3007e8f.js → index-7b21ecff.js} +1 -1
  99. package/esm-es5/loader.js +1 -1
  100. package/esm-es5/pn-bonus-progressbar-level.entry.js +1 -1
  101. package/esm-es5/pn-bonus-progressbar.entry.js +1 -1
  102. package/esm-es5/pn-choice-button.entry.js +1 -1
  103. package/esm-es5/pn-filter-checkbox.entry.js +1 -1
  104. package/esm-es5/pn-find-price-result.entry.js +1 -1
  105. package/esm-es5/pn-find-price-store-3301df0a.js +1 -0
  106. package/esm-es5/pn-find-price.entry.js +1 -1
  107. package/esm-es5/pn-find-service-and-price-result.entry.js +1 -1
  108. package/esm-es5/{pn-find-service-and-price-store-012f2e49.js → pn-find-service-and-price-store-65df46a0.js} +1 -1
  109. package/esm-es5/pn-find-service-and-price.entry.js +1 -1
  110. package/esm-es5/pn-language-selector_9.entry.js +1 -1
  111. package/esm-es5/pn-mainnav-link.entry.js +1 -1
  112. package/esm-es5/{pn-mainnav-store-395ee066.js → pn-mainnav-store-28571e54.js} +1 -1
  113. package/esm-es5/pn-market-web-components.js +1 -1
  114. package/esm-es5/pn-marketweb-input.entry.js +1 -0
  115. package/esm-es5/pn-marketweb-search.entry.js +1 -0
  116. package/esm-es5/pn-marketweb-sitefooter.entry.js +1 -1
  117. package/esm-es5/pn-marketweb-siteheader.entry.js +1 -1
  118. package/esm-es5/pn-pex-pricefinder.entry.js +1 -1
  119. package/esm-es5/pn-product-card_3.entry.js +1 -1
  120. package/esm-es5/pn-product-pricelist-result.entry.js +1 -1
  121. package/esm-es5/{pn-product-pricelist-store-909c5238.js → pn-product-pricelist-store-2c336043.js} +1 -1
  122. package/esm-es5/pn-product-pricelist.entry.js +1 -1
  123. package/esm-es5/pn-product-tile_3.entry.js +1 -1
  124. package/esm-es5/pn-profile-selector-option.entry.js +1 -1
  125. package/esm-es5/pn-profile-selector.entry.js +1 -1
  126. package/esm-es5/pn-sidenav-level.entry.js +1 -1
  127. package/esm-es5/pn-sidenav-link.entry.js +1 -1
  128. package/esm-es5/{pn-sidenav-store-f0db4a1f.js → pn-sidenav-store-50b186d6.js} +1 -1
  129. package/esm-es5/pn-sidenav.entry.js +1 -1
  130. package/esm-es5/pn-site-footer_2.entry.js +1 -1
  131. package/package.json +1 -1
  132. package/pn-market-web-components/{p-b49c9d34.system.entry.js → p-01fbbbbc.system.entry.js} +1 -1
  133. package/pn-market-web-components/{p-7ce21cb3.system.js → p-02ea55ad.system.js} +1 -1
  134. package/pn-market-web-components/{p-71a31b15.entry.js → p-045a349a.entry.js} +1 -1
  135. package/pn-market-web-components/p-07cc9f6b.system.entry.js +1 -0
  136. package/pn-market-web-components/{p-24df62a2.js → p-0cacf9fb.js} +1 -1
  137. package/pn-market-web-components/{p-d26967cb.entry.js → p-10b95894.entry.js} +1 -1
  138. package/pn-market-web-components/p-13eb4c66.system.entry.js +1 -0
  139. package/pn-market-web-components/{p-9aac6bd5.entry.js → p-15112837.entry.js} +1 -1
  140. package/pn-market-web-components/{p-69b751a8.system.entry.js → p-1ce871c5.system.entry.js} +1 -1
  141. package/pn-market-web-components/{p-d546d0c3.entry.js → p-227e1d46.entry.js} +1 -1
  142. package/pn-market-web-components/{p-39760c45.system.entry.js → p-2718b89a.system.entry.js} +1 -1
  143. package/pn-market-web-components/{p-702f06b7.system.entry.js → p-2870b0c5.system.entry.js} +1 -1
  144. package/pn-market-web-components/p-36654f2a.system.js +1 -0
  145. package/pn-market-web-components/p-3971ddb9.system.js +1 -0
  146. package/pn-market-web-components/{p-5d34bb8f.system.entry.js → p-401b57b1.system.entry.js} +1 -1
  147. package/pn-market-web-components/{p-7598c3ac.entry.js → p-40264b65.entry.js} +1 -1
  148. package/pn-market-web-components/{p-aea09ac6.entry.js → p-51df9292.entry.js} +1 -1
  149. package/pn-market-web-components/{p-a439468a.system.entry.js → p-57cc0679.system.entry.js} +1 -1
  150. package/pn-market-web-components/p-58e8d7d5.js +1 -0
  151. package/pn-market-web-components/{p-3ba257c5.entry.js → p-5c41acb2.entry.js} +1 -1
  152. package/pn-market-web-components/p-5d587499.js +1 -0
  153. package/pn-market-web-components/p-5e78891a.entry.js +1 -0
  154. package/pn-market-web-components/{p-42da096a.system.entry.js → p-625fb7fb.system.entry.js} +1 -1
  155. package/pn-market-web-components/p-67887512.system.js +1 -0
  156. package/pn-market-web-components/{p-544f8fb9.entry.js → p-715d1ef7.entry.js} +1 -1
  157. package/pn-market-web-components/p-72195bd8.entry.js +1 -0
  158. package/pn-market-web-components/{p-4d5aa13e.entry.js → p-774b7a9f.entry.js} +1 -1
  159. package/pn-market-web-components/{p-802afa1f.system.entry.js → p-7b93d570.system.entry.js} +1 -1
  160. package/pn-market-web-components/{p-56ba3951.entry.js → p-7d75ea68.entry.js} +1 -1
  161. package/pn-market-web-components/p-7e494e9d.system.entry.js +1 -0
  162. package/pn-market-web-components/p-80dce81e.system.entry.js +1 -0
  163. package/pn-market-web-components/{p-acd9d186.system.entry.js → p-8144bcbc.system.entry.js} +1 -1
  164. package/pn-market-web-components/{p-ac5a749b.entry.js → p-81d764a0.entry.js} +1 -1
  165. package/pn-market-web-components/p-825b8fb8.system.js +1 -0
  166. package/pn-market-web-components/{p-99e471b8.js → p-84699999.js} +1 -1
  167. package/pn-market-web-components/{p-ab699e09.entry.js → p-86b271f4.entry.js} +1 -1
  168. package/pn-market-web-components/p-86f06e26.js +1 -0
  169. package/pn-market-web-components/{p-38e0dc75.system.entry.js → p-885bc8d7.system.entry.js} +1 -1
  170. package/pn-market-web-components/p-8fc7732d.system.entry.js +1 -0
  171. package/pn-market-web-components/p-996d8a6a.entry.js +1 -0
  172. package/pn-market-web-components/p-9e8c5793.system.entry.js +1 -0
  173. package/pn-market-web-components/p-9edaf6b6.system.entry.js +1 -0
  174. package/pn-market-web-components/p-a5bc1695.system.js +1 -0
  175. package/pn-market-web-components/{p-b4f843da.system.js → p-a5f75560.system.js} +1 -1
  176. package/pn-market-web-components/{p-8897e421.entry.js → p-adc639c8.entry.js} +1 -1
  177. package/pn-market-web-components/{p-6fea1ae6.system.js → p-add7d76c.system.js} +1 -1
  178. package/pn-market-web-components/{p-9ae8e043.js → p-ae2bd55f.js} +1 -1
  179. package/pn-market-web-components/{p-2c361d9e.system.entry.js → p-aeb26d10.system.entry.js} +1 -1
  180. package/pn-market-web-components/{p-3552ae09.entry.js → p-b4f0228c.entry.js} +1 -1
  181. package/pn-market-web-components/p-bb626ab4.js +1 -0
  182. package/pn-market-web-components/p-c0c52dc6.entry.js +1 -0
  183. package/pn-market-web-components/{p-8325d608.entry.js → p-c240b614.entry.js} +1 -1
  184. package/pn-market-web-components/p-c34db063.entry.js +1 -0
  185. package/pn-market-web-components/{p-da2fa398.system.entry.js → p-c418bb48.system.entry.js} +1 -1
  186. package/pn-market-web-components/{p-3f8b459a.system.entry.js → p-d46d9b6e.system.entry.js} +1 -1
  187. package/pn-market-web-components/{p-0b796318.system.entry.js → p-d7776336.system.entry.js} +1 -1
  188. package/pn-market-web-components/{p-7fca7510.entry.js → p-e056d2c6.entry.js} +1 -1
  189. package/pn-market-web-components/p-e474b831.entry.js +1 -0
  190. package/pn-market-web-components/p-e5fffc92.entry.js +1 -0
  191. package/pn-market-web-components/p-e9fe5c54.entry.js +1 -0
  192. package/pn-market-web-components/p-f4cb2104.system.entry.js +1 -0
  193. package/pn-market-web-components/{p-00d6033e.entry.js → p-f774e2cc.entry.js} +1 -1
  194. package/pn-market-web-components/{p-4f0f8e9f.system.entry.js → p-f7b013a7.system.entry.js} +1 -1
  195. package/pn-market-web-components/{p-2b120338.system.entry.js → p-fc1083d2.system.entry.js} +1 -1
  196. package/pn-market-web-components/p-fc6a09e0.system.entry.js +1 -0
  197. package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
  198. package/pn-market-web-components/pn-market-web-components.js +1 -1
  199. package/types/components/input/pn-marketweb-input/pn-marketweb-input.d.ts +32 -0
  200. package/types/components/input/{pn-filter-search/pn-filter-search.d.ts → pn-marketweb-search/pn-marketweb-search.d.ts} +9 -1
  201. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-search-store.d.ts +11 -0
  202. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-search.d.ts +6 -0
  203. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-types.d.ts +1 -0
  204. package/types/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader.d.ts +2 -0
  205. package/types/components/widgets/pn-find-price/pn-find-price-store.d.ts +0 -2
  206. package/types/components/widgets/pn-find-price/pn-find-price-translations.d.ts +0 -5
  207. package/types/components/widgets/pn-find-price/pn-find-price-types.d.ts +0 -1
  208. package/types/components/widgets/pn-pex-pricefinder/pn-pex-pricefinder.d.ts +1 -0
  209. package/types/components.d.ts +156 -65
  210. package/cjs/pn-filter-search.cjs.entry.js +0 -69
  211. package/esm/pn-filter-search.entry.js +0 -65
  212. package/esm-es5/pn-filter-search.entry.js +0 -1
  213. package/esm-es5/pn-find-price-store-ddd3f427.js +0 -1
  214. package/pn-market-web-components/p-15836764.js +0 -1
  215. package/pn-market-web-components/p-1ccd3831.entry.js +0 -1
  216. package/pn-market-web-components/p-208a0a7b.entry.js +0 -1
  217. package/pn-market-web-components/p-28316927.js +0 -1
  218. package/pn-market-web-components/p-39ecfda9.system.entry.js +0 -1
  219. package/pn-market-web-components/p-39ff2013.system.entry.js +0 -1
  220. package/pn-market-web-components/p-4c9b1ae9.system.js +0 -1
  221. package/pn-market-web-components/p-4f8537fb.system.js +0 -1
  222. package/pn-market-web-components/p-58623439.entry.js +0 -1
  223. package/pn-market-web-components/p-66fb0f57.entry.js +0 -1
  224. package/pn-market-web-components/p-6df0b06e.entry.js +0 -1
  225. package/pn-market-web-components/p-731efb7b.system.entry.js +0 -1
  226. package/pn-market-web-components/p-7a7f380b.system.js +0 -1
  227. package/pn-market-web-components/p-87a4810e.system.entry.js +0 -1
  228. package/pn-market-web-components/p-ad5b20ce.js +0 -1
  229. package/pn-market-web-components/p-b4a0e5fd.system.entry.js +0 -1
  230. package/pn-market-web-components/p-b4b6ab95.system.js +0 -1
  231. package/pn-market-web-components/p-cf516409.js +0 -1
  232. package/pn-market-web-components/p-cfa3be4a.entry.js +0 -1
  233. package/pn-market-web-components/p-dc48d8f8.system.entry.js +0 -1
  234. package/pn-market-web-components/p-e732c60a.system.entry.js +0 -1
  235. package/pn-market-web-components/p-fbdc9ea5.system.entry.js +0 -1
  236. package/pn-market-web-components/p-fdad9fb6.entry.js +0 -1
  237. package/pn-market-web-components/p-ff678bef.system.js +0 -1
@@ -0,0 +1,156 @@
1
+ pn--marketweb-input {
2
+ display: inline-flex;
3
+ flex-direction: column;
4
+ }
5
+
6
+ pn-marketweb-input input {
7
+ padding: 0.75em;
8
+ font-size: 1em;
9
+ font-weight: 500;
10
+ -webkit-font-smoothing: antialiased;
11
+ outline: none;
12
+ border-radius: 0.8rem;
13
+ border: 0.1rem solid #5E554A;
14
+ transition: box-shadow 0.15s, border 0.15s;
15
+ color: #000000;
16
+ width: 100%;
17
+ }
18
+ pn-marketweb-input input::placeholder {
19
+ color: #969087;
20
+ font-weight: normal;
21
+ }
22
+ pn-marketweb-input input:focus {
23
+ border: 0.1rem solid #005D92;
24
+ box-shadow: 0 0 0 0.2rem #fff, 0 0 0 0.4rem #005D92;
25
+ }
26
+ pn-marketweb-input input:hover {
27
+ border: 0.1rem solid #00A0D6;
28
+ }
29
+ pn-marketweb-input input:disabled {
30
+ background: #F3F2F2;
31
+ border: none;
32
+ }
33
+
34
+ pn-marketweb-input > .input-container {
35
+ position: relative;
36
+ }
37
+ pn-marketweb-input > .input-container > button {
38
+ position: absolute;
39
+ right: 1.2rem;
40
+ top: 50%;
41
+ transform: translateY(-50%);
42
+ background: none;
43
+ border: none;
44
+ cursor: pointer;
45
+ color: #005D92;
46
+ padding: 0.6rem;
47
+ border-radius: 0.8rem;
48
+ outline: none;
49
+ transition: border 0.1s, background 0.2s, color 0.1s;
50
+ border: 0.1rem solid transparent;
51
+ }
52
+ pn-marketweb-input > .input-container > button:focus {
53
+ border: 0.1rem solid #005D92;
54
+ }
55
+ pn-marketweb-input > .input-container > button:hover {
56
+ background: #E0F8FF;
57
+ }
58
+ pn-marketweb-input > .input-container > button:active {
59
+ background: #005D92;
60
+ color: white;
61
+ }
62
+ pn-marketweb-input > .input-container > svg {
63
+ position: absolute;
64
+ right: 0.75em;
65
+ top: 50%;
66
+ transform: translateY(-50%);
67
+ height: 1.5em;
68
+ width: 1.5em;
69
+ pointer-events: none;
70
+ }
71
+ pn-marketweb-input > .input-container > svg polyline {
72
+ stroke-linecap: round;
73
+ transition: stroke-dashoffset 0.2s cubic-bezier(0.79, 0.14, 0.15, 0.86);
74
+ }
75
+ pn-marketweb-input > .input-container > svg.pn-input-checkmark polyline {
76
+ stroke: #005E41;
77
+ stroke-dashoffset: 23;
78
+ stroke-dasharray: 23;
79
+ }
80
+
81
+ pn-marketweb-input .label-container {
82
+ margin-bottom: 0.4rem;
83
+ color: #5E554A;
84
+ font-size: 0.875em;
85
+ display: flex;
86
+ justify-content: space-between;
87
+ align-items: flex-end;
88
+ }
89
+ pn-marketweb-input .label-container label {
90
+ cursor: pointer;
91
+ transition: color 0.2s;
92
+ }
93
+
94
+ .label-container label.char-count {
95
+ flex-shrink: 0;
96
+ padding-left: 0.5em;
97
+ }
98
+
99
+ pn-marketweb-input small {
100
+ font-size: 0.75em;
101
+ font-size: max(.6em, 1.2rem);
102
+ transition: transform 0.2s cubic-bezier(0.79, 0.14, 0.15, 0.86);
103
+ margin-top: 0.5em;
104
+ color: #5E554A;
105
+ }
106
+
107
+ pn-input.error {
108
+ color: #A70707;
109
+ }
110
+ pn-input.error label {
111
+ color: #A70707;
112
+ }
113
+ pn-input.error small {
114
+ color: #A70707;
115
+ }
116
+ pn-input.error small > pn-icon {
117
+ margin-right: 0.25em;
118
+ }
119
+ pn-input.error input {
120
+ border: 0.1rem solid #A70707;
121
+ }
122
+ pn-input.error input:focus {
123
+ border: 0.1rem solid #A70707;
124
+ box-shadow: 0 0 0 0.2rem #fff, 0 0 0 0.4rem #A70707;
125
+ }
126
+ pn-input.error input:hover {
127
+ border: 0.1rem solid #F06365;
128
+ }
129
+
130
+ pn-input.valid {
131
+ color: #005E41;
132
+ }
133
+ pn-input.valid .input-container > svg.pn-input-checkmark polyline {
134
+ stroke-dashoffset: 0;
135
+ }
136
+ pn-input.valid label {
137
+ color: #005E41;
138
+ }
139
+ pn-input.valid input {
140
+ border: 0.1rem solid #005E41;
141
+ }
142
+ pn-input.valid input:focus {
143
+ border: 0.1rem solid #005E41;
144
+ box-shadow: 0 0 0 0.2rem #fff, 0 0 0 0.4rem #005E41;
145
+ }
146
+ pn-input.valid input:hover {
147
+ border: 0.1rem solid #5EC584;
148
+ }
149
+
150
+ pn-marketweb-input.password input {
151
+ padding-right: 4em;
152
+ }
153
+
154
+ pn-marketweb-input.icon input {
155
+ padding-right: 2.3em;
156
+ }
@@ -0,0 +1,412 @@
1
+ import { Component, Prop, h, Host, State } from "@stencil/core";
2
+ export class PnMarketwebInput {
3
+ constructor() {
4
+ this.disabled = false;
5
+ /** Error message; will take precedence over helpertext if both are provided (applies invalid styles automatically) */
6
+ this.error = '';
7
+ /** Error state without message (If you want to control the error messaging on your own) */
8
+ this.invalid = false;
9
+ /** Text message placed underneath the input field */
10
+ this.helpertext = '';
11
+ /** Text label placed above the input field */
12
+ this.label = '';
13
+ this.placeholder = '';
14
+ this.inputid = `${Math.random()}`;
15
+ this.name = '';
16
+ this.required = null;
17
+ this.type = 'text';
18
+ this.autocomplete = '';
19
+ this.valid = null;
20
+ this.value = '';
21
+ /** The maximum number of characters the user should be able to add, also adds a visible counter */
22
+ this.maxlength = '';
23
+ this.min = '';
24
+ this.max = '';
25
+ this.step = '';
26
+ this.pattern = '';
27
+ this.showText = false;
28
+ }
29
+ getTextMessage() {
30
+ if (this.error)
31
+ return this.error;
32
+ if (this.helpertext)
33
+ return this.helpertext;
34
+ return null;
35
+ }
36
+ toggleTextVisibility() {
37
+ this.showText = !this.showText;
38
+ }
39
+ getInputType() {
40
+ let types = ['text', 'password', 'url', 'tel', 'search', 'number', 'email', 'date', 'datetime-local', 'month', 'week', 'time'];
41
+ return (types.includes(this.type) && !this.showText) ? this.type : 'text';
42
+ }
43
+ setVal(e) {
44
+ var _a;
45
+ const target = (_a = e.composedPath) === null || _a === void 0 ? void 0 : _a.call(e)[0];
46
+ this.value = target.value;
47
+ }
48
+ getClassNames() {
49
+ let classNames = 'pn-input ';
50
+ if (this.error.length > 0 || this.invalid)
51
+ classNames += 'error ';
52
+ if (this.valid)
53
+ classNames += 'valid ';
54
+ if (this.type === 'password')
55
+ classNames += 'password ';
56
+ if (this.error || this.invalid || this.valid)
57
+ classNames += 'icon ';
58
+ return classNames;
59
+ }
60
+ render() {
61
+ return (h(Host, { class: this.getClassNames() },
62
+ (this.label || this.maxlength) &&
63
+ h("div", { class: "label-container" },
64
+ this.label && h("label", { htmlFor: this.inputid }, this.label),
65
+ parseInt(this.maxlength) > 0 && h("label", { class: "char-count", htmlFor: this.inputid }, `${this.value.length}/${this.maxlength}`)),
66
+ h("div", { class: "input-container" },
67
+ h("input", { type: this.getInputType(), value: this.value, id: this.inputid, name: this.name, placeholder: this.placeholder, disabled: this.disabled, autocomplete: this.autocomplete, onInput: (e) => this.setVal(e), maxlength: this.maxlength ? this.maxlength : null, min: (this.min ? this.min : null), max: (this.max ? this.max : null), step: (this.step ? this.step : null), pattern: (this.pattern ? this.pattern : null) }),
68
+ h("svg", { class: "pn-input-checkmark", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none" },
69
+ h("polyline", { class: "checkmark-path", points: "4,12 9,17 20,6", "stroke-width": "3" })),
70
+ this.type === 'password' && !this.disabled && h("button", { onClick: () => this.toggleTextVisibility() }, "Show")),
71
+ this.getTextMessage() &&
72
+ h("small", null,
73
+ this.error && h("pn-icon", { symbol: "alert-exclamation-circle", small: true, color: "warning" }),
74
+ this.getTextMessage())));
75
+ }
76
+ static get is() { return "pn-marketweb-input"; }
77
+ static get originalStyleUrls() { return {
78
+ "$": ["pn-marketweb-input.scss"]
79
+ }; }
80
+ static get styleUrls() { return {
81
+ "$": ["pn-marketweb-input.css"]
82
+ }; }
83
+ static get properties() { return {
84
+ "disabled": {
85
+ "type": "boolean",
86
+ "mutable": false,
87
+ "complexType": {
88
+ "original": "boolean",
89
+ "resolved": "boolean",
90
+ "references": {}
91
+ },
92
+ "required": false,
93
+ "optional": false,
94
+ "docs": {
95
+ "tags": [],
96
+ "text": ""
97
+ },
98
+ "attribute": "disabled",
99
+ "reflect": false,
100
+ "defaultValue": "false"
101
+ },
102
+ "error": {
103
+ "type": "string",
104
+ "mutable": false,
105
+ "complexType": {
106
+ "original": "string",
107
+ "resolved": "string",
108
+ "references": {}
109
+ },
110
+ "required": false,
111
+ "optional": false,
112
+ "docs": {
113
+ "tags": [],
114
+ "text": "Error message; will take precedence over helpertext if both are provided (applies invalid styles automatically)"
115
+ },
116
+ "attribute": "error",
117
+ "reflect": false,
118
+ "defaultValue": "''"
119
+ },
120
+ "invalid": {
121
+ "type": "boolean",
122
+ "mutable": false,
123
+ "complexType": {
124
+ "original": "boolean",
125
+ "resolved": "boolean",
126
+ "references": {}
127
+ },
128
+ "required": false,
129
+ "optional": false,
130
+ "docs": {
131
+ "tags": [],
132
+ "text": "Error state without message (If you want to control the error messaging on your own)"
133
+ },
134
+ "attribute": "invalid",
135
+ "reflect": false,
136
+ "defaultValue": "false"
137
+ },
138
+ "helpertext": {
139
+ "type": "string",
140
+ "mutable": false,
141
+ "complexType": {
142
+ "original": "string",
143
+ "resolved": "string",
144
+ "references": {}
145
+ },
146
+ "required": false,
147
+ "optional": false,
148
+ "docs": {
149
+ "tags": [],
150
+ "text": "Text message placed underneath the input field"
151
+ },
152
+ "attribute": "helpertext",
153
+ "reflect": false,
154
+ "defaultValue": "''"
155
+ },
156
+ "label": {
157
+ "type": "string",
158
+ "mutable": false,
159
+ "complexType": {
160
+ "original": "string",
161
+ "resolved": "string",
162
+ "references": {}
163
+ },
164
+ "required": false,
165
+ "optional": false,
166
+ "docs": {
167
+ "tags": [],
168
+ "text": "Text label placed above the input field"
169
+ },
170
+ "attribute": "label",
171
+ "reflect": false,
172
+ "defaultValue": "''"
173
+ },
174
+ "placeholder": {
175
+ "type": "string",
176
+ "mutable": false,
177
+ "complexType": {
178
+ "original": "string",
179
+ "resolved": "string",
180
+ "references": {}
181
+ },
182
+ "required": false,
183
+ "optional": false,
184
+ "docs": {
185
+ "tags": [],
186
+ "text": ""
187
+ },
188
+ "attribute": "placeholder",
189
+ "reflect": false,
190
+ "defaultValue": "''"
191
+ },
192
+ "inputid": {
193
+ "type": "string",
194
+ "mutable": false,
195
+ "complexType": {
196
+ "original": "string",
197
+ "resolved": "string",
198
+ "references": {}
199
+ },
200
+ "required": false,
201
+ "optional": false,
202
+ "docs": {
203
+ "tags": [],
204
+ "text": ""
205
+ },
206
+ "attribute": "inputid",
207
+ "reflect": false,
208
+ "defaultValue": "`${Math.random()}`"
209
+ },
210
+ "name": {
211
+ "type": "string",
212
+ "mutable": false,
213
+ "complexType": {
214
+ "original": "string",
215
+ "resolved": "string",
216
+ "references": {}
217
+ },
218
+ "required": false,
219
+ "optional": false,
220
+ "docs": {
221
+ "tags": [],
222
+ "text": ""
223
+ },
224
+ "attribute": "name",
225
+ "reflect": false,
226
+ "defaultValue": "''"
227
+ },
228
+ "required": {
229
+ "type": "boolean",
230
+ "mutable": false,
231
+ "complexType": {
232
+ "original": "boolean",
233
+ "resolved": "boolean",
234
+ "references": {}
235
+ },
236
+ "required": false,
237
+ "optional": false,
238
+ "docs": {
239
+ "tags": [],
240
+ "text": ""
241
+ },
242
+ "attribute": "required",
243
+ "reflect": false,
244
+ "defaultValue": "null"
245
+ },
246
+ "type": {
247
+ "type": "string",
248
+ "mutable": true,
249
+ "complexType": {
250
+ "original": "string",
251
+ "resolved": "string",
252
+ "references": {}
253
+ },
254
+ "required": false,
255
+ "optional": false,
256
+ "docs": {
257
+ "tags": [],
258
+ "text": ""
259
+ },
260
+ "attribute": "type",
261
+ "reflect": false,
262
+ "defaultValue": "'text'"
263
+ },
264
+ "autocomplete": {
265
+ "type": "string",
266
+ "mutable": false,
267
+ "complexType": {
268
+ "original": "string",
269
+ "resolved": "string",
270
+ "references": {}
271
+ },
272
+ "required": false,
273
+ "optional": false,
274
+ "docs": {
275
+ "tags": [],
276
+ "text": ""
277
+ },
278
+ "attribute": "autocomplete",
279
+ "reflect": false,
280
+ "defaultValue": "''"
281
+ },
282
+ "valid": {
283
+ "type": "boolean",
284
+ "mutable": false,
285
+ "complexType": {
286
+ "original": "boolean",
287
+ "resolved": "boolean",
288
+ "references": {}
289
+ },
290
+ "required": false,
291
+ "optional": false,
292
+ "docs": {
293
+ "tags": [],
294
+ "text": ""
295
+ },
296
+ "attribute": "valid",
297
+ "reflect": false,
298
+ "defaultValue": "null"
299
+ },
300
+ "value": {
301
+ "type": "string",
302
+ "mutable": false,
303
+ "complexType": {
304
+ "original": "string",
305
+ "resolved": "string",
306
+ "references": {}
307
+ },
308
+ "required": false,
309
+ "optional": false,
310
+ "docs": {
311
+ "tags": [],
312
+ "text": ""
313
+ },
314
+ "attribute": "value",
315
+ "reflect": false,
316
+ "defaultValue": "''"
317
+ },
318
+ "maxlength": {
319
+ "type": "string",
320
+ "mutable": false,
321
+ "complexType": {
322
+ "original": "string",
323
+ "resolved": "string",
324
+ "references": {}
325
+ },
326
+ "required": false,
327
+ "optional": false,
328
+ "docs": {
329
+ "tags": [],
330
+ "text": "The maximum number of characters the user should be able to add, also adds a visible counter"
331
+ },
332
+ "attribute": "maxlength",
333
+ "reflect": false,
334
+ "defaultValue": "''"
335
+ },
336
+ "min": {
337
+ "type": "string",
338
+ "mutable": false,
339
+ "complexType": {
340
+ "original": "string",
341
+ "resolved": "string",
342
+ "references": {}
343
+ },
344
+ "required": false,
345
+ "optional": false,
346
+ "docs": {
347
+ "tags": [],
348
+ "text": ""
349
+ },
350
+ "attribute": "min",
351
+ "reflect": false,
352
+ "defaultValue": "''"
353
+ },
354
+ "max": {
355
+ "type": "string",
356
+ "mutable": false,
357
+ "complexType": {
358
+ "original": "string",
359
+ "resolved": "string",
360
+ "references": {}
361
+ },
362
+ "required": false,
363
+ "optional": false,
364
+ "docs": {
365
+ "tags": [],
366
+ "text": ""
367
+ },
368
+ "attribute": "max",
369
+ "reflect": false,
370
+ "defaultValue": "''"
371
+ },
372
+ "step": {
373
+ "type": "string",
374
+ "mutable": false,
375
+ "complexType": {
376
+ "original": "string",
377
+ "resolved": "string",
378
+ "references": {}
379
+ },
380
+ "required": false,
381
+ "optional": false,
382
+ "docs": {
383
+ "tags": [],
384
+ "text": ""
385
+ },
386
+ "attribute": "step",
387
+ "reflect": false,
388
+ "defaultValue": "''"
389
+ },
390
+ "pattern": {
391
+ "type": "string",
392
+ "mutable": false,
393
+ "complexType": {
394
+ "original": "string",
395
+ "resolved": "string",
396
+ "references": {}
397
+ },
398
+ "required": false,
399
+ "optional": false,
400
+ "docs": {
401
+ "tags": [],
402
+ "text": ""
403
+ },
404
+ "attribute": "pattern",
405
+ "reflect": false,
406
+ "defaultValue": "''"
407
+ }
408
+ }; }
409
+ static get states() { return {
410
+ "showText": {}
411
+ }; }
412
+ }
@@ -1,7 +1,7 @@
1
1
  import readme from "./readme.md";
2
2
 
3
3
  export default {
4
- title: "input/Filter search field",
4
+ title: "input/Market web search field",
5
5
  parameters: {
6
6
  notes: readme,
7
7
  layout: 'centered'
@@ -10,7 +10,7 @@ export default {
10
10
 
11
11
  const Template = ({ ...args }) => {
12
12
  return `
13
- <pn-filter-search
13
+ <pn-marketweb-search
14
14
  label="${args.label}"
15
15
  name="${args.name}"
16
16
  inputid="${args.inputid}"
@@ -20,7 +20,19 @@ const Template = ({ ...args }) => {
20
20
  disabled=${args.disabled}
21
21
  loading=${args.loading}
22
22
  light="${args.light}"
23
- ></pn-filter-search>
23
+ list="listexample"
24
+ ></pn-marketweb-search>
25
+ <datalist id="listexample">
26
+ <option>Autocomplete example</option>
27
+ <option>More autocomplete examples</option>
28
+ </datalist>
29
+ <script>
30
+ // window.setTimeout(function() {
31
+ // const newOpt = document.createElement("option");
32
+ // newOpt.innerHTML = "new item";
33
+ // document.getElementById("listexample").appendChild(newOpt);
34
+ // }, 500);
35
+ </script>
24
36
  `;
25
37
  };
26
38
  export const Primary = Template.bind({});
@@ -66,28 +66,33 @@
66
66
  align-items: center;
67
67
  justify-content: center;
68
68
  }
69
+ :host[list] :host > .input-container .button-container {
70
+ display: none;
71
+ }
69
72
  :host > .input-container button {
70
73
  position: absolute;
71
74
  left: 50%;
72
75
  top: 50%;
73
76
  transform: translate(100%, -50%);
74
- background: none;
77
+ background: #FFFFFF;
75
78
  border: none;
76
79
  color: #005D92;
77
80
  padding: 0.3rem;
81
+ margin: 0;
82
+ font-size: 0.875em;
78
83
  border-radius: 50%;
79
84
  outline: none;
80
85
  transition: border 0.1s, background 0.2s, box-shadow 0.1s, transform cubic-bezier(0.7, 0, 0.3, 1) 0.2s, opacity 0.2s;
81
86
  border: 0.1rem solid transparent;
87
+ -webkit-tap-highlight-color: transparent;
82
88
  }
83
89
  :host > .input-container button.clear, :host > .input-container button.search {
84
90
  cursor: pointer;
85
91
  }
86
92
  :host > .input-container button:focus {
87
93
  box-shadow: 0 0 0 0.2rem #fff, 0 0 0 0.4rem #005D92;
88
- background: #8EDDF9;
89
94
  }
90
- :host > .input-container button:hover {
95
+ :host > .input-container button:hover, :host > .input-container button:focus {
91
96
  background: #E0F8FF;
92
97
  }
93
98
  :host > .input-container button:active {
@@ -98,44 +103,44 @@
98
103
  fill: white;
99
104
  }
100
105
 
101
- :host.searching button.search {
106
+ :host .searching button.search {
102
107
  transform: translate(150%, -50%);
103
108
  }
104
- :host.searching button.clear {
109
+ :host .searching button.clear {
105
110
  transform: translate(-50%, -50%);
106
111
  }
107
112
 
108
113
  /*---------------------------------------Button Variants-------------------------------------------*/
109
- :host.button-none input,
110
- :host.button-icon-inline input {
114
+ :host .button-none input,
115
+ :host .button-icon-inline input {
111
116
  padding-right: 3.3em;
112
117
  }
113
- :host.button-none pn-spinner,
114
- :host.button-icon-inline pn-spinner {
118
+ :host .button-none pn-spinner,
119
+ :host .button-icon-inline pn-spinner {
115
120
  position: absolute;
116
121
  left: 50%;
117
122
  top: 50%;
118
123
  transform: translate(100%, -50%);
119
124
  transition: transform cubic-bezier(0.7, 0, 0.3, 1) 0.2s;
120
125
  }
121
- :host.button-none button.search,
122
- :host.button-icon-inline button.search {
126
+ :host .button-none button.search,
127
+ :host .button-icon-inline button.search {
123
128
  transform: translate(-50%, -50%);
124
129
  }
125
- :host.button-none.loading button,
126
- :host.button-icon-inline.loading button {
130
+ :host .button-none.loading button,
131
+ :host .button-icon-inline.loading button {
127
132
  transform: translate(100%, -50%);
128
133
  }
129
- :host.button-none.loading pn-spinner,
130
- :host.button-icon-inline.loading pn-spinner {
134
+ :host .button-none.loading pn-spinner,
135
+ :host .button-icon-inline.loading pn-spinner {
131
136
  transform: translate(-50%, -50%);
132
137
  }
133
138
 
134
- :host.button-none.searching button.search {
139
+ :host .button-none.searching button.search {
135
140
  transform: translate(100%, -50%);
136
141
  }
137
142
 
138
- :host.button-icon > pn-button[data-loading=true] .pn-button-bg {
143
+ :host .button-icon > pn-button[data-loading=true] .pn-button-bg {
139
144
  left: 50%;
140
145
  transform: translateX(-50%);
141
146
  }