@nova-design-system/nova-webcomponents 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/dist/cjs/index-c56424e5.js +8 -8
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/native.cjs.js +1 -1
  4. package/dist/cjs/nv-calendar.cjs.entry.js +20 -4
  5. package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -1
  6. package/dist/cjs/nv-datagrid.cjs.entry.js +44 -11
  7. package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
  8. package/dist/cjs/nv-fielddaterange.cjs.entry.js +28 -5
  9. package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
  10. package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
  11. package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
  12. package/dist/cjs/nv-fieldpassword.cjs.entry.js +3 -3
  13. package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
  14. package/dist/cjs/nv-fieldselect.cjs.entry.js +5 -5
  15. package/dist/cjs/nv-fieldslider.cjs.entry.js +7 -7
  16. package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
  17. package/dist/cjs/nv-fieldtext.cjs.entry.js +3 -3
  18. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +3 -3
  19. package/dist/cjs/nv-fieldtime.cjs.entry.js +9 -9
  20. package/dist/cjs/nv-icon.cjs.entry.js +1 -1
  21. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
  22. package/dist/cjs/nv-menu.cjs.entry.js +1 -1
  23. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  24. package/dist/cjs/nv-popover.cjs.entry.js +2 -2
  25. package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  27. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  28. package/dist/cjs/nv-table.cjs.entry.js +2 -2
  29. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  30. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  31. package/dist/collection/components/nv-calendar/nv-calendar.utils.js +20 -4
  32. package/dist/collection/components/nv-calendar/nv-calendar.utils.js.map +1 -1
  33. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +88 -2
  34. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
  35. package/dist/collection/components/nv-datagrid/nv-datagrid.js +89 -10
  36. package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
  37. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js +0 -1
  38. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js.map +1 -1
  39. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +31 -4
  40. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
  41. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js +8 -0
  42. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js.map +1 -1
  43. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +4 -3
  44. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
  45. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +3 -3
  46. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
  47. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
  48. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
  49. package/dist/collection/components/nv-fieldslider/partials/field-input.js +1 -1
  50. package/dist/collection/components/nv-fieldslider/partials/field-input.js.map +1 -1
  51. package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +9 -1
  52. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
  53. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
  54. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +9 -9
  55. package/dist/collection/components/nv-icon/nv-icon.js +1 -1
  56. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
  57. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  58. package/dist/collection/components/nv-menu/nv-menu.js +1 -1
  59. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  60. package/dist/collection/components/nv-popover/nv-popover.js +3 -3
  61. package/dist/collection/components/nv-popover/nv-popover.js.map +1 -1
  62. package/dist/collection/components/nv-row/nv-row.js +1 -1
  63. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  64. package/dist/collection/components/nv-table/nv-table.js +2 -2
  65. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  66. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  67. package/dist/collection/templates/navigation.docs.js +1 -1
  68. package/dist/collection/templates/navigation.docs.js.map +1 -1
  69. package/dist/components/nv-alert.js +1 -1
  70. package/dist/components/nv-avatar.js +1 -1
  71. package/dist/components/nv-badge.js +1 -1
  72. package/dist/components/nv-breadcrumb.js +2 -2
  73. package/dist/components/nv-button.js +1 -1
  74. package/dist/components/nv-calendar.js +1 -1
  75. package/dist/components/nv-datagrid.js +53 -18
  76. package/dist/components/nv-datagrid.js.map +1 -1
  77. package/dist/components/nv-dialog.js +4 -4
  78. package/dist/components/nv-dialogfooter.js +1 -1
  79. package/dist/components/nv-fielddate.js +6 -6
  80. package/dist/components/nv-fielddaterange.js +36 -12
  81. package/dist/components/nv-fielddaterange.js.map +1 -1
  82. package/dist/components/nv-fielddropdown.js +5 -5
  83. package/dist/components/nv-fielddropdownitem.js +1 -1
  84. package/dist/components/nv-fieldmultiselect.js +5 -5
  85. package/dist/components/nv-fieldnumber.js +1 -180
  86. package/dist/components/nv-fieldnumber.js.map +1 -1
  87. package/dist/components/nv-fieldpassword.js +6 -6
  88. package/dist/components/nv-fieldradio.js +3 -3
  89. package/dist/components/nv-fieldselect.js +8 -8
  90. package/dist/components/nv-fieldslider.js +27 -9
  91. package/dist/components/nv-fieldslider.js.map +1 -1
  92. package/dist/components/nv-fieldtext.js +1 -1
  93. package/dist/components/nv-fieldtextarea.js +3 -3
  94. package/dist/components/nv-fieldtime.js +13 -13
  95. package/dist/components/nv-icon.js +1 -1
  96. package/dist/components/nv-iconbutton.js +1 -1
  97. package/dist/components/nv-loader.js +1 -1
  98. package/dist/components/nv-menu.js +4 -4
  99. package/dist/components/nv-menuitem.js +1 -1
  100. package/dist/components/nv-popover.js +1 -1
  101. package/dist/components/nv-row.js +1 -1
  102. package/dist/components/nv-stack.js +1 -1
  103. package/dist/components/nv-table.js +2 -2
  104. package/dist/components/nv-toggle.js +2 -2
  105. package/dist/components/nv-tooltip.js +1 -1
  106. package/dist/components/{p-eabbc885.js → p-131e5140.js} +3 -3
  107. package/dist/components/{p-eabbc885.js.map → p-131e5140.js.map} +1 -1
  108. package/dist/components/{p-95a7581c.js → p-3f567fde.js} +4 -4
  109. package/dist/components/{p-95a7581c.js.map → p-3f567fde.js.map} +1 -1
  110. package/dist/components/{p-7935c1cb.js → p-3f58525b.js} +5 -5
  111. package/dist/components/{p-7935c1cb.js.map → p-3f58525b.js.map} +1 -1
  112. package/dist/components/{p-e28c4707.js → p-953d8b4d.js} +2 -2
  113. package/dist/components/{p-e28c4707.js.map → p-953d8b4d.js.map} +1 -1
  114. package/dist/components/{p-b6d858b2.js → p-9f1e8ef3.js} +2 -2
  115. package/dist/components/{p-b6d858b2.js.map → p-9f1e8ef3.js.map} +1 -1
  116. package/dist/components/{p-5e90b9b8.js → p-a0d7e0cd.js} +21 -5
  117. package/dist/components/p-a0d7e0cd.js.map +1 -0
  118. package/dist/components/{p-8d92f0e1.js → p-a1438b39.js} +3 -3
  119. package/dist/components/{p-8d92f0e1.js.map → p-a1438b39.js.map} +1 -1
  120. package/dist/components/{p-c9006520.js → p-a189d074.js} +4 -4
  121. package/dist/components/{p-c9006520.js.map → p-a189d074.js.map} +1 -1
  122. package/dist/components/p-a29a9396.js +184 -0
  123. package/dist/components/p-a29a9396.js.map +1 -0
  124. package/dist/components/{p-9fa0de38.js → p-b207be02.js} +2 -2
  125. package/dist/components/{p-9fa0de38.js.map → p-b207be02.js.map} +1 -1
  126. package/dist/components/{p-5ee4015d.js → p-dcaf9010.js} +2 -2
  127. package/dist/components/{p-5ee4015d.js.map → p-dcaf9010.js.map} +1 -1
  128. package/dist/components/{p-bb6d1e4e.js → p-dec6fc68.js} +2 -2
  129. package/dist/components/{p-bb6d1e4e.js.map → p-dec6fc68.js.map} +1 -1
  130. package/dist/components/{p-2ae214d2.js → p-df465ef2.js} +2 -2
  131. package/dist/components/{p-2ae214d2.js.map → p-df465ef2.js.map} +1 -1
  132. package/dist/components/{p-3e32b5a1.js → p-f7c7a406.js} +3 -3
  133. package/dist/components/{p-3e32b5a1.js.map → p-f7c7a406.js.map} +1 -1
  134. package/dist/esm/index-a1936cd0.js +8 -8
  135. package/dist/esm/loader.js +1 -1
  136. package/dist/esm/native.js +1 -1
  137. package/dist/esm/nv-calendar.entry.js +20 -4
  138. package/dist/esm/nv-calendar.entry.js.map +1 -1
  139. package/dist/esm/nv-datagrid.entry.js +44 -11
  140. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  141. package/dist/esm/nv-fielddaterange.entry.js +28 -5
  142. package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
  143. package/dist/esm/nv-fieldnumber.entry.js +3 -3
  144. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  145. package/dist/esm/nv-fieldpassword.entry.js +3 -3
  146. package/dist/esm/nv-fieldradio.entry.js +3 -3
  147. package/dist/esm/nv-fieldselect.entry.js +5 -5
  148. package/dist/esm/nv-fieldslider.entry.js +7 -7
  149. package/dist/esm/nv-fieldslider.entry.js.map +1 -1
  150. package/dist/esm/nv-fieldtext.entry.js +3 -3
  151. package/dist/esm/nv-fieldtextarea.entry.js +3 -3
  152. package/dist/esm/nv-fieldtime.entry.js +9 -9
  153. package/dist/esm/nv-icon.entry.js +1 -1
  154. package/dist/esm/nv-iconbutton_2.entry.js +2 -2
  155. package/dist/esm/nv-menu.entry.js +1 -1
  156. package/dist/esm/nv-menuitem.entry.js +1 -1
  157. package/dist/esm/nv-popover.entry.js +2 -2
  158. package/dist/esm/nv-popover.entry.js.map +1 -1
  159. package/dist/esm/nv-row.entry.js +1 -1
  160. package/dist/esm/nv-stack.entry.js +1 -1
  161. package/dist/esm/nv-table.entry.js +2 -2
  162. package/dist/esm/nv-toggle.entry.js +2 -2
  163. package/dist/esm/nv-tooltip.entry.js +1 -1
  164. package/dist/native/native.esm.js +1 -1
  165. package/dist/native/native.esm.js.map +1 -1
  166. package/dist/native/{p-45459dbb.entry.js → p-01164e86.entry.js} +2 -2
  167. package/dist/native/{p-dc7dd7f3.entry.js → p-0410facd.entry.js} +2 -2
  168. package/dist/native/p-0410facd.entry.js.map +1 -0
  169. package/dist/native/{p-58bb90ad.entry.js → p-0ec2d430.entry.js} +2 -2
  170. package/dist/native/{p-58bb90ad.entry.js.map → p-0ec2d430.entry.js.map} +1 -1
  171. package/dist/native/{p-ed6019fe.entry.js → p-14895e84.entry.js} +2 -2
  172. package/dist/native/p-14895e84.entry.js.map +1 -0
  173. package/dist/native/{p-fdea17ce.entry.js → p-24659a85.entry.js} +2 -2
  174. package/dist/native/{p-838f7842.entry.js → p-2b1e7675.entry.js} +2 -2
  175. package/dist/native/{p-d040bd61.entry.js → p-2bc7d66a.entry.js} +2 -2
  176. package/dist/native/{p-26cf4938.entry.js → p-2c3fb8cc.entry.js} +2 -2
  177. package/dist/native/p-2c3fb8cc.entry.js.map +1 -0
  178. package/dist/native/{p-83288db0.entry.js → p-55df8bf9.entry.js} +2 -2
  179. package/dist/native/{p-5b6c59e0.entry.js → p-7ba03c5d.entry.js} +2 -2
  180. package/dist/native/p-82c4bf56.entry.js +2 -0
  181. package/dist/native/p-82c4bf56.entry.js.map +1 -0
  182. package/dist/native/{p-8fb4e5c0.entry.js → p-9850c1d7.entry.js} +2 -2
  183. package/dist/native/{p-b8f2c1e7.entry.js → p-a0505695.entry.js} +2 -2
  184. package/dist/native/p-a0505695.entry.js.map +1 -0
  185. package/dist/native/{p-f94d7054.entry.js → p-a30206c1.entry.js} +2 -2
  186. package/dist/native/{p-3817efb2.entry.js → p-c7b8b7ba.entry.js} +2 -2
  187. package/dist/native/p-c92d55f9.entry.js +2 -0
  188. package/dist/native/{p-64a76565.entry.js → p-c9d3de9c.entry.js} +2 -2
  189. package/dist/native/{p-e2c1992e.entry.js → p-cbca9326.entry.js} +2 -2
  190. package/dist/native/{p-60c64f2b.entry.js → p-ec87200a.entry.js} +2 -2
  191. package/dist/native/{p-d53e8795.entry.js → p-f377b285.entry.js} +2 -2
  192. package/dist/native/{p-050d6c6c.entry.js → p-ff0f3794.entry.js} +2 -2
  193. package/dist/types/components/nv-datagrid/nv-datagrid.d.ts +106 -2
  194. package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +2 -0
  195. package/dist/types/components/nv-fieldnumber/nv-fieldnumber.d.ts +1 -0
  196. package/dist/types/components.d.ts +138 -0
  197. package/hydrate/index.js +145 -71
  198. package/hydrate/index.mjs +145 -71
  199. package/package.json +10 -2
  200. package/dist/components/p-5e90b9b8.js.map +0 -1
  201. package/dist/native/p-26cf4938.entry.js.map +0 -1
  202. package/dist/native/p-4f9cdf0b.entry.js +0 -2
  203. package/dist/native/p-abc251aa.entry.js +0 -2
  204. package/dist/native/p-abc251aa.entry.js.map +0 -1
  205. package/dist/native/p-b8f2c1e7.entry.js.map +0 -1
  206. package/dist/native/p-dc7dd7f3.entry.js.map +0 -1
  207. package/dist/native/p-ed6019fe.entry.js.map +0 -1
  208. /package/dist/native/{p-45459dbb.entry.js.map → p-01164e86.entry.js.map} +0 -0
  209. /package/dist/native/{p-fdea17ce.entry.js.map → p-24659a85.entry.js.map} +0 -0
  210. /package/dist/native/{p-838f7842.entry.js.map → p-2b1e7675.entry.js.map} +0 -0
  211. /package/dist/native/{p-d040bd61.entry.js.map → p-2bc7d66a.entry.js.map} +0 -0
  212. /package/dist/native/{p-83288db0.entry.js.map → p-55df8bf9.entry.js.map} +0 -0
  213. /package/dist/native/{p-5b6c59e0.entry.js.map → p-7ba03c5d.entry.js.map} +0 -0
  214. /package/dist/native/{p-8fb4e5c0.entry.js.map → p-9850c1d7.entry.js.map} +0 -0
  215. /package/dist/native/{p-f94d7054.entry.js.map → p-a30206c1.entry.js.map} +0 -0
  216. /package/dist/native/{p-3817efb2.entry.js.map → p-c7b8b7ba.entry.js.map} +0 -0
  217. /package/dist/native/{p-4f9cdf0b.entry.js.map → p-c92d55f9.entry.js.map} +0 -0
  218. /package/dist/native/{p-64a76565.entry.js.map → p-c9d3de9c.entry.js.map} +0 -0
  219. /package/dist/native/{p-e2c1992e.entry.js.map → p-cbca9326.entry.js.map} +0 -0
  220. /package/dist/native/{p-60c64f2b.entry.js.map → p-ec87200a.entry.js.map} +0 -0
  221. /package/dist/native/{p-d53e8795.entry.js.map → p-f377b285.entry.js.map} +0 -0
  222. /package/dist/native/{p-050d6c6c.entry.js.map → p-ff0f3794.entry.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{h as e,r,c as i,H as t,g as n}from"./p-d0a33e64.js";import{v as s}from"./p-f5ff676c.js";function a(e,r,i){return Math.max(r,Math.min(i,e))}function o(e,r,i){if(i===r)return 0;return(e-r)/(i-r)*100}function l(e,r,i,t){const n=a(e,r,i);const s=Math.round((n-r)/t)*t+r;return a(s,r,i)}function d(e,r,i){const t=[];for(let n=e;n<=r;n+=i){t.push(Number(n.toFixed(10)))}if(t[t.length-1]!==r){t.push(r)}return t}function c(e,r){if(!r||r.length===0)return e;let i=r[0].value;let t=Math.abs(e-i);for(const n of r){const r=Math.abs(e-n.value);if(r<t){t=r;i=n.value}}return i}const f=r=>{const{value:i,min:t,max:n,rawPosition:s,isDragging:l,snap:d,disabled:c,readonly:f,onKeyDown:h,labelBeforeValue:u,labelAfterValue:v}=r;let b=i;if(l&&!d){b=a(s,t,n)}const p=o(b,t,n);return e("div",{class:"thumb",style:{left:`${p}%`},role:"slider","aria-valuemin":t,"aria-valuemax":n,"aria-valuenow":i,"aria-disabled":c?"true":undefined,"aria-readonly":f?"true":undefined,tabindex:c?-1:0,onKeyDown:h},e("div",{class:"thumb-tooltip"},u&&e("span",{class:"label-before"},u),String(i),v&&e("span",{class:"label-after"},v)))};const h=r=>{const{rangeValue:i,rawRangePosition:t,activeDragThumb:n,isDragging:s,snap:l,min:d,max:c,disabled:f,readonly:h,onKeyDown:u,labelBeforeValue:v,labelAfterValue:b}=r;const[p,m]=i;let k=p;let g=m;if(s&&!l){const[e,r]=t;if(n==="left"){k=a(e,d,Math.min(m,c))}else if(n==="right"){g=a(r,Math.max(p,d),c)}}const y=o(k,d,c);const x=o(g,d,c);return[e("div",{class:"track-range",style:{left:`${y}%`,width:`${x-y}%`}}),e("div",{class:"thumb thumb-left",style:{left:`${y}%`},role:"slider","aria-valuemin":d,"aria-valuemax":c,"aria-valuenow":p,"aria-disabled":f?"true":undefined,"aria-readonly":h?"true":undefined,"data-thumb":"left",tabindex:f?-1:0,onKeyDown:u},e("div",{class:"thumb-tooltip"},v&&e("span",{class:"label-before"},v),String(p),b&&e("span",{class:"label-after"},b))),e("div",{class:"thumb thumb-right",style:{left:`${x}%`},role:"slider","aria-valuemin":d,"aria-valuemax":c,"aria-valuenow":m,"aria-disabled":f?"true":undefined,"aria-readonly":h?"true":undefined,"data-thumb":"right",tabindex:f?-1:0,onKeyDown:u},e("div",{class:"thumb-tooltip"},v&&e("span",{class:"label-before"},v),String(m),b&&e("span",{class:"label-after"},b)))]};const u=r=>{const{ticks:i,min:t,max:n}=r;if(i.length===0){return null}return e("div",{class:"track-ticks"},i.map((r=>{const i=o(r.value,t,n);return e("div",{class:"track-tick",style:{left:`${i}%`}},r.label&&e("div",{class:"tick-label"},r.label))})))};const v=r=>{const{range:i,hasField:t,value:n,rangeValue:s,index:a,inputId:o,min:l,max:d,step:c,disabled:f,readonly:h,onInput:u,labelBeforeValue:v,labelAfterValue:b,name:p,endName:m}=r;const k=i?s[a]:n;const g=i?{"data-index":a.toString()}:{};let y;if(i){if(a===0){y=p||""}else{y=m||(p?`${p}-end`:"")}}else{y=p||""}const x=t?"input-container":"input-container hidden-input";return t?e("div",{class:x},v&&e("span",{class:"label-before"},v),e("input",Object.assign({id:o,type:"number",value:k,min:l,max:d,step:c,disabled:f,readonly:h,name:y},g,{onInput:u})),b&&e("span",{class:"label-after"},b)):e("input",{id:o,type:"hidden",value:k,disabled:f,readonly:h,name:y})};const b='nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider{--nv-field-border-default:var(--components-form-field-border-default);--nv-field-border-hover:var(--components-form-field-border-hover);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--components-form-field-border-default);--nv-field-border-readonly:var(--components-form-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-brand);--nv-field-background:var(--components-form-field-background-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--form-gap-y);box-sizing:border-box;max-width:480px}nv-fieldslider .slider-container{width:100%;display:flex;flex-direction:row;align-items:center;gap:var(--form-gap-x)}nv-fieldslider .slider-container .track-container{position:relative;flex:1;height:calc(var(--slider-handler-size-min) + 0.25rem);padding:calc(var(--slider-handler-size-min) / 2) 0}nv-fieldslider .slider-container .track-container .track{position:relative;height:var(--slider-track-height);background:var(--components-slider-track-background);border-radius:var(--slider-track-radius);cursor:pointer}nv-fieldslider .slider-container .track-container .track .track-range{position:absolute;top:0;height:var(--slider-track-height);background:var(--components-slider-track-filled-default);border-radius:var(--slider-track-radius);pointer-events:none}nv-fieldslider .slider-container .track-container .track .thumb{position:absolute;top:50%;width:var(--slider-handler-size-min);height:var(--slider-handler-size-min);background:#ffffff;border:var(--slider-handler-stroke) solid var(--components-slider-track-filled-default);border-radius:50%;transform:translate(-50%, -50%);z-index:1;cursor:grab;transition:width 0.2s, height 0.2s, box-shadow 0.2s, background-color 0.2s}nv-fieldslider .slider-container .track-container .track .thumb:hover{width:var(--slider-handler-size-max);height:var(--slider-handler-size-max);border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container .track .thumb:focus{width:var(--slider-handler-size-min);height:var(--slider-handler-size-min);border-color:var(--components-slider-track-filled-focus);outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1);transition:outline;background:var(--components-slider-handler-background-focus)}nv-fieldslider .slider-container .track-container .track .thumb:active{cursor:grabbing;background:var(--components-slider-handler-background-hover)}nv-fieldslider .slider-container .track-container .track .thumb .thumb-tooltip{position:absolute;top:25px;left:50%;background-color:var(--components-tooltip-background);color:var(--components-tooltip-text);padding:5px;border-radius:var(--tooltip-radius);font-size:var(--tooltip-font-size);z-index:10;pointer-events:none;user-select:none;opacity:0;transition:opacity 0.3s ease-in-out;transform:translateX(-50%)}nv-fieldslider .slider-container .track-container .track .thumb .thumb-tooltip:after{content:"";background:var(--components-tooltip-background);box-shadow:none;border:none;position:absolute;border-bottom-color:transparent;border-right-color:transparent;width:6px;height:6px;transform:rotate(45deg);border-radius:1px;top:-3px;left:50%;margin-left:-3px}nv-fieldslider .slider-container .track-container .track .thumb:hover .thumb-tooltip,nv-fieldslider .slider-container .track-container .track .thumb:active .thumb-tooltip,nv-fieldslider .slider-container .track-container .track .thumb:focus .thumb-tooltip{opacity:1}nv-fieldslider .slider-container .track-container .track-ticks{position:relative;height:1rem;margin-top:0.25rem}nv-fieldslider .slider-container .track-container .track-ticks .track-tick{position:absolute;top:0;width:var(--slider-tick-height);height:var(--slider-tick-height);background:var(--components-form-field-border-default);border-radius:50%;transform:translate(-50%, 0);pointer-events:none}nv-fieldslider .slider-container .track-container .track-ticks .track-tick:first-of-type{transform:translate(0, 0)}nv-fieldslider .slider-container .track-container .track-ticks .track-tick:last-of-type{transform:translate(-100%, 0)}nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{position:absolute;top:calc(var(--slider-tick-height) + 0.25rem);left:50%;color:var(--components-form-field-border-default);transform:translateX(-50%);white-space:nowrap}.track-tick-first nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{left:0;transform:translateX(0)}.track-tick-last nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{left:100%;transform:translateX(-100%)}nv-fieldslider .slider-container .input-container{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out;width:70px;flex-grow:unset}nv-fieldslider .slider-container .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fieldslider .slider-container .input-container:focus-within,nv-fieldslider .slider-container .input-container:focus-within:hover,nv-fieldslider .slider-container .input-container:focus,nv-fieldslider .slider-container .input-container:focus:hover{border-color:var(--nv-field-border-focus);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow)}nv-fieldslider .slider-container .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fieldslider .slider-container .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldslider .slider-container .input-container input{display:flex;align-items:center;flex:1 0 0;overflow:hidden;background-color:transparent;color:var(--components-form-field-content-text);padding:var(--form-field-padding-y) var(--form-field-padding-x);font-size:var(--form-field-font-size);font-style:normal;font-weight:500;line-height:var(--form-field-line-height);width:100%;}nv-fieldslider .slider-container .input-container input:focus{outline:none}nv-fieldslider .slider-container .input-container input::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:"TT Norms Pro", sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:400;line-height:var(--form-field-line-height)}nv-fieldslider .slider-container .input-container input[type=password]::-ms-clear,nv-fieldslider .slider-container .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldslider[fluid]:not([fluid=false]){max-width:unset}nv-fieldslider[error]:not([error=false]){--nv-field-border-default:var(--components-form-field-border-error);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-destructive-in-field)}nv-fieldslider[success]:not([success=false]){--nv-field-border-default:var(--components-form-field-border-success);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-success)}nv-fieldslider[readonly]:not([readonly=false]){--nv-field-border-default:var(--components-form-field-border-readonly);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-background:var(--components-form-field-background-readonly)}nv-fieldslider[readonly]:not([readonly=false]) .track,nv-fieldslider[readonly]:not([readonly=false]) .thumb{cursor:default}nv-fieldslider label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:500;line-height:var(--form-label-line-height)}nv-fieldslider nv-icon.validation{color:var(--nv-field-border-default)}nv-fieldslider[hide-label]:not([hide-label=false]) label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}nv-fieldslider[has-field]:not([has-field=false]) .thumb-tooltip{display:none}nv-fieldslider>.description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fieldslider>.error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}nv-fieldslider>.error-description[hidden]{display:none}';const p=b;const m=class{constructor(e){r(this,e);this.valueChanged=i(this,"valueChanged",7);this.startInputId=s();this.endInputId=s();this.hideLabel=false;this.hasField=false;this.range=false;this.disabled=false;this.readonly=false;this.error=false;this.success=false;this.value=[0,0];this.step=1;this.snap=false;this.snapTicks=false;this.min=0;this.max=100;this.showTicks=false;this.fluid=false;this.isDragging=false;this.activeDragThumb="single";this.internalTicks=[];this.rawPosition=0;this.rawRangePosition=[0,0];this.valueInternal=0;this.rangeValueInternal=[0,0];this.parseValue=()=>{if(typeof this.value==="string"){console.error("Sliders require a number or array of numbers to be passed in the value prop.");return}if(this.range&&this.value.length!==2){console.error("Range sliders require an array of two values to be passed in the value prop.");return}if(!this.range&&this.value.length!==1){console.error("Single sliders require a single value as an array to be passed in the value prop.");return}this.valueInternal=this.value[0];this.rangeValueInternal=[this.value[0],this.value[1]]};this.onTrackInteraction=e=>{if(this.disabled||this.readonly){return}const r=e.currentTarget.getBoundingClientRect();const i=a((e.clientX-r.left)/r.width*100,0,100);const t=this.min+i/100*(this.max-this.min);this.rawPosition=t;if(this.range){const e=o(this.rangeValueInternal[0],this.min,this.max);const r=o(this.rangeValueInternal[1],this.min,this.max);const n=Math.abs(i-e);const s=Math.abs(i-r);if(n<=s){this.activeDragThumb="left";this.rawRangePosition=[t,this.rawRangePosition[1]];this.handleValueChange([t,this.rangeValueInternal[1]])}else{this.activeDragThumb="right";this.rawRangePosition=[this.rawRangePosition[0],t];this.handleValueChange([this.rangeValueInternal[0],t])}}else{this.activeDragThumb="single";this.rawPosition=t;this.handleValueChange(t)}this.isDragging=true;this.registerGlobalEvents()};this.onPointerMove=e=>{if(!this.isDragging||this.disabled||this.readonly){return}const r=this.el.querySelector(".track");if(!r)return;const i=r.getBoundingClientRect();const t=a((e.clientX-i.left)/i.width*100,0,100);const n=this.min+t/100*(this.max-this.min);if(this.range){if(this.activeDragThumb==="left"){this.rawRangePosition=[n,this.rawRangePosition[1]];this.handleValueChange([n,this.rangeValueInternal[1]])}else{this.rawRangePosition=[this.rawRangePosition[0],n];this.handleValueChange([this.rangeValueInternal[0],n])}}else{this.rawPosition=n;this.handleValueChange(n)}};this.onPointerUp=()=>{this.isDragging=false;this.removeGlobalEvents()};this.onKeyDown=e=>{if(this.disabled||this.readonly){return}let r;const i=e.shiftKey?10:1;const t=this.step*i;if(this.range){const i=e.target.getAttribute("data-thumb");const n=i==="left"?0:1;const s=[...this.rangeValueInternal];switch(e.key){case"ArrowRight":case"ArrowUp":s[n]+=t;break;case"ArrowLeft":case"ArrowDown":s[n]-=t;break;case"Home":s[n]=this.min;break;case"End":s[n]=this.max;break;case"PageUp":s[n]+=t*10;break;case"PageDown":s[n]-=t*10;break;default:return}r=s}else{switch(e.key){case"ArrowRight":case"ArrowUp":r=this.valueInternal+t;break;case"ArrowLeft":case"ArrowDown":r=this.valueInternal-t;break;case"Home":r=this.min;break;case"End":r=this.max;break;case"PageUp":r=this.valueInternal+t*10;break;case"PageDown":r=this.valueInternal-t*10;break;default:return}}e.preventDefault();this.handleValueChange(r)};this.handleFieldChange=e=>{const r=e.target;const i=parseFloat(r.value);if(isNaN(i)){return}if(this.range){const e=r.getAttribute("data-index")==="0"?0:1;const t=[...this.rangeValueInternal];t[e]=i;this.handleValueChange(t)}else{this.handleValueChange(i)}}}validateValue(e){const r=a(e,this.min,this.max);if(this.snapTicks&&this.internalTicks&&this.internalTicks.length>0){return c(r,this.internalTicks)}return l(r,this.min,this.max,this.step)}handleValueChange(e){if(this.disabled||this.readonly){return}if(this.range){if(Array.isArray(e)&&e.length===2){const r=[Math.min(e[0],e[1]),Math.max(e[0],e[1])];const i=[this.validateValue(r[0]),this.validateValue(r[1])];if(i[0]!==this.rangeValueInternal[0]||i[1]!==this.rangeValueInternal[1]){this.rangeValueInternal=i;this.value=this.rangeValueInternal;this.valueChanged.emit(this.rangeValueInternal)}}}else{if(typeof e==="number"){const r=this.validateValue(e);if(r!==this.valueInternal){this.valueInternal=r;this.value=[this.valueInternal];this.valueChanged.emit([this.valueInternal])}}}}generateDisplayTicks(){if(this.ticks&&this.ticks.length>0){this.internalTicks=[...this.ticks].sort(((e,r)=>e.value-r.value));return}if(!this.showTicks){this.internalTicks=[];return}const e=d(this.min,this.max,this.step);this.internalTicks=e.map((e=>({value:e})))}registerGlobalEvents(){document.addEventListener("pointermove",this.onPointerMove);document.addEventListener("pointerup",this.onPointerUp);document.addEventListener("pointercancel",this.onPointerUp)}removeGlobalEvents(){document.removeEventListener("pointermove",this.onPointerMove);document.removeEventListener("pointerup",this.onPointerUp);document.removeEventListener("pointercancel",this.onPointerUp)}onValueChange(){this.parseValue()}onConfigChange(){this.generateDisplayTicks();if(this.range){this.handleValueChange(this.rangeValueInternal)}else{this.handleValueChange(this.valueInternal)}}onRangeChange(e){if(e){this.rangeValueInternal=[this.min,this.valueInternal]}else{this.valueInternal=this.rangeValueInternal[1]}}connectedCallback(){this.parseValue();this.generateDisplayTicks();if(this.range){if(!Array.isArray(this.rangeValueInternal)||this.rangeValueInternal.length!==2){this.rangeValueInternal=[this.min,this.max]}this.handleValueChange(this.rangeValueInternal);this.rawRangePosition=[this.rangeValueInternal[0],this.rangeValueInternal[1]]}else{this.handleValueChange(this.valueInternal);this.rawPosition=this.valueInternal}}disconnectedCallback(){this.removeGlobalEvents()}render(){return e(t,{key:"5625de672648fc737a3c463241621c96e3f5678c"},(this.label||this.el.querySelector('[slot="label"]'))&&e("label",{key:"c9bb829857daf1f38a07ba8d851a126b8e1014d0",htmlFor:this.startInputId},e("slot",{key:"86daceb63a9467395bd576ee8e2a1fd335dab8a9",name:"label"},this.label)),e("div",{key:"a2f9fcfd6f201926d59b1542cfb6aecb9995bfe6",class:"slider-container"},this.range?e(v,{range:this.range,hasField:this.hasField,value:this.valueInternal,rangeValue:this.rangeValueInternal,index:0,inputId:this.startInputId,min:this.min,max:this.max,step:this.step,disabled:this.disabled,readonly:this.readonly,onInput:this.handleFieldChange,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue,name:this.name,endName:this.endName}):null,e("div",{key:"c217e21c05160391608196c689a506332cdd2c6a",class:"track-container"},e("div",{key:"eff5a66ed65ca210e66138dfcf345843e4947fe9",class:"track",onPointerDown:this.onTrackInteraction},this.range?e(h,{rangeValue:this.rangeValueInternal,rawRangePosition:this.rawRangePosition,activeDragThumb:this.activeDragThumb,isDragging:this.isDragging,snap:this.snap,min:this.min,max:this.max,disabled:this.disabled,readonly:this.readonly,onKeyDown:this.onKeyDown,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue}):e(f,{value:this.valueInternal,min:this.min,max:this.max,rawPosition:this.rawPosition,isDragging:this.isDragging,snap:this.snap,disabled:this.disabled,readonly:this.readonly,onKeyDown:this.onKeyDown,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue})),e(u,{key:"a1168d80e444702014631c51770f81bc66c42c7e",ticks:this.internalTicks,min:this.min,max:this.max})),this.range?e(v,{range:this.range,hasField:this.hasField,value:this.valueInternal,rangeValue:this.rangeValueInternal,index:1,inputId:this.endInputId,min:this.min,max:this.max,step:this.step,disabled:this.disabled,readonly:this.readonly,onInput:this.handleFieldChange,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue,name:this.name,endName:this.endName}):e(v,{range:this.range,hasField:this.hasField,value:this.valueInternal,rangeValue:this.rangeValueInternal,inputId:this.startInputId,min:this.min,max:this.max,step:this.step,disabled:this.disabled,readonly:this.readonly,onInput:this.handleFieldChange,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue,name:this.name})),(this.success||this.description||this.el.querySelector('[slot="description"]'))&&e("div",{key:"f92bc3bba0d12897563532d18873ed00cd01107c",class:"description"},this.success&&e("nv-icon",{key:"bbe9253cf1a560d1e5e398cece3bdc1dc65c5edc",name:"circle-check",class:"validation",size:"md"}),e("slot",{key:"52396d459eca326fd6e0e1587e79c5b1ab0f8e74",name:"description"},this.description)),(this.error||this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&e("div",{key:"2da1fec9cf6c1c5a2f5c0aa16c18d4b45f0758d9",class:"error-description",hidden:!this.error},this.error&&e("nv-icon",{key:"9b97a3cc6d56971b6dda8263316f83ea4e35d257",name:"alert-circle",class:"validation",size:"md"}),e("slot",{key:"f2a96d286c53529ebee99606bee0c43f9ff21b74",name:"error-description"},this.errorDescription)))}static get formAssociated(){return true}get el(){return n(this)}static get watchers(){return{value:["onValueChange"],min:["onConfigChange"],max:["onConfigChange"],step:["onConfigChange"],ticks:["onConfigChange"],showTicks:["onConfigChange"],snap:["onConfigChange"],snapTicks:["onConfigChange"],range:["onRangeChange"]}}};m.style=p;export{m as nv_fieldslider};
2
- //# sourceMappingURL=p-ed6019fe.entry.js.map
1
+ import{h as e,r,c as i,H as t,g as n}from"./p-d0a33e64.js";import{v as s}from"./p-f5ff676c.js";function a(e,r,i){return Math.max(r,Math.min(i,e))}function o(e,r,i){if(i===r)return 0;return(e-r)/(i-r)*100}function l(e,r,i,t){const n=a(e,r,i);const s=Math.round((n-r)/t)*t+r;return a(s,r,i)}function d(e,r,i){const t=[];for(let n=e;n<=r;n+=i){t.push(Number(n.toFixed(10)))}if(t[t.length-1]!==r){t.push(r)}return t}function c(e,r){if(!r||r.length===0)return e;let i=r[0].value;let t=Math.abs(e-i);for(const n of r){const r=Math.abs(e-n.value);if(r<t){t=r;i=n.value}}return i}const f=r=>{const{value:i,min:t,max:n,rawPosition:s,isDragging:l,snap:d,disabled:c,readonly:f,onKeyDown:h,labelBeforeValue:u,labelAfterValue:v}=r;let b=i;if(l&&!d){b=a(s,t,n)}const p=o(b,t,n);return e("div",{class:"thumb",style:{left:`${p}%`},role:"slider","aria-valuemin":t,"aria-valuemax":n,"aria-valuenow":i,"aria-disabled":c?"true":undefined,"aria-readonly":f?"true":undefined,tabindex:c?-1:0,onKeyDown:h},e("div",{class:"thumb-tooltip"},u&&e("span",{class:"label-before"},u),String(i),v&&e("span",{class:"label-after"},v)))};const h=r=>{const{rangeValue:i,rawRangePosition:t,activeDragThumb:n,isDragging:s,snap:l,min:d,max:c,disabled:f,readonly:h,onKeyDown:u,labelBeforeValue:v,labelAfterValue:b}=r;const[p,m]=i;let g=p;let k=m;if(s&&!l){const[e,r]=t;if(n==="left"){g=a(e,d,Math.min(m,c))}else if(n==="right"){k=a(r,Math.max(p,d),c)}}const y=o(g,d,c);const x=o(k,d,c);return[e("div",{class:"track-range",style:{left:`${y}%`,width:`${x-y}%`}}),e("div",{class:"thumb thumb-left",style:{left:`${y}%`},role:"slider","aria-valuemin":d,"aria-valuemax":c,"aria-valuenow":p,"aria-disabled":f?"true":undefined,"aria-readonly":h?"true":undefined,"data-thumb":"left",tabindex:f?-1:0,onKeyDown:u},e("div",{class:"thumb-tooltip"},v&&e("span",{class:"label-before"},v),String(p),b&&e("span",{class:"label-after"},b))),e("div",{class:"thumb thumb-right",style:{left:`${x}%`},role:"slider","aria-valuemin":d,"aria-valuemax":c,"aria-valuenow":m,"aria-disabled":f?"true":undefined,"aria-readonly":h?"true":undefined,"data-thumb":"right",tabindex:f?-1:0,onKeyDown:u},e("div",{class:"thumb-tooltip"},v&&e("span",{class:"label-before"},v),String(m),b&&e("span",{class:"label-after"},b)))]};const u=r=>{const{ticks:i,min:t,max:n}=r;if(i.length===0){return null}return e("div",{class:"track-ticks"},i.map((r=>{const i=o(r.value,t,n);return e("div",{class:"track-tick",style:{left:`${i}%`}},r.label&&e("div",{class:"tick-label"},r.label))})))};const v=r=>{const{range:i,hasField:t,value:n,rangeValue:s,index:a,inputId:o,min:l,max:d,step:c,disabled:f,readonly:h,onInput:u,labelBeforeValue:v,labelAfterValue:b,name:p,endName:m}=r;const g=i?s[a]:n;const k=i?{"data-index":a.toString()}:{};let y;if(i){if(a===0){y=p||""}else{y=m||(p?`${p}-end`:"")}}else{y=p||""}const x=t?"input-container":"input-container hidden-input";return t?e("div",{class:x},e("nv-fieldnumber",Object.assign({id:o,value:g,min:l,max:d,step:c,disabled:f,readonly:h,name:y},k,{onInput:u}),v&&e("span",{class:"label-before",slot:"leading-input"},v),b&&e("span",{class:"label-after",slot:"trailing-input"},b))):e("input",{id:o,type:"hidden",value:g,disabled:f,readonly:h,name:y})};const b='nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider{--nv-field-border-default:var(--components-form-field-border-default);--nv-field-border-hover:var(--components-form-field-border-hover);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--components-form-field-border-default);--nv-field-border-readonly:var(--components-form-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-brand);--nv-field-background:var(--components-form-field-background-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--form-gap-y);box-sizing:border-box;max-width:480px}nv-fieldslider .slider-container{width:100%;display:flex;flex-direction:row;align-items:center;gap:var(--form-gap-x)}nv-fieldslider .slider-container .track-container{position:relative;flex:1;height:calc(var(--slider-handler-size-min) + 0.25rem);padding:calc(var(--slider-handler-size-min) / 2) 0}nv-fieldslider .slider-container .track-container .track{position:relative;height:var(--slider-track-height);background:var(--components-slider-track-background);border-radius:var(--slider-track-radius);cursor:pointer}nv-fieldslider .slider-container .track-container .track .track-range{position:absolute;top:0;height:var(--slider-track-height);background:var(--components-slider-track-filled-default);border-radius:var(--slider-track-radius);pointer-events:none}nv-fieldslider .slider-container .track-container .track .thumb{position:absolute;top:50%;width:var(--slider-handler-size-min);height:var(--slider-handler-size-min);background:#ffffff;border:var(--slider-handler-stroke) solid var(--components-slider-track-filled-default);border-radius:50%;transform:translate(-50%, -50%);z-index:1;cursor:grab;transition:width 0.2s, height 0.2s, box-shadow 0.2s, background-color 0.2s}nv-fieldslider .slider-container .track-container .track .thumb:hover{width:var(--slider-handler-size-max);height:var(--slider-handler-size-max);border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container .track .thumb:focus{width:var(--slider-handler-size-min);height:var(--slider-handler-size-min);border-color:var(--components-slider-track-filled-focus);outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1);transition:outline;background:var(--components-slider-handler-background-focus)}nv-fieldslider .slider-container .track-container .track .thumb:active{cursor:grabbing;background:var(--components-slider-handler-background-hover)}nv-fieldslider .slider-container .track-container .track .thumb .thumb-tooltip{position:absolute;top:25px;left:50%;background-color:var(--components-tooltip-background);color:var(--components-tooltip-text);padding:5px;border-radius:var(--tooltip-radius);font-size:var(--tooltip-font-size);z-index:10;pointer-events:none;user-select:none;opacity:0;transition:opacity 0.3s ease-in-out;transform:translateX(-50%)}nv-fieldslider .slider-container .track-container .track .thumb .thumb-tooltip:after{content:"";background:var(--components-tooltip-background);box-shadow:none;border:none;position:absolute;border-bottom-color:transparent;border-right-color:transparent;width:6px;height:6px;transform:rotate(45deg);border-radius:1px;top:-3px;left:50%;margin-left:-3px}nv-fieldslider .slider-container .track-container .track .thumb:hover .thumb-tooltip,nv-fieldslider .slider-container .track-container .track .thumb:active .thumb-tooltip,nv-fieldslider .slider-container .track-container .track .thumb:focus .thumb-tooltip{opacity:1}nv-fieldslider .slider-container .track-container .track-ticks{position:relative;height:1rem;margin-top:0.25rem}nv-fieldslider .slider-container .track-container .track-ticks .track-tick{position:absolute;top:0;width:var(--slider-tick-height);height:var(--slider-tick-height);background:var(--components-form-field-border-default);border-radius:50%;transform:translate(-50%, 0);pointer-events:none}nv-fieldslider .slider-container .track-container .track-ticks .track-tick:first-of-type{transform:translate(0, 0)}nv-fieldslider .slider-container .track-container .track-ticks .track-tick:last-of-type{transform:translate(-100%, 0)}nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{position:absolute;top:calc(var(--slider-tick-height) + 0.25rem);left:50%;color:var(--components-form-field-border-default);transform:translateX(-50%);white-space:nowrap}.track-tick-first nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{left:0;transform:translateX(0)}.track-tick-last nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{left:100%;transform:translateX(-100%)}nv-fieldslider .slider-container .input-container{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out;width:90px;flex-grow:unset}nv-fieldslider .slider-container .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fieldslider .slider-container .input-container:focus-within,nv-fieldslider .slider-container .input-container:focus-within:hover,nv-fieldslider .slider-container .input-container:focus,nv-fieldslider .slider-container .input-container:focus:hover{border-color:var(--nv-field-border-focus);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow)}nv-fieldslider .slider-container .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fieldslider .slider-container .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldslider .slider-container .input-container input{display:flex;align-items:center;flex:1 0 0;overflow:hidden;background-color:transparent;color:var(--components-form-field-content-text);padding:var(--form-field-padding-y) var(--form-field-padding-x);font-size:var(--form-field-font-size);font-style:normal;font-weight:500;line-height:var(--form-field-line-height);width:100%;}nv-fieldslider .slider-container .input-container input:focus{outline:none}nv-fieldslider .slider-container .input-container input::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:"TT Norms Pro", sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:400;line-height:var(--form-field-line-height)}nv-fieldslider .slider-container .input-container input[type=password]::-ms-clear,nv-fieldslider .slider-container .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldslider .slider-container .input-container .label-before{margin-left:var(--spacing-2);color:var(--components-form-field-icon-default)}nv-fieldslider .slider-container .input-container .label-after{margin-right:var(--spacing-2);color:var(--components-form-field-icon-default)}nv-fieldslider[fluid]:not([fluid=false]){max-width:unset}nv-fieldslider[error]:not([error=false]){--nv-field-border-default:var(--components-form-field-border-error);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-destructive-in-field)}nv-fieldslider[success]:not([success=false]){--nv-field-border-default:var(--components-form-field-border-success);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-success)}nv-fieldslider[readonly]:not([readonly=false]){--nv-field-border-default:var(--components-form-field-border-readonly);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-background:var(--components-form-field-background-readonly)}nv-fieldslider[readonly]:not([readonly=false]) .track,nv-fieldslider[readonly]:not([readonly=false]) .thumb{cursor:default}nv-fieldslider label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:500;line-height:var(--form-label-line-height)}nv-fieldslider nv-icon.validation{color:var(--nv-field-border-default)}nv-fieldslider[hide-label]:not([hide-label=false]) label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}nv-fieldslider[has-field]:not([has-field=false]) .thumb-tooltip{display:none}nv-fieldslider>.description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fieldslider>.error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}nv-fieldslider>.error-description[hidden]{display:none}';const p=b;const m=class{constructor(e){r(this,e);this.valueChanged=i(this,"valueChanged",7);this.startInputId=s();this.endInputId=s();this.hideLabel=false;this.hasField=false;this.range=false;this.disabled=false;this.readonly=false;this.error=false;this.success=false;this.value=[0,0];this.step=1;this.snap=false;this.snapTicks=false;this.min=0;this.max=100;this.showTicks=false;this.fluid=false;this.isDragging=false;this.activeDragThumb="single";this.internalTicks=[];this.rawPosition=0;this.rawRangePosition=[0,0];this.valueInternal=0;this.rangeValueInternal=[0,0];this.parseValue=()=>{if(typeof this.value==="string"){console.error("Sliders require a number or array of numbers to be passed in the value prop.");return}if(this.range&&this.value.length!==2){console.error("Range sliders require an array of two values to be passed in the value prop.");return}if(!this.range&&this.value.length!==1){console.error("Single sliders require a single value as an array to be passed in the value prop.");return}this.valueInternal=this.value[0];this.rangeValueInternal=[this.value[0],this.value[1]]};this.onTrackInteraction=e=>{if(this.disabled||this.readonly){return}const r=e.currentTarget.getBoundingClientRect();const i=a((e.clientX-r.left)/r.width*100,0,100);const t=this.min+i/100*(this.max-this.min);this.rawPosition=t;if(this.range){const e=o(this.rangeValueInternal[0],this.min,this.max);const r=o(this.rangeValueInternal[1],this.min,this.max);const n=Math.abs(i-e);const s=Math.abs(i-r);if(n<=s){this.activeDragThumb="left";this.rawRangePosition=[t,this.rawRangePosition[1]];this.handleValueChange([t,this.rangeValueInternal[1]])}else{this.activeDragThumb="right";this.rawRangePosition=[this.rawRangePosition[0],t];this.handleValueChange([this.rangeValueInternal[0],t])}}else{this.activeDragThumb="single";this.rawPosition=t;this.handleValueChange(t)}this.isDragging=true;this.registerGlobalEvents()};this.onPointerMove=e=>{if(!this.isDragging||this.disabled||this.readonly){return}const r=this.el.querySelector(".track");if(!r)return;const i=r.getBoundingClientRect();const t=a((e.clientX-i.left)/i.width*100,0,100);const n=this.min+t/100*(this.max-this.min);if(this.range){if(this.activeDragThumb==="left"){this.rawRangePosition=[n,this.rawRangePosition[1]];this.handleValueChange([n,this.rangeValueInternal[1]])}else{this.rawRangePosition=[this.rawRangePosition[0],n];this.handleValueChange([this.rangeValueInternal[0],n])}}else{this.rawPosition=n;this.handleValueChange(n)}};this.onPointerUp=()=>{this.isDragging=false;this.removeGlobalEvents()};this.onKeyDown=e=>{if(this.disabled||this.readonly){return}let r;const i=e.shiftKey?10:1;const t=this.step*i;if(this.range){const i=e.target.getAttribute("data-thumb");const n=i==="left"?0:1;const s=[...this.rangeValueInternal];switch(e.key){case"ArrowRight":case"ArrowUp":s[n]+=t;break;case"ArrowLeft":case"ArrowDown":s[n]-=t;break;case"Home":s[n]=this.min;break;case"End":s[n]=this.max;break;case"PageUp":s[n]+=t*10;break;case"PageDown":s[n]-=t*10;break;default:return}r=s}else{switch(e.key){case"ArrowRight":case"ArrowUp":r=this.valueInternal+t;break;case"ArrowLeft":case"ArrowDown":r=this.valueInternal-t;break;case"Home":r=this.min;break;case"End":r=this.max;break;case"PageUp":r=this.valueInternal+t*10;break;case"PageDown":r=this.valueInternal-t*10;break;default:return}}e.preventDefault();this.handleValueChange(r)};this.handleFieldChange=e=>{const r=e.target;const i=parseFloat(r.value);if(isNaN(i)){return}if(this.range){const e=r.getAttribute("data-index")==="0"?0:1;const t=[...this.rangeValueInternal];t[e]=i;this.handleValueChange(t)}else{this.handleValueChange(i)}}}validateValue(e){const r=a(e,this.min,this.max);if(this.snapTicks&&this.internalTicks&&this.internalTicks.length>0){return c(r,this.internalTicks)}return l(r,this.min,this.max,this.step)}handleValueChange(e){if(this.disabled||this.readonly){return}if(this.range){if(Array.isArray(e)&&e.length===2){const r=[Math.min(e[0],e[1]),Math.max(e[0],e[1])];const i=[this.validateValue(r[0]),this.validateValue(r[1])];if(i[0]!==this.rangeValueInternal[0]||i[1]!==this.rangeValueInternal[1]){this.rangeValueInternal=i;this.value=this.rangeValueInternal;this.valueChanged.emit(this.rangeValueInternal)}}}else{if(typeof e==="number"){const r=this.validateValue(e);if(r!==this.valueInternal){this.valueInternal=r;this.value=[this.valueInternal];this.valueChanged.emit([this.valueInternal])}}}}generateDisplayTicks(){if(this.ticks&&this.ticks.length>0){this.internalTicks=[...this.ticks].sort(((e,r)=>e.value-r.value));return}if(!this.showTicks){this.internalTicks=[];return}const e=d(this.min,this.max,this.step);this.internalTicks=e.map((e=>({value:e})))}registerGlobalEvents(){document.addEventListener("pointermove",this.onPointerMove);document.addEventListener("pointerup",this.onPointerUp);document.addEventListener("pointercancel",this.onPointerUp)}removeGlobalEvents(){document.removeEventListener("pointermove",this.onPointerMove);document.removeEventListener("pointerup",this.onPointerUp);document.removeEventListener("pointercancel",this.onPointerUp)}onValueChange(){this.parseValue()}onConfigChange(){this.generateDisplayTicks();if(this.range){this.handleValueChange(this.rangeValueInternal)}else{this.handleValueChange(this.valueInternal)}}onRangeChange(e){if(e){this.rangeValueInternal=[this.min,this.valueInternal]}else{this.valueInternal=this.rangeValueInternal[1]}}connectedCallback(){this.parseValue();this.generateDisplayTicks();if(this.range){if(!Array.isArray(this.rangeValueInternal)||this.rangeValueInternal.length!==2){this.rangeValueInternal=[this.min,this.max]}this.handleValueChange(this.rangeValueInternal);this.rawRangePosition=[this.rangeValueInternal[0],this.rangeValueInternal[1]]}else{this.handleValueChange(this.valueInternal);this.rawPosition=this.valueInternal}}disconnectedCallback(){this.removeGlobalEvents()}render(){return e(t,{key:"924819b3d8cc05d7b7448a613b833a3514c4fe46"},(this.label||this.el.querySelector('[slot="label"]'))&&e("label",{key:"079800a326daa6677bfeadbb335100ad43a6c3a6",htmlFor:this.startInputId},e("slot",{key:"31c7deab4307cf05951ee3e52e69a57bed2cc4dd",name:"label"},this.label)),e("div",{key:"c3f9a721150e9e3e4396509007d17fd5878db9d2",class:"slider-container"},this.range?e(v,{range:this.range,hasField:this.hasField,value:this.valueInternal,rangeValue:this.rangeValueInternal,index:0,inputId:this.startInputId,min:this.min,max:this.max,step:this.step,disabled:this.disabled,readonly:this.readonly,onInput:this.handleFieldChange,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue,name:this.name,endName:this.endName}):null,e("div",{key:"2156dae3524cbce4390a27f8699bd2f3c5623799",class:"track-container"},e("div",{key:"7d601c91d58ef7cc8cecdc6b5becf82245ada8f7",class:"track",onPointerDown:this.onTrackInteraction},this.range?e(h,{rangeValue:this.rangeValueInternal,rawRangePosition:this.rawRangePosition,activeDragThumb:this.activeDragThumb,isDragging:this.isDragging,snap:this.snap,min:this.min,max:this.max,disabled:this.disabled,readonly:this.readonly,onKeyDown:this.onKeyDown,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue}):e(f,{value:this.valueInternal,min:this.min,max:this.max,rawPosition:this.rawPosition,isDragging:this.isDragging,snap:this.snap,disabled:this.disabled,readonly:this.readonly,onKeyDown:this.onKeyDown,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue})),e(u,{key:"27869c72bdf64db4c7efab71bbfb0dc221bbce1c",ticks:this.internalTicks,min:this.min,max:this.max})),this.range?e(v,{range:this.range,hasField:this.hasField,value:this.valueInternal,rangeValue:this.rangeValueInternal,index:1,inputId:this.endInputId,min:this.min,max:this.max,step:this.step,disabled:this.disabled,readonly:this.readonly,onInput:this.handleFieldChange,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue,name:this.name,endName:this.endName}):e(v,{range:this.range,hasField:this.hasField,value:this.valueInternal,rangeValue:this.rangeValueInternal,inputId:this.startInputId,min:this.min,max:this.max,step:this.step,disabled:this.disabled,readonly:this.readonly,onInput:this.handleFieldChange,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue,name:this.name})),(this.success||this.description||this.el.querySelector('[slot="description"]'))&&e("div",{key:"ff43246b18e39fca6401663e17c75774d964b232",class:"description"},this.success&&e("nv-icon",{key:"c8d0cf20d5c91e84d9529c594400886e9e5cb89c",name:"circle-check",class:"validation",size:"md"}),e("slot",{key:"fe5e79473950d01bf73ebd67628d301fe0b48573",name:"description"},this.description)),(this.error||this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&e("div",{key:"c02f5c9db7270a5442ab75f8532151e4d97801bc",class:"error-description",hidden:!this.error},this.error&&e("nv-icon",{key:"56ed10394aca3dc9fdb800f44587cec47e993a8d",name:"alert-circle",class:"validation",size:"md"}),e("slot",{key:"037fd3db57941a5f02cde3506112059e7f792803",name:"error-description"},this.errorDescription)))}static get formAssociated(){return true}get el(){return n(this)}static get watchers(){return{value:["onValueChange"],min:["onConfigChange"],max:["onConfigChange"],step:["onConfigChange"],ticks:["onConfigChange"],showTicks:["onConfigChange"],snap:["onConfigChange"],snapTicks:["onConfigChange"],range:["onRangeChange"]}}};m.style=p;export{m as nv_fieldslider};
2
+ //# sourceMappingURL=p-14895e84.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["clamp","value","min","max","Math","valueToPercent","snapToStep","step","clamped","snapped","round","generateTicks","ticks","v","push","Number","toFixed","length","snapToTicks","closestTick","minDistance","abs","tick","distance","SingleThumb","props","rawPosition","isDragging","snap","disabled","readonly","onKeyDown","labelBeforeValue","labelAfterValue","displayPosition","percent","h","class","style","left","role","undefined","tabindex","String","RangeThumb","rangeValue","rawRangePosition","activeDragThumb","leftValue","rightValue","displayLeftPosition","displayRightPosition","rawLeft","rawRight","leftPercent","rightPercent","width","TickMarks","map","label","FieldInput","range","hasField","index","inputId","onInput","name","endName","fieldValue","dataAttrs","toString","inputName","containerClass","Object","assign","id","slot","type","nvFieldsliderCss","NvFieldsliderStyle0","NvFieldslider","constructor","hostRef","this","startInputId","uuidv4","endInputId","hideLabel","error","success","snapTicks","showTicks","fluid","internalTicks","valueInternal","rangeValueInternal","parseValue","console","onTrackInteraction","event","trackRect","currentTarget","getBoundingClientRect","percentage","clientX","newValue","leftPct","rightPct","distanceToLeft","distanceToRight","handleValueChange","registerGlobalEvents","onPointerMove","trackElement","el","querySelector","onPointerUp","removeGlobalEvents","stepMultiplier","shiftKey","singleStep","focusedThumb","target","getAttribute","idx","currentValue","key","preventDefault","handleFieldChange","input","parseFloat","isNaN","fieldIndex","updatedRange","validateValue","val","clampedValue","Array","isArray","orderedValues","validatedValues","valueChanged","emit","validatedValue","generateDisplayTicks","sort","a","b","autoTicks","document","addEventListener","removeEventListener","onValueChange","onConfigChange","onRangeChange","connectedCallback","disconnectedCallback","render","Host","htmlFor","onPointerDown","description","size","errorDescription","hidden"],"sources":["src/components/nv-fieldslider/nv-fieldslider.utils.ts","src/components/nv-fieldslider/partials/single-thumb.tsx","src/components/nv-fieldslider/partials/range-thumb.tsx","src/components/nv-fieldslider/partials/tick-marks.tsx","src/components/nv-fieldslider/partials/field-input.tsx","src/components/nv-fieldslider/styles/nv-fieldslider.scss?tag=nv-fieldslider","src/components/nv-fieldslider/nv-fieldslider.tsx"],"sourcesContent":["/**\n * Utility functions for nv-fieldslider.\n */\n\n/**\n * Clamp a value between min and max.\n * @param {number} value - The value to clamp\n * @param {number} min - The minimum boundary\n * @param {number} max - The maximum boundary\n * @returns {number} The clamped value\n */\nexport function clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value));\n}\n\n/**\n * Calculate the percentage position of a value within a range.\n * @param {number} value - The value to convert to percentage\n * @param {number} min - The minimum value of the range\n * @param {number} max - The maximum value of the range\n * @returns {number} The percentage (0-100)\n */\nexport function valueToPercent(\n value: number,\n min: number,\n max: number,\n): number {\n if (max === min) return 0;\n return ((value - min) / (max - min)) * 100;\n}\n\n/**\n * Snap a value to the nearest step.\n * @param {number} value - The value to snap\n * @param {number} min - The minimum boundary\n * @param {number} max - The maximum boundary\n * @param {number} step - The step size\n * @returns {number} The snapped value\n */\nexport function snapToStep(\n value: number,\n min: number,\n max: number,\n step: number,\n): number {\n const clamped = clamp(value, min, max);\n const snapped = Math.round((clamped - min) / step) * step + min;\n return clamp(snapped, min, max);\n}\n\n/**\n * Generate tick values for the slider.\n * @param {number} min - The minimum value\n * @param {number} max - The maximum value\n * @param {number} step - The step size\n * @returns {number[]} Array of tick values\n */\nexport function generateTicks(\n min: number,\n max: number,\n step: number,\n): number[] {\n const ticks: number[] = [];\n for (let v = min; v <= max; v += step) {\n ticks.push(Number(v.toFixed(10))); // avoid floating point issues\n }\n if (ticks[ticks.length - 1] !== max) {\n ticks.push(max);\n }\n return ticks;\n}\n\n/**\n * Snap a value to the nearest tick mark.\n * @param {number} value - The value to snap\n * @param {object[]} ticks - Array of tick objects\n * @returns {number} The value of the closest tick\n */\nexport function snapToTicks(\n value: number,\n ticks: {\n /** The value of the tick */\n value: number;\n }[],\n) {\n if (!ticks || ticks.length === 0) return value;\n\n // Find the closest tick\n let closestTick = ticks[0].value;\n let minDistance = Math.abs(value - closestTick);\n\n for (const tick of ticks) {\n const distance = Math.abs(value - tick.value);\n if (distance < minDistance) {\n minDistance = distance;\n closestTick = tick.value;\n }\n }\n\n return closestTick;\n}\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { valueToPercent, clamp } from '../nv-fieldslider.utils';\n\n/**\n * Props for the SingleThumb component\n */\ninterface SingleThumbProps {\n /** Current value of the slider */\n value: number;\n /** Minimum allowed value */\n min: number;\n /** Maximum allowed value */\n max: number;\n /** Raw position during dragging */\n rawPosition: number;\n /** Whether the thumb is currently being dragged */\n isDragging: boolean;\n /** Whether the thumb should visually snap to steps */\n snap: boolean;\n /** Whether the slider is disabled */\n disabled: boolean;\n /** Whether the slider is readonly */\n readonly: boolean;\n /** Key down event handler */\n onKeyDown: (event: KeyboardEvent) => void;\n /** Label to display before the value */\n labelBeforeValue?: string;\n /** Label to display after the value */\n labelAfterValue?: string;\n}\n\n/**\n * Renders single thumb in standard mode.\n * @param {SingleThumbProps} props - Component properties\n * @returns {JSX.Element} JSX element representing the thumb\n */\nexport const SingleThumb: FunctionalComponent<SingleThumbProps> = props => {\n const {\n value,\n min,\n max,\n rawPosition,\n isDragging,\n snap,\n disabled,\n readonly,\n onKeyDown,\n labelBeforeValue,\n labelAfterValue,\n } = props;\n\n // Use raw position for visual display during dragging, but the snapped value otherwise\n let displayPosition = value;\n if (isDragging && !snap) {\n displayPosition = clamp(rawPosition, min, max);\n }\n\n const percent = valueToPercent(displayPosition, min, max);\n\n return (\n <div\n class=\"thumb\"\n style={{ left: `${percent}%` }}\n role=\"slider\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={value}\n aria-disabled={disabled ? 'true' : undefined}\n aria-readonly={readonly ? 'true' : undefined}\n tabindex={disabled ? -1 : 0}\n onKeyDown={onKeyDown}\n >\n <div class=\"thumb-tooltip\">\n {labelBeforeValue && (\n <span class=\"label-before\">{labelBeforeValue}</span>\n )}\n {String(value)}\n {labelAfterValue && <span class=\"label-after\">{labelAfterValue}</span>}\n </div>\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { valueToPercent, clamp } from '../nv-fieldslider.utils';\n\n/**\n * Props for the RangeThumb component\n */\ninterface RangeThumbProps {\n /** Range values [left, right] */\n rangeValue: number[];\n /** Raw positions during dragging [left, right] */\n rawRangePosition: [number, number];\n /** Currently active thumb while dragging */\n activeDragThumb: 'left' | 'right' | 'single';\n /** Whether the thumb is currently being dragged */\n isDragging: boolean;\n /** Whether the thumb should visually snap to steps */\n snap: boolean;\n /** Minimum allowed value */\n min: number;\n /** Maximum allowed value */\n max: number;\n /** Whether the slider is disabled */\n disabled: boolean;\n /** Whether the slider is readonly */\n readonly: boolean;\n /** Key down event handler */\n onKeyDown: (event: KeyboardEvent) => void;\n /** Label to display before the value */\n labelBeforeValue?: string;\n /** Label to display after the value */\n labelAfterValue?: string;\n}\n\n/**\n * Renders dual thumbs in range mode.\n * @param {RangeThumbProps} props - Component properties\n * @returns {JSX.Element[]} Array of JSX elements representing the range slider thumbs\n */\nexport const RangeThumb: FunctionalComponent<RangeThumbProps> = props => {\n const {\n rangeValue,\n rawRangePosition,\n activeDragThumb,\n isDragging,\n snap,\n min,\n max,\n disabled,\n readonly,\n onKeyDown,\n labelBeforeValue,\n labelAfterValue,\n } = props;\n\n const [leftValue, rightValue] = rangeValue;\n\n // Use raw positions for visual display during dragging, but the snapped values otherwise\n let displayLeftPosition = leftValue;\n let displayRightPosition = rightValue;\n\n if (isDragging && !snap) {\n const [rawLeft, rawRight] = rawRangePosition;\n if (activeDragThumb === 'left') {\n displayLeftPosition = clamp(rawLeft, min, Math.min(rightValue, max));\n } else if (activeDragThumb === 'right') {\n displayRightPosition = clamp(rawRight, Math.max(leftValue, min), max);\n }\n }\n\n const leftPercent = valueToPercent(displayLeftPosition, min, max);\n const rightPercent = valueToPercent(displayRightPosition, min, max);\n\n return [\n <div\n class=\"track-range\"\n style={{\n left: `${leftPercent}%`,\n width: `${rightPercent - leftPercent}%`,\n }}\n />,\n <div\n class=\"thumb thumb-left\"\n style={{ left: `${leftPercent}%` }}\n role=\"slider\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={leftValue} // Always use the snapped value for ARIA\n aria-disabled={disabled ? 'true' : undefined}\n aria-readonly={readonly ? 'true' : undefined}\n data-thumb=\"left\"\n tabindex={disabled ? -1 : 0}\n onKeyDown={onKeyDown}\n >\n <div class=\"thumb-tooltip\">\n {labelBeforeValue && (\n <span class=\"label-before\">{labelBeforeValue}</span>\n )}\n {String(leftValue)}\n {labelAfterValue && <span class=\"label-after\">{labelAfterValue}</span>}\n </div>\n </div>,\n <div\n class=\"thumb thumb-right\"\n style={{ left: `${rightPercent}%` }}\n role=\"slider\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={rightValue} // Always use the snapped value for ARIA\n aria-disabled={disabled ? 'true' : undefined}\n aria-readonly={readonly ? 'true' : undefined}\n data-thumb=\"right\"\n tabindex={disabled ? -1 : 0}\n onKeyDown={onKeyDown}\n >\n <div class=\"thumb-tooltip\">\n {labelBeforeValue && (\n <span class=\"label-before\">{labelBeforeValue}</span>\n )}\n {String(rightValue)}\n {labelAfterValue && <span class=\"label-after\">{labelAfterValue}</span>}\n </div>\n </div>,\n ];\n};\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { valueToPercent } from '../nv-fieldslider.utils';\n\n/**\n * Represents a tick mark on the slider\n */\ninterface Tick {\n /** The numeric value of the tick */\n value: number;\n /** Optional label for the tick */\n label?: string;\n}\n\n/**\n * Props for the TickMarks component\n */\ninterface TickMarksProps {\n /** Array of tick definitions */\n ticks: Tick[];\n /** Minimum allowed value */\n min: number;\n /** Maximum allowed value */\n max: number;\n}\n\n/**\n * Renders tick marks along the slider track.\n * @param {TickMarksProps} props - Component properties\n * @returns {JSX.Element | null} JSX element representing the tick marks or null if no ticks\n */\nexport const TickMarks: FunctionalComponent<TickMarksProps> = props => {\n const { ticks, min, max } = props;\n\n if (ticks.length === 0) {\n return null;\n }\n\n return (\n <div class=\"track-ticks\">\n {ticks.map(tick => {\n const percent = valueToPercent(tick.value, min, max);\n return (\n <div class=\"track-tick\" style={{ left: `${percent}%` }}>\n {tick.label && <div class=\"tick-label\">{tick.label}</div>}\n </div>\n );\n })}\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\n\n/**\n * Props for the FieldInput component\n */\ninterface FieldInputProps {\n /** Whether this is a range slider */\n range: boolean;\n /** Whether to show the input field */\n hasField: boolean;\n /** The value for single mode */\n value: number;\n /** The values for range mode [min, max] */\n rangeValue: number[];\n /** Index (0 or 1) for range mode, ignored in single mode */\n index?: number;\n /** ID for the input field */\n inputId: string;\n /** Minimum allowed value */\n min: number;\n /** Maximum allowed value */\n max: number;\n /** Step size */\n step: number;\n /** Whether the slider is disabled */\n disabled: boolean;\n /** Whether the slider is readonly */\n readonly: boolean;\n /** Handler for input changes */\n onInput: (event: Event) => void;\n /** Label to display before the value */\n labelBeforeValue?: string;\n /** Label to display after the value */\n labelAfterValue?: string;\n /** Name attribute for the input field (for form submission) */\n name?: string;\n /** Name attribute for the end input field (when in range mode) */\n endName?: string;\n}\n\n/**\n * Renders field input for direct value entry\n * @param {FieldInputProps} props - Component properties\n * @returns {JSX.Element} JSX element representing the field input\n */\nexport const FieldInput: FunctionalComponent<FieldInputProps> = props => {\n const {\n range,\n hasField,\n value,\n rangeValue,\n index,\n inputId,\n min,\n max,\n step,\n disabled,\n readonly,\n onInput,\n labelBeforeValue,\n labelAfterValue,\n name,\n endName,\n } = props;\n\n // Determine the appropriate value based on mode and index\n const fieldValue = range ? rangeValue[index] : value;\n\n // In range mode, we need data-index for event handling\n const dataAttrs = range ? { 'data-index': index.toString() } : {};\n\n // Determine the appropriate name based on mode and index\n let inputName: string;\n if (range) {\n if (index === 0) {\n inputName = name || '';\n } else {\n // Use endName if provided, otherwise append \"-end\" to the name\n inputName = endName || (name ? `${name}-end` : '');\n }\n } else {\n inputName = name || '';\n }\n\n // If hasField is false, only the containers are visible, not the input fields\n const containerClass = hasField\n ? 'input-container'\n : 'input-container hidden-input';\n\n return hasField ? (\n <div class={containerClass}>\n <nv-fieldnumber\n id={inputId}\n value={fieldValue}\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n readonly={readonly}\n name={inputName}\n {...dataAttrs}\n onInput={onInput}\n >\n {labelBeforeValue && (\n <span class=\"label-before\" slot=\"leading-input\">\n {labelBeforeValue}\n </span>\n )}\n {labelAfterValue && (\n <span class=\"label-after\" slot=\"trailing-input\">\n {labelAfterValue}\n </span>\n )}\n </nv-fieldnumber>\n </div>\n ) : (\n <input\n id={inputId}\n type=\"hidden\"\n value={fieldValue}\n disabled={disabled}\n readonly={readonly}\n name={inputName}\n />\n );\n};\n","@use \"./mixins\" as *;\n\nnv-fieldslider {\n @include form-field-variables();\n @include form-field-root();\n\n .slider-container {\n @include slider-container-styles();\n\n .track-container {\n @include track-container-styles();\n\n .track {\n @include track-styles();\n .track-range {\n @include track-range-styles();\n }\n .thumb {\n @include thumb-styles();\n .thumb-tooltip {\n @include thumb-tooltip-styles();\n }\n &:hover, &:active, &:focus {\n .thumb-tooltip {\n opacity: 1;\n }\n }\n }\n }\n\n .track-ticks {\n @include track-ticks-styles();\n .track-tick {\n @include track-tick-styles();\n .tick-label {\n @include tick-label-styles();\n }\n }\n }\n }\n\n .input-container {\n @include form-field-input-container();\n @include input-container-styles();\n input {\n @include form-field-input();\n }\n .label-before {\n @include input-label-before-styles();\n }\n .label-after {\n @include input-label-after-styles();\n }\n }\n }\n\n &[fluid]:not([fluid=\"false\"]) {\n @include form-field-fluid();\n }\n\n &[error]:not([error=\"false\"]) {\n @include form-field-error-variables();\n }\n\n &[success]:not([success=\"false\"]) {\n @include form-field-success-variables();\n }\n\n &[readonly]:not([readonly=\"false\"]) {\n @include form-field-readonly-variables();\n .track,\n .thumb {\n cursor: default;\n }\n }\n\n label {\n @include form-field-label();\n }\n\n nv-icon.validation {\n @include form-field-icon();\n }\n\n &[hide-label]:not([hide-label=\"false\"]) label {\n @include form-field-hide-label();\n }\n\n &[has-field]:not([has-field=\"false\"]) {\n .thumb-tooltip {\n display: none;\n }\n }\n\n > .description {\n @include form-field-description();\n }\n\n > .error-description {\n @include form-field-error-description();\n &[hidden] {\n display: none;\n }\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n State,\n Watch,\n Element,\n} from '@stencil/core';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n clamp,\n valueToPercent,\n snapToStep,\n generateTicks,\n snapToTicks,\n} from './nv-fieldslider.utils';\n\nimport { SingleThumb } from './partials/single-thumb';\nimport { RangeThumb } from './partials/range-thumb';\nimport { TickMarks } from './partials/tick-marks';\nimport { FieldInput } from './partials/field-input';\n\n/**\n * @slot label - Content to be placed as the label, will override the label prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n */\n@Component({\n tag: 'nv-fieldslider',\n styleUrl: 'styles/nv-fieldslider.scss',\n shadow: false,\n formAssociated: true,\n})\nexport class NvFieldslider {\n @Element() el: HTMLNvFieldsliderElement;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Sets the ID for the start input element and the for attribute of the associated\n * label. If no ID is provided, a random one will be automatically generated.\n */\n @Prop({ reflect: true })\n readonly startInputId: string = uuidv4();\n\n /**\n * Sets the ID for the end input element and the for attribute of the associated\n * label. If no ID is provided, a random one will be automatically generated.\n */\n @Prop({ reflect: true })\n readonly endInputId: string = uuidv4();\n\n /**\n * Provides a textual description of the slider's function, helping users\n * understand what the control adjusts. It also supports accessibility by\n * serving as the accessible name for the component.\n */\n @Prop({ reflect: true })\n readonly label: string;\n\n /**\n * Keeps the interface clean by removing visible labels, but still announces\n * the label to screen readers so users relying on assistive tech aren't left\n * guessing.\n */\n @Prop({ reflect: true })\n readonly hideLabel: boolean = false;\n\n /**\n * Add helpful hints or extra information under the slider. This is where you\n * can clarify what users should enter or provide additional instructions,\n * making the form easier to fill out correctly.\n */\n @Prop({ reflect: true })\n readonly description: string;\n\n /**\n * Enables an optional numeric input field alongside the slider, allowing\n * users to type a value directly instead of—or in addition to—using the\n * slider handle.\n */\n @Prop({ reflect: true })\n readonly hasField: boolean = false;\n\n /**\n * Allows the slider to display two thumbs, enabling users to select a\n * continuous range between a minimum and maximum value. Ideal for use cases\n * like filtering by price or time.\n */\n @Prop({ reflect: true })\n readonly range: boolean = false;\n\n /**\n * Disables user interaction with the slider and its associated input fields.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Makes the slider and input non-editable while keeping them focusable and\n * included in form submissions.\n */\n @Prop({ reflect: true })\n readonly readonly: boolean = false;\n\n /**\n * Alters the slider's appearance to indicate an error, helping users\n * identify fields that need correction.\n * @validator error\n */\n @Prop({ reflect: true })\n readonly error: boolean = false;\n\n /**\n * A description that appears when there is an error related to the slider.\n * @validator message\n */\n @Prop({ reflect: true })\n readonly errorDescription: string;\n\n /**\n * Changes the slider's appearance to indicate successful input or validation.\n */\n @Prop({ reflect: true })\n readonly success: boolean = false;\n\n /**\n * Numeric value of the slider as an array of numbers. When in single mode,\n * the value should be a an array of one number. When in range mode, the value\n * should be an array of two numbers.\n */\n @Prop({ reflect: true, mutable: true })\n value: number[] = [0, 0];\n\n /**\n * Defines the interval between selectable values on the slider. Controls how\n * much the value increases or decreases with each keyboard interaction, drag\n * movement, or direct input.\n */\n @Prop({ reflect: true })\n readonly step: number = 1;\n\n /**\n * Controls whether the slider handle should visually snap to step values\n * during dragging. When false, the handle can be positioned at any point\n * along the track while dragging, but the actual value will still snap to the\n * nearest step value. When true, the handle will visually snap to the nearest\n * step value during dragging.\n */\n @Prop({ reflect: true })\n readonly snap: boolean = false;\n\n /**\n * When true and custom ticks are provided, the slider will snap to the nearest\n * tick value during dragging, instead of using the step value. This is useful\n * when you have custom ticks at specific values that don't align with regular step intervals.\n */\n @Prop({ reflect: true })\n readonly snapTicks: boolean = false;\n\n /**\n * Name attribute for the form input element. Required for form submission.\n * For range sliders, this will be used for the start value input and add -end\n * to the end input name.\n */\n @Prop({ reflect: true })\n readonly name: string;\n\n /**\n * Name attribute for the end value input when using range mode.\n * If not provided, the name attribute will be used with '-end' appended.\n */\n @Prop({ reflect: true })\n readonly endName: string;\n\n /**\n * Defines the minimum allowed value for the slider. The thumb cannot move\n * below this value, and manual input is also constrained accordingly.\n */\n @Prop({ reflect: true })\n readonly min: number = 0;\n\n /**\n * Defines the maximum allowed value for the slider. The thumb cannot move\n * above this value, and manual input is also constrained accordingly.\n */\n @Prop({ reflect: true })\n readonly max: number = 100;\n\n /**\n * Controls the visibility of tick marks on the slider. When enabled, all\n * visual ticks that indicate step points along the track are shown. If custom\n * ticks are provided, they are always shown regardless of this setting.\n */\n @Prop({ reflect: true })\n readonly showTicks: boolean = false;\n\n /**\n * Allows you to specify custom tick marks at specific values along the\n * slider. Each tick can optionally display a label to provide additional\n * context or guidance for users.\n */\n @Prop({ reflect: false })\n readonly ticks: {\n /** The numeric value of the tick */\n value: number;\n /** The label of the tick */\n label?: string;\n }[];\n\n /**\n * Allows the field to stretch and fill the entire width of its container.\n */\n @Prop({ reflect: true })\n readonly fluid: boolean = false;\n\n /**\n * Use this to automatically show a label, like “~” for approximate values,\n * before the slider’s value in the tooltip or input, giving users quick\n * context about the number.\n */\n @Prop({ reflect: true })\n readonly labelBeforeValue: string;\n\n /**\n * Use this to automatically show a label, like “$” or “kg,” after the value\n * on the slider’s tooltip or input, helping users better understand the\n * number.\n */\n @Prop({ reflect: true })\n readonly labelAfterValue: string;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region STATE\n\n @State()\n isDragging = false;\n\n @State()\n activeDragThumb: 'left' | 'right' | 'single' = 'single';\n\n @State()\n internalTicks: typeof this.ticks = [];\n\n // These track the raw slider positions for visual display\n @State()\n rawPosition = 0;\n\n @State()\n rawRangePosition: [number, number] = [0, 0];\n\n @State()\n valueInternal: number = 0;\n\n @State()\n rangeValueInternal: [number, number] = [0, 0];\n\n //#endregion STATE\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Ensures value is valid and within bounds.\n * @param {number} val - The value to validate\n * @returns {number} The validated and snapped value\n */\n private validateValue(val: number): number {\n // First ensure the value is within bounds\n const clampedValue = clamp(val, this.min, this.max);\n\n // If snapTicks is true and we have custom ticks, snap to the nearest tick\n if (this.snapTicks && this.internalTicks && this.internalTicks.length > 0) {\n return snapToTicks(clampedValue, this.internalTicks);\n }\n\n // Otherwise snap to step values\n return snapToStep(clampedValue, this.min, this.max, this.step);\n }\n\n /**\n * Parses the value string into a number or array of numbers for internal use.\n */\n private parseValue = (): void => {\n if (typeof this.value === 'string') {\n console.error(\n 'Sliders require a number or array of numbers to be passed in the value prop.',\n );\n return;\n }\n if (this.range && this.value.length !== 2) {\n console.error(\n 'Range sliders require an array of two values to be passed in the value prop.',\n );\n return;\n }\n\n if (!this.range && this.value.length !== 1) {\n console.error(\n 'Single sliders require a single value as an array to be passed in the value prop.',\n );\n return;\n }\n this.valueInternal = this.value[0];\n this.rangeValueInternal = [this.value[0], this.value[1]];\n };\n\n /**\n * Handles value changes from slider interaction.\n * @param {number | number[]} newValue - The new value or range values\n */\n private handleValueChange(newValue: number | number[]): void {\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (this.range) {\n // Handle range values\n if (Array.isArray(newValue) && newValue.length === 2) {\n // Ensure values are in order (left ≤ right)\n const orderedValues = [\n Math.min(newValue[0], newValue[1]),\n Math.max(newValue[0], newValue[1]),\n ];\n\n // Snap to steps and clamp\n const validatedValues: [number, number] = [\n this.validateValue(orderedValues[0]),\n this.validateValue(orderedValues[1]),\n ];\n\n if (\n validatedValues[0] !== this.rangeValueInternal[0] ||\n validatedValues[1] !== this.rangeValueInternal[1]\n ) {\n this.rangeValueInternal = validatedValues;\n this.value = this.rangeValueInternal;\n this.valueChanged.emit(this.rangeValueInternal);\n }\n }\n } else {\n // Handle single value\n if (typeof newValue === 'number') {\n const validatedValue = this.validateValue(newValue);\n\n if (validatedValue !== this.valueInternal) {\n this.valueInternal = validatedValue;\n this.value = [this.valueInternal];\n this.valueChanged.emit([this.valueInternal]);\n }\n }\n }\n }\n\n /**\n * Generates the ticks to display based on props and state.\n */\n private generateDisplayTicks(): void {\n // If custom ticks are provided, always use them regardless of showTicks setting\n if (this.ticks && this.ticks.length > 0) {\n this.internalTicks = [...this.ticks].sort((a, b) => a.value - b.value);\n return;\n }\n\n // If showTicks is false and there are no custom ticks, hide all ticks\n if (!this.showTicks) {\n this.internalTicks = [];\n return;\n }\n\n // Generate all ticks at each step point\n const autoTicks = generateTicks(this.min, this.max, this.step);\n this.internalTicks = autoTicks.map(value => ({ value }));\n }\n\n /**\n * Handles pointer events on the track.\n * @param {PointerEvent} event - The pointer event\n */\n private onTrackInteraction = (event: PointerEvent): void => {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const trackRect = (\n event.currentTarget as HTMLElement\n ).getBoundingClientRect();\n const percentage = clamp(\n ((event.clientX - trackRect.left) / trackRect.width) * 100,\n 0,\n 100,\n );\n\n const newValue = this.min + (percentage / 100) * (this.max - this.min);\n\n // Store raw position for visual display\n this.rawPosition = newValue;\n\n if (this.range) {\n // In range mode, determine which thumb to move based on proximity\n const leftPct = valueToPercent(\n this.rangeValueInternal[0],\n this.min,\n this.max,\n );\n const rightPct = valueToPercent(\n this.rangeValueInternal[1],\n this.min,\n this.max,\n );\n\n const distanceToLeft = Math.abs(percentage - leftPct);\n const distanceToRight = Math.abs(percentage - rightPct);\n\n if (distanceToLeft <= distanceToRight) {\n this.activeDragThumb = 'left';\n this.rawRangePosition = [newValue, this.rawRangePosition[1]];\n this.handleValueChange([newValue, this.rangeValueInternal[1]]);\n } else {\n this.activeDragThumb = 'right';\n this.rawRangePosition = [this.rawRangePosition[0], newValue];\n this.handleValueChange([this.rangeValueInternal[0], newValue]);\n }\n } else {\n this.activeDragThumb = 'single';\n this.rawPosition = newValue;\n this.handleValueChange(newValue);\n }\n\n this.isDragging = true;\n this.registerGlobalEvents();\n };\n\n /**\n * Handles pointer move events during drag.\n * @param {PointerEvent} event - The pointer event\n */\n private onPointerMove = (event: PointerEvent): void => {\n if (!this.isDragging || this.disabled || this.readonly) {\n return;\n }\n\n const trackElement = this.el.querySelector('.track') as HTMLElement;\n if (!trackElement) return;\n\n const trackRect = trackElement.getBoundingClientRect();\n const percentage = clamp(\n ((event.clientX - trackRect.left) / trackRect.width) * 100,\n 0,\n 100,\n );\n\n const newValue = this.min + (percentage / 100) * (this.max - this.min);\n\n // Update visual position\n if (this.range) {\n if (this.activeDragThumb === 'left') {\n this.rawRangePosition = [newValue, this.rawRangePosition[1]];\n this.handleValueChange([newValue, this.rangeValueInternal[1]]);\n } else {\n this.rawRangePosition = [this.rawRangePosition[0], newValue];\n this.handleValueChange([this.rangeValueInternal[0], newValue]);\n }\n } else {\n this.rawPosition = newValue;\n this.handleValueChange(newValue);\n }\n };\n\n /**\n * Handles the end of a drag operation.\n */\n private onPointerUp = (): void => {\n this.isDragging = false;\n this.removeGlobalEvents();\n };\n\n /**\n * Registers global events for tracking pointer movement.\n */\n private registerGlobalEvents(): void {\n document.addEventListener('pointermove', this.onPointerMove);\n document.addEventListener('pointerup', this.onPointerUp);\n document.addEventListener('pointercancel', this.onPointerUp);\n }\n\n /**\n * Removes global events when tracking ends.\n */\n private removeGlobalEvents(): void {\n document.removeEventListener('pointermove', this.onPointerMove);\n document.removeEventListener('pointerup', this.onPointerUp);\n document.removeEventListener('pointercancel', this.onPointerUp);\n }\n\n /**\n * Handles keydown events for keyboard accessibility.\n * @param {KeyboardEvent} event - The keyboard event\n */\n private onKeyDown = (event: KeyboardEvent): void => {\n if (this.disabled || this.readonly) {\n return;\n }\n\n let newValue: number | number[];\n const stepMultiplier = event.shiftKey ? 10 : 1;\n const singleStep = this.step * stepMultiplier;\n\n if (this.range) {\n const focusedThumb = (event.target as HTMLElement).getAttribute(\n 'data-thumb',\n );\n const idx = focusedThumb === 'left' ? 0 : 1;\n const currentValue = [...this.rangeValueInternal];\n\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n currentValue[idx] += singleStep;\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n currentValue[idx] -= singleStep;\n break;\n case 'Home':\n currentValue[idx] = this.min;\n break;\n case 'End':\n currentValue[idx] = this.max;\n break;\n case 'PageUp':\n currentValue[idx] += singleStep * 10;\n break;\n case 'PageDown':\n currentValue[idx] -= singleStep * 10;\n break;\n default:\n return;\n }\n\n newValue = currentValue;\n } else {\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n newValue = this.valueInternal + singleStep;\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n newValue = this.valueInternal - singleStep;\n break;\n case 'Home':\n newValue = this.min;\n break;\n case 'End':\n newValue = this.max;\n break;\n case 'PageUp':\n newValue = this.valueInternal + singleStep * 10;\n break;\n case 'PageDown':\n newValue = this.valueInternal - singleStep * 10;\n break;\n default:\n return;\n }\n }\n\n event.preventDefault();\n this.handleValueChange(newValue);\n };\n\n /**\n * Handles field input value changes.\n * @param {Event} event - The input event\n */\n private handleFieldChange = (event: Event): void => {\n const input = event.target as HTMLInputElement;\n const newValue = parseFloat(input.value);\n\n if (isNaN(newValue)) {\n return;\n }\n\n if (this.range) {\n const fieldIndex = input.getAttribute('data-index') === '0' ? 0 : 1;\n const updatedRange = [...this.rangeValueInternal];\n updatedRange[fieldIndex] = newValue;\n this.handleValueChange(updatedRange);\n } else {\n this.handleValueChange(newValue);\n }\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('value')\n onValueChange() {\n this.parseValue();\n }\n\n @Watch('min')\n @Watch('max')\n @Watch('step')\n @Watch('ticks')\n @Watch('showTicks')\n @Watch('snap')\n @Watch('snapTicks')\n onConfigChange() {\n this.generateDisplayTicks();\n\n if (this.range) {\n this.handleValueChange(this.rangeValueInternal);\n } else {\n this.handleValueChange(this.valueInternal);\n }\n }\n\n @Watch('range')\n onRangeChange(newValue: boolean) {\n if (newValue) {\n // Switching to range mode\n this.rangeValueInternal = [this.min, this.valueInternal];\n } else {\n // Switching to single mode, take the higher value\n this.valueInternal = this.rangeValueInternal[1];\n }\n }\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n connectedCallback() {\n this.parseValue();\n this.generateDisplayTicks();\n\n // Initialize values and make sure they're valid\n if (this.range) {\n if (\n !Array.isArray(this.rangeValueInternal) ||\n this.rangeValueInternal.length !== 2\n ) {\n this.rangeValueInternal = [this.min, this.max];\n }\n this.handleValueChange(this.rangeValueInternal);\n // Initialize raw range position to match actual values\n this.rawRangePosition = [\n this.rangeValueInternal[0],\n this.rangeValueInternal[1],\n ];\n } else {\n this.handleValueChange(this.valueInternal);\n // Initialize raw position to match actual value\n this.rawPosition = this.valueInternal;\n }\n }\n\n disconnectedCallback() {\n this.removeGlobalEvents();\n }\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the slider values change.\n * @bind value\n */\n @Event()\n valueChanged: EventEmitter<number[]>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\n {(this.label || this.el.querySelector('[slot=\"label\"]')) && (\n <label htmlFor={this.startInputId}>\n <slot name=\"label\">{this.label}</slot>\n </label>\n )}\n\n <div class=\"slider-container\">\n {/* First input (always render for the start value, but may be hidden) */}\n {this.range ? (\n <FieldInput\n range={this.range}\n hasField={this.hasField}\n value={this.valueInternal}\n rangeValue={this.rangeValueInternal}\n index={0}\n inputId={this.startInputId}\n min={this.min}\n max={this.max}\n step={this.step}\n disabled={this.disabled}\n readonly={this.readonly}\n onInput={this.handleFieldChange}\n labelBeforeValue={this.labelBeforeValue}\n labelAfterValue={this.labelAfterValue}\n name={this.name}\n endName={this.endName}\n />\n ) : null}\n\n <div class=\"track-container\">\n <div class=\"track\" onPointerDown={this.onTrackInteraction}>\n {this.range ? (\n <RangeThumb\n rangeValue={this.rangeValueInternal}\n rawRangePosition={this.rawRangePosition}\n activeDragThumb={this.activeDragThumb}\n isDragging={this.isDragging}\n snap={this.snap}\n min={this.min}\n max={this.max}\n disabled={this.disabled}\n readonly={this.readonly}\n onKeyDown={this.onKeyDown}\n labelBeforeValue={this.labelBeforeValue}\n labelAfterValue={this.labelAfterValue}\n />\n ) : (\n <SingleThumb\n value={this.valueInternal}\n min={this.min}\n max={this.max}\n rawPosition={this.rawPosition}\n isDragging={this.isDragging}\n snap={this.snap}\n disabled={this.disabled}\n readonly={this.readonly}\n onKeyDown={this.onKeyDown}\n labelBeforeValue={this.labelBeforeValue}\n labelAfterValue={this.labelAfterValue}\n />\n )}\n </div>\n\n <TickMarks\n ticks={this.internalTicks}\n min={this.min}\n max={this.max}\n />\n </div>\n\n {/* Second input (for range mode, or for single value if not already rendered) */}\n {this.range ? (\n <FieldInput\n range={this.range}\n hasField={this.hasField}\n value={this.valueInternal}\n rangeValue={this.rangeValueInternal}\n index={1}\n inputId={this.endInputId}\n min={this.min}\n max={this.max}\n step={this.step}\n disabled={this.disabled}\n readonly={this.readonly}\n onInput={this.handleFieldChange}\n labelBeforeValue={this.labelBeforeValue}\n labelAfterValue={this.labelAfterValue}\n name={this.name}\n endName={this.endName}\n />\n ) : (\n <FieldInput\n range={this.range}\n hasField={this.hasField}\n value={this.valueInternal}\n rangeValue={this.rangeValueInternal}\n inputId={this.startInputId}\n min={this.min}\n max={this.max}\n step={this.step}\n disabled={this.disabled}\n readonly={this.readonly}\n onInput={this.handleFieldChange}\n labelBeforeValue={this.labelBeforeValue}\n labelAfterValue={this.labelAfterValue}\n name={this.name}\n />\n )}\n </div>\n\n {(this.success ||\n this.description ||\n this.el.querySelector('[slot=\"description\"]')) && (\n <div class=\"description\">\n {this.success && (\n <nv-icon name=\"circle-check\" class=\"validation\" size=\"md\" />\n )}\n <slot name=\"description\">{this.description}</slot>\n </div>\n )}\n\n {(this.error ||\n this.errorDescription ||\n this.el.querySelector('[slot=\"error-description\"]')) && (\n <div class=\"error-description\" hidden={!this.error}>\n {this.error && (\n <nv-icon name=\"alert-circle\" class=\"validation\" size=\"md\" />\n )}\n <slot name=\"error-description\">{this.errorDescription}</slot>\n </div>\n )}\n </Host>\n );\n }\n // #endregion RENDER\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as e,c as r,h as o,H as t,g as i}from"./p-d0a33e64.js";import{v as n}from"./p-f5ff676c.js";const a='nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldtext{--nv-field-border-default:var(--components-form-field-border-default);--nv-field-border-hover:var(--components-form-field-border-hover);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--components-form-field-border-default);--nv-field-border-readonly:var(--components-form-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-brand);--nv-field-background:var(--components-form-field-background-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--form-gap-y);box-sizing:border-box;max-width:480px}nv-fieldtext[fluid]:not([fluid=false]){max-width:unset}nv-fieldtext[readonly]:not([readonly=false]){--nv-field-border-default:var(--components-form-field-border-readonly);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-background:var(--components-form-field-background-readonly)}nv-fieldtext[error]:not([error=false]){--nv-field-border-default:var(--components-form-field-border-error);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-destructive-in-field)}nv-fieldtext[success]:not([success=false]){--nv-field-border-default:var(--components-form-field-border-success);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-success)}nv-fieldtext[required]:not([required=false]) label::after{content:"*";color:var(--components-form-text-required);font-weight:700}nv-fieldtext>label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:500;line-height:var(--form-label-line-height)}nv-fieldtext>.input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch}nv-fieldtext>.input-wrapper .input-container{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out}nv-fieldtext>.input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fieldtext>.input-wrapper .input-container:focus-within,nv-fieldtext>.input-wrapper .input-container:focus-within:hover,nv-fieldtext>.input-wrapper .input-container:focus,nv-fieldtext>.input-wrapper .input-container:focus:hover{border-color:var(--nv-field-border-focus);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow)}nv-fieldtext>.input-wrapper .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fieldtext>.input-wrapper .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldtext>.input-wrapper .input-container>[slot=leading-input]{display:block;margin-left:var(--form-field-padding-x)}nv-fieldtext>.input-wrapper .input-container input{display:flex;align-items:center;flex:1 0 0;overflow:hidden;background-color:transparent;color:var(--components-form-field-content-text);padding:var(--form-field-padding-y) var(--form-field-padding-x);font-size:var(--form-field-font-size);font-style:normal;font-weight:500;line-height:var(--form-field-line-height);width:100%;}nv-fieldtext>.input-wrapper .input-container input:focus{outline:none}nv-fieldtext>.input-wrapper .input-container input::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:"TT Norms Pro", sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:400;line-height:var(--form-field-line-height)}nv-fieldtext>.input-wrapper .input-container input[type=password]::-ms-clear,nv-fieldtext>.input-wrapper .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldtext>.input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default);margin-right:var(--form-gap-x)}nv-fieldtext>.input-wrapper .input-container>[slot=trailing-input]{display:block;margin-right:var(--form-field-padding-x)}nv-fieldtext>.description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fieldtext>.error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}';const d=a;const l=class{constructor(o){e(this,o);this.valueChanged=r(this,"valueChanged",7);this.inputId=n();this.type="text";this.disabled=false;this.readonly=false;this.required=false;this.error=false;this.success=false;this.multiple=false;this.autofocus=false;this.fluid=false;this.handleInput=e=>{const r=e.target;this.value=r.value;this.valueChanged.emit(r.value)};this.handleInputContainerClick=()=>{this.inputElement.focus()}}componentWillRender(){if(this.textInputType){this.type=this.textInputType}if(this.message){this.description=this.message}if(this.validation){this.errorDescription=this.validation;this.error=true}}render(){return o(t,{key:"852a919f0fcf19b0b67ddf6b0cc2762fc41c9388"},(this.label||this.el.querySelector('[slot="label"]'))&&o("label",{key:"3c99f456e76ddbc6ec21d3390aea76f849d72b88",htmlFor:this.inputId},o("slot",{key:"5a11c6f3f0f56b8ab05d0390fec6bd1b15763d02",name:"label"},this.label)),o("div",{key:"a305c2ffb63cfd66c70d0074fc62c823cce37f8e",class:"input-wrapper"},o("slot",{key:"0efd115ea0805160dee0c4b58ad137be2aabc741",name:"before-input"}),o("div",{key:"ccaaa74adf0df1667bc971eaedb4b9883061851d",class:"input-container",onClick:this.handleInputContainerClick},o("slot",{key:"f81025cb44b30e185b3057527cdc2a1662f5252a",name:"leading-input"}),o("input",{key:"a8b2356d0b5372823f3da9f053d0de8e28bf8c08",id:this.inputId,ref:e=>this.inputElement=e,placeholder:this.placeholder,name:this.name,type:this.type,disabled:this.disabled,readOnly:this.readonly,required:this.required,maxlength:this.maxlength,minlength:this.minlength,pattern:this.pattern,autofocus:this.autofocus,autocomplete:this.autocomplete,multiple:this.multiple,value:this.value,onInput:this.handleInput}),o("slot",{key:"aa531021a4d3db52839c280cda21d06be6deaa79",name:"trailing-input"}),this.error&&o("nv-icon",{key:"fc590ef5879887b2990912b16cc247db875af237",name:"alert-circle",class:"validation",size:"md"}),this.success&&o("nv-icon",{key:"68023589dc8340647b1aa5fa07f1b9bda248049d",name:"circle-check",class:"validation",size:"md"})),o("slot",{key:"3d0a53914d87559eab76f4d0b8165ad1d7e4eccf",name:"after-input"})),(this.description||this.el.querySelector('[slot="description"]'))&&o("div",{key:"8641ee0c8638ec43d5a3da0d08ed29991cedfc6a",class:"description"},o("slot",{key:"fe4ee537f946b69ef9908f1d086046b03c777f90",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&o("div",{key:"865c34d486b86223fbbbc81f22cd3428e4110af8",hidden:!this.error,class:"error-description"},o("slot",{key:"ac80b543c58bed6db534b8f1571a70aabf811918",name:"error-description"},this.errorDescription)))}static get formAssociated(){return true}get el(){return i(this)}};l.style=d;export{l as nv_fieldtext};
2
- //# sourceMappingURL=p-fdea17ce.entry.js.map
1
+ import{r as e,c as r,h as o,H as t,g as i}from"./p-d0a33e64.js";import{v as n}from"./p-f5ff676c.js";const a='nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldtext{--nv-field-border-default:var(--components-form-field-border-default);--nv-field-border-hover:var(--components-form-field-border-hover);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--components-form-field-border-default);--nv-field-border-readonly:var(--components-form-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-brand);--nv-field-background:var(--components-form-field-background-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--form-gap-y);box-sizing:border-box;max-width:480px}nv-fieldtext[fluid]:not([fluid=false]){max-width:unset}nv-fieldtext[readonly]:not([readonly=false]){--nv-field-border-default:var(--components-form-field-border-readonly);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-background:var(--components-form-field-background-readonly)}nv-fieldtext[error]:not([error=false]){--nv-field-border-default:var(--components-form-field-border-error);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-destructive-in-field)}nv-fieldtext[success]:not([success=false]){--nv-field-border-default:var(--components-form-field-border-success);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-success)}nv-fieldtext[required]:not([required=false]) label::after{content:"*";color:var(--components-form-text-required);font-weight:700}nv-fieldtext>label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:500;line-height:var(--form-label-line-height)}nv-fieldtext>.input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch}nv-fieldtext>.input-wrapper .input-container{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out}nv-fieldtext>.input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fieldtext>.input-wrapper .input-container:focus-within,nv-fieldtext>.input-wrapper .input-container:focus-within:hover,nv-fieldtext>.input-wrapper .input-container:focus,nv-fieldtext>.input-wrapper .input-container:focus:hover{border-color:var(--nv-field-border-focus);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow)}nv-fieldtext>.input-wrapper .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fieldtext>.input-wrapper .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldtext>.input-wrapper .input-container>[slot=leading-input]{display:block;margin-left:var(--form-field-padding-x)}nv-fieldtext>.input-wrapper .input-container input{display:flex;align-items:center;flex:1 0 0;overflow:hidden;background-color:transparent;color:var(--components-form-field-content-text);padding:var(--form-field-padding-y) var(--form-field-padding-x);font-size:var(--form-field-font-size);font-style:normal;font-weight:500;line-height:var(--form-field-line-height);width:100%;}nv-fieldtext>.input-wrapper .input-container input:focus{outline:none}nv-fieldtext>.input-wrapper .input-container input::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:"TT Norms Pro", sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:400;line-height:var(--form-field-line-height)}nv-fieldtext>.input-wrapper .input-container input[type=password]::-ms-clear,nv-fieldtext>.input-wrapper .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldtext>.input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default);margin-right:var(--form-gap-x)}nv-fieldtext>.input-wrapper .input-container>[slot=trailing-input]{display:block;margin-right:var(--form-field-padding-x)}nv-fieldtext>.description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fieldtext>.error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}';const d=a;const l=class{constructor(o){e(this,o);this.valueChanged=r(this,"valueChanged",7);this.inputId=n();this.type="text";this.disabled=false;this.readonly=false;this.required=false;this.error=false;this.success=false;this.multiple=false;this.autofocus=false;this.fluid=false;this.handleInput=e=>{const r=e.target;this.value=r.value;this.valueChanged.emit(r.value)};this.handleInputContainerClick=()=>{this.inputElement.focus()}}componentWillRender(){if(this.textInputType){this.type=this.textInputType}if(this.message){this.description=this.message}if(this.validation){this.errorDescription=this.validation;this.error=true}}render(){return o(t,{key:"376745526ad4350a50ef017acceb43d77414ddaf"},(this.label||this.el.querySelector('[slot="label"]'))&&o("label",{key:"f03087361cb8f347d6fffb1dc234f3d041109229",htmlFor:this.inputId},o("slot",{key:"cea3904cf5522359426b47e7d4e8f4a71da6fb00",name:"label"},this.label)),o("div",{key:"9f766da6a0962d3e865388d732109c81b03a5802",class:"input-wrapper"},o("slot",{key:"f9cd30cda301c60f89263eef30c178ccbbf2fa18",name:"before-input"}),o("div",{key:"086b7a59b7883aea0f5a93945d40a642f3b0fef2",class:"input-container",onClick:this.handleInputContainerClick},o("slot",{key:"caa4cf0d9d1e2990c438aea19e6afa29a11163b9",name:"leading-input"}),o("input",{key:"36fda559fb8609c8275fa3f3d14142d0cf4fc2db",id:this.inputId,ref:e=>this.inputElement=e,placeholder:this.placeholder,name:this.name,type:this.type,disabled:this.disabled,readOnly:this.readonly,required:this.required,maxlength:this.maxlength,minlength:this.minlength,pattern:this.pattern,autofocus:this.autofocus,autocomplete:this.autocomplete,multiple:this.multiple,value:this.value,onInput:this.handleInput}),o("slot",{key:"dd6564d4960fff20e8204dab2cad3ae07ec433ad",name:"trailing-input"}),this.error&&o("nv-icon",{key:"203a3a51cf3db17b6544b327d692d8805c9577ee",name:"alert-circle",class:"validation",size:"md"}),this.success&&o("nv-icon",{key:"13f4d73e72745cbb06cdb3969f94ad5627822743",name:"circle-check",class:"validation",size:"md"})),o("slot",{key:"1c9b1388173a7ad98b3ec2ac7663d77588d71c8d",name:"after-input"})),(this.description||this.el.querySelector('[slot="description"]'))&&o("div",{key:"71797445f8593485ec2c0030c90eef6649d25f7f",class:"description"},o("slot",{key:"296dbddd49b791284734254bcd07400532e9e8ce",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&o("div",{key:"a2cf61e30ff98da3b3c4134f0669ef6f63cdc62f",hidden:!this.error,class:"error-description"},o("slot",{key:"fd4ba3d94a266ce096ca3f1b016b05040813cc37",name:"error-description"},this.errorDescription)))}static get formAssociated(){return true}get el(){return i(this)}};l.style=d;export{l as nv_fieldtext};
2
+ //# sourceMappingURL=p-24659a85.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as o,h as t,H as a,g as e}from"./p-d0a33e64.js";const r="nv-tooltip{display:inline-block;position:relative;user-select:none}nv-tooltip:has([fluid]:not([fluid=false])){display:block}nv-tooltip [data-scope=popover]{background:var(--components-tooltip-background);color:var(--components-tooltip-text);font-weight:var(--font-weight-medium-emphasis);padding:var(--tooltip-padding-y) var(--tooltip-padding-x);font-size:var(--tooltip-font-size);border-radius:var(--tooltip-radius);border:none;box-shadow:0px var(--shadow-y-axis-lg-1) var(--shadow-blur-lg-1) var(--shadow-spread-lg-1) var(--shadow-color-opacity-1), 0px var(--shadow-y-axis-lg-2) var(--shadow-blur-lg-2) var(--shadow-spread-lg-2) var(--shadow-color-opacity-2)}nv-tooltip [data-scope=popover] [data-scope=arrow]{background:var(--components-tooltip-background);box-shadow:none;border:none}";const s=r;const i=class{constructor(t){o(this,t);this.placement="bottom";this.enterDelay=0}componentWillLoad(){if(!this.triggerElement)this.triggerElement=Array.from(this.el.children).find((o=>o.getAttribute("slot")===null))}render(){return t(a,{key:"893071a64f973b33dccbf3acec95db46e592b717"},t("slot",{key:"010776550ed5f942c02540b12756f0c0f64e31c4"}),t("nv-popover",{key:"21a669333da9e55b697f8a0b0962a8328beac55a",triggerMode:"hover",hasArrow:true,placement:this.placement,triggerElement:this.triggerElement,groupName:"tooltip",enterDelay:this.enterDelay},t("p",{key:"ed89d0bfe1e9e8d12e33e3d7fb0f5b7f2685bbb9",slot:"content"},this.message),t("slot",{key:"fa2d9602e003f1da5c3d23156db7b2ac482966bd",name:"content"})))}get el(){return e(this)}};i.style=s;export{i as nv_tooltip};
2
- //# sourceMappingURL=p-838f7842.entry.js.map
1
+ import{r as o,h as a,H as t,g as e}from"./p-d0a33e64.js";const r="nv-tooltip{display:inline-block;position:relative;user-select:none}nv-tooltip:has([fluid]:not([fluid=false])){display:block}nv-tooltip [data-scope=popover]{background:var(--components-tooltip-background);color:var(--components-tooltip-text);font-weight:var(--font-weight-medium-emphasis);padding:var(--tooltip-padding-y) var(--tooltip-padding-x);font-size:var(--tooltip-font-size);border-radius:var(--tooltip-radius);border:none;box-shadow:0px var(--shadow-y-axis-lg-1) var(--shadow-blur-lg-1) var(--shadow-spread-lg-1) var(--shadow-color-opacity-1), 0px var(--shadow-y-axis-lg-2) var(--shadow-blur-lg-2) var(--shadow-spread-lg-2) var(--shadow-color-opacity-2)}nv-tooltip [data-scope=popover] [data-scope=arrow]{background:var(--components-tooltip-background);box-shadow:none;border:none}";const s=r;const i=class{constructor(a){o(this,a);this.placement="bottom";this.enterDelay=0}componentWillLoad(){if(!this.triggerElement)this.triggerElement=Array.from(this.el.children).find((o=>o.getAttribute("slot")===null))}render(){return a(t,{key:"34431c56ab8f0d9581d7bae170eea34972594a3c"},a("slot",{key:"0e9b3492b07b23e3eb5e7475d174aca7f3d18cdb"}),a("nv-popover",{key:"2a3eccd8a928114ad8df6ce67a19948fab772654",triggerMode:"hover",hasArrow:true,placement:this.placement,triggerElement:this.triggerElement,groupName:"tooltip",enterDelay:this.enterDelay},a("p",{key:"286fad171703def16f9a1b95f2e8dc01afc062a0",slot:"content"},this.message),a("slot",{key:"502d9abb156d4a40f36f442a6629e08b754a983f",name:"content"})))}get el(){return e(this)}};i.style=s;export{i as nv_tooltip};
2
+ //# sourceMappingURL=p-2b1e7675.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as o,h as t,H as e,g as n}from"./p-d0a33e64.js";import{c as r}from"./p-8a1a6e56.js";const i='nv-iconbutton.root{display:inline-flex;justify-content:center;align-items:center;font-style:normal;font-weight:500;font-family:"TT Norms Pro", sans-serif;transition:background-color 150ms ease-out;height:fit-content;width:fit-content}nv-iconbutton.size-xs{padding:var(--button-xs-icon-button-padding);gap:var(--button-xs-gap);border-radius:var(--button-xs-border-radius);line-height:var(--button-xs-line-height);font-size:var(--button-xs-font-size)}nv-iconbutton.size-sm{padding:var(--button-sm-icon-button-padding);gap:var(--button-sm-gap);border-radius:var(--button-sm-border-radius);line-height:var(--button-sm-line-height);font-size:var(--button-sm-font-size)}nv-iconbutton.size-md{padding:var(--button-md-icon-button-padding);gap:var(--button-md-gap);border-radius:var(--button-md-border-radius);line-height:var(--button-md-line-height);font-size:var(--button-md-font-size)}nv-iconbutton.size-lg{padding:var(--button-lg-icon-button-padding);gap:var(--button-lg-gap);border-radius:var(--button-lg-border-radius);line-height:var(--button-lg-line-height);font-size:var(--button-lg-font-size)}nv-iconbutton.emphasis-high{background:var(--components-button-high-background);border:1px solid var(--components-button-high-border);color:var(--components-button-high-text)}nv-iconbutton.emphasis-high:hover{background:var(--components-button-high-background-hover);color:var(--components-button-high-text-hover)}nv-iconbutton.emphasis-high:focus,nv-iconbutton.emphasis-high:focus-within{outline:none}nv-iconbutton.emphasis-high:focus-visible,nv-iconbutton.emphasis-high:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-high:disabled{background:var(--components-button-high-background);color:var(--components-button-high-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-high nv-icon>svg{color:var(--components-button-high-icon)}nv-iconbutton.emphasis-medium{background:var(--components-button-medium-background);border:1px solid var(--components-button-medium-border);color:var(--components-button-medium-text)}nv-iconbutton.emphasis-medium:hover{background:var(--components-button-medium-background-hover);color:var(--components-button-medium-text-hover)}nv-iconbutton.emphasis-medium:focus,nv-iconbutton.emphasis-medium:focus-within{outline:none}nv-iconbutton.emphasis-medium:focus-visible,nv-iconbutton.emphasis-medium:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-medium:disabled{background:var(--components-button-medium-background);color:var(--components-button-medium-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-medium nv-icon>svg{color:var(--components-button-medium-icon)}nv-iconbutton.emphasis-low{background:var(--components-button-low-background);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text)}nv-iconbutton.emphasis-low:hover{background:var(--components-button-low-background-hover);color:var(--components-button-low-text-hover)}nv-iconbutton.emphasis-low:focus,nv-iconbutton.emphasis-low:focus-within{outline:none}nv-iconbutton.emphasis-low:focus-visible,nv-iconbutton.emphasis-low:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-low:disabled{background:var(--components-button-low-background);color:var(--components-button-low-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-low nv-icon>svg{color:var(--components-button-low-icon)}nv-iconbutton.emphasis-lower{background:var(--components-button-lower-background);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text)}nv-iconbutton.emphasis-lower:hover{background:var(--components-button-lower-background-hover);color:var(--components-button-lower-text-hover)}nv-iconbutton.emphasis-lower:focus,nv-iconbutton.emphasis-lower:focus-within{outline:none}nv-iconbutton.emphasis-lower:focus-visible,nv-iconbutton.emphasis-lower:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-lower:disabled{background:var(--components-button-lower-background);color:var(--components-button-lower-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-lower nv-icon>svg{color:var(--components-button-lower-icon)}nv-iconbutton.loading [slot=leading-icon]{display:none}nv-iconbutton.shape-rounded{border-radius:var(--radius-rounded-full)}';const a=i;const s=class{constructor(t){o(this,t);if(t.$hostElement$["s-ei"]){this.internals=t.$hostElement$["s-ei"]}else{this.internals=t.$hostElement$.attachInternals();t.$hostElement$["s-ei"]=this.internals}this.size="md";this.emphasis="high";this.loading=false;this.disabled=false;this.active=false;this.type="button";this.shape="square";this.handleClick=o=>{var t,e,n,r;if(this.disabled){o.preventDefault();return}if(this.type==="submit"){(e=(t=this.internals)===null||t===void 0?void 0:t.form)===null||e===void 0?void 0:e.requestSubmit()}if(this.type==="reset"){(r=(n=this.internals)===null||n===void 0?void 0:n.form)===null||r===void 0?void 0:r.reset()}}}handleLoadingChange(o){this.loading=o;this.disabled=o}handleDisabledChange(o){if(this.loading){this.disabled=this.loading}else{this.disabled=o}}handleKeyDown(o){if(o.key==="Enter"||o.key===" "){o.preventDefault();this.el.click()}}handleTouchStart(o){if(o.touches.length>1)return;o.preventDefault();this.el.click()}componentWillLoad(){if(this.loading){this.disabled=this.loading}}render(){return t(e,{key:"eb27cfea5e30fa97e9950d76f3038dc9ff4f4116",role:"button",type:this.type,tabindex:"0",disabled:this.disabled?true:undefined,class:r("root",`size-${this.size}`,`emphasis-${this.emphasis}`,this.loading&&"loading",`shape-${this.shape}`),onClick:this.handleClick},this.loading&&t("nv-loader",{key:"6f24a71b7ecab3168567a76b67f0b226f3afa9c3",size:this.size}),!this.loading&&t("nv-icon",{key:"f4a0eb19d8bc08a0c8dbc8cedca249bf417eeb1b",name:this.name,size:this.size}),t("slot",{key:"2994118659b1ad184a42ea4b20ea754427dae279"}))}static get formAssociated(){return true}get el(){return n(this)}static get watchers(){return{loading:["handleLoadingChange"],disabled:["handleDisabledChange"]}}};s.style=a;const l='@keyframes rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}nv-loader{display:inline-block;position:relative;aspect-ratio:1/1;border-radius:9999px;color:inherit}nv-loader.size-xs{width:var(--loader-size-xs);height:var(--loader-size-xs)}nv-loader.size-xs::before,nv-loader.size-xs::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-xs::before{content:" ";border:calc(var(--loader-size-xs) / 10) solid;opacity:0.3}nv-loader.size-xs::after{content:" ";border-top:calc(var(--loader-size-xs) / 10) solid transparent;border-left:calc(var(--loader-size-xs) / 10) solid transparent;border-right:calc(var(--loader-size-xs) / 10) solid transparent;border-bottom:calc(var(--loader-size-xs) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-sm{width:var(--loader-size-sm);height:var(--loader-size-sm)}nv-loader.size-sm::before,nv-loader.size-sm::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-sm::before{content:" ";border:calc(var(--loader-size-sm) / 10) solid;opacity:0.3}nv-loader.size-sm::after{content:" ";border-top:calc(var(--loader-size-sm) / 10) solid transparent;border-left:calc(var(--loader-size-sm) / 10) solid transparent;border-right:calc(var(--loader-size-sm) / 10) solid transparent;border-bottom:calc(var(--loader-size-sm) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-md{width:var(--loader-size-md);height:var(--loader-size-md)}nv-loader.size-md::before,nv-loader.size-md::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-md::before{content:" ";border:calc(var(--loader-size-md) / 10) solid;opacity:0.3}nv-loader.size-md::after{content:" ";border-top:calc(var(--loader-size-md) / 10) solid transparent;border-left:calc(var(--loader-size-md) / 10) solid transparent;border-right:calc(var(--loader-size-md) / 10) solid transparent;border-bottom:calc(var(--loader-size-md) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-lg{width:var(--loader-size-lg);height:var(--loader-size-lg)}nv-loader.size-lg::before,nv-loader.size-lg::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-lg::before{content:" ";border:calc(var(--loader-size-lg) / 10) solid;opacity:0.3}nv-loader.size-lg::after{content:" ";border-top:calc(var(--loader-size-lg) / 10) solid transparent;border-left:calc(var(--loader-size-lg) / 10) solid transparent;border-right:calc(var(--loader-size-lg) / 10) solid transparent;border-bottom:calc(var(--loader-size-lg) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-xl{width:var(--loader-size-xl);height:var(--loader-size-xl)}nv-loader.size-xl::before,nv-loader.size-xl::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-xl::before{content:" ";border:calc(var(--loader-size-xl) / 10) solid;opacity:0.3}nv-loader.size-xl::after{content:" ";border-top:calc(var(--loader-size-xl) / 10) solid transparent;border-left:calc(var(--loader-size-xl) / 10) solid transparent;border-right:calc(var(--loader-size-xl) / 10) solid transparent;border-bottom:calc(var(--loader-size-xl) / 10) solid;animation:rotation 1s linear infinite}nv-loader.color-brand::before{border-color:var(--components-loader-brand-background);opacity:1}nv-loader.color-brand::after{border-bottom-color:var(--components-loader-brand-foreground)}nv-loader.color-white::before{border-color:var(--components-loader-white-background);opacity:1}nv-loader.color-white::after{border-bottom-color:var(--components-loader-white-foreground)}';const d=l;const c=class{constructor(t){o(this,t);this.size="md"}render(){return t(e,{key:"0048566e92b54cf51ef761b8cce814aab1f78707",class:r(this.size&&`size-${this.size}`,this.color&&`color-${this.color}`)})}};c.style=d;export{s as nv_iconbutton,c as nv_loader};
2
- //# sourceMappingURL=p-d040bd61.entry.js.map
1
+ import{r as o,h as t,H as e,g as n}from"./p-d0a33e64.js";import{c as r}from"./p-8a1a6e56.js";const i='nv-iconbutton.root{display:inline-flex;justify-content:center;align-items:center;font-style:normal;font-weight:500;font-family:"TT Norms Pro", sans-serif;transition:background-color 150ms ease-out;height:fit-content;width:fit-content}nv-iconbutton.size-xs{padding:var(--button-xs-icon-button-padding);gap:var(--button-xs-gap);border-radius:var(--button-xs-border-radius);line-height:var(--button-xs-line-height);font-size:var(--button-xs-font-size)}nv-iconbutton.size-sm{padding:var(--button-sm-icon-button-padding);gap:var(--button-sm-gap);border-radius:var(--button-sm-border-radius);line-height:var(--button-sm-line-height);font-size:var(--button-sm-font-size)}nv-iconbutton.size-md{padding:var(--button-md-icon-button-padding);gap:var(--button-md-gap);border-radius:var(--button-md-border-radius);line-height:var(--button-md-line-height);font-size:var(--button-md-font-size)}nv-iconbutton.size-lg{padding:var(--button-lg-icon-button-padding);gap:var(--button-lg-gap);border-radius:var(--button-lg-border-radius);line-height:var(--button-lg-line-height);font-size:var(--button-lg-font-size)}nv-iconbutton.emphasis-high{background:var(--components-button-high-background);border:1px solid var(--components-button-high-border);color:var(--components-button-high-text)}nv-iconbutton.emphasis-high:hover{background:var(--components-button-high-background-hover);color:var(--components-button-high-text-hover)}nv-iconbutton.emphasis-high:focus,nv-iconbutton.emphasis-high:focus-within{outline:none}nv-iconbutton.emphasis-high:focus-visible,nv-iconbutton.emphasis-high:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-high:disabled{background:var(--components-button-high-background);color:var(--components-button-high-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-high nv-icon>svg{color:var(--components-button-high-icon)}nv-iconbutton.emphasis-medium{background:var(--components-button-medium-background);border:1px solid var(--components-button-medium-border);color:var(--components-button-medium-text)}nv-iconbutton.emphasis-medium:hover{background:var(--components-button-medium-background-hover);color:var(--components-button-medium-text-hover)}nv-iconbutton.emphasis-medium:focus,nv-iconbutton.emphasis-medium:focus-within{outline:none}nv-iconbutton.emphasis-medium:focus-visible,nv-iconbutton.emphasis-medium:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-medium:disabled{background:var(--components-button-medium-background);color:var(--components-button-medium-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-medium nv-icon>svg{color:var(--components-button-medium-icon)}nv-iconbutton.emphasis-low{background:var(--components-button-low-background);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text)}nv-iconbutton.emphasis-low:hover{background:var(--components-button-low-background-hover);color:var(--components-button-low-text-hover)}nv-iconbutton.emphasis-low:focus,nv-iconbutton.emphasis-low:focus-within{outline:none}nv-iconbutton.emphasis-low:focus-visible,nv-iconbutton.emphasis-low:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-low:disabled{background:var(--components-button-low-background);color:var(--components-button-low-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-low nv-icon>svg{color:var(--components-button-low-icon)}nv-iconbutton.emphasis-lower{background:var(--components-button-lower-background);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text)}nv-iconbutton.emphasis-lower:hover{background:var(--components-button-lower-background-hover);color:var(--components-button-lower-text-hover)}nv-iconbutton.emphasis-lower:focus,nv-iconbutton.emphasis-lower:focus-within{outline:none}nv-iconbutton.emphasis-lower:focus-visible,nv-iconbutton.emphasis-lower:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-lower:disabled{background:var(--components-button-lower-background);color:var(--components-button-lower-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-lower nv-icon>svg{color:var(--components-button-lower-icon)}nv-iconbutton.loading [slot=leading-icon]{display:none}nv-iconbutton.shape-rounded{border-radius:var(--radius-rounded-full)}';const a=i;const s=class{constructor(t){o(this,t);if(t.$hostElement$["s-ei"]){this.internals=t.$hostElement$["s-ei"]}else{this.internals=t.$hostElement$.attachInternals();t.$hostElement$["s-ei"]=this.internals}this.size="md";this.emphasis="high";this.loading=false;this.disabled=false;this.active=false;this.type="button";this.shape="square";this.handleClick=o=>{var t,e,n,r;if(this.disabled){o.preventDefault();return}if(this.type==="submit"){(e=(t=this.internals)===null||t===void 0?void 0:t.form)===null||e===void 0?void 0:e.requestSubmit()}if(this.type==="reset"){(r=(n=this.internals)===null||n===void 0?void 0:n.form)===null||r===void 0?void 0:r.reset()}}}handleLoadingChange(o){this.loading=o;this.disabled=o}handleDisabledChange(o){if(this.loading){this.disabled=this.loading}else{this.disabled=o}}handleKeyDown(o){if(o.key==="Enter"||o.key===" "){o.preventDefault();this.el.click()}}handleTouchStart(o){if(o.touches.length>1)return;o.preventDefault();this.el.click()}componentWillLoad(){if(this.loading){this.disabled=this.loading}}render(){return t(e,{key:"1536dd34c53c9eaf67914fcdf869a0274aa6cf87",role:"button",type:this.type,tabindex:"0",disabled:this.disabled?true:undefined,class:r("root",`size-${this.size}`,`emphasis-${this.emphasis}`,this.loading&&"loading",`shape-${this.shape}`),onClick:this.handleClick},this.loading&&t("nv-loader",{key:"241d18417cd2c4a55c1dcc3fb328edfd8b95a95f",size:this.size}),!this.loading&&t("nv-icon",{key:"1cadeaa79ff4992fb88b6703c4e7d6feee37440c",name:this.name,size:this.size}),t("slot",{key:"9d205fbc548c91990fac461f7722f69470b58913"}))}static get formAssociated(){return true}get el(){return n(this)}static get watchers(){return{loading:["handleLoadingChange"],disabled:["handleDisabledChange"]}}};s.style=a;const l='@keyframes rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}nv-loader{display:inline-block;position:relative;aspect-ratio:1/1;border-radius:9999px;color:inherit}nv-loader.size-xs{width:var(--loader-size-xs);height:var(--loader-size-xs)}nv-loader.size-xs::before,nv-loader.size-xs::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-xs::before{content:" ";border:calc(var(--loader-size-xs) / 10) solid;opacity:0.3}nv-loader.size-xs::after{content:" ";border-top:calc(var(--loader-size-xs) / 10) solid transparent;border-left:calc(var(--loader-size-xs) / 10) solid transparent;border-right:calc(var(--loader-size-xs) / 10) solid transparent;border-bottom:calc(var(--loader-size-xs) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-sm{width:var(--loader-size-sm);height:var(--loader-size-sm)}nv-loader.size-sm::before,nv-loader.size-sm::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-sm::before{content:" ";border:calc(var(--loader-size-sm) / 10) solid;opacity:0.3}nv-loader.size-sm::after{content:" ";border-top:calc(var(--loader-size-sm) / 10) solid transparent;border-left:calc(var(--loader-size-sm) / 10) solid transparent;border-right:calc(var(--loader-size-sm) / 10) solid transparent;border-bottom:calc(var(--loader-size-sm) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-md{width:var(--loader-size-md);height:var(--loader-size-md)}nv-loader.size-md::before,nv-loader.size-md::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-md::before{content:" ";border:calc(var(--loader-size-md) / 10) solid;opacity:0.3}nv-loader.size-md::after{content:" ";border-top:calc(var(--loader-size-md) / 10) solid transparent;border-left:calc(var(--loader-size-md) / 10) solid transparent;border-right:calc(var(--loader-size-md) / 10) solid transparent;border-bottom:calc(var(--loader-size-md) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-lg{width:var(--loader-size-lg);height:var(--loader-size-lg)}nv-loader.size-lg::before,nv-loader.size-lg::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-lg::before{content:" ";border:calc(var(--loader-size-lg) / 10) solid;opacity:0.3}nv-loader.size-lg::after{content:" ";border-top:calc(var(--loader-size-lg) / 10) solid transparent;border-left:calc(var(--loader-size-lg) / 10) solid transparent;border-right:calc(var(--loader-size-lg) / 10) solid transparent;border-bottom:calc(var(--loader-size-lg) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-xl{width:var(--loader-size-xl);height:var(--loader-size-xl)}nv-loader.size-xl::before,nv-loader.size-xl::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-xl::before{content:" ";border:calc(var(--loader-size-xl) / 10) solid;opacity:0.3}nv-loader.size-xl::after{content:" ";border-top:calc(var(--loader-size-xl) / 10) solid transparent;border-left:calc(var(--loader-size-xl) / 10) solid transparent;border-right:calc(var(--loader-size-xl) / 10) solid transparent;border-bottom:calc(var(--loader-size-xl) / 10) solid;animation:rotation 1s linear infinite}nv-loader.color-brand::before{border-color:var(--components-loader-brand-background);opacity:1}nv-loader.color-brand::after{border-bottom-color:var(--components-loader-brand-foreground)}nv-loader.color-white::before{border-color:var(--components-loader-white-background);opacity:1}nv-loader.color-white::after{border-bottom-color:var(--components-loader-white-foreground)}';const d=l;const c=class{constructor(t){o(this,t);this.size="md"}render(){return t(e,{key:"5e3cf72314d0355d5a979cf1c8561312eed50644",class:r(this.size&&`size-${this.size}`,this.color&&`color-${this.color}`)})}};c.style=d;export{s as nv_iconbutton,c as nv_loader};
2
+ //# sourceMappingURL=p-2bc7d66a.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as e,c as r,h as t,H as i,g as n}from"./p-d0a33e64.js";import{I as a}from"./p-53aa81dd.js";import{v as o}from"./p-f5ff676c.js";import"./p-0462f723.js";const s='nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fielddaterange{--nv-field-border-default:var(--components-form-field-border-default);--nv-field-border-hover:var(--components-form-field-border-hover);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--components-form-field-border-default);--nv-field-border-readonly:var(--components-form-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-brand);--nv-field-background:var(--components-form-field-background-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--form-gap-y);box-sizing:border-box;max-width:480px}nv-fielddaterange[fluid]:not([fluid=false]){max-width:unset}nv-fielddaterange[readonly]:not([readonly=false]){--nv-field-border-default:var(--components-form-field-border-readonly);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-background:var(--components-form-field-background-readonly)}nv-fielddaterange[error]:not([error=false]){--nv-field-border-default:var(--components-form-field-border-error);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-destructive-in-field)}nv-fielddaterange[success]:not([success=false]){--nv-field-border-default:var(--components-form-field-border-success);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-success)}nv-fielddaterange[required]:not([required=false]) label::after{content:"*";color:var(--components-form-text-required);font-weight:700}nv-fielddaterange label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:500;line-height:var(--form-label-line-height)}nv-fielddaterange nv-popover{width:100%;display:block}nv-fielddaterange nv-popover [data-scope=popover]{padding:0;background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border);width:auto}nv-fielddaterange nv-popover [slot=content]{display:block;width:100%}nv-fielddaterange .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;display:flex;align-items:center;gap:8px}nv-fielddaterange .input-wrapper .input-container{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out}nv-fielddaterange .input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fielddaterange .input-wrapper .input-container:focus-within,nv-fielddaterange .input-wrapper .input-container:focus-within:hover,nv-fielddaterange .input-wrapper .input-container:focus,nv-fielddaterange .input-wrapper .input-container:focus:hover{border-color:var(--nv-field-border-focus);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow)}nv-fielddaterange .input-wrapper .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fielddaterange .input-wrapper .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fielddaterange .input-wrapper .input-container input{display:flex;align-items:center;flex:1 0 0;overflow:hidden;background-color:transparent;color:var(--components-form-field-content-text);padding:var(--form-field-padding-y) var(--form-field-padding-x);font-size:var(--form-field-font-size);font-style:normal;font-weight:500;line-height:var(--form-field-line-height);width:100%;width:100%}nv-fielddaterange .input-wrapper .input-container input:focus{outline:none}nv-fielddaterange .input-wrapper .input-container input::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:"TT Norms Pro", sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:400;line-height:var(--form-field-line-height)}nv-fielddaterange .input-wrapper .input-container input[type=password]::-ms-clear,nv-fielddaterange .input-wrapper .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fielddaterange .input-wrapper .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fielddaterange .input-wrapper .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fielddaterange .input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fielddaterange .description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fielddaterange .error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}nv-fielddaterange .range-inputs{display:flex;align-items:center;gap:8px}nv-fielddaterange .range-inputs input{flex:1;border:none;outline:none;padding:0;font-size:var(--form-field-font-size);color:var(--components-form-field-content-text);background:transparent;min-width:0;text-align:center}nv-fielddaterange .range-inputs input::placeholder{color:var(--components-form-field-content-placeholder)}nv-fielddaterange .range-inputs input:disabled{cursor:not-allowed;color:var(--components-form-field-content-text);background-color:var(--components-form-field-background-disabled)}';const d=s;const l=class{constructor(t){e(this,t);this.dateRangeChange=r(this,"dateRangeChange",7);this.valueChanged=r(this,"valueChanged",7);this.popoverId=o();this.startInputId=o();this.endInputId=o();this.disabled=false;this.readonly=false;this.required=false;this.error=false;this.success=false;this.autofocus=false;this.value="";this.startValue="";this.endValue="";this.open=false;this.firstDayOfWeek=1;this.numberOfCalendars=2;this.min="";this.max="";this.locale="en-BE";this.dateFormat="YYYY-MM-DD";this.shortcutsPlacement="bottom";this.showActions=false;this.fluid=false;this.parseUnifiedValue=e=>{if(!e){this.startValue="";this.endValue="";return}const r=e.split(",").map((e=>e.trim())).filter(Boolean);if(r.length>=2){this.startValue=r[0];this.endValue=r[1]}else{console.warn(`Invalid date range format: ${e}`);this.startValue="";this.endValue=""}};this.handleClickOutside=e=>{if(this.open&&this.el&&!this.el.contains(e.target)){this.open=false}};this.handleStartInput=e=>{if(this.readonly||this.disabled){e.preventDefault();return}const r=e.target;this.startValue=r.value;this.value=`${r.value},${this.endValue}`;this.valueChanged.emit(this.value);this.dateRangeChange.emit({start:r.value,end:this.endValue});if(this.calendarElement){this.calendarElement.removeAttribute("data-prevent-navigation");this.updateCalendarValue();setTimeout((()=>{if(this.calendarElement){this.calendarElement.setAttribute("data-prevent-navigation","true")}}),100)}};this.handleEndInput=e=>{if(this.readonly||this.disabled){e.preventDefault();return}const r=e.target;this.endValue=r.value;this.value=`${this.startValue},${r.value}`;this.valueChanged.emit(this.value);this.dateRangeChange.emit({start:this.startValue,end:r.value});if(this.calendarElement){this.calendarElement.removeAttribute("data-prevent-navigation");this.updateCalendarValue();setTimeout((()=>{if(this.calendarElement){this.calendarElement.setAttribute("data-prevent-navigation","true")}}),100)}};this.handleFocus=e=>{if(this.readonly||this.disabled){e.preventDefault();e.target.blur();return}if(this.calendarElement){this.calendarElement.removeAttribute("data-prevent-navigation")}this.open=true;setTimeout((()=>{if(this.calendarElement){this.calendarElement.setAttribute("data-prevent-navigation","true")}}),300)};this.toggleCalendar=()=>{if(this.readonly||this.disabled){return}this.open=!this.open}}convertToInputmaskFormat(e){if(!e){return"dd/mm/yyyy"}const r={"YYYY-MM-DD":"yyyy-mm-dd","DD/MM/YYYY":"dd/mm/yyyy","MM/DD/YYYY":"mm/dd/yyyy","DD.MM.YYYY":"dd.mm.yyyy",YYYYMMDD:"yyyymmdd"};return r[e]||"dd/mm/yyyy"}updateCalendarValue(){}connectedCallback(){document.addEventListener("click",this.handleClickOutside)}componentWillLoad(){if(this.value){this.parseUnifiedValue(this.value)}}componentDidLoad(){const e=this.el.querySelectorAll(".input-wrapper input");e.forEach((e=>{const r=new a({alias:"datetime",inputFormat:this.convertToInputmaskFormat(this.dateFormat),placeholder:"_",clearIncomplete:false,showMaskOnHover:false,showMaskOnFocus:false,clearMaskOnLostFocus:false,insertMode:true,rightAlign:false,oncomplete:function(e){const r=e.target;const t=new CustomEvent("input",{bubbles:true});r.dispatchEvent(t)}});r.mask(e);if(e.name===this.startName&&this.startValue){requestAnimationFrame((()=>{e.value=this.startValue;const r=new CustomEvent("input",{bubbles:true});e.dispatchEvent(r)}))}else if(e.name===this.endName&&this.endValue){requestAnimationFrame((()=>{e.value=this.endValue;const r=new CustomEvent("input",{bubbles:true});e.dispatchEvent(r)}))}}))}componentDidRender(){const e=this.el.querySelectorAll(".input-wrapper input");e.forEach((e=>{const r=e.name===this.startName?this.startValue:this.endName?this.endValue:"";if(r){requestAnimationFrame((()=>{e.value=r;e.setAttribute("value",r)}))}}))}disconnectedCallback(){document.removeEventListener("click",this.handleClickOutside)}handleRangeDateChange(e){const{start:r,end:t}=e.detail||{};if(r&&t){this.startValue=r;this.endValue=t;this.value=`${r},${t}`;this.valueChanged.emit(this.value);this.dateRangeChange.emit({start:this.startValue,end:this.endValue});if(!this.showActions){this.open=false}}}handleCalendarValueChanged(e){const r=e.detail||"";if(r!==this.value){this.value=r;this.valueChanged.emit(r);this.parseUnifiedValue(r);this.dateRangeChange.emit({start:this.startValue,end:this.endValue})}}handleClosePopover(){this.open=false}handleApplyDateRange(){this.open=false}handleDateReset(e){const r=e.type==="singleDateChange"&&e.detail==="";const t=e.type==="rangeDateChange"&&e.detail&&e.detail.start===""&&e.detail.end==="";if(r||t){this.startValue="";this.endValue="";this.value="";this.valueChanged.emit("");const e=this.el.querySelectorAll(".input-wrapper input");e.forEach((e=>{e.value=""}));this.dateRangeChange.emit({start:"",end:""})}}handleKeyDown(e){if(!this.open){if(e.key==="ArrowDown"){this.open=true;e.preventDefault();return}return}if(!this.popoverElement){console.warn("nv-fielddaterange -> Popover element is not defined");return}}handleValueChange(e){this.parseUnifiedValue(e)}render(){return t(i,{key:"a451ea256b0149d8c49676f764832a2fb0f751e1"},(this.label&&this.label.length>0||this.el.querySelector('[slot="label"]'))&&t("label",{key:"8b5dfcffa03da62b728b121705213a5dbc61dc6c",htmlFor:this.startInputId},t("slot",{key:"f55bf5e98ac77ab4781956ed98f2e327f0806df6",name:"label"},this.label)),t("nv-popover",{key:"c818788df088dd87bce8e0f3f7dfadf282675981",ref:e=>this.popoverElement=e,id:this.popoverId,triggerMode:"controlled",placement:"bottom-start",open:this.open},t("div",{key:"2208b4f6033232fde9c149bd7ec7096a7b5bf36c",slot:"trigger",class:"input-wrapper"},t("slot",{key:"c32096e78b3b1846e8aac664770310f3e2a658c7",name:"before-input"}),t("div",{key:"478355cdb09432c84c44811f048ff832a58b7c21",class:"input-container"},t("slot",{key:"4703b43ce78daec5c249cb64e2d5c6ea239e9682",name:"leading-input"}),t("div",{key:"02e39ceb5d680fe73b4e701162b12fdf6d351128",class:"range-inputs"},t("input",{key:"54548154537b4f9661b2bc07cfa1e8fbdc587788",id:this.startInputId,type:"text",placeholder:this.startPlaceholder,name:this.startName,disabled:this.disabled,readOnly:this.readonly,required:this.required,autofocus:this.autofocus,value:this.startValue,onInput:this.handleStartInput,onFocus:this.handleFocus,"data-scope":"date-range"}),t("svg",{key:"b32d842470237bdb1d846b61ed165d2d1587a491",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-arrows-move-horizontal"},t("path",{key:"7281b2de95391d3dc04ffdbfbc5da81a4b3f2fc3",stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),t("path",{key:"13f2cfe57b9eaadc9317bd489f6abfc472addd0e",d:"M18 9l3 3l-3 3"}),t("path",{key:"646dbf9fe81981c93a4ad70a7cf75d485b573e42",d:"M15 12h6"}),t("path",{key:"753699e6aa5325cd91b27af5ede8d316adaa7727",d:"M6 9l-3 3l3 3"}),t("path",{key:"aab52481a7846a400bd0274f197b5c29c71fa15c",d:"M3 12h6"})),t("input",{key:"9c441f448382dd4f5c73c94d7ebaff80c6bcec2a",id:this.endInputId,type:"text",placeholder:this.endPlaceholder,name:this.endName,disabled:this.disabled,readOnly:this.readonly,required:this.required,value:this.endValue,onInput:this.handleEndInput,onFocus:this.handleFocus,"data-scope":"date-range"})),this.error&&t("nv-icon",{key:"f16264bdc82de90a1c8e7b5acf25687ed31a0a49",name:"alert-circle",class:"validation",size:"md"}),this.success&&t("nv-icon",{key:"9b1a0f81dc60bbcf68e53bc1c6ff33be515d3689",name:"circle-check",class:"validation",size:"md"}),t("nv-iconbutton",{key:"5e898f106896aa5496b9f243c8e4896d007dea65",class:"toggle-calendar-icon",name:"calendar",size:"md",emphasis:"lower","aria-label":this.open?"Hide calendar":"Show calendar","aria-pressed":this.open.toString(),onClick:this.toggleCalendar,tabIndex:this.disabled?-1:0})),t("slot",{key:"f1ab4a033654907143750a47ab44acf0b5293def",name:"after-input"})),t("div",{key:"55d69c575b8630b08a90334c7b65190d398ebec8",slot:"content"},t("nv-calendar",{key:"a3f9d43a961d7a8c38ffc7d7bd8fcbe7e0b544f8",ref:e=>this.calendarElement=e,dateFormat:this.dateFormat,value:this.value,firstDayOfWeek:this.firstDayOfWeek,numberOfCalendars:this.numberOfCalendars,min:this.min,max:this.max,locale:this.locale,shortcutsPlacement:this.shortcutsPlacement,showActions:this.showActions,shortcuts:this.shortcuts,showWeekNumbers:this.showWeekNumbers,disabledDates:this.disabledDates,selectionType:"range","data-prevent-navigation":"true"}))),(this.description&&this.description.length>0||this.el.querySelector('[slot="description"]'))&&t("div",{key:"b58241fe9c321b2c55aab00235e07627d4aae5a8",class:"description"},t("slot",{key:"4450872685fbb82838f5bc920fd0fd1b867347c5",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&t("div",{key:"947701fd9a14ef6e564460cd73bafb510883692a",hidden:!this.error,class:"error-description"},this.el.querySelector('[slot="error-description"]')?t("slot",{name:"error-description"}):this.errorDescription),t("slot",{key:"95dc7827c626e92a74067ffb7759dcca63cc4102"}))}get el(){return n(this)}static get watchers(){return{value:["handleValueChange"]}}};l.style=d;export{l as nv_fielddaterange};
2
- //# sourceMappingURL=p-26cf4938.entry.js.map
1
+ import{r as e,c as t,h as r,H as i,g as n}from"./p-d0a33e64.js";import{I as a}from"./p-53aa81dd.js";import{v as o}from"./p-f5ff676c.js";import"./p-0462f723.js";const s='nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fielddaterange{--nv-field-border-default:var(--components-form-field-border-default);--nv-field-border-hover:var(--components-form-field-border-hover);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--components-form-field-border-default);--nv-field-border-readonly:var(--components-form-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-brand);--nv-field-background:var(--components-form-field-background-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--form-gap-y);box-sizing:border-box;max-width:480px}nv-fielddaterange[fluid]:not([fluid=false]){max-width:unset}nv-fielddaterange[readonly]:not([readonly=false]){--nv-field-border-default:var(--components-form-field-border-readonly);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-background:var(--components-form-field-background-readonly)}nv-fielddaterange[error]:not([error=false]){--nv-field-border-default:var(--components-form-field-border-error);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-destructive-in-field)}nv-fielddaterange[success]:not([success=false]){--nv-field-border-default:var(--components-form-field-border-success);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-success)}nv-fielddaterange[required]:not([required=false]) label::after{content:"*";color:var(--components-form-text-required);font-weight:700}nv-fielddaterange label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:500;line-height:var(--form-label-line-height)}nv-fielddaterange nv-popover{width:100%;display:block}nv-fielddaterange nv-popover [data-scope=popover]{padding:0;background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border);width:auto}nv-fielddaterange nv-popover [slot=content]{display:block;width:100%}nv-fielddaterange .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;display:flex;align-items:center;gap:8px}nv-fielddaterange .input-wrapper .input-container{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out}nv-fielddaterange .input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fielddaterange .input-wrapper .input-container:focus-within,nv-fielddaterange .input-wrapper .input-container:focus-within:hover,nv-fielddaterange .input-wrapper .input-container:focus,nv-fielddaterange .input-wrapper .input-container:focus:hover{border-color:var(--nv-field-border-focus);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow)}nv-fielddaterange .input-wrapper .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fielddaterange .input-wrapper .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fielddaterange .input-wrapper .input-container input{display:flex;align-items:center;flex:1 0 0;overflow:hidden;background-color:transparent;color:var(--components-form-field-content-text);padding:var(--form-field-padding-y) var(--form-field-padding-x);font-size:var(--form-field-font-size);font-style:normal;font-weight:500;line-height:var(--form-field-line-height);width:100%;width:100%}nv-fielddaterange .input-wrapper .input-container input:focus{outline:none}nv-fielddaterange .input-wrapper .input-container input::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:"TT Norms Pro", sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:400;line-height:var(--form-field-line-height)}nv-fielddaterange .input-wrapper .input-container input[type=password]::-ms-clear,nv-fielddaterange .input-wrapper .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fielddaterange .input-wrapper .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fielddaterange .input-wrapper .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fielddaterange .input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fielddaterange .description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fielddaterange .error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}nv-fielddaterange .range-inputs{display:flex;align-items:center;gap:8px}nv-fielddaterange .range-inputs input{flex:1;border:none;outline:none;padding:0;font-size:var(--form-field-font-size);color:var(--components-form-field-content-text);background:transparent;min-width:0;text-align:center}nv-fielddaterange .range-inputs input::placeholder{color:var(--components-form-field-content-placeholder)}nv-fielddaterange .range-inputs input:disabled{cursor:not-allowed;color:var(--components-form-field-content-text);background-color:var(--components-form-field-background-disabled)}';const d=s;const l=class{constructor(r){e(this,r);this.dateRangeChange=t(this,"dateRangeChange",7);this.valueChanged=t(this,"valueChanged",7);this.popoverId=o();this.startInputId=o();this.endInputId=o();this.disabled=false;this.readonly=false;this.required=false;this.error=false;this.success=false;this.autofocus=false;this.value="";this.startValue="";this.endValue="";this.open=false;this.firstDayOfWeek=1;this.numberOfCalendars=2;this.min="";this.max="";this.locale="en-BE";this.dateFormat="YYYY-MM-DD";this.shortcutsPlacement="bottom";this.showActions=false;this.fluid=false;this.parseUnifiedValue=e=>{if(!e){this.startValue="";this.endValue="";return}const t=e.split(",").map((e=>e.trim())).filter(Boolean);if(t.length>=2){this.startValue=t[0];this.endValue=t[1]}else{console.warn(`Invalid date range format: ${e}`);this.startValue="";this.endValue=""}};this.handleClickOutside=e=>{if(this.open&&this.el&&!this.el.contains(e.target)){this.open=false}};this.handleStartInput=e=>{if(this.readonly||this.disabled){e.preventDefault();return}const t=e.target;this.startValue=t.value;this.value=`${t.value},${this.endValue}`;this.valueChanged.emit(this.value);this.dateRangeChange.emit({start:t.value,end:this.endValue});if(this.calendarElement){this.calendarElement.removeAttribute("data-prevent-navigation");this.updateCalendarValue();setTimeout((()=>{if(this.calendarElement){this.calendarElement.setAttribute("data-prevent-navigation","true")}}),100)}};this.handleEndInput=e=>{if(this.readonly||this.disabled){e.preventDefault();return}const t=e.target;this.endValue=t.value;this.value=`${this.startValue},${t.value}`;this.valueChanged.emit(this.value);this.dateRangeChange.emit({start:this.startValue,end:t.value});if(this.calendarElement){this.calendarElement.removeAttribute("data-prevent-navigation");this.updateCalendarValue();setTimeout((()=>{if(this.calendarElement){this.calendarElement.setAttribute("data-prevent-navigation","true")}}),100)}};this.handleFocus=e=>{if(this.readonly||this.disabled){e.preventDefault();e.target.blur();return}if(this.calendarElement){this.calendarElement.removeAttribute("data-prevent-navigation")}this.open=true;setTimeout((()=>{if(this.calendarElement){this.calendarElement.setAttribute("data-prevent-navigation","true")}}),300)};this.toggleCalendar=()=>{if(this.readonly||this.disabled){return}this.open=!this.open}}convertToInputmaskFormat(e){if(!e){return"dd/mm/yyyy"}const t={"YYYY-MM-DD":"yyyy-mm-dd","DD/MM/YYYY":"dd/mm/yyyy","MM/DD/YYYY":"mm/dd/yyyy","DD.MM.YYYY":"dd.mm.yyyy",YYYYMMDD:"yyyymmdd"};return t[e]||"dd/mm/yyyy"}updateCalendarValue(){}connectedCallback(){document.addEventListener("click",this.handleClickOutside)}componentWillLoad(){if(this.value){this.parseUnifiedValue(this.value)}}componentDidLoad(){const e=this.el.querySelectorAll(".input-wrapper input");e.forEach((e=>{const t=new a({alias:"datetime",inputFormat:this.convertToInputmaskFormat(this.dateFormat),placeholder:"_",clearIncomplete:false,showMaskOnHover:false,showMaskOnFocus:false,clearMaskOnLostFocus:false,insertMode:true,rightAlign:false,oncomplete:function(e){const t=e.target;const r=new CustomEvent("input",{bubbles:true});t.dispatchEvent(r)}});t.mask(e);if(e.name===this.startName&&this.startValue){requestAnimationFrame((()=>{e.value=this.startValue;const t=new CustomEvent("input",{bubbles:true});e.dispatchEvent(t)}))}else if(e.name===this.endName&&this.endValue){requestAnimationFrame((()=>{e.value=this.endValue;const t=new CustomEvent("input",{bubbles:true});e.dispatchEvent(t)}))}}))}componentDidRender(){const e=this.el.querySelectorAll(".input-wrapper input");e.forEach((e=>{const t=e.name===this.startName?this.startValue:this.endName?this.endValue:"";if(t){requestAnimationFrame((()=>{e.value=t;e.setAttribute("value",t)}))}}))}disconnectedCallback(){document.removeEventListener("click",this.handleClickOutside)}handleRangeDateChange(e){const{start:t,end:r}=e.detail||{};if(t&&r){this.startValue=t;this.endValue=r;this.value=`${t},${r}`;this.valueChanged.emit(this.value);this.dateRangeChange.emit({start:this.startValue,end:this.endValue});if(!this.showActions){this.open=false}}}handleCalendarValueChanged(e){const t=e.detail||"";if(t!==this.value){this.value=t;this.valueChanged.emit(t);this.parseUnifiedValue(t);this.dateRangeChange.emit({start:this.startValue,end:this.endValue})}}handleClosePopover(){this.open=false}handleApplyDateRange(){this.open=false}handleDateReset(e){const t=e.type==="singleDateChange"&&e.detail==="";const r=e.type==="rangeDateChange"&&e.detail&&e.detail.start===""&&e.detail.end==="";if(t||r){this.startValue="";this.endValue="";this.value="";this.valueChanged.emit("");const e=this.el.querySelectorAll(".input-wrapper input");e.forEach((e=>{e.value=""}));this.dateRangeChange.emit({start:"",end:""})}}handleKeyDown(e){if(!this.open){if(e.key==="ArrowDown"){this.open=true;e.preventDefault();return}return}if(!this.popoverElement){console.warn("nv-fielddaterange -> Popover element is not defined");return}}handleValueChange(e){this.parseUnifiedValue(e)}onOpenChanged(e){if(this.contentRef){if(e){this.contentRef.style.transition="none";this.contentRef.style.maxHeight="0px";requestAnimationFrame((()=>{this.contentRef.style.transition="max-height 0.18s cubic-bezier(0.4,0,0.2,1)";this.contentRef.style.maxHeight=this.contentRef.scrollHeight+"px"}))}else{this.contentRef.style.transition="none";this.contentRef.style.maxHeight=this.contentRef.scrollHeight+"px";requestAnimationFrame((()=>{this.contentRef.style.transition="max-height 0.18s cubic-bezier(0.4,0,0.2,1)";this.contentRef.style.maxHeight="0px"}))}}}render(){return r(i,{key:"5f3b1fe7aee232ce13bbff470db257f723aef978"},(this.label&&this.label.length>0||this.el.querySelector('[slot="label"]'))&&r("label",{key:"663fac675ac0fc443fd7e671d793bdfcb9f52d46",htmlFor:this.startInputId},r("slot",{key:"afdd8f49f12d5f3b476dee59b9a38439ff9215c5",name:"label"},this.label)),r("nv-popover",{key:"1b6cb3b7dcabf572d580594fcf7d695b6d6ee66f",ref:e=>this.popoverElement=e,id:this.popoverId,triggerMode:"controlled",placement:"bottom-start",open:this.open},r("div",{key:"d363e153e04eb0af7eeefef57dff6973a06f646d",slot:"trigger",class:"input-wrapper"},r("slot",{key:"5e638ea73f83fb096a9581d3ef8bc11616e19acb",name:"before-input"}),r("div",{key:"6dcde890ca01b12a512f3e42eb7de2acc43562ee",class:"input-container"},r("slot",{key:"ce6acc334efc528965d7e957b6c5d3c48a0ee7d4",name:"leading-input"}),r("div",{key:"301b88ba035cc5ebe5ccb7a50a81391dcdf9c212",class:"range-inputs"},r("input",{key:"385554f08afb6d0f3c276fa446edb7d01d756d5d",id:this.startInputId,type:"text",placeholder:this.startPlaceholder,name:this.startName,disabled:this.disabled,readOnly:this.readonly,required:this.required,autofocus:this.autofocus,value:this.startValue,onInput:this.handleStartInput,onFocus:this.handleFocus,"data-scope":"date-range"}),r("svg",{key:"f8c024bc6e933575dce8cc21213dbe719ffece28",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-arrows-move-horizontal"},r("path",{key:"0c942f98b933530f9a98f40d201cd4004781070d",stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),r("path",{key:"6b719ff53b0f8ded007954d110a26df367de8d76",d:"M18 9l3 3l-3 3"}),r("path",{key:"dbc9d98a1123f2516e125fe368422059ee9de216",d:"M15 12h6"}),r("path",{key:"bb450d42a867c08ba586de71750d3142576756fa",d:"M6 9l-3 3l3 3"}),r("path",{key:"aced7f97e1d65c069a0831fc1fb41de0e5f14216",d:"M3 12h6"})),r("input",{key:"a6182dd71ba14944918aef3c69c1ac81ecba3892",id:this.endInputId,type:"text",placeholder:this.endPlaceholder,name:this.endName,disabled:this.disabled,readOnly:this.readonly,required:this.required,value:this.endValue,onInput:this.handleEndInput,onFocus:this.handleFocus,"data-scope":"date-range"})),this.error&&r("nv-icon",{key:"4470222fe55588e441d3a41cfbcec0655616f1d6",name:"alert-circle",class:"validation",size:"md"}),this.success&&r("nv-icon",{key:"5a6565f2c6fb8a4148f87ecbad54da0bb7ae1acc",name:"circle-check",class:"validation",size:"md"}),r("nv-iconbutton",{key:"229ef4753a605ac0b7241d92f6157367d86dbd92",class:"toggle-calendar-icon",name:"calendar",size:"md",emphasis:"lower","aria-label":this.open?"Hide calendar":"Show calendar","aria-pressed":this.open.toString(),onClick:this.toggleCalendar,tabIndex:this.disabled?-1:0})),r("slot",{key:"15de0c662d97751a16ea994f2c5678fa5bb333c0",name:"after-input"})),r("div",{key:"cc165993c4033b5536649001cf2f8989ef9b41ef",slot:"content"},r("nv-calendar",{key:"0a7c76e9a16504431ea0428278c940b9e97e7117",ref:e=>this.calendarElement=e,dateFormat:this.dateFormat,value:this.value,firstDayOfWeek:this.firstDayOfWeek,numberOfCalendars:this.numberOfCalendars,min:this.min,max:this.max,locale:this.locale,shortcutsPlacement:this.shortcutsPlacement,showActions:this.showActions,shortcuts:this.shortcuts,showWeekNumbers:this.showWeekNumbers,disabledDates:this.disabledDates,selectionType:"range","data-prevent-navigation":"true"}))),(this.description&&this.description.length>0||this.el.querySelector('[slot="description"]'))&&r("div",{key:"2c7164560b8d59abca3759ae3db06bd3820fd897",class:"description"},r("slot",{key:"b84ed04584a0e4a4e33682503c588d70e5cc5735",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&r("div",{key:"09aee3d407a9b126ca85ec82306430b4cb6ce71d",hidden:!this.error,class:"error-description"},this.el.querySelector('[slot="error-description"]')?r("slot",{name:"error-description"}):this.errorDescription),r("slot",{key:"aa03e8616062be05d9947fa697016483bdfd9fdc"}))}get el(){return n(this)}static get watchers(){return{value:["handleValueChange"],open:["onOpenChanged"]}}};l.style=d;export{l as nv_fielddaterange};
2
+ //# sourceMappingURL=p-2c3fb8cc.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["nvFielddaterangeCss","NvFielddaterangeStyle0","NvFielddaterange","constructor","hostRef","this","popoverId","uuidv4","startInputId","endInputId","disabled","readonly","required","error","success","autofocus","value","startValue","endValue","open","firstDayOfWeek","numberOfCalendars","min","max","locale","dateFormat","shortcutsPlacement","showActions","fluid","parseUnifiedValue","values","split","map","v","trim","filter","Boolean","length","console","warn","handleClickOutside","event","el","contains","target","handleStartInput","preventDefault","input","valueChanged","emit","dateRangeChange","start","end","calendarElement","removeAttribute","updateCalendarValue","setTimeout","setAttribute","handleEndInput","handleFocus","blur","toggleCalendar","convertToInputmaskFormat","format","formatMap","YYYYMMDD","connectedCallback","document","addEventListener","componentWillLoad","componentDidLoad","inputs","querySelectorAll","forEach","inputMask","Inputmask","alias","inputFormat","placeholder","clearIncomplete","showMaskOnHover","showMaskOnFocus","clearMaskOnLostFocus","insertMode","rightAlign","oncomplete","e","CustomEvent","bubbles","dispatchEvent","mask","name","startName","requestAnimationFrame","endName","componentDidRender","disconnectedCallback","removeEventListener","handleRangeDateChange","detail","handleCalendarValueChanged","newValue","handleClosePopover","handleApplyDateRange","handleDateReset","isResetSingle","type","isResetRange","handleKeyDown","key","popoverElement","handleValueChange","onOpenChanged","contentRef","style","transition","maxHeight","scrollHeight","render","h","Host","label","querySelector","htmlFor","ref","id","triggerMode","placement","slot","class","startPlaceholder","readOnly","onInput","onFocus","xmlns","width","height","viewBox","fill","stroke","d","endPlaceholder","size","emphasis","toString","onClick","tabIndex","shortcuts","showWeekNumbers","disabledDates","selectionType","description","errorDescription","hidden"],"sources":["src/components/nv-fielddaterange/styles/nv-fielddaterange.scss?tag=nv-fielddaterange","src/components/nv-fielddaterange/nv-fielddaterange.tsx"],"sourcesContent":["@import '../../../styles/form-field';\n\nnv-fielddaterange {\n @include form-field-variables();\n @include form-field-root();\n\n &[fluid]:not([fluid=\"false\"]) {\n @include form-field-fluid();\n }\n\n &[readonly]:not([readonly='false']) {\n @include form-field-readonly-variables();\n }\n\n &[error]:not([error='false']) {\n @include form-field-error-variables();\n }\n\n &[success]:not([success='false']) {\n @include form-field-success-variables();\n }\n\n &[required]:not([required='false']) label {\n @include form-field-label-required();\n }\n\n label {\n @include form-field-label();\n }\n\n nv-popover {\n width: 100%;\n display: block;\n\n [data-scope='popover'] {\n padding: 0;\n background-color: var(--components-list-dropdown-background);\n border: 1px solid var(--components-list-dropdown-border);\n width: auto;\n }\n\n [slot='content'] {\n display: block;\n width: 100%;\n }\n }\n\n .input-wrapper {\n @include form-field-input-wrapper();\n display: flex;\n align-items: center;\n gap: 8px;\n\n .input-container {\n @include form-field-input-container();\n\n input {\n @include form-field-input();\n width: 100%;\n }\n\n > nv-iconbutton {\n @include form-field-action();\n }\n\n nv-icon.validation {\n @include form-field-icon();\n }\n }\n }\n\n .description {\n @include form-field-description();\n }\n\n .error-description {\n @include form-field-error-description();\n }\n\n .range-inputs {\n display: flex;\n align-items: center;\n gap: 8px;\n\n input {\n flex: 1;\n border: none;\n outline: none;\n padding: 0;\n font-size: var(--form-field-font-size);\n color: var(--components-form-field-content-text);\n background: transparent;\n min-width: 0; // to avoid overflow\n text-align: center;\n\n &::placeholder {\n color: var(--components-form-field-content-placeholder);\n }\n\n &:disabled {\n cursor: not-allowed;\n color: var(--components-form-field-content-text);\n background-color: var(--components-form-field-background-disabled);\n }\n }\n }\n}\n","import {\n Component,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Listen,\n Host,\n Watch,\n} from '@stencil/core';\nimport Inputmask from 'inputmask';\nimport { v4 as uuidv4 } from 'uuid';\n\n/**\n * @slot default - Child content of the component.\n * @slot leading-input - Content to be placed before the input text, within the input container.\n * @slot before-input - Content to be placed before the input text, outside the input container.\n * @slot after-input - Content to be placed after the input text, outside the input container.\n * @slot label - Content to be placed as the label, will override the label prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n */\n@Component({\n tag: 'nv-fielddaterange',\n styleUrl: 'styles/nv-fielddaterange.scss',\n shadow: false,\n})\nexport class NvFielddaterange {\n @Element() el!: HTMLNvFielddaterangeElement;\n private popoverElement!: HTMLNvPopoverElement;\n private calendarElement!: HTMLNvCalendarElement;\n private popoverId: string = uuidv4();\n private contentRef?: HTMLDivElement;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Sets the ID for the start input element and the for attribute of the associated\n * label. If no ID is provided, a random one will be automatically generated.\n */\n @Prop({ reflect: true })\n readonly startInputId: string = uuidv4();\n\n /**\n * Sets the ID for the end input element and the for attribute of the associated\n * label. If no ID is provided, a random one will be automatically generated.\n */\n @Prop({ reflect: true })\n readonly endInputId: string = uuidv4();\n\n /**\n * Text displayed as label. A slot label can override this prop.\n */\n @Prop({ reflect: true })\n readonly label: string;\n\n /**\n * Description displayed below the input. A slot description can override this prop.\n */\n @Prop({ reflect: true })\n readonly description: string;\n\n /**\n * Placeholder for the start input field.\n */\n @Prop({ reflect: true })\n readonly startPlaceholder: string;\n\n /**\n * Placeholder for the end input field.\n */\n @Prop({ reflect: true })\n readonly endPlaceholder: string;\n\n /**\n * Name attribute for the start input.\n */\n @Prop({ reflect: true })\n readonly startName: string;\n\n /**\n * Name attribute for the end input.\n */\n @Prop({ reflect: true })\n readonly endName: string;\n\n /**\n * Disables both input fields.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Sets both input fields as read-only.\n */\n @Prop({ reflect: true })\n readonly readonly: boolean = false;\n\n /**\n * Marks both input fields as required.\n */\n @Prop({ reflect: true })\n readonly required: boolean = false;\n\n /**\n * Indicates an error state.\n */\n @Prop({ reflect: true })\n readonly error: boolean = false;\n\n /**\n * Error description. A slot error-description can override this prop.\n */\n @Prop({ reflect: true })\n readonly errorDescription?: string;\n\n /**\n * Indicates a success state.\n */\n @Prop({ reflect: true })\n readonly success: boolean = false;\n\n /**\n * Autofocus the start input when the component is mounted.\n */\n @Prop({ reflect: true })\n // eslint-disable-next-line @stencil-community/reserved-member-names\n readonly autofocus: boolean = false;\n\n /**\n * The initial value of the date range (in string format).\n */\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ reflect: true, mutable: true })\n value: string = '';\n\n /**\n * The current value of the start date in string format.\n */\n @State()\n startValue: string = '';\n\n /**\n * The current value of the end date in string format.\n */\n @State()\n endValue: string = '';\n\n /**\n * Controls the opening of the popover.\n */\n @State()\n open: boolean = false;\n\n /**\n * First day of the week 0 = Sunday, 1 = Monday, etc.\n * @default 1\n */\n @Prop({ reflect: true })\n readonly firstDayOfWeek: number = 1;\n\n /**\n * Number of calendars to display\n * @default 2\n */\n @Prop({ reflect: true })\n readonly numberOfCalendars: number = 2;\n\n /**\n * Minimum date for selection ISO string format, ex: 2025-01-01\n */\n @Prop({ reflect: true })\n readonly min?: string = '';\n\n /**\n * Maximum date for selection ISO string format, ex: 2025-12-31\n */\n @Prop({ reflect: true })\n readonly max?: string = '';\n\n /** Locale for date formatting\n * @default 'en-BE'\n */\n @Prop({ reflect: true })\n readonly locale: string = 'en-BE';\n\n /** Date format ex: YYYY-MM-DD, DD-MM-YYYY, etc.\n * @default 'YYYY-MM-DD'\n */\n @Prop({ reflect: true })\n readonly dateFormat: string = 'YYYY-MM-DD';\n\n /**\n * Footer placement\n * @default 'bottom'\n */\n @Prop({ reflect: true })\n readonly shortcutsPlacement: 'bottom' | 'left' | 'right' = 'bottom';\n\n /**\n * Show action buttons\n * @default false\n */\n @Prop({ reflect: true })\n readonly showActions: boolean = false;\n\n /**\n * Custom actions to display in the footer\n */\n @Prop({ reflect: true })\n readonly shortcuts: HTMLNvCalendarElement['shortcuts'];\n\n /**\n * Show week numbers\n */\n @Prop({ reflect: true })\n readonly showWeekNumbers: boolean;\n\n /**\n * Disabled dates ISO string array\n */\n @Prop({ reflect: true })\n readonly disabledDates: Array<string>;\n\n /**\n * Allows the field to stretch and fill the entire width of its container.\n */\n @Prop({ reflect: true })\n readonly fluid: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Parses the unified value prop and synchronizes with internal state\n * @param {string} value - Value to parse\n */\n private parseUnifiedValue = (value: string): void => {\n if (!value) {\n // Reset all selections\n this.startValue = '';\n this.endValue = '';\n return;\n }\n\n const values = value\n .split(',')\n .map(v => v.trim())\n .filter(Boolean);\n\n if (values.length >= 2) {\n this.startValue = values[0];\n this.endValue = values[1];\n } else {\n // Handle malformed value gracefully\n console.warn(`Invalid date range format: ${value}`);\n this.startValue = '';\n this.endValue = '';\n }\n };\n\n /**\n * Converts the nv-calendar date format to the format expected by Inputmask.\n * @param {string} format - The date format to convert\n * @returns {string} The converted format for Inputmask\n */\n private convertToInputmaskFormat(format: string): string {\n // If the format is not specified, use the default format YYYY-MM-DD\n if (!format) {\n return 'dd/mm/yyyy';\n }\n\n const formatMap = {\n 'YYYY-MM-DD': 'yyyy-mm-dd',\n 'DD/MM/YYYY': 'dd/mm/yyyy',\n 'MM/DD/YYYY': 'mm/dd/yyyy',\n 'DD.MM.YYYY': 'dd.mm.yyyy',\n 'YYYYMMDD': 'yyyymmdd',\n };\n\n return formatMap[format] || 'dd/mm/yyyy';\n }\n\n /**\n * Closes the popover when a click is detected outside the component.\n * @param {MouseEvent} event - The mouse event\n */\n private handleClickOutside = (event: MouseEvent) => {\n if (this.open && this.el && !this.el.contains(event.target as Node)) {\n this.open = false;\n }\n };\n\n /**\n * Handles the input event on the start input element.\n * @param {Event} event - The input event\n */\n private handleStartInput = (event: Event) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n return;\n }\n const input = event.target as HTMLInputElement;\n this.startValue = input.value;\n\n // Update unified value prop\n this.value = `${input.value},${this.endValue}`;\n this.valueChanged.emit(this.value);\n\n // Legacy support (deprecated)\n this.dateRangeChange.emit({ start: input.value, end: this.endValue });\n\n // Temporarily enable navigation for keyboard input\n if (this.calendarElement) {\n this.calendarElement.removeAttribute('data-prevent-navigation');\n this.updateCalendarValue();\n // Restore navigation prevention after update\n setTimeout(() => {\n if (this.calendarElement) {\n this.calendarElement.setAttribute('data-prevent-navigation', 'true');\n }\n }, 100);\n }\n };\n\n /**\n * Handles the input event on the end input element.\n * @param {Event} event - The input event\n */\n private handleEndInput = (event: Event) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n return;\n }\n const input = event.target as HTMLInputElement;\n this.endValue = input.value;\n\n // Update unified value prop\n this.value = `${this.startValue},${input.value}`;\n this.valueChanged.emit(this.value);\n\n // Legacy support (deprecated)\n this.dateRangeChange.emit({ start: this.startValue, end: input.value });\n\n // Temporarily enable navigation for keyboard input\n if (this.calendarElement) {\n this.calendarElement.removeAttribute('data-prevent-navigation');\n this.updateCalendarValue();\n // Restore navigation prevention after update\n setTimeout(() => {\n if (this.calendarElement) {\n this.calendarElement.setAttribute('data-prevent-navigation', 'true');\n }\n }, 100);\n }\n };\n\n /**\n * Update the calendar's rangeValue property without forcing month change\n */\n private updateCalendarValue() {\n if (this.calendarElement && this.startValue && this.endValue) {\n // Store the current calendar state\n }\n }\n\n /**\n * Handles focus events on the input elements.\n * @param {FocusEvent} event - The focus event\n */\n private handleFocus = (event: FocusEvent) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n (event.target as HTMLElement).blur();\n return;\n }\n\n // Enable navigation on focus\n if (this.calendarElement) {\n this.calendarElement.removeAttribute('data-prevent-navigation');\n }\n\n this.open = true;\n\n // Restore navigation prevention after opening\n setTimeout(() => {\n if (this.calendarElement) {\n this.calendarElement.setAttribute('data-prevent-navigation', 'true');\n }\n }, 300);\n };\n\n /**\n * Toggles the opening/closing of the popover.\n */\n private toggleCalendar = () => {\n if (this.readonly || this.disabled) {\n return;\n }\n this.open = !this.open;\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n connectedCallback() {\n document.addEventListener('click', this.handleClickOutside);\n }\n\n componentWillLoad() {\n if (this.value) {\n // Use the unified parsing method\n this.parseUnifiedValue(this.value);\n }\n }\n\n componentDidLoad() {\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n const inputMask = new Inputmask({\n alias: 'datetime',\n inputFormat: this.convertToInputmaskFormat(this.dateFormat),\n placeholder: '_',\n clearIncomplete: false,\n showMaskOnHover: false,\n showMaskOnFocus: false,\n clearMaskOnLostFocus: false,\n insertMode: true,\n rightAlign: false,\n oncomplete: function (e) {\n const input = e.target as HTMLInputElement;\n const event = new CustomEvent('input', { bubbles: true });\n input.dispatchEvent(event);\n },\n });\n inputMask.mask(input);\n\n // Set the value after applying the mask\n if (input.name === this.startName && this.startValue) {\n requestAnimationFrame(() => {\n input.value = this.startValue;\n const event = new CustomEvent('input', { bubbles: true });\n input.dispatchEvent(event);\n });\n } else if (input.name === this.endName && this.endValue) {\n requestAnimationFrame(() => {\n input.value = this.endValue;\n const event = new CustomEvent('input', { bubbles: true });\n input.dispatchEvent(event);\n });\n }\n });\n }\n\n componentDidRender() {\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n const value =\n input.name === this.startName\n ? this.startValue\n : this.endName\n ? this.endValue\n : '';\n if (value) {\n // Make sure the value is defined both as a property and attribute\n requestAnimationFrame(() => {\n input.value = value;\n input.setAttribute('value', value);\n });\n }\n });\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside);\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the date range changes.\n */\n @Event()\n dateRangeChange: EventEmitter<\n HTMLNvCalendarElementEventMap['rangeDateChange']\n >;\n\n /**\n * Emitted when the unified value changes\n * @bind value\n */\n @Event()\n valueChanged: EventEmitter<string>;\n\n /**\n * Handles the range date selection event from nv-calendar.\n * @param {CustomEvent<DateRange>} event - The custom event\n */\n @Listen('rangeDateChange')\n handleRangeDateChange(\n event: CustomEvent<HTMLNvCalendarElementEventMap['rangeDateChange']>,\n ) {\n const { start, end } = event.detail || {};\n\n // Check that both dates are defined\n if (start && end) {\n this.startValue = start;\n this.endValue = end;\n\n // Update unified value prop (like nv-calendar)\n this.value = `${start},${end}`;\n this.valueChanged.emit(this.value);\n\n // Legacy support (deprecated)\n this.dateRangeChange.emit({\n start: this.startValue,\n end: this.endValue,\n });\n\n if (!this.showActions) {\n this.open = false;\n }\n }\n }\n\n /**\n * Handles the unified value change event from nv-calendar\n * @param {CustomEvent<string>} event - The custom event\n */\n @Listen('valueChanged')\n handleCalendarValueChanged(event: CustomEvent<string>) {\n const newValue = event.detail || '';\n\n if (newValue !== this.value) {\n this.value = newValue;\n this.valueChanged.emit(newValue);\n\n // Parse and update internal state\n this.parseUnifiedValue(newValue);\n\n // Legacy support - emit dateRangeChange\n this.dateRangeChange.emit({\n start: this.startValue,\n end: this.endValue,\n });\n }\n }\n\n @Listen('closePopover')\n handleClosePopover() {\n this.open = false;\n }\n\n @Listen('applyDateRange')\n handleApplyDateRange() {\n this.open = false;\n }\n\n /**\n * Handles the reset event from the calendar's cancel button\n * @param {CustomEvent} event - The event emitted by the calendar\n */\n @Listen('singleDateChange')\n @Listen('rangeDateChange')\n handleDateReset(event: CustomEvent) {\n const isResetSingle =\n event.type === 'singleDateChange' && event.detail === '';\n const isResetRange =\n event.type === 'rangeDateChange' &&\n event.detail &&\n event.detail.start === '' &&\n event.detail.end === '';\n\n if (isResetSingle || isResetRange) {\n this.startValue = '';\n this.endValue = '';\n\n // Update unified value prop\n this.value = '';\n this.valueChanged.emit('');\n\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n input.value = '';\n });\n\n // Legacy support (deprecated)\n this.dateRangeChange.emit({ start: '', end: '' });\n }\n }\n\n /**\n * Handles keyboard events.\n * @param {KeyboardEvent} event - The keyboard event\n */\n @Listen('keydown', { passive: false })\n handleKeyDown(event: KeyboardEvent) {\n if (!this.open) {\n if (event.key === 'ArrowDown') {\n this.open = true;\n event.preventDefault();\n return;\n }\n return;\n }\n\n if (!this.popoverElement) {\n console.warn('nv-fielddaterange -> Popover element is not defined');\n return;\n }\n }\n\n @Watch('value')\n handleValueChange(newValue: string) {\n // Use the unified parsing method instead of JSON.parse\n this.parseUnifiedValue(newValue);\n }\n\n @Watch('open')\n onOpenChanged(newValue: boolean) {\n if (this.contentRef) {\n if (newValue) {\n this.contentRef.style.transition = 'none';\n this.contentRef.style.maxHeight = '0px';\n void this.contentRef.offsetHeight;\n requestAnimationFrame(() => {\n this.contentRef.style.transition =\n 'max-height 0.18s cubic-bezier(0.4,0,0.2,1)';\n this.contentRef.style.maxHeight = this.contentRef.scrollHeight + 'px';\n });\n } else {\n this.contentRef.style.transition = 'none';\n this.contentRef.style.maxHeight = this.contentRef.scrollHeight + 'px';\n void this.contentRef.offsetHeight;\n requestAnimationFrame(() => {\n this.contentRef.style.transition =\n 'max-height 0.18s cubic-bezier(0.4,0,0.2,1)';\n this.contentRef.style.maxHeight = '0px';\n });\n }\n }\n }\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\n {((this.label && this.label.length > 0) ||\n this.el.querySelector('[slot=\"label\"]')) && (\n <label htmlFor={this.startInputId}>\n <slot name=\"label\">{this.label}</slot>\n </label>\n )}\n\n <nv-popover\n ref={el => (this.popoverElement = el as HTMLNvPopoverElement)}\n id={this.popoverId}\n triggerMode=\"controlled\"\n placement=\"bottom-start\"\n open={this.open}\n >\n <div slot=\"trigger\" class=\"input-wrapper\">\n <slot name=\"before-input\"></slot>\n\n <div class=\"input-container\">\n <slot name=\"leading-input\"></slot>\n\n <div class=\"range-inputs\">\n <input\n id={this.startInputId}\n type=\"text\"\n placeholder={this.startPlaceholder}\n name={this.startName}\n disabled={this.disabled}\n readOnly={this.readonly}\n required={this.required}\n autofocus={this.autofocus}\n value={this.startValue}\n onInput={this.handleStartInput}\n onFocus={this.handleFocus}\n data-scope=\"date-range\"\n />\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"icon icon-tabler icons-tabler-outline icon-tabler-arrows-move-horizontal\"\n >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M18 9l3 3l-3 3\" />\n <path d=\"M15 12h6\" />\n <path d=\"M6 9l-3 3l3 3\" />\n <path d=\"M3 12h6\" />\n </svg>\n\n <input\n id={this.endInputId}\n type=\"text\"\n placeholder={this.endPlaceholder}\n name={this.endName}\n disabled={this.disabled}\n readOnly={this.readonly}\n required={this.required}\n value={this.endValue}\n onInput={this.handleEndInput}\n onFocus={this.handleFocus}\n data-scope=\"date-range\"\n />\n </div>\n\n {this.error && (\n <nv-icon name=\"alert-circle\" class=\"validation\" size=\"md\" />\n )}\n {this.success && (\n <nv-icon name=\"circle-check\" class=\"validation\" size=\"md\" />\n )}\n\n <nv-iconbutton\n class=\"toggle-calendar-icon\"\n name=\"calendar\"\n size=\"md\"\n emphasis=\"lower\"\n aria-label={this.open ? 'Hide calendar' : 'Show calendar'}\n aria-pressed={this.open.toString()}\n onClick={this.toggleCalendar}\n tabIndex={this.disabled ? -1 : 0}\n />\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\n\n <div slot=\"content\">\n <nv-calendar\n ref={el => (this.calendarElement = el as HTMLNvCalendarElement)}\n dateFormat={this.dateFormat}\n value={this.value}\n firstDayOfWeek={this.firstDayOfWeek}\n numberOfCalendars={this.numberOfCalendars}\n min={this.min}\n max={this.max}\n locale={this.locale}\n shortcutsPlacement={this.shortcutsPlacement}\n showActions={this.showActions}\n shortcuts={this.shortcuts}\n showWeekNumbers={this.showWeekNumbers}\n disabledDates={this.disabledDates}\n selectionType=\"range\"\n data-prevent-navigation=\"true\"\n ></nv-calendar>\n </div>\n </nv-popover>\n\n {((this.description && this.description.length > 0) ||\n this.el.querySelector('[slot=\"description\"]')) && (\n <div class=\"description\">\n <slot name=\"description\">{this.description}</slot>\n </div>\n )}\n\n {(this.errorDescription ||\n this.el.querySelector('[slot=\"error-description\"]')) && (\n <div hidden={!this.error} class=\"error-description\">\n {this.el.querySelector('[slot=\"error-description\"]') ? (\n <slot name=\"error-description\"></slot>\n ) : (\n this.errorDescription\n )}\n </div>\n )}\n\n <slot></slot>\n </Host>\n );\n }\n //#endregion RENDER\n}\n"],"mappings":"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","ignoreList":[]}