@tylertech/forge 2.11.0 → 2.12.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 (186) hide show
  1. package/custom-elements.json +220 -4
  2. package/dist/esm/accordion/index.js +1 -1
  3. package/dist/esm/app-bar/help-button/index.js +1 -1
  4. package/dist/esm/app-bar/index.js +1 -1
  5. package/dist/esm/app-bar/menu-button/index.js +1 -1
  6. package/dist/esm/app-bar/notification-button/index.js +1 -1
  7. package/dist/esm/app-bar/profile-button/index.js +1 -1
  8. package/dist/esm/app-bar/search/index.js +1 -1
  9. package/dist/esm/autocomplete/index.js +1 -1
  10. package/dist/esm/banner/index.js +1 -1
  11. package/dist/esm/bottom-sheet/index.js +1 -1
  12. package/dist/esm/busy-indicator/index.js +1 -1
  13. package/dist/esm/button/index.js +1 -1
  14. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  15. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  16. package/dist/esm/calendar/index.js +1 -1
  17. package/dist/esm/checkbox/index.js +1 -1
  18. package/dist/esm/chip-field/index.js +1 -1
  19. package/dist/esm/chips/chip/index.js +1 -1
  20. package/dist/esm/chips/chip-set/index.js +1 -1
  21. package/dist/esm/chips/index.js +1 -1
  22. package/dist/esm/chunks/{chunk.I33ZJKOX.js → chunk.2SAHWDGJ.js} +2 -2
  23. package/dist/esm/chunks/{chunk.I33ZJKOX.js.map → chunk.2SAHWDGJ.js.map} +0 -0
  24. package/dist/esm/chunks/chunk.2VFX652S.js +12 -0
  25. package/dist/esm/chunks/{chunk.52JUDHTJ.js.map → chunk.2VFX652S.js.map} +0 -0
  26. package/dist/esm/chunks/{chunk.24BSMZM3.js → chunk.4HI4HGZ6.js} +2 -2
  27. package/dist/esm/chunks/{chunk.24BSMZM3.js.map → chunk.4HI4HGZ6.js.map} +0 -0
  28. package/dist/esm/chunks/{chunk.DGQAYNAF.js → chunk.4KBQ5AJJ.js} +2 -2
  29. package/dist/esm/chunks/{chunk.DGQAYNAF.js.map → chunk.4KBQ5AJJ.js.map} +0 -0
  30. package/dist/esm/chunks/{chunk.XURVHDKR.js → chunk.4WFU5CVF.js} +2 -2
  31. package/dist/esm/chunks/{chunk.XURVHDKR.js.map → chunk.4WFU5CVF.js.map} +0 -0
  32. package/dist/esm/chunks/{chunk.55JE4FLS.js → chunk.5PQTSZ7G.js} +2 -2
  33. package/dist/esm/chunks/{chunk.55JE4FLS.js.map → chunk.5PQTSZ7G.js.map} +0 -0
  34. package/dist/esm/chunks/{chunk.EM3OQRZP.js → chunk.77FVTUTL.js} +2 -2
  35. package/dist/esm/chunks/{chunk.EM3OQRZP.js.map → chunk.77FVTUTL.js.map} +0 -0
  36. package/dist/esm/chunks/chunk.7GTCDP5H.js +7 -0
  37. package/dist/esm/chunks/{chunk.JB6U32SJ.js.map → chunk.7GTCDP5H.js.map} +2 -2
  38. package/dist/esm/chunks/{chunk.KLHXGSZU.js → chunk.7O7V3N4A.js} +2 -2
  39. package/dist/esm/chunks/{chunk.KLHXGSZU.js.map → chunk.7O7V3N4A.js.map} +0 -0
  40. package/dist/esm/chunks/{chunk.ESW45SN4.js → chunk.7PHGAX6P.js} +2 -2
  41. package/dist/esm/chunks/{chunk.ESW45SN4.js.map → chunk.7PHGAX6P.js.map} +0 -0
  42. package/dist/esm/chunks/{chunk.VEVOKTUX.js → chunk.7TKJAZTM.js} +2 -2
  43. package/dist/esm/chunks/{chunk.VEVOKTUX.js.map → chunk.7TKJAZTM.js.map} +0 -0
  44. package/dist/esm/chunks/{chunk.WAEWHBHE.js → chunk.APGFXXJ7.js} +2 -2
  45. package/dist/esm/chunks/{chunk.WAEWHBHE.js.map → chunk.APGFXXJ7.js.map} +0 -0
  46. package/dist/esm/chunks/{chunk.5GFDXNIU.js → chunk.BFNAQQCU.js} +2 -2
  47. package/dist/esm/chunks/{chunk.5GFDXNIU.js.map → chunk.BFNAQQCU.js.map} +0 -0
  48. package/dist/esm/chunks/{chunk.G5BCWBD5.js → chunk.BOENNFXE.js} +2 -2
  49. package/dist/esm/chunks/{chunk.G5BCWBD5.js.map → chunk.BOENNFXE.js.map} +0 -0
  50. package/dist/esm/chunks/chunk.CVJTQY2T.js +7 -0
  51. package/dist/esm/chunks/chunk.CVJTQY2T.js.map +7 -0
  52. package/dist/esm/chunks/{chunk.RS5NH2NG.js → chunk.FPV4XEUK.js} +2 -2
  53. package/dist/esm/chunks/{chunk.RS5NH2NG.js.map → chunk.FPV4XEUK.js.map} +0 -0
  54. package/dist/esm/chunks/{chunk.WZRXUTYC.js → chunk.G77PXLAU.js} +2 -2
  55. package/dist/esm/chunks/{chunk.WZRXUTYC.js.map → chunk.G77PXLAU.js.map} +0 -0
  56. package/dist/esm/chunks/{chunk.2A3CKLXJ.js → chunk.I2YRKTG7.js} +2 -2
  57. package/dist/esm/chunks/{chunk.2A3CKLXJ.js.map → chunk.I2YRKTG7.js.map} +0 -0
  58. package/dist/esm/chunks/{chunk.AFZB3MG5.js → chunk.IFZXG3LI.js} +2 -2
  59. package/dist/esm/chunks/{chunk.AFZB3MG5.js.map → chunk.IFZXG3LI.js.map} +0 -0
  60. package/dist/esm/chunks/{chunk.OHCHNL3V.js → chunk.JNOCXQVB.js} +2 -2
  61. package/dist/esm/chunks/{chunk.OHCHNL3V.js.map → chunk.JNOCXQVB.js.map} +2 -2
  62. package/dist/esm/chunks/chunk.K6LZM6DS.js +7 -0
  63. package/dist/esm/chunks/{chunk.SFFYXKJW.js.map → chunk.K6LZM6DS.js.map} +2 -2
  64. package/dist/esm/chunks/{chunk.5SRA2RH3.js → chunk.KKF2ZZMD.js} +2 -2
  65. package/dist/esm/chunks/{chunk.5SRA2RH3.js.map → chunk.KKF2ZZMD.js.map} +0 -0
  66. package/dist/esm/chunks/chunk.KYCC3C3M.js +7 -0
  67. package/dist/esm/chunks/{chunk.AABG6MSC.js.map → chunk.KYCC3C3M.js.map} +2 -2
  68. package/dist/esm/chunks/{chunk.NEGJYSPB.js → chunk.LLHA3SQR.js} +2 -2
  69. package/dist/esm/chunks/{chunk.NEGJYSPB.js.map → chunk.LLHA3SQR.js.map} +0 -0
  70. package/dist/esm/chunks/{chunk.JXQZMASB.js → chunk.OAKTW64X.js} +2 -2
  71. package/dist/esm/chunks/{chunk.JXQZMASB.js.map → chunk.OAKTW64X.js.map} +0 -0
  72. package/dist/esm/chunks/{chunk.CSOY4C7A.js → chunk.OG2BI3UW.js} +2 -2
  73. package/dist/esm/chunks/{chunk.CSOY4C7A.js.map → chunk.OG2BI3UW.js.map} +2 -2
  74. package/dist/esm/chunks/{chunk.NJHQA266.js → chunk.OPTMTRWL.js} +2 -2
  75. package/dist/esm/chunks/{chunk.NJHQA266.js.map → chunk.OPTMTRWL.js.map} +0 -0
  76. package/dist/esm/chunks/{chunk.AHOQXJRN.js → chunk.P6B3UWJ5.js} +2 -2
  77. package/dist/esm/chunks/{chunk.AHOQXJRN.js.map → chunk.P6B3UWJ5.js.map} +0 -0
  78. package/dist/esm/chunks/{chunk.W7UTHKBF.js → chunk.Q6L7T6OJ.js} +2 -2
  79. package/dist/esm/chunks/{chunk.W7UTHKBF.js.map → chunk.Q6L7T6OJ.js.map} +0 -0
  80. package/dist/esm/chunks/{chunk.WGE5R5JK.js → chunk.QBDE7M3E.js} +2 -2
  81. package/dist/esm/chunks/{chunk.WGE5R5JK.js.map → chunk.QBDE7M3E.js.map} +0 -0
  82. package/dist/esm/chunks/{chunk.DJSOBAWA.js → chunk.SJSLC6XF.js} +2 -2
  83. package/dist/esm/chunks/{chunk.DJSOBAWA.js.map → chunk.SJSLC6XF.js.map} +0 -0
  84. package/dist/esm/chunks/{chunk.YFIDBZ7V.js → chunk.SLZFPWOH.js} +2 -2
  85. package/dist/esm/chunks/{chunk.YFIDBZ7V.js.map → chunk.SLZFPWOH.js.map} +0 -0
  86. package/dist/esm/chunks/{chunk.WKKNDQYZ.js → chunk.SVHVGMKS.js} +2 -2
  87. package/dist/esm/chunks/{chunk.WKKNDQYZ.js.map → chunk.SVHVGMKS.js.map} +0 -0
  88. package/dist/esm/chunks/{chunk.WMO47F6Z.js → chunk.TLHI6K2R.js} +2 -2
  89. package/dist/esm/chunks/{chunk.WMO47F6Z.js.map → chunk.TLHI6K2R.js.map} +0 -0
  90. package/dist/esm/chunks/{chunk.6BKOGBE6.js → chunk.TR64DV3G.js} +2 -2
  91. package/dist/esm/chunks/{chunk.6BKOGBE6.js.map → chunk.TR64DV3G.js.map} +0 -0
  92. package/dist/esm/chunks/chunk.UHVCXKB4.js +7 -0
  93. package/dist/esm/chunks/chunk.UHVCXKB4.js.map +7 -0
  94. package/dist/esm/chunks/{chunk.MTMZFAWU.js → chunk.V7P3QPNM.js} +2 -2
  95. package/dist/esm/chunks/{chunk.MTMZFAWU.js.map → chunk.V7P3QPNM.js.map} +0 -0
  96. package/dist/esm/chunks/{chunk.DFUNN5IP.js → chunk.WALEAV54.js} +2 -2
  97. package/dist/esm/chunks/{chunk.DFUNN5IP.js.map → chunk.WALEAV54.js.map} +0 -0
  98. package/dist/esm/chunks/{chunk.SNGELGOD.js → chunk.WV45FGTW.js} +2 -2
  99. package/dist/esm/chunks/{chunk.SNGELGOD.js.map → chunk.WV45FGTW.js.map} +0 -0
  100. package/dist/esm/chunks/{chunk.RZL6S3K3.js → chunk.Y6MPWPZU.js} +2 -2
  101. package/dist/esm/chunks/{chunk.RZL6S3K3.js.map → chunk.Y6MPWPZU.js.map} +0 -0
  102. package/dist/esm/chunks/{chunk.7TQYFMM4.js → chunk.YAJT3P6V.js} +2 -2
  103. package/dist/esm/chunks/{chunk.7TQYFMM4.js.map → chunk.YAJT3P6V.js.map} +0 -0
  104. package/dist/esm/chunks/{chunk.57XBS3DF.js → chunk.YSE5EMB3.js} +2 -2
  105. package/dist/esm/chunks/{chunk.57XBS3DF.js.map → chunk.YSE5EMB3.js.map} +0 -0
  106. package/dist/esm/chunks/{chunk.KZHMDZVS.js → chunk.YWKKZLZ2.js} +2 -2
  107. package/dist/esm/chunks/{chunk.KZHMDZVS.js.map → chunk.YWKKZLZ2.js.map} +0 -0
  108. package/dist/esm/chunks/{chunk.77WNSJ3T.js → chunk.YX5SWK3O.js} +2 -2
  109. package/dist/esm/chunks/{chunk.77WNSJ3T.js.map → chunk.YX5SWK3O.js.map} +0 -0
  110. package/dist/esm/chunks/{chunk.7WWP6WI6.js → chunk.Z5P6EA5L.js} +2 -2
  111. package/dist/esm/chunks/{chunk.7WWP6WI6.js.map → chunk.Z5P6EA5L.js.map} +0 -0
  112. package/dist/esm/chunks/chunk.ZFUVXYDL.js +7 -0
  113. package/dist/esm/chunks/chunk.ZFUVXYDL.js.map +7 -0
  114. package/dist/esm/chunks/{chunk.5HUDHTAK.js → chunk.ZHXPL2MS.js} +2 -2
  115. package/dist/esm/chunks/{chunk.5HUDHTAK.js.map → chunk.ZHXPL2MS.js.map} +0 -0
  116. package/dist/esm/color-picker/index.js +1 -1
  117. package/dist/esm/core/index.js +1 -1
  118. package/dist/esm/core/utils/index.js +1 -1
  119. package/dist/esm/date-picker/index.js +1 -1
  120. package/dist/esm/date-range-picker/index.js +1 -1
  121. package/dist/esm/dialog/index.js +1 -1
  122. package/dist/esm/expansion-panel/index.js +1 -1
  123. package/dist/esm/file-picker/index.js +1 -1
  124. package/dist/esm/icon/index.js +1 -1
  125. package/dist/esm/icon-button/index.js +1 -1
  126. package/dist/esm/index.js +1 -1
  127. package/dist/esm/list-dropdown/index.js +1 -1
  128. package/dist/esm/menu/index.js +1 -1
  129. package/dist/esm/open-icon/index.js +1 -1
  130. package/dist/esm/paginator/index.js +1 -1
  131. package/dist/esm/profile-card/index.js +1 -1
  132. package/dist/esm/quantity-field/index.js +1 -1
  133. package/dist/esm/select/core/index.js +1 -1
  134. package/dist/esm/select/index.js +1 -1
  135. package/dist/esm/select/select/index.js +1 -1
  136. package/dist/esm/select/select-dropdown/index.js +1 -1
  137. package/dist/esm/slider/index.js +1 -1
  138. package/dist/esm/split-view/index.js +1 -1
  139. package/dist/esm/split-view/split-view/index.js +1 -1
  140. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  141. package/dist/esm/stepper/index.js +1 -1
  142. package/dist/esm/stepper/step/index.js +1 -1
  143. package/dist/esm/stepper/stepper/index.js +1 -1
  144. package/dist/esm/switch/index.js +1 -1
  145. package/dist/esm/table/index.js +1 -1
  146. package/dist/esm/tabs/index.js +1 -1
  147. package/dist/esm/tabs/tab-bar/index.js +1 -1
  148. package/dist/esm/time-picker/index.js +1 -1
  149. package/dist/esm/toast/index.js +1 -1
  150. package/dist/esm/toolbar/index.js +1 -1
  151. package/esm/autocomplete/autocomplete-adapter.d.ts +2 -0
  152. package/esm/autocomplete/autocomplete-adapter.js +10 -0
  153. package/esm/autocomplete/autocomplete-foundation.d.ts +1 -0
  154. package/esm/autocomplete/autocomplete-foundation.js +9 -0
  155. package/esm/core/utils/utils.d.ts +6 -0
  156. package/esm/core/utils/utils.js +10 -0
  157. package/esm/expansion-panel/expansion-panel-foundation.js +2 -2
  158. package/esm/menu/menu-foundation.d.ts +1 -0
  159. package/esm/menu/menu-foundation.js +6 -3
  160. package/esm/select/core/base-select-adapter.d.ts +2 -0
  161. package/esm/select/core/base-select-adapter.js +17 -7
  162. package/esm/select/core/base-select-foundation.d.ts +1 -0
  163. package/esm/select/core/base-select-foundation.js +7 -0
  164. package/esm/split-view/split-view/split-view-adapter.d.ts +4 -0
  165. package/esm/split-view/split-view/split-view-adapter.js +7 -1
  166. package/esm/split-view/split-view/split-view-foundation.d.ts +4 -0
  167. package/esm/split-view/split-view/split-view-foundation.js +12 -0
  168. package/esm/split-view/split-view/split-view.d.ts +5 -0
  169. package/esm/split-view/split-view/split-view.js +5 -0
  170. package/esm/split-view/split-view-panel/split-view-panel-foundation.js +2 -2
  171. package/esm/split-view/split-view-panel/split-view-panel.d.ts +5 -0
  172. package/esm/split-view/split-view-panel/split-view-panel.js +6 -1
  173. package/esm/toolbar/toolbar.js +1 -1
  174. package/package.json +1 -1
  175. package/styles/toolbar/_mixins.scss +2 -2
  176. package/styles/toolbar/toolbar.scss +6 -0
  177. package/dist/esm/chunks/chunk.52JUDHTJ.js +0 -12
  178. package/dist/esm/chunks/chunk.AABG6MSC.js +0 -7
  179. package/dist/esm/chunks/chunk.HMZ24WLE.js +0 -7
  180. package/dist/esm/chunks/chunk.HMZ24WLE.js.map +0 -7
  181. package/dist/esm/chunks/chunk.JB6U32SJ.js +0 -7
  182. package/dist/esm/chunks/chunk.OWTGOW7S.js +0 -7
  183. package/dist/esm/chunks/chunk.OWTGOW7S.js.map +0 -7
  184. package/dist/esm/chunks/chunk.SFFYXKJW.js +0 -7
  185. package/dist/esm/chunks/chunk.WSGJIPQJ.js +0 -7
  186. package/dist/esm/chunks/chunk.WSGJIPQJ.js.map +0 -7
@@ -3,5 +3,5 @@
3
3
  * Copyright 2022 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a as rt}from"./chunk.E37HEAJ5.js";import{d as at}from"./chunk.57XBS3DF.js";import{a as f,b as nt}from"./chunk.IMK2LFWR.js";import{h as st}from"./chunk.WGE5R5JK.js";import{c as et}from"./chunk.D3DLVPPE.js";import{e as tt}from"./chunk.7JTKKFL4.js";import{e as it}from"./chunk.DRFU6POI.js";import{a as E,b as ot}from"./chunk.G5BCWBD5.js";import{j as K}from"./chunk.LZMYHIO2.js";import{a as F}from"./chunk.D4SNVKDA.js";import{a as Q,d as Z,l as w}from"./chunk.7TQYFMM4.js";import{a as $}from"./chunk.24D46RLZ.js";import{g as J}from"./chunk.7ZS4N2FT.js";import{j as b,k as X,m as G,n as q,o as Y,p as j}from"./chunk.AABG6MSC.js";import{a as z}from"./chunk.A23NSEWA.js";import{a as u}from"./chunk.B3IJU6XJ.js";import{a as R,b as B}from"./chunk.BSZ2LBJX.js";import{a as W}from"./chunk.3E5QKMHL.js";import{a as N,e as H,g as V,i as U}from"./chunk.HN4PXH3D.js";import{m as A,s as P,u as x}from"./chunk.R4NDFXVA.js";import{a as S,k as c,l as L,o as y}from"./chunk.G76HB2FK.js";import{a as k,f as p}from"./chunk.MCIQXNKY.js";var h=`${B}time-picker`,lt={TOGGLE:"forge-time-picker-toggle",VALUE:"value",OPEN:"open",ALLOW_SECONDS:"allow-seconds",MASKED:"masked",SHOW_MASK_FORMAT:"show-mask-format",USE_24_HOUR_TIME:"use-24-hour-time",ALLOW_INVALID_TIME:"allow-invalid-time",MIN:"min",MAX:"max",START_TIME:"start-time",STEP:"step",ALLOW_INPUT:"allow-input",SHOW_NOW:"show-now",SHOW_HOUR_OPTIONS:"show-hour-options",DISABLED:"disabled",POPUP_CLASSES:"popup-classes",ALLOW_DROPDOWN:"allow-dropdown"},ft={INPUT:"input, input[forge-time-picker-input]",TOGGLE:`[${lt.TOGGLE}]`},gt={OPEN:`${h}-open`,CLOSE:`${h}-close`,INPUT:`${h}-input`,CHANGE:`${h}-change`},vt={DEFAULT_MINUTE_STEP:60,MAX_DAY_MILLIS:864e5,MAX_DAY_MINUTES:1440},s={elementName:h,attributes:lt,selectors:ft,events:gt,numbers:vt};var g=class extends z{constructor(e){super(e)}initialize(){this._inputElement=this._component.querySelector(s.selectors.INPUT)}initializeMask(e){this._inputMask&&this._inputMask.destroy(),this._inputMask=new J(this._inputElement,e)}destroy(){this._targetElement=void 0,this._toggleElement=void 0,this._inputElement=void 0}destroyMask(){this._inputMask&&(this._inputMask.destroy(),this._inputMask=void 0)}initializeAccessibility(e){this._inputElement.setAttribute("autocomplete","off"),this._inputElement.setAttribute("autocorrect","off"),this._inputElement.setAttribute("autocapitalize","off"),this._inputElement.setAttribute("spellcheck","false"),this._inputElement.setAttribute("role","combobox"),this._inputElement.setAttribute("aria-live","assertive"),this._inputElement.setAttribute("aria-atomic","true"),this._inputElement.setAttribute("aria-haspopup","true"),this._inputElement.setAttribute("aria-expanded","false")}addInputListener(e,i,n){this._inputElement.addEventListener(e,i,{capture:n})}removeInputListener(e,i,n){this._inputElement&&this._inputElement.removeEventListener(e,i,{capture:n})}addToggleListener(e,i){this._toggleElement&&this._toggleElement.addEventListener(e,i)}removeToggleListener(e,i){this._toggleElement&&this._toggleElement.removeEventListener(e,i)}hasInputElement(){return!!this._inputElement}tryCreateToggle(){let e=this._component.querySelector(f.elementName),i=this._component.querySelector(s.selectors.TOGGLE);if(e){let n=e.querySelector(`${E.elementName}[slot=trailing]`);if(n||i){this._toggleElement=n||i;return}let l=document.createElement(E.elementName);l.slot="trailing",l.dense=!0,l.densityLevel=3,l.style.marginRight="4px";let o=document.createElement("button");o.type="button",o.tabIndex=-1,o.setAttribute("aria-label","Toggle time dropdown");let d=document.createElement(Q.elementName);d.name="clock_outline",o.appendChild(d),l.appendChild(o),e.appendChild(l),this._toggleElement=l}else i&&(this._toggleElement=i)}tryFocusInput(){this._inputElement.select()}tryBlurInput(){this._inputElement.blur()}selectInputText(){this._inputElement.select()}isInputDisabled(){return this._inputElement.disabled}isInputFocused(){return P()===this._inputElement}setInputValue(e,i){this._inputElement.value!==e&&(this._inputElement.value=e,this._inputMask&&this._inputMask.update(),i&&(this._emitInputEvent("change"),this._emitInputEvent("input")))}getInputValue(){return this._inputMask?this._inputMask.maskedValue:this._inputElement.value}setDisabled(e){this._inputElement.disabled=e,this._inputElement.setAttribute("aria-disabled",e.toString()),this.setToggleDisabled(e)}attachDropdown(e){this._listDropdown=new st(this._inputElement,e),this._listDropdown.open(),this._inputElement.setAttribute("aria-controls",`list-dropdown-popup-${e.id}`)}detachDropdown(){this._listDropdown&&(this._listDropdown.close(),this._listDropdown.destroy(),this._listDropdown=void 0),this._inputElement.removeAttribute("aria-controls")}propagateKey(e){var i;(i=this._listDropdown)==null||i.handleKey(e)}setActiveDescendant(e){x(this._inputElement,!!e,"aria-activedescendant",e)}getTargetElementWidth(e){return this._getTargetElement(e).getBoundingClientRect().width}_emitInputEvent(e){this._inputElement.dispatchEvent(new Event(e))}emitInputEvent(e,i){U(this._inputElement,e,i)}setInputReadonly(e){this._inputElement.readOnly=e}setToggleDisabled(e){if(this._toggleElement)if(this._toggleElement.setAttribute("aria-disabled",e.toString()),"disabled"in this._toggleElement)this._toggleElement.disabled=e;else{let i=this._toggleElement.querySelector("button");i&&(i.disabled=e)}}activateFirstOption(){var e;(e=this._listDropdown)==null||e.activateFirstOption()}getActiveOption(){var e;return(e=this._listDropdown)==null?void 0:e.getActiveOption()}_getTargetElement(e){return this._targetElement?this._targetElement:(this._targetElement=e?this._component.querySelector(e)||this._getDefaultTargetElement():this._getDefaultTargetElement(),this._targetElement)}_getDefaultTargetElement(){let e=this._component.querySelector(f.elementName);if(e&&e.shadowRoot){let i=V(e,f.selectors.ROOT);if(i)return i}return this._component}};function C(a,t,e){if(!a||/^\s*$/.test(a))return null;let i=0,n=0,l=0;if(b.test(a)){let o=G(a);i=+o.hours||0,n=+o.minutes||0,l=+o.seconds||0}else if(X.test(a)){let o=q(a);i=+o.hours||0,n=+o.minutes||0,l=+o.seconds||0,i===12&&o.meridiem==="AM"&&(i=0),i<12&&o.meridiem==="PM"&&(i+=12)}else return null;return dt(i)+I(n)+(e?O(l):0)}function m(a,t,e){if(typeof a!="number"||a<0)return null;let i=Math.min(pt(a),23),n=Math.min(ut(a),59),o=a/(1e3*60)<720?"AM":"PM";t||(i=i<=12?i:i-12,i===0&&(i=12));let d=`${String(i).padStart(2,"0")}:${String(n).padStart(2,"0")}`;if(e){let _=Math.min(M(a),59);d+=`:${String(_).padStart(2,"0")}`}return t||(d+=` ${o}`),d}function pt(a){return Math.abs(Math.floor(a/(1e3*60*60)))}function ut(a){return Math.abs(Math.floor(v(a)%60))}function v(a){return a/(1e3*60)}function M(a){return Math.abs(Math.floor(It(a)%60))}function It(a){return a/1e3}function dt(a){return a*60*60*1e3}function I(a){return a*60*1e3}function O(a){return a*1e3}function mt(a){return a-O(M(a))}function D(a){let t=new Date,e=t.getHours(),i=t.getMinutes();return dt(e)+I(i)+(a?O(t.getSeconds()):0)}function Rt(a,t,e=!1){a||(a=new Date);let i=C(t,!0,e);if(!i)return a.setHours(0,0,0),a;let n=pt(i),l=828e5;n>l?n=l:n<0&&(n=0);let o=ut(i),d=e?M(i):0;return a.setHours(n,o,d),a}var T=class{constructor(t){this._adapter=t;this._value=null;this._masked=!0;this._use24HourTime=!1;this._showMaskFormat=!1;this._min=null;this._max=null;this._restrictedTimes=[];this._startTime=null;this._step=s.numbers.DEFAULT_MINUTE_STEP;this._allowInput=!0;this._open=!1;this._allowSeconds=!1;this._allowInvalidTime=!1;this._showNow=!1;this._showHourOptions=!0;this._customOptions=[];this._disabled=!1;this._popupClasses=[];this._allowDropdown=!0;this._isInitialized=!1;this._identifier=S(),this._inputListener=e=>this._onInput(e),this._inputKeydownListener=e=>this._onInputKeydown(e),this._toggleMousedownListener=e=>this._onToggleMousedown(e),this._inputFocusListener=e=>this._onInputFocus(e),this._inputBlurListener=e=>this._onInputBlur(e),this._inputMousedownListener=e=>this._onInputMousedown(e)}initialize(){if(this._adapter.initialize(),!this._adapter.hasInputElement())throw new Error("Unable to locate <input> element to attach to.");if(this._adapter.initializeAccessibility(this._identifier),!this._value){let t=this._adapter.getInputValue();this._setValue(this._convertTimeStringToMillis(t,this._use24HourTime,this._allowSeconds))}this._adapter.addInputListener("focus",this._inputFocusListener),this._adapter.addInputListener("blur",this._inputBlurListener),this._adapter.addInputListener("keydown",this._inputKeydownListener,!0),this._formatInputValue(!1),typeof this._value=="number"&&this._applyValue(this._value,!1),this._applyAllowInput(),this._applyAllowDropdown(),this._applyDisabled(),this._applyMask(),this._isInitialized=!0}disconnect(){this._isInitialized=!1,this._adapter.removeInputListener("input",this._inputListener),this._adapter.removeInputListener("focus",this._inputFocusListener),this._adapter.removeInputListener("blur",this._inputBlurListener),this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.removeInputListener("keydown",this._inputKeydownListener,!0),this._masked&&this._adapter.destroyMask(),this._closeDropdown(),this._adapter.destroy()}_onInput(t){this._handleInput(this._adapter.getInputValue())}_onInputKeydown(t){if(t.shiftKey)switch(t.code){case"Backspace":case"Delete":t.preventDefault(),this._trySetValue(null)&&this._formatInputValue();return}switch(t.code){case"Tab":this._open&&this._selectActiveOption();break;case"Esc":case"Escape":this._open&&(t.preventDefault(),this._closeDropdown(!0));break;case"Down":case"ArrowDown":this._allowDropdown&&(t.preventDefault(),this._open?this._adapter.propagateKey(t.code):(this._openDropdown(),this._adapter.activateFirstOption()));break;case"Up":case"ArrowUp":this._allowDropdown&&(t.preventDefault(),this._open&&this._adapter.propagateKey(t.code));break;case"Enter":case"Home":case"End":this._open&&(t.code==="Enter"&&t.stopPropagation(),t.preventDefault(),this._adapter.propagateKey(t.code));break;case"KeyN":t.preventDefault();let e=D(this._allowSeconds);if(this._value!==e){let i=m(e,!0,this._allowSeconds);this._emitChangeEvent(i)&&(this._applyValue(e),this._selectInputText())}break}}_selectActiveOption(){let t=this._adapter.getActiveOption();t&&this._onSelect(t.value)}_onToggleMousedown(t){this._disabled||!this.allowDropdown||(t.stopPropagation(),!this._adapter.isInputDisabled()&&(t.preventDefault(),this._open?this._closeDropdown(!0):(F.isMobile?this._adapter.tryBlurInput():this._adapter.tryFocusInput(),this._openDropdown())))}_onInputFocus(t){this._allowInput&&this._adapter.selectInputText()}_onInputBlur(t){this._formatInputValue(),this._open&&!this._adapter.isInputFocused()&&this._closeDropdown(!0)}_onInputMousedown(t){!this._allowInput&&!this._open&&(this._openDropdown(),this._adapter.tryFocusInput(),window.requestAnimationFrame(()=>this._adapter.selectInputText()))}_applyDisabled(){this._adapter.setDisabled(this._disabled)}_applyMask(){if(this._masked&&this._allowInput){let t={showMaskFormat:this._showMaskFormat,use24HourTime:this._use24HourTime,showSeconds:this._allowSeconds,prepareCallback:this._prepareMaskCallback,onChange:y(e=>this._handleInput(e),0,!0)};this._adapter.initializeMask(t)}else this._adapter.destroyMask(),this._formatInputValue()}_applyAllowInput(){this._adapter.setInputReadonly(!this._allowInput),this._allowInput?(this._adapter.removeInputListener("mousedown",this._inputMousedownListener),this._masked||this._adapter.addInputListener("input",this._inputListener)):(this._adapter.addInputListener("mousedown",this._inputMousedownListener),this._adapter.removeInputListener("input",this._inputListener))}_applyAllowDropdown(){this._adapter.setToggleDisabled(!this._allowDropdown),this._allowDropdown?(this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.tryCreateToggle(),this._adapter.addToggleListener("mousedown",this._toggleMousedownListener)):this._open&&this._closeDropdown(!0)}_applyAllowSeconds(){let t=this._value;if(this._allowSeconds){if(this._isInitialized&&t!==this._value){let e=m(this._value,!0,!0);this._emitChangeEvent(e)}}else{if(typeof this._value!="number")return;if(this._setValue(mt(this._value)),this._isInitialized&&t!==this._value){let e=m(this._value,!0,!1);this._emitChangeEvent(e)}}}_handleInput(t){let e=t;if(!this._allowInput)return;this._open&&this._closeDropdown(!0),t=j(t,this._use24HourTime,this._allowSeconds),typeof this._coercionCallback=="function"&&(t=this._coercionCallback.call(null,e,t,this._allowSeconds)),this._isValidTimeFormat(t)||(t="");let i;!this._masked&&typeof this._parseCallback=="function"?i=this._parseCallback.call(null,t):i=this._convertTimeStringToMillis(t,this._use24HourTime,this._allowSeconds),i=this._validateMillis(i),this._trySetValue(i)}_emitChangeEvent(t,e=!1){return this._adapter.emitHostEvent(s.events.CHANGE,t,!0,!e)}_trySetValue(t){if(t===this._value)return!1;let e=m(t,!0,this._allowSeconds);return this._masked&&this._adapter.emitInputEvent(s.events.INPUT,e),this._value!==t&&this._emitChangeEvent(e)?(this._setValue(t),!0):!1}_setValue(t){this._value=this._normalizeTimeValue(t)}_validateMillis(t){if(typeof t=="number"){let e=typeof this._min=="number"&&t<this._min,i=typeof this._max=="number"&&t>this._max;(e||i)&&(t=null)}return typeof t=="number"&&this._restrictedTimes.length&&this._restrictedTimes.includes(t)&&(t=null),t}_isValidTimeFormat(t){return!this._masked&&typeof this._validationCallback=="function"?this._validationCallback.call(this,t):Y(t)}_isValidInputValue(t){return b.test(t)}_onSelect(t){if(this._closeDropdown(!0),!t.isCustom&&t.metadata==="now"&&(t.time=D(this._allowSeconds)),t.isCustom)if(typeof t.customCallback=="function"){let n=t.customCallback.call(null,t.metadata);if(typeof n!="number")throw new Error("Custom options must provide a time of day value in milliseconds.");t.time=n}else throw new Error("You must implement a `toMilliseconds` callback that returns the time value to use for this custom option.");if(this._value===t.time)return;let e=m(t.time,!0,this._allowSeconds);!this._emitChangeEvent(e)||(this._applyValue(t.time),this._selectInputText())}_selectInputText(){window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{this._adapter.isInputFocused()&&this._adapter.selectInputText()})})}_applyValue(t,e=!0){this._setValue(t);let i=this._formatValue(this._value);this._adapter.getInputValue()!==i&&this._adapter.setInputValue(i,e)}_normalizeTimeValue(t){return t==null?null:t<0?0:t>s.numbers.MAX_DAY_MILLIS?s.numbers.MAX_DAY_MILLIS:t}_openDropdown(){let t=this._generateTimeOptions();if(!this.allowDropdown||!t.length)return;this._formatInputValue(),this._open=!0,this._adapter.setHostAttribute(s.attributes.OPEN);let e=t.filter(o=>!o.divider&&!o.disabled),i=[],n;if(t.length){if(this._value!=null){let o=this._findClosestOptionIndex(this._value,e);o>=0&&(e[o].value.time===this._value?i=[e[o].value]:n=o)}else if(typeof this._startTime=="number"){let o=this._findClosestOptionIndex(this._startTime,e);o>=0&&o<e.length&&(n=o)}}let l={id:`forge-time-picker-${this._identifier}`,selectedValues:i,syncWidth:!0,activeStartIndex:n,popupClasses:this._popupClasses,popupStatic:!0,type:"standard",options:t,selectCallback:o=>this._onSelect(o),closeCallback:()=>this._closeDropdown(!0),activeChangeCallback:o=>this._adapter.setActiveDescendant(o),targetWidthCallback:()=>this._adapter.getTargetElementWidth(this._popupTarget)};this._adapter.attachDropdown(l),this._adapter.emitHostEvent(s.events.OPEN,void 0,!1)}_closeDropdown(t=!1){this._open=!1,this._adapter.removeHostAttribute(s.attributes.OPEN),this._adapter.detachDropdown(),t&&this._adapter.emitHostEvent(s.events.CLOSE,!0,!1)}_findClosestOptionIndex(t,e){let i=e.reduce((n,l)=>Math.abs((l.value.time||0)-t)<Math.abs((n.value.time||0)-t)?l:n);return e.indexOf(i)}_formatInputValue(t=!0){let e=this._adapter.getInputValue();if(this._allowInvalidTime&&!this._masked&&e&&!this._value)return;let i=this._formatValue(this._value);e!==i&&this._adapter.setInputValue(i,t)}_generateTimeOptions(){let t=this._min!=null?Math.max(v(this._min),0):0,e=this._max!=null?Math.min(v(this._max),s.numbers.MAX_DAY_MINUTES):s.numbers.MAX_DAY_MINUTES,i=this._step,n=[],l=[];if(this._showHourOptions){for(let d=t;d<=e&&d!==s.numbers.MAX_DAY_MINUTES;d+=i){let _=I(d),_t=this._restrictedTimes.includes(_),ht=m(_,this._use24HourTime,!1)||"",bt={time:_};n.push({label:ht,value:bt,disabled:_t})}let o=n.findIndex(d=>d.value.time/1e3/60>=720);o>=0&&o<n.length-1&&n.splice(o,0,{label:"",value:null,divider:!0})}if(this._showNow){let o={time:null,metadata:"now"};l.push({label:"Now",value:o})}if(Array.isArray(this._customOptions)&&this._customOptions.length){let o=this._customOptions.map(d=>{let _={time:null,metadata:d.value,isCustom:!0,customCallback:d.toMilliseconds};return{label:d.label,value:_}});l=[...l,...o]}return l.length&&(n.length&&n.splice(0,0,{label:"",value:null,divider:!0}),l.forEach((o,d)=>n.splice(d,0,o))),n}_convertTimeStringToMillis(t,e,i){return(!t||!this._isValidTimeFormat(t))&&(t=""),C(t,e,i)}_formatValue(t){return!this._masked&&typeof this._formatCallback=="function"?this._formatCallback.call(null,t,this._use24HourTime,this._allowSeconds):m(this._value,this._use24HourTime,this._allowSeconds)||""}_warnInvalidFormat(t){console.warn(`The specified value "${t}" does not conform to the required format. The format is "HH:mm", "HH:mm:ss" where HH is 00-23, mm is 00-59, and ss is 00-59.`)}get open(){return this._open}set open(t){this._open!==t&&this._isInitialized&&(this._open=t,this._open?this._openDropdown():this._closeDropdown())}get masked(){return this._masked}set masked(t){this._masked!==t&&(this._masked=t,this._isInitialized&&(this._masked?(this._adapter.removeInputListener("input",this._inputListener),this._applyMask()):(this._adapter.destroyMask(),this._formatInputValue(),this._adapter.addInputListener("input",this._inputListener))))}get showMaskFormat(){return this._showMaskFormat}set showMaskFormat(t){this._showMaskFormat!==t&&(this._showMaskFormat=t,this._isInitialized&&this._applyMask())}get allowSeconds(){return this._allowSeconds}set allowSeconds(t){this._allowSeconds!==t&&(this._allowSeconds=!!t,this._applyAllowSeconds(),this._isInitialized&&(this._applyMask(),this._formatInputValue()),this._adapter.setHostAttribute(s.attributes.ALLOW_SECONDS,`${!!t}`))}get use24HourTime(){return this._use24HourTime}set use24HourTime(t){this._use24HourTime!==t&&(this._use24HourTime=!!t,this._isInitialized&&(this._adapter.destroyMask(),this._formatInputValue(),this._applyMask()),this._adapter.setHostAttribute(s.attributes.USE_24_HOUR_TIME,`${!!t}`))}get allowInvalidTime(){return this._allowInvalidTime}set allowInvalidTime(t){this._allowInvalidTime!==t&&(this._allowInvalidTime=!!t,this._adapter.setHostAttribute(s.attributes.ALLOW_INVALID_TIME,`${!!t}`))}get value(){return m(this._value,!0,this._allowSeconds)}set value(t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}let e=this._validateMillis(this._convertTimeStringToMillis(t,!0,!0));this._setValue(e),this._isInitialized&&this._applyValue(this._value)}get min(){return m(this._min,!0,this._allowSeconds)}set min(t){if(this._min!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._min=this._convertTimeStringToMillis(t,!0,this._allowSeconds);let e=this._validateMillis(this._value);this._setValue(e),this._isInitialized&&this._applyValue(e)}}get max(){return m(this._max,!0,this._allowSeconds)}set max(t){if(this._max!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._max=this._convertTimeStringToMillis(t,!0,this._allowSeconds);let e=this._validateMillis(this._value);this._setValue(e),this._isInitialized&&this._applyValue(e)}}get restrictedTimes(){return this._restrictedTimes.map(t=>m(t,!0,this._allowSeconds)).filter(t=>typeof t=="string")}set restrictedTimes(t){Array.isArray(t)||(t=[]),this._restrictedTimes=t.filter(e=>typeof e=="string").map(e=>this._convertTimeStringToMillis(e,!0,!0)).filter(e=>typeof e=="number")}get startTime(){return m(this._startTime,!0,this._allowSeconds)}set startTime(t){if(this._startTime!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._startTime=this._convertTimeStringToMillis(t,!0,this._allowSeconds)}}get step(){return this._step}set step(t){this._step=t}get allowInput(){return this._allowInput}set allowInput(t){this._allowInput!==t&&(this._allowInput=t,this._isInitialized&&(this._applyAllowInput(),this._applyMask()))}get popupTarget(){return this._popupTarget}set popupTarget(t){this._popupTarget!==t&&(this._popupTarget=t)}get showNow(){return this._showNow}set showNow(t){this._showNow!==t&&(this._showNow=t)}get showHourOptions(){return this._showHourOptions}set showHourOptions(t){this._showHourOptions!==t&&(this._showHourOptions=t)}get customOptions(){return this._customOptions}set customOptions(t){this._customOptions=Array.isArray(t)?t:[]}set validationCallback(t){this._validationCallback=t,this._isInitialized&&this._applyMask()}set parseCallback(t){this._parseCallback=t}set formatCallback(t){this._formatCallback=t}set coercionCallback(t){this._coercionCallback=t}set prepareMaskCallback(t){this._prepareMaskCallback=t,this._isInitialized&&this._applyMask()}get disabled(){return this._disabled}set disabled(t){this._disabled!==t&&(this._disabled=!!t,this._isInitialized&&this._applyDisabled(),this._adapter.toggleHostAttribute(s.attributes.DISABLED,this._disabled))}get popupClasses(){return Array.isArray(this._popupClasses)?[...this._popupClasses]:this._popupClasses}set popupClasses(t){Array.isArray(t)?this._popupClasses=[...t]:this._popupClasses=[t]}get allowDropdown(){return this._allowDropdown}set allowDropdown(t){this._allowDropdown!==t&&(this._allowDropdown=t,this._isInitialized&&this._applyAllowDropdown())}};var Tt="<template><slot></slot></template>",kt=":host{display:block}:host([hidden]){display:none}",r=class extends W{constructor(){super();Z.define([rt,K]),H(this,Tt,kt),this._foundation=new T(new g(this))}static get observedAttributes(){return[s.attributes.VALUE,s.attributes.OPEN,s.attributes.ALLOW_SECONDS,s.attributes.MASKED,s.attributes.SHOW_MASK_FORMAT,s.attributes.USE_24_HOUR_TIME,s.attributes.ALLOW_INVALID_TIME,s.attributes.MIN,s.attributes.MAX,s.attributes.START_TIME,s.attributes.STEP,s.attributes.ALLOW_INPUT,s.attributes.SHOW_NOW,s.attributes.SHOW_HOUR_OPTIONS,s.attributes.DISABLED,s.attributes.POPUP_CLASSES,s.attributes.ALLOW_DROPDOWN]}connectedCallback(){this.querySelector(s.selectors.INPUT)?this._foundation.initialize():A(this,s.selectors.INPUT).then(()=>this._foundation.initialize())}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,i,n){switch(e){case s.attributes.VALUE:this.value=n;break;case s.attributes.OPEN:this.open=c(n);break;case s.attributes.ALLOW_SECONDS:this.allowSeconds=c(n);break;case s.attributes.MASKED:this.masked=c(n);break;case s.attributes.SHOW_MASK_FORMAT:this.showMaskFormat=c(n);break;case s.attributes.USE_24_HOUR_TIME:this.use24HourTime=c(n);break;case s.attributes.ALLOW_INVALID_TIME:this.allowInvalidTime=c(n);break;case s.attributes.SHOW_NOW:this.showNow=c(n);break;case s.attributes.SHOW_HOUR_OPTIONS:this.showHourOptions=c(n);break;case s.attributes.MIN:this.min=n;break;case s.attributes.MAX:this.max=n;break;case s.attributes.START_TIME:this.startTime=n;break;case s.attributes.STEP:this.step=L(n);break;case s.attributes.ALLOW_INPUT:this.allowInput=c(n);break;case s.attributes.DISABLED:this.disabled=c(n);break;case s.attributes.POPUP_CLASSES:this.popupClasses=n;break;case s.attributes.ALLOW_DROPDOWN:this.allowDropdown=c(n);break}}};p([u()],r.prototype,"value",2),p([u()],r.prototype,"open",2),p([u()],r.prototype,"allowSeconds",2),p([u()],r.prototype,"masked",2),p([u()],r.prototype,"showMaskFormat",2),p([u()],r.prototype,"use24HourTime",2),p([u()],r.prototype,"allowInvalidTime",2),p([u()],r.prototype,"min",2),p([u()],r.prototype,"max",2),p([u()],r.prototype,"restrictedTimes",2),p([u()],r.prototype,"startTime",2),p([u()],r.prototype,"step",2),p([u()],r.prototype,"allowInput",2),p([u()],r.prototype,"showNow",2),p([u()],r.prototype,"showHourOptions",2),p([u()],r.prototype,"customOptions",2),p([u()],r.prototype,"validationCallback",2),p([u()],r.prototype,"parseCallback",2),p([u()],r.prototype,"formatCallback",2),p([u()],r.prototype,"coercionCallback",2),p([u()],r.prototype,"prepareMaskCallback",2),p([u()],r.prototype,"disabled",2),p([u()],r.prototype,"popupClasses",2),p([u()],r.prototype,"allowDropdown",2),p([u()],r.prototype,"popupTarget",2),r=p([R({name:s.elementName,dependencies:[et,tt,ot,w,it,w,at]})],r);var ct=class extends ${constructor(e){super(e)}_build(){let e=document.createElement(s.elementName);return this._attachTextField(e),e}get inputElement(){return this._textFieldDelegate.inputElement}get textFieldElement(){return this._textFieldDelegate.element}get value(){return this._element.value}set value(e){this._element.value=e}get disabled(){return this._element.disabled}set disabled(e){this._element.disabled=e}get invalid(){return this._textFieldDelegate.invalid||!1}set invalid(e){this._textFieldDelegate.invalid=e}onChange(e){this._element.addEventListener(s.events.CHANGE,i=>{var n;return e((n=i.detail)!=null?n:"")})}onInput(e){this._element.masked?this._element.addEventListener(s.events.INPUT,i=>{var n;return e((n=i.detail)!=null?n:"")}):this._textFieldDelegate.inputElement.addEventListener("input",i=>e(i.target.value))}onFocus(e){this._textFieldDelegate.inputElement.addEventListener("focus",i=>e(i))}onBlur(e){this._textFieldDelegate.inputElement.addEventListener("blur",i=>e(i))}_attachTextField(e){var n,l,o,d;let i={props:k({},(l=(n=this._config.options)==null?void 0:n.textFieldDelegateConfig)==null?void 0:l.props),options:k({},(d=(o=this._config.options)==null?void 0:o.textFieldDelegateConfig)==null?void 0:d.options)};this._textFieldDelegate=new nt(i),e.appendChild(this._textFieldDelegate.element)}};function xe(){N(r)}export{s as a,g as b,C as c,m as d,pt as e,ut as f,v as g,M as h,It as i,dt as j,I as k,O as l,mt as m,D as n,Rt as o,T as p,r as q,ct as r,xe as s};
7
- //# sourceMappingURL=chunk.5SRA2RH3.js.map
6
+ import{a as rt}from"./chunk.E37HEAJ5.js";import{d as at}from"./chunk.YSE5EMB3.js";import{a as f,b as nt}from"./chunk.IMK2LFWR.js";import{h as st}from"./chunk.QBDE7M3E.js";import{c as et}from"./chunk.D3DLVPPE.js";import{e as tt}from"./chunk.7JTKKFL4.js";import{e as it}from"./chunk.DRFU6POI.js";import{a as E,b as ot}from"./chunk.BOENNFXE.js";import{j as K}from"./chunk.LZMYHIO2.js";import{a as F}from"./chunk.D4SNVKDA.js";import{a as Q,d as Z,l as w}from"./chunk.YAJT3P6V.js";import{a as $}from"./chunk.24D46RLZ.js";import{g as J}from"./chunk.7ZS4N2FT.js";import{j as b,k as X,m as G,n as q,o as Y,p as j}from"./chunk.KYCC3C3M.js";import{a as z}from"./chunk.A23NSEWA.js";import{a as u}from"./chunk.B3IJU6XJ.js";import{a as R,b as B}from"./chunk.BSZ2LBJX.js";import{a as W}from"./chunk.3E5QKMHL.js";import{a as N,e as H,g as V,i as U}from"./chunk.HN4PXH3D.js";import{m as A,s as P,u as x}from"./chunk.R4NDFXVA.js";import{a as S,k as c,l as L,o as y}from"./chunk.G76HB2FK.js";import{a as k,f as p}from"./chunk.MCIQXNKY.js";var h=`${B}time-picker`,lt={TOGGLE:"forge-time-picker-toggle",VALUE:"value",OPEN:"open",ALLOW_SECONDS:"allow-seconds",MASKED:"masked",SHOW_MASK_FORMAT:"show-mask-format",USE_24_HOUR_TIME:"use-24-hour-time",ALLOW_INVALID_TIME:"allow-invalid-time",MIN:"min",MAX:"max",START_TIME:"start-time",STEP:"step",ALLOW_INPUT:"allow-input",SHOW_NOW:"show-now",SHOW_HOUR_OPTIONS:"show-hour-options",DISABLED:"disabled",POPUP_CLASSES:"popup-classes",ALLOW_DROPDOWN:"allow-dropdown"},ft={INPUT:"input, input[forge-time-picker-input]",TOGGLE:`[${lt.TOGGLE}]`},gt={OPEN:`${h}-open`,CLOSE:`${h}-close`,INPUT:`${h}-input`,CHANGE:`${h}-change`},vt={DEFAULT_MINUTE_STEP:60,MAX_DAY_MILLIS:864e5,MAX_DAY_MINUTES:1440},s={elementName:h,attributes:lt,selectors:ft,events:gt,numbers:vt};var g=class extends z{constructor(e){super(e)}initialize(){this._inputElement=this._component.querySelector(s.selectors.INPUT)}initializeMask(e){this._inputMask&&this._inputMask.destroy(),this._inputMask=new J(this._inputElement,e)}destroy(){this._targetElement=void 0,this._toggleElement=void 0,this._inputElement=void 0}destroyMask(){this._inputMask&&(this._inputMask.destroy(),this._inputMask=void 0)}initializeAccessibility(e){this._inputElement.setAttribute("autocomplete","off"),this._inputElement.setAttribute("autocorrect","off"),this._inputElement.setAttribute("autocapitalize","off"),this._inputElement.setAttribute("spellcheck","false"),this._inputElement.setAttribute("role","combobox"),this._inputElement.setAttribute("aria-live","assertive"),this._inputElement.setAttribute("aria-atomic","true"),this._inputElement.setAttribute("aria-haspopup","true"),this._inputElement.setAttribute("aria-expanded","false")}addInputListener(e,i,n){this._inputElement.addEventListener(e,i,{capture:n})}removeInputListener(e,i,n){this._inputElement&&this._inputElement.removeEventListener(e,i,{capture:n})}addToggleListener(e,i){this._toggleElement&&this._toggleElement.addEventListener(e,i)}removeToggleListener(e,i){this._toggleElement&&this._toggleElement.removeEventListener(e,i)}hasInputElement(){return!!this._inputElement}tryCreateToggle(){let e=this._component.querySelector(f.elementName),i=this._component.querySelector(s.selectors.TOGGLE);if(e){let n=e.querySelector(`${E.elementName}[slot=trailing]`);if(n||i){this._toggleElement=n||i;return}let l=document.createElement(E.elementName);l.slot="trailing",l.dense=!0,l.densityLevel=3,l.style.marginRight="4px";let o=document.createElement("button");o.type="button",o.tabIndex=-1,o.setAttribute("aria-label","Toggle time dropdown");let d=document.createElement(Q.elementName);d.name="clock_outline",o.appendChild(d),l.appendChild(o),e.appendChild(l),this._toggleElement=l}else i&&(this._toggleElement=i)}tryFocusInput(){this._inputElement.select()}tryBlurInput(){this._inputElement.blur()}selectInputText(){this._inputElement.select()}isInputDisabled(){return this._inputElement.disabled}isInputFocused(){return P()===this._inputElement}setInputValue(e,i){this._inputElement.value!==e&&(this._inputElement.value=e,this._inputMask&&this._inputMask.update(),i&&(this._emitInputEvent("change"),this._emitInputEvent("input")))}getInputValue(){return this._inputMask?this._inputMask.maskedValue:this._inputElement.value}setDisabled(e){this._inputElement.disabled=e,this._inputElement.setAttribute("aria-disabled",e.toString()),this.setToggleDisabled(e)}attachDropdown(e){this._listDropdown=new st(this._inputElement,e),this._listDropdown.open(),this._inputElement.setAttribute("aria-controls",`list-dropdown-popup-${e.id}`)}detachDropdown(){this._listDropdown&&(this._listDropdown.close(),this._listDropdown.destroy(),this._listDropdown=void 0),this._inputElement.removeAttribute("aria-controls")}propagateKey(e){var i;(i=this._listDropdown)==null||i.handleKey(e)}setActiveDescendant(e){x(this._inputElement,!!e,"aria-activedescendant",e)}getTargetElementWidth(e){return this._getTargetElement(e).getBoundingClientRect().width}_emitInputEvent(e){this._inputElement.dispatchEvent(new Event(e))}emitInputEvent(e,i){U(this._inputElement,e,i)}setInputReadonly(e){this._inputElement.readOnly=e}setToggleDisabled(e){if(this._toggleElement)if(this._toggleElement.setAttribute("aria-disabled",e.toString()),"disabled"in this._toggleElement)this._toggleElement.disabled=e;else{let i=this._toggleElement.querySelector("button");i&&(i.disabled=e)}}activateFirstOption(){var e;(e=this._listDropdown)==null||e.activateFirstOption()}getActiveOption(){var e;return(e=this._listDropdown)==null?void 0:e.getActiveOption()}_getTargetElement(e){return this._targetElement?this._targetElement:(this._targetElement=e?this._component.querySelector(e)||this._getDefaultTargetElement():this._getDefaultTargetElement(),this._targetElement)}_getDefaultTargetElement(){let e=this._component.querySelector(f.elementName);if(e&&e.shadowRoot){let i=V(e,f.selectors.ROOT);if(i)return i}return this._component}};function C(a,t,e){if(!a||/^\s*$/.test(a))return null;let i=0,n=0,l=0;if(b.test(a)){let o=G(a);i=+o.hours||0,n=+o.minutes||0,l=+o.seconds||0}else if(X.test(a)){let o=q(a);i=+o.hours||0,n=+o.minutes||0,l=+o.seconds||0,i===12&&o.meridiem==="AM"&&(i=0),i<12&&o.meridiem==="PM"&&(i+=12)}else return null;return dt(i)+I(n)+(e?O(l):0)}function m(a,t,e){if(typeof a!="number"||a<0)return null;let i=Math.min(pt(a),23),n=Math.min(ut(a),59),o=a/(1e3*60)<720?"AM":"PM";t||(i=i<=12?i:i-12,i===0&&(i=12));let d=`${String(i).padStart(2,"0")}:${String(n).padStart(2,"0")}`;if(e){let _=Math.min(M(a),59);d+=`:${String(_).padStart(2,"0")}`}return t||(d+=` ${o}`),d}function pt(a){return Math.abs(Math.floor(a/(1e3*60*60)))}function ut(a){return Math.abs(Math.floor(v(a)%60))}function v(a){return a/(1e3*60)}function M(a){return Math.abs(Math.floor(It(a)%60))}function It(a){return a/1e3}function dt(a){return a*60*60*1e3}function I(a){return a*60*1e3}function O(a){return a*1e3}function mt(a){return a-O(M(a))}function D(a){let t=new Date,e=t.getHours(),i=t.getMinutes();return dt(e)+I(i)+(a?O(t.getSeconds()):0)}function Rt(a,t,e=!1){a||(a=new Date);let i=C(t,!0,e);if(!i)return a.setHours(0,0,0),a;let n=pt(i),l=828e5;n>l?n=l:n<0&&(n=0);let o=ut(i),d=e?M(i):0;return a.setHours(n,o,d),a}var T=class{constructor(t){this._adapter=t;this._value=null;this._masked=!0;this._use24HourTime=!1;this._showMaskFormat=!1;this._min=null;this._max=null;this._restrictedTimes=[];this._startTime=null;this._step=s.numbers.DEFAULT_MINUTE_STEP;this._allowInput=!0;this._open=!1;this._allowSeconds=!1;this._allowInvalidTime=!1;this._showNow=!1;this._showHourOptions=!0;this._customOptions=[];this._disabled=!1;this._popupClasses=[];this._allowDropdown=!0;this._isInitialized=!1;this._identifier=S(),this._inputListener=e=>this._onInput(e),this._inputKeydownListener=e=>this._onInputKeydown(e),this._toggleMousedownListener=e=>this._onToggleMousedown(e),this._inputFocusListener=e=>this._onInputFocus(e),this._inputBlurListener=e=>this._onInputBlur(e),this._inputMousedownListener=e=>this._onInputMousedown(e)}initialize(){if(this._adapter.initialize(),!this._adapter.hasInputElement())throw new Error("Unable to locate <input> element to attach to.");if(this._adapter.initializeAccessibility(this._identifier),!this._value){let t=this._adapter.getInputValue();this._setValue(this._convertTimeStringToMillis(t,this._use24HourTime,this._allowSeconds))}this._adapter.addInputListener("focus",this._inputFocusListener),this._adapter.addInputListener("blur",this._inputBlurListener),this._adapter.addInputListener("keydown",this._inputKeydownListener,!0),this._formatInputValue(!1),typeof this._value=="number"&&this._applyValue(this._value,!1),this._applyAllowInput(),this._applyAllowDropdown(),this._applyDisabled(),this._applyMask(),this._isInitialized=!0}disconnect(){this._isInitialized=!1,this._adapter.removeInputListener("input",this._inputListener),this._adapter.removeInputListener("focus",this._inputFocusListener),this._adapter.removeInputListener("blur",this._inputBlurListener),this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.removeInputListener("keydown",this._inputKeydownListener,!0),this._masked&&this._adapter.destroyMask(),this._closeDropdown(),this._adapter.destroy()}_onInput(t){this._handleInput(this._adapter.getInputValue())}_onInputKeydown(t){if(t.shiftKey)switch(t.code){case"Backspace":case"Delete":t.preventDefault(),this._trySetValue(null)&&this._formatInputValue();return}switch(t.code){case"Tab":this._open&&this._selectActiveOption();break;case"Esc":case"Escape":this._open&&(t.preventDefault(),this._closeDropdown(!0));break;case"Down":case"ArrowDown":this._allowDropdown&&(t.preventDefault(),this._open?this._adapter.propagateKey(t.code):(this._openDropdown(),this._adapter.activateFirstOption()));break;case"Up":case"ArrowUp":this._allowDropdown&&(t.preventDefault(),this._open&&this._adapter.propagateKey(t.code));break;case"Enter":case"Home":case"End":this._open&&(t.code==="Enter"&&t.stopPropagation(),t.preventDefault(),this._adapter.propagateKey(t.code));break;case"KeyN":t.preventDefault();let e=D(this._allowSeconds);if(this._value!==e){let i=m(e,!0,this._allowSeconds);this._emitChangeEvent(i)&&(this._applyValue(e),this._selectInputText())}break}}_selectActiveOption(){let t=this._adapter.getActiveOption();t&&this._onSelect(t.value)}_onToggleMousedown(t){this._disabled||!this.allowDropdown||(t.stopPropagation(),!this._adapter.isInputDisabled()&&(t.preventDefault(),this._open?this._closeDropdown(!0):(F.isMobile?this._adapter.tryBlurInput():this._adapter.tryFocusInput(),this._openDropdown())))}_onInputFocus(t){this._allowInput&&this._adapter.selectInputText()}_onInputBlur(t){this._formatInputValue(),this._open&&!this._adapter.isInputFocused()&&this._closeDropdown(!0)}_onInputMousedown(t){!this._allowInput&&!this._open&&(this._openDropdown(),this._adapter.tryFocusInput(),window.requestAnimationFrame(()=>this._adapter.selectInputText()))}_applyDisabled(){this._adapter.setDisabled(this._disabled)}_applyMask(){if(this._masked&&this._allowInput){let t={showMaskFormat:this._showMaskFormat,use24HourTime:this._use24HourTime,showSeconds:this._allowSeconds,prepareCallback:this._prepareMaskCallback,onChange:y(e=>this._handleInput(e),0,!0)};this._adapter.initializeMask(t)}else this._adapter.destroyMask(),this._formatInputValue()}_applyAllowInput(){this._adapter.setInputReadonly(!this._allowInput),this._allowInput?(this._adapter.removeInputListener("mousedown",this._inputMousedownListener),this._masked||this._adapter.addInputListener("input",this._inputListener)):(this._adapter.addInputListener("mousedown",this._inputMousedownListener),this._adapter.removeInputListener("input",this._inputListener))}_applyAllowDropdown(){this._adapter.setToggleDisabled(!this._allowDropdown),this._allowDropdown?(this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.tryCreateToggle(),this._adapter.addToggleListener("mousedown",this._toggleMousedownListener)):this._open&&this._closeDropdown(!0)}_applyAllowSeconds(){let t=this._value;if(this._allowSeconds){if(this._isInitialized&&t!==this._value){let e=m(this._value,!0,!0);this._emitChangeEvent(e)}}else{if(typeof this._value!="number")return;if(this._setValue(mt(this._value)),this._isInitialized&&t!==this._value){let e=m(this._value,!0,!1);this._emitChangeEvent(e)}}}_handleInput(t){let e=t;if(!this._allowInput)return;this._open&&this._closeDropdown(!0),t=j(t,this._use24HourTime,this._allowSeconds),typeof this._coercionCallback=="function"&&(t=this._coercionCallback.call(null,e,t,this._allowSeconds)),this._isValidTimeFormat(t)||(t="");let i;!this._masked&&typeof this._parseCallback=="function"?i=this._parseCallback.call(null,t):i=this._convertTimeStringToMillis(t,this._use24HourTime,this._allowSeconds),i=this._validateMillis(i),this._trySetValue(i)}_emitChangeEvent(t,e=!1){return this._adapter.emitHostEvent(s.events.CHANGE,t,!0,!e)}_trySetValue(t){if(t===this._value)return!1;let e=m(t,!0,this._allowSeconds);return this._masked&&this._adapter.emitInputEvent(s.events.INPUT,e),this._value!==t&&this._emitChangeEvent(e)?(this._setValue(t),!0):!1}_setValue(t){this._value=this._normalizeTimeValue(t)}_validateMillis(t){if(typeof t=="number"){let e=typeof this._min=="number"&&t<this._min,i=typeof this._max=="number"&&t>this._max;(e||i)&&(t=null)}return typeof t=="number"&&this._restrictedTimes.length&&this._restrictedTimes.includes(t)&&(t=null),t}_isValidTimeFormat(t){return!this._masked&&typeof this._validationCallback=="function"?this._validationCallback.call(this,t):Y(t)}_isValidInputValue(t){return b.test(t)}_onSelect(t){if(this._closeDropdown(!0),!t.isCustom&&t.metadata==="now"&&(t.time=D(this._allowSeconds)),t.isCustom)if(typeof t.customCallback=="function"){let n=t.customCallback.call(null,t.metadata);if(typeof n!="number")throw new Error("Custom options must provide a time of day value in milliseconds.");t.time=n}else throw new Error("You must implement a `toMilliseconds` callback that returns the time value to use for this custom option.");if(this._value===t.time)return;let e=m(t.time,!0,this._allowSeconds);!this._emitChangeEvent(e)||(this._applyValue(t.time),this._selectInputText())}_selectInputText(){window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{this._adapter.isInputFocused()&&this._adapter.selectInputText()})})}_applyValue(t,e=!0){this._setValue(t);let i=this._formatValue(this._value);this._adapter.getInputValue()!==i&&this._adapter.setInputValue(i,e)}_normalizeTimeValue(t){return t==null?null:t<0?0:t>s.numbers.MAX_DAY_MILLIS?s.numbers.MAX_DAY_MILLIS:t}_openDropdown(){let t=this._generateTimeOptions();if(!this.allowDropdown||!t.length)return;this._formatInputValue(),this._open=!0,this._adapter.setHostAttribute(s.attributes.OPEN);let e=t.filter(o=>!o.divider&&!o.disabled),i=[],n;if(t.length){if(this._value!=null){let o=this._findClosestOptionIndex(this._value,e);o>=0&&(e[o].value.time===this._value?i=[e[o].value]:n=o)}else if(typeof this._startTime=="number"){let o=this._findClosestOptionIndex(this._startTime,e);o>=0&&o<e.length&&(n=o)}}let l={id:`forge-time-picker-${this._identifier}`,selectedValues:i,syncWidth:!0,activeStartIndex:n,popupClasses:this._popupClasses,popupStatic:!0,type:"standard",options:t,selectCallback:o=>this._onSelect(o),closeCallback:()=>this._closeDropdown(!0),activeChangeCallback:o=>this._adapter.setActiveDescendant(o),targetWidthCallback:()=>this._adapter.getTargetElementWidth(this._popupTarget)};this._adapter.attachDropdown(l),this._adapter.emitHostEvent(s.events.OPEN,void 0,!1)}_closeDropdown(t=!1){this._open=!1,this._adapter.removeHostAttribute(s.attributes.OPEN),this._adapter.detachDropdown(),t&&this._adapter.emitHostEvent(s.events.CLOSE,!0,!1)}_findClosestOptionIndex(t,e){let i=e.reduce((n,l)=>Math.abs((l.value.time||0)-t)<Math.abs((n.value.time||0)-t)?l:n);return e.indexOf(i)}_formatInputValue(t=!0){let e=this._adapter.getInputValue();if(this._allowInvalidTime&&!this._masked&&e&&!this._value)return;let i=this._formatValue(this._value);e!==i&&this._adapter.setInputValue(i,t)}_generateTimeOptions(){let t=this._min!=null?Math.max(v(this._min),0):0,e=this._max!=null?Math.min(v(this._max),s.numbers.MAX_DAY_MINUTES):s.numbers.MAX_DAY_MINUTES,i=this._step,n=[],l=[];if(this._showHourOptions){for(let d=t;d<=e&&d!==s.numbers.MAX_DAY_MINUTES;d+=i){let _=I(d),_t=this._restrictedTimes.includes(_),ht=m(_,this._use24HourTime,!1)||"",bt={time:_};n.push({label:ht,value:bt,disabled:_t})}let o=n.findIndex(d=>d.value.time/1e3/60>=720);o>=0&&o<n.length-1&&n.splice(o,0,{label:"",value:null,divider:!0})}if(this._showNow){let o={time:null,metadata:"now"};l.push({label:"Now",value:o})}if(Array.isArray(this._customOptions)&&this._customOptions.length){let o=this._customOptions.map(d=>{let _={time:null,metadata:d.value,isCustom:!0,customCallback:d.toMilliseconds};return{label:d.label,value:_}});l=[...l,...o]}return l.length&&(n.length&&n.splice(0,0,{label:"",value:null,divider:!0}),l.forEach((o,d)=>n.splice(d,0,o))),n}_convertTimeStringToMillis(t,e,i){return(!t||!this._isValidTimeFormat(t))&&(t=""),C(t,e,i)}_formatValue(t){return!this._masked&&typeof this._formatCallback=="function"?this._formatCallback.call(null,t,this._use24HourTime,this._allowSeconds):m(this._value,this._use24HourTime,this._allowSeconds)||""}_warnInvalidFormat(t){console.warn(`The specified value "${t}" does not conform to the required format. The format is "HH:mm", "HH:mm:ss" where HH is 00-23, mm is 00-59, and ss is 00-59.`)}get open(){return this._open}set open(t){this._open!==t&&this._isInitialized&&(this._open=t,this._open?this._openDropdown():this._closeDropdown())}get masked(){return this._masked}set masked(t){this._masked!==t&&(this._masked=t,this._isInitialized&&(this._masked?(this._adapter.removeInputListener("input",this._inputListener),this._applyMask()):(this._adapter.destroyMask(),this._formatInputValue(),this._adapter.addInputListener("input",this._inputListener))))}get showMaskFormat(){return this._showMaskFormat}set showMaskFormat(t){this._showMaskFormat!==t&&(this._showMaskFormat=t,this._isInitialized&&this._applyMask())}get allowSeconds(){return this._allowSeconds}set allowSeconds(t){this._allowSeconds!==t&&(this._allowSeconds=!!t,this._applyAllowSeconds(),this._isInitialized&&(this._applyMask(),this._formatInputValue()),this._adapter.setHostAttribute(s.attributes.ALLOW_SECONDS,`${!!t}`))}get use24HourTime(){return this._use24HourTime}set use24HourTime(t){this._use24HourTime!==t&&(this._use24HourTime=!!t,this._isInitialized&&(this._adapter.destroyMask(),this._formatInputValue(),this._applyMask()),this._adapter.setHostAttribute(s.attributes.USE_24_HOUR_TIME,`${!!t}`))}get allowInvalidTime(){return this._allowInvalidTime}set allowInvalidTime(t){this._allowInvalidTime!==t&&(this._allowInvalidTime=!!t,this._adapter.setHostAttribute(s.attributes.ALLOW_INVALID_TIME,`${!!t}`))}get value(){return m(this._value,!0,this._allowSeconds)}set value(t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}let e=this._validateMillis(this._convertTimeStringToMillis(t,!0,!0));this._setValue(e),this._isInitialized&&this._applyValue(this._value)}get min(){return m(this._min,!0,this._allowSeconds)}set min(t){if(this._min!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._min=this._convertTimeStringToMillis(t,!0,this._allowSeconds);let e=this._validateMillis(this._value);this._setValue(e),this._isInitialized&&this._applyValue(e)}}get max(){return m(this._max,!0,this._allowSeconds)}set max(t){if(this._max!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._max=this._convertTimeStringToMillis(t,!0,this._allowSeconds);let e=this._validateMillis(this._value);this._setValue(e),this._isInitialized&&this._applyValue(e)}}get restrictedTimes(){return this._restrictedTimes.map(t=>m(t,!0,this._allowSeconds)).filter(t=>typeof t=="string")}set restrictedTimes(t){Array.isArray(t)||(t=[]),this._restrictedTimes=t.filter(e=>typeof e=="string").map(e=>this._convertTimeStringToMillis(e,!0,!0)).filter(e=>typeof e=="number")}get startTime(){return m(this._startTime,!0,this._allowSeconds)}set startTime(t){if(this._startTime!==t){if(t&&!this._isValidInputValue(t)){this._warnInvalidFormat(t);return}this._startTime=this._convertTimeStringToMillis(t,!0,this._allowSeconds)}}get step(){return this._step}set step(t){this._step=t}get allowInput(){return this._allowInput}set allowInput(t){this._allowInput!==t&&(this._allowInput=t,this._isInitialized&&(this._applyAllowInput(),this._applyMask()))}get popupTarget(){return this._popupTarget}set popupTarget(t){this._popupTarget!==t&&(this._popupTarget=t)}get showNow(){return this._showNow}set showNow(t){this._showNow!==t&&(this._showNow=t)}get showHourOptions(){return this._showHourOptions}set showHourOptions(t){this._showHourOptions!==t&&(this._showHourOptions=t)}get customOptions(){return this._customOptions}set customOptions(t){this._customOptions=Array.isArray(t)?t:[]}set validationCallback(t){this._validationCallback=t,this._isInitialized&&this._applyMask()}set parseCallback(t){this._parseCallback=t}set formatCallback(t){this._formatCallback=t}set coercionCallback(t){this._coercionCallback=t}set prepareMaskCallback(t){this._prepareMaskCallback=t,this._isInitialized&&this._applyMask()}get disabled(){return this._disabled}set disabled(t){this._disabled!==t&&(this._disabled=!!t,this._isInitialized&&this._applyDisabled(),this._adapter.toggleHostAttribute(s.attributes.DISABLED,this._disabled))}get popupClasses(){return Array.isArray(this._popupClasses)?[...this._popupClasses]:this._popupClasses}set popupClasses(t){Array.isArray(t)?this._popupClasses=[...t]:this._popupClasses=[t]}get allowDropdown(){return this._allowDropdown}set allowDropdown(t){this._allowDropdown!==t&&(this._allowDropdown=t,this._isInitialized&&this._applyAllowDropdown())}};var Tt="<template><slot></slot></template>",kt=":host{display:block}:host([hidden]){display:none}",r=class extends W{constructor(){super();Z.define([rt,K]),H(this,Tt,kt),this._foundation=new T(new g(this))}static get observedAttributes(){return[s.attributes.VALUE,s.attributes.OPEN,s.attributes.ALLOW_SECONDS,s.attributes.MASKED,s.attributes.SHOW_MASK_FORMAT,s.attributes.USE_24_HOUR_TIME,s.attributes.ALLOW_INVALID_TIME,s.attributes.MIN,s.attributes.MAX,s.attributes.START_TIME,s.attributes.STEP,s.attributes.ALLOW_INPUT,s.attributes.SHOW_NOW,s.attributes.SHOW_HOUR_OPTIONS,s.attributes.DISABLED,s.attributes.POPUP_CLASSES,s.attributes.ALLOW_DROPDOWN]}connectedCallback(){this.querySelector(s.selectors.INPUT)?this._foundation.initialize():A(this,s.selectors.INPUT).then(()=>this._foundation.initialize())}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,i,n){switch(e){case s.attributes.VALUE:this.value=n;break;case s.attributes.OPEN:this.open=c(n);break;case s.attributes.ALLOW_SECONDS:this.allowSeconds=c(n);break;case s.attributes.MASKED:this.masked=c(n);break;case s.attributes.SHOW_MASK_FORMAT:this.showMaskFormat=c(n);break;case s.attributes.USE_24_HOUR_TIME:this.use24HourTime=c(n);break;case s.attributes.ALLOW_INVALID_TIME:this.allowInvalidTime=c(n);break;case s.attributes.SHOW_NOW:this.showNow=c(n);break;case s.attributes.SHOW_HOUR_OPTIONS:this.showHourOptions=c(n);break;case s.attributes.MIN:this.min=n;break;case s.attributes.MAX:this.max=n;break;case s.attributes.START_TIME:this.startTime=n;break;case s.attributes.STEP:this.step=L(n);break;case s.attributes.ALLOW_INPUT:this.allowInput=c(n);break;case s.attributes.DISABLED:this.disabled=c(n);break;case s.attributes.POPUP_CLASSES:this.popupClasses=n;break;case s.attributes.ALLOW_DROPDOWN:this.allowDropdown=c(n);break}}};p([u()],r.prototype,"value",2),p([u()],r.prototype,"open",2),p([u()],r.prototype,"allowSeconds",2),p([u()],r.prototype,"masked",2),p([u()],r.prototype,"showMaskFormat",2),p([u()],r.prototype,"use24HourTime",2),p([u()],r.prototype,"allowInvalidTime",2),p([u()],r.prototype,"min",2),p([u()],r.prototype,"max",2),p([u()],r.prototype,"restrictedTimes",2),p([u()],r.prototype,"startTime",2),p([u()],r.prototype,"step",2),p([u()],r.prototype,"allowInput",2),p([u()],r.prototype,"showNow",2),p([u()],r.prototype,"showHourOptions",2),p([u()],r.prototype,"customOptions",2),p([u()],r.prototype,"validationCallback",2),p([u()],r.prototype,"parseCallback",2),p([u()],r.prototype,"formatCallback",2),p([u()],r.prototype,"coercionCallback",2),p([u()],r.prototype,"prepareMaskCallback",2),p([u()],r.prototype,"disabled",2),p([u()],r.prototype,"popupClasses",2),p([u()],r.prototype,"allowDropdown",2),p([u()],r.prototype,"popupTarget",2),r=p([R({name:s.elementName,dependencies:[et,tt,ot,w,it,w,at]})],r);var ct=class extends ${constructor(e){super(e)}_build(){let e=document.createElement(s.elementName);return this._attachTextField(e),e}get inputElement(){return this._textFieldDelegate.inputElement}get textFieldElement(){return this._textFieldDelegate.element}get value(){return this._element.value}set value(e){this._element.value=e}get disabled(){return this._element.disabled}set disabled(e){this._element.disabled=e}get invalid(){return this._textFieldDelegate.invalid||!1}set invalid(e){this._textFieldDelegate.invalid=e}onChange(e){this._element.addEventListener(s.events.CHANGE,i=>{var n;return e((n=i.detail)!=null?n:"")})}onInput(e){this._element.masked?this._element.addEventListener(s.events.INPUT,i=>{var n;return e((n=i.detail)!=null?n:"")}):this._textFieldDelegate.inputElement.addEventListener("input",i=>e(i.target.value))}onFocus(e){this._textFieldDelegate.inputElement.addEventListener("focus",i=>e(i))}onBlur(e){this._textFieldDelegate.inputElement.addEventListener("blur",i=>e(i))}_attachTextField(e){var n,l,o,d;let i={props:k({},(l=(n=this._config.options)==null?void 0:n.textFieldDelegateConfig)==null?void 0:l.props),options:k({},(d=(o=this._config.options)==null?void 0:o.textFieldDelegateConfig)==null?void 0:d.options)};this._textFieldDelegate=new nt(i),e.appendChild(this._textFieldDelegate.element)}};function xe(){N(r)}export{s as a,g as b,C as c,m as d,pt as e,ut as f,v as g,M as h,It as i,dt as j,I as k,O as l,mt as m,D as n,Rt as o,T as p,r as q,ct as r,xe as s};
7
+ //# sourceMappingURL=chunk.KKF2ZZMD.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{g as l}from"./chunk.G76HB2FK.js";var M=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24\:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,T=/a-z/i,g=10;function A(e){if(e=e.replace(/_|\s/g,""),M.test(e)){let a=new Date(e);if(T.test(e)||a.setMinutes(a.getMinutes()+a.getTimezoneOffset()),l(a))return a}let t=[];e.indexOf("/")!==-1?t=e.split("/"):e.indexOf("-")!==-1?t=e.split("-"):(e.length===6||e.length===8)&&!isNaN(+e)&&(t=[e.substring(0,2),e.substring(2,4),e.substring(4)]);let s=t.length===3,[n,i,r]=t;if(n==="0"&&(n="1"),i==="0"&&(i="1"),typeof r=="string"&&r.length===3&&(r=r.padEnd(4,"0")),s){let a=n.length===1||n.length===2,c=i.length===1||i.length===2,p=r.length===2||r.length===4;if(!a||!c||!p)return null}else return null;if(r.length===2){let a=new Date().getFullYear()-(100-g),c=new Date().getFullYear()+g,p=String(a).slice(0,2),b=String(c).slice(0,2),S=+String(c).slice(2);r=+r<=S?`${b}${r}`:`${p}${r}`}let o=+n,u=+i,f=+r;o>12&&(o=12);let d=new Date(f,o,0).getDate();u>d&&(u=d);let m=new Date(f,o-1,u,0,0,0,0);return l(m)?m:null}function C(e){let t=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0"),n=e.getFullYear();return[t,s,n].join("/")}function I(e,t){return!e&&!t?!0:!e||!t||!l(e)||!l(t)?!1:e.setHours(0,0,0,0)===t.setHours(0,0,0,0)}function D(e,t){return new Date(t!=null?t:1970,e+1,0)}function _(e,t){return D(e,t).getDate()}function w(e,t){let s=document.createElement("div");s.innerHTML=e;for(let i=s.childNodes.length-1;i>=0;i--)s.childNodes[i].nodeName.toLowerCase()!=="svg"&&s.removeChild(s.childNodes[i]);let n=s.firstElementChild;return n&&n.nodeName.toLowerCase()==="svg"&&h(n)?(t&&n.setAttribute("viewBox",t),!n.hasAttribute("viewBox")&&t&&n.setAttribute("viewBox",t),n.removeAttribute("height"),n.removeAttribute("width"),n):null}function h(e){if(e.nodeType!==1)return!0;if(e.nodeName.toLowerCase()==="script")return!1;let t=Array.from(e.attributes);for(let n of t)if(typeof n.name=="string"&&n.name.toLowerCase().startsWith("on"))return!1;let s=Array.from(e.childNodes);for(let n of s)if(!h(n))return!1;return!0}var x=/^(0?[0-9]|1\d|2[0-3]):([0-5]\d)(:([0-5]\d))?$/,E=/^(0?[1-9]|1[0-2]):([0-5]\d)(:([0-5]\d))?\s*([AaPp][Mm])?$/,L=/^(\d\d?):?(\d\d?)(:?(\d?\d?))?\s*([AaPp][Mm]?)?$/;function Y(e){let t=e.match(x)||[null,0,0,null,0],s=t[1],n=t[2],i=t[4];return{hours:s,minutes:n,seconds:i}}function R(e){let t=e.match(E)||[null,0,0,null,0,"AM"],s=t[1],n=t[2],i=t[4],r=t[5];return{hours:s,minutes:n,seconds:i,meridiem:r}}function P(e){return x.test(e)||E.test(e)}function $(e,t,s){if(e=e&&typeof e=="string"?e.replace(/_|\s/g,""):"",/^\s*$/.test(e))return"";let n=e.match(L);if(!n)return"";let i=n[1],r=n[2],o=n[4],u=n[5];t?u="":/[AaPp][Mm]/.test(u)?u=u.toUpperCase():/^[AaPp]/.test(u)?u.toLowerCase().startsWith("a")?u="AM":u.toLowerCase().startsWith("p")&&(u="PM"):u="";let f=+i||0,d=+r||0,m=!u||t?23:12;if(f>=m?i=String(m):f<0&&(i="00"),r!==void 0&&(d>59?r="59":d<0?r="00":r=r.padStart(2,"0")),o!==void 0){let c=+o||0;c>59?o="59":c<0?o="00":o=o.padStart(2,"0")}let a=i;return r!==void 0&&(a+=`:${r}`,o===void 0&&s&&(o="00")),o!==void 0&&(a+=`:${o}`),u&&(a+=` ${u}`),a}function H(e,t){let n=e.toLowerCase().indexOf(t.toLowerCase());if(n!==-1){let i=n+t.length,r=document.createElement("span"),o=document.createElement("span");return o.style.fontWeight="bold",o.textContent=e.substring(n,i),r.appendChild(document.createTextNode(e.substring(0,n))),r.appendChild(o),r.appendChild(document.createTextNode(e.substring(i))),r}}function V(e,{capture:t=!0,pointerenter:s=!0,focusin:n=!0}={}){return new Promise(i=>{let r={once:!0,capture:t},o=()=>{n&&e.removeEventListener("focusin",u,r),i("pointerenter")},u=()=>{s&&e.removeEventListener("pointerenter",o,r),i("focusin")};s&&e.addEventListener("pointerenter",o,r),n&&e.addEventListener("focusin",u,r)})}function G(e,t){return t===0?0:e/100*t}function v(e,t){return t===0?0:e*100/t}function W(e,t,s,n=0,i=100){let r=s-t,o=e-t;return!r||!o?n:o*i/r+n}function U(...e){return Math.min(...e.map(t=>t!=null?t:Number.POSITIVE_INFINITY))}function j(...e){return Math.max(...e.map(t=>t!=null?t:Number.NEGATIVE_INFINITY))}function z(e,t){Object.keys(e).filter(s=>s in t).forEach(s=>t[s]=e[s])}export{M as a,T as b,A as c,C as d,I as e,D as f,_ as g,w as h,h as i,x as j,E as k,L as l,Y as m,R as n,P as o,$ as p,H as q,V as r,G as s,v as t,W as u,U as v,j as w,z as x};
7
+ //# sourceMappingURL=chunk.KYCC3C3M.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/core/utils/date-utils.ts", "../../src/core/utils/svg-utils.ts", "../../src/core/utils/time-utils.ts", "../../src/core/utils/utils.ts"],
4
- "sourcesContent": ["import { isValidDate } from '@tylertech/forge-core';\n\nexport const ISO_8601_REGEX = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\nexport const ISO_TIMEZONE_REGEX = /a-z/i;\nconst FUTURE_YEAR_COERCION = 10; // The number of years in the future to coerce two-digit years into current century\n\n/**\n * Parses a date string value to a `Date` object in local time.\n * @param str The date string value.\n */\nexport function parseDateString(value: string): Date | null {\n value = value.replace(/_|\\s/g, ''); // Remove potential extraneous characters\n\n // We first check if this is a valid date in ISO 8601 format and return it if so\n if (ISO_8601_REGEX.test(value)) {\n const iso8601Date = new Date(value);\n\n // This is an ISO string, but does it have a timezone? If not, we add current timezone offset\n if (!ISO_TIMEZONE_REGEX.test(value)) {\n iso8601Date.setMinutes(iso8601Date.getMinutes() + iso8601Date.getTimezoneOffset());\n }\n\n if (isValidDate(iso8601Date)) {\n return iso8601Date;\n }\n }\n\n let values: string[] = [];\n\n // We accept dates with a \"/\" or \"-\" separator and in the format of MM/DD/YYYY\n if (value.indexOf('/') !== -1) {\n values = value.split('/');\n } else if (value.indexOf('-') !== -1) {\n values = value.split('-');\n } else if ((value.length === 6 || value.length === 8) && !isNaN(+value)) {\n values = [value.substring(0, 2), value.substring(2, 4), value.substring(4)];\n }\n\n const hasMonthDayYear = values.length === 3;\n let [month, day, year] = values;\n\n // Ensure are month and year values are coerced from 0 to 1 in case of incomplete entry\n if (month === '0') {\n month = '1';\n }\n if (day === '0') {\n day = '1';\n }\n\n // Trap for the case where only 3 digit years are entered\n if (typeof year === 'string' && year.length === 3) {\n year = year.padEnd(4, '0');\n }\n \n if (hasMonthDayYear) {\n const isValidMonthLength = month.length === 1 || month.length === 2;\n const isValidDayLength = day.length === 1 || day.length === 2;\n const isValidYearLength = year.length === 2 || year.length === 4;\n\n if (!isValidMonthLength || !isValidDayLength || !isValidYearLength) {\n return null;\n }\n } else {\n return null;\n }\n\n // Check if we need to coerce two-digit years to the four-digit equivalent\n if (year.length === 2) {\n const minYear = new Date().getFullYear() - (100 - FUTURE_YEAR_COERCION);\n const maxYear = new Date().getFullYear() + FUTURE_YEAR_COERCION;\n const minYearCentury = String(minYear).slice(0, 2);\n const maxYearCentury = String(maxYear).slice(0, 2);\n const normalizedMaxYear = +String(maxYear).slice(2);\n year = +year <= normalizedMaxYear ? `${maxYearCentury}${year}` : `${minYearCentury}${year}`;\n }\n\n let numMonth = +month;\n let numDay = +day;\n const numYear = +year;\n\n if (numMonth > 12) {\n numMonth = 12;\n }\n\n const maxDaysInMonth = new Date(numYear, numMonth, 0).getDate();\n\n if (numDay > maxDaysInMonth) {\n numDay = maxDaysInMonth;\n }\n\n const parsedDate = new Date(numYear, numMonth - 1, numDay, 0, 0, 0, 0);\n return isValidDate(parsedDate) ? parsedDate : null;\n}\n\n/**\n * Formats a `Date` to a specified format.\n * @param str The date string value.\n */\nexport function formatDate(date: Date): string {\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const year = date.getFullYear();\n return [month, day, year].join('/');\n}\n\n/**\n * Determines if two date objects are equal.\n * \n * Note: Time values are ignored.\n * @param first The date to compare.\n * @param second The date to compare the first date to. \n * @returns A boolean whether the two dates are equivalent.\n */\nexport function isSameDate(first?: Date | null, second?: Date | null): boolean {\n if (!first && !second) {\n return true;\n } else if (!first || !second) {\n return false;\n } else if (!isValidDate(first) || !isValidDate(second)) {\n return false;\n }\n return first.setHours(0, 0, 0, 0) === second.setHours(0, 0, 0, 0);\n}\n\n/** \n * Returns the last date on a month.\n * \n * @param month The month.\n * @param year The year of the month, needed for February otherwise optional.\n * @returns The last date of the given month.\n */\nexport function getLastDateOfMonth(month: number, year?: number): Date {\n return new Date(year ?? 1970, month + 1, 0);\n}\n\n/**\n * Returns the number of days in a month.\n * \n * @param month The month to find the length of.\n * @param year The year to check within, needed for February otherwise optional.\n * @returns The number of days in the month.\n */\nexport function getMonthLength(month: number, year?: number): number {\n return getLastDateOfMonth(month, year).getDate();\n}\n", "/**\n * Creates an SVG element from a string.\n */\nexport function createSvgFromString(svgContent: string, defaultViewBox?: string): SVGSVGElement | null {\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n\n // Remove all non-svg child nodes\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n\n const svgElm = div.firstElementChild as SVGSVGElement;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg' && isSafeSvg(svgElm)) {\n // Check if a custom viewbox value was provided and use that if so\n if (defaultViewBox) {\n svgElm.setAttribute('viewBox', defaultViewBox);\n }\n\n // Force a default viewBox if one doesn't exist (this ensures our icon is scalable)\n if (!svgElm.hasAttribute('viewBox') && defaultViewBox) {\n svgElm.setAttribute('viewBox', defaultViewBox);\n }\n\n // Remove any height and width attributes to ensure that the icon is properly scalable\n svgElm.removeAttribute('height');\n svgElm.removeAttribute('width');\n\n return svgElm;\n }\n\n return null;\n}\n\n/**\n * Determines if the provided element is a safe SVG to use.\n * @param el The element reference to test.\n */\nexport function isSafeSvg(el: Element): boolean {\n if (el.nodeType !== 1) {\n return true;\n }\n\n // Validate no <script> tags exist\n if (el.nodeName.toLowerCase() === 'script') {\n return false;\n }\n\n // Ensure there are no inline listeners\n const attributes = Array.from(el.attributes);\n for (const attr of attributes) {\n if (typeof attr.name === 'string' && attr.name.toLowerCase().startsWith('on')) {\n return false;\n }\n }\n\n // Ensure all child nodes are valid\n const childNodes = Array.from(el.childNodes) as Element[];\n for (const node of childNodes) {\n if (!isSafeSvg(node)) {\n return false;\n }\n }\n\n return true;\n}\n", "export const TWENTY_FOUR_HOUR_TIME_REGEX = /^(0?[0-9]|1\\d|2[0-3]):([0-5]\\d)(:([0-5]\\d))?$/;\nexport const TWELVE_HOUR_TIME_REGEX = /^(0?[1-9]|1[0-2]):([0-5]\\d)(:([0-5]\\d))?\\s*([AaPp][Mm])?$/;\nexport const PARSEABLE_TIME_FORMAT = /^(\\d\\d?):?(\\d\\d?)(:?(\\d?\\d?))?\\s*([AaPp][Mm]?)?$/;\n\nexport function tokenize24HourTimeString(value: string): { hours: string; minutes: string; seconds: string } {\n const matches = value.match(TWENTY_FOUR_HOUR_TIME_REGEX) as RegExpMatchArray || [null, 0, 0, null, 0];\n const hours = matches[1];\n const minutes = matches[2];\n const seconds = matches[4];\n return { hours, minutes, seconds };\n}\n\nexport function tokenize12HourTimeString(value: string): { hours: string; minutes: string; seconds: string; meridiem: string } {\n const matches = value.match(TWELVE_HOUR_TIME_REGEX) as RegExpMatchArray || [null, 0, 0, null, 0, 'AM'];\n const hours = matches[1];\n const minutes = matches[2];\n const seconds = matches[4];\n const meridiem = matches[5];\n return { hours, minutes, seconds, meridiem };\n}\n\nexport function isSupportedTimeFormat(value: string): boolean {\n return TWENTY_FOUR_HOUR_TIME_REGEX.test(value) ||\n TWELVE_HOUR_TIME_REGEX.test(value);\n}\n\nexport function tryCoerceTimeString(str: string, use24HourTime: boolean, allowSeconds: boolean): string {\n str = str && typeof str === 'string' ? str.replace(/_|\\s/g, '') : '';\n if (/^\\s*$/.test(str)) {\n return '';\n }\n\n const matches = str.match(PARSEABLE_TIME_FORMAT);\n if (!matches) {\n return '';\n }\n\n let hoursStr = matches[1];\n let minutesStr = matches[2];\n let secondsStr = matches[4];\n let meridiem = matches[5];\n\n // Normalize the meridiem string\n if (use24HourTime) {\n meridiem = '';\n } else if (/[AaPp][Mm]/.test(meridiem)) {\n meridiem = meridiem.toUpperCase();\n } else {\n if (/^[AaPp]/.test(meridiem)) {\n if (meridiem.toLowerCase().startsWith('a')) {\n meridiem = 'AM';\n } else if (meridiem.toLowerCase().startsWith('p')) {\n meridiem = 'PM';\n }\n } else {\n meridiem = '';\n }\n }\n\n const hoursNum = +hoursStr || 0;\n const minutesNum = +minutesStr || 0;\n\n // Clamp and normalize hours\n const maxHours = !meridiem || use24HourTime ? 23 : 12;\n if (hoursNum >= maxHours) {\n hoursStr = String(maxHours);\n } else if (hoursNum < 0) {\n hoursStr = '00';\n }\n\n // Clamp and normalize minutes\n if (minutesStr !== undefined) {\n if (minutesNum > 59) {\n minutesStr = '59';\n } else if (minutesNum < 0) {\n minutesStr = '00';\n } else {\n minutesStr = minutesStr.padStart(2, '0');\n }\n }\n\n // Clamp and normalize seconds (if applicable)\n if (secondsStr !== undefined) {\n const secondsNum = +secondsStr || 0;\n if (secondsNum > 59) {\n secondsStr = '59';\n } else if (secondsNum < 0) {\n secondsStr = '00';\n } else {\n secondsStr = secondsStr.padStart(2, '0');\n }\n }\n\n // Build resulting time string\n let timeStr = hoursStr;\n if (minutesStr !== undefined) {\n timeStr += `:${minutesStr}`;\n if (secondsStr === undefined && allowSeconds) {\n secondsStr = '00';\n }\n }\n if (secondsStr !== undefined) {\n timeStr += `:${secondsStr}`;\n }\n if (meridiem) {\n timeStr += ` ${meridiem}`;\n }\n\n return timeStr;\n}\n", "/**\n * Highlights text in the given label by converting it to HTML and using a `<span>` tag to show the highlighted text within the original label.\n * @param label The full text.\n * @param highlightText The text to highlight.\n */\nexport function highlightTextHTML(label: string, highlightText: string): HTMLElement | undefined {\n const text = label.toLowerCase();\n const startIndex = text.indexOf(highlightText.toLowerCase());\n\n if (startIndex !== -1) {\n const endIndex = startIndex + highlightText.length;\n const wrapperSpan = document.createElement('span');\n const highlightSpan = document.createElement('span');\n\n highlightSpan.style.fontWeight = 'bold';\n highlightSpan.textContent = label.substring(startIndex, endIndex);\n \n wrapperSpan.appendChild(document.createTextNode(label.substring(0, startIndex)));\n wrapperSpan.appendChild(highlightSpan);\n wrapperSpan.appendChild(document.createTextNode(label.substring(endIndex)));\n \n return wrapperSpan;\n }\n\n return undefined;\n}\n\n\n/**\n * Awaits user interaction on an element in the form of `pointerenter` or `focusin` to let a listener know\n * when the user has attempted to interact with the provided element.\n * \n * The listeners are only called once, and the other is removed after one of the listeners is called.\n * @param element The element to listen to.\n * @param capture Whether to use capturing listeners or not.\n * @returns A `Promise` that will be resolved when either of the listeners has executed.\n */\nexport function userInteractionListener(element: HTMLElement, { capture = true, pointerenter = true, focusin = true } = {}): Promise<'pointerenter' | 'focusin'> {\n return new Promise<'pointerenter' | 'focusin'>(resolve => {\n const listenerOpts: EventListenerOptions & { once: boolean } = { once: true, capture };\n \n const handlePointerenter = (): void => {\n if (focusin) {\n element.removeEventListener('focusin', handleFocusin, listenerOpts);\n }\n resolve('pointerenter');\n };\n \n const handleFocusin = (): void => {\n if (pointerenter) {\n element.removeEventListener('pointerenter', handlePointerenter, listenerOpts);\n }\n resolve('focusin');\n };\n\n if (pointerenter) {\n element.addEventListener('pointerenter', handlePointerenter, listenerOpts);\n }\n if (focusin) {\n element.addEventListener('focusin', handleFocusin, listenerOpts);\n }\n });\n}\n\n/**\n * Converts a percent value to pixels.\n * @param amount A percent value.\n * @param containerSize The size of the parent element along the relevant axis.\n * @returns A pixel value.\n */\nexport function percentToPixels(amount: number, containerSize: number): number {\n if (containerSize === 0) {\n return 0;\n }\n return amount / 100 * containerSize;\n}\n\n/**\n * Converts a pixel value to a percentage.\n * @param amount A pixel value.\n * @param containerSize The size of the parent element along the relevant axis.\n * @returns A percent value.\n */\nexport function pixelsToPercent(amount: number, containerSize: number): number {\n if (containerSize === 0) {\n return 0;\n }\n return amount * 100 / containerSize;\n}\n\n/**\n * Scales a value from one range to another.\n * @param value The original number value.\n * @param fromMin The lower bound of the input range.\n * @param fromMax The upper bound of the input range.\n * @param toMin The lower bound of the output range (defaults to 0).\n * @param toMax The lower bound of the output range (defaults to 100).\n * @returns A value mapped to the output range.\n */\nexport function scaleValue(value: number, fromMin: number, fromMax: number, toMin = 0, toMax = 100): number {\n const range = fromMax - fromMin;\n const adjustedValue = value - fromMin;\n if (!range || !adjustedValue) {\n return toMin;\n }\n return adjustedValue * toMax / range + toMin;\n}\n\n/**\n * Returns the min of a set of numbers where some values may be undefined.\n * @param args `number` or `undefined` values to compare.\n * @returns The min value or `Number.POSITIVE_INFINITY` if all values are `undefined`.\n */\nexport function safeMin(...args: (number | undefined)[]): number {\n return Math.min(...args.map(arg => arg ?? Number.POSITIVE_INFINITY));\n}\n\n/**\n * Returns the max of a set of numbers where some values may be undefined.\n * @param args `number` or `undefined` values to compare.\n * @returns The max value or `Number.NEGATIVE_INFINITY` if all values are `undefined`.\n */\nexport function safeMax(...args: (number | undefined)[]): number {\n return Math.max(...args.map(arg => arg ?? Number.NEGATIVE_INFINITY));\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { isValidDate } from '@tylertech/forge-core';\n\nexport const ISO_8601_REGEX = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\nexport const ISO_TIMEZONE_REGEX = /a-z/i;\nconst FUTURE_YEAR_COERCION = 10; // The number of years in the future to coerce two-digit years into current century\n\n/**\n * Parses a date string value to a `Date` object in local time.\n * @param str The date string value.\n */\nexport function parseDateString(value: string): Date | null {\n value = value.replace(/_|\\s/g, ''); // Remove potential extraneous characters\n\n // We first check if this is a valid date in ISO 8601 format and return it if so\n if (ISO_8601_REGEX.test(value)) {\n const iso8601Date = new Date(value);\n\n // This is an ISO string, but does it have a timezone? If not, we add current timezone offset\n if (!ISO_TIMEZONE_REGEX.test(value)) {\n iso8601Date.setMinutes(iso8601Date.getMinutes() + iso8601Date.getTimezoneOffset());\n }\n\n if (isValidDate(iso8601Date)) {\n return iso8601Date;\n }\n }\n\n let values: string[] = [];\n\n // We accept dates with a \"/\" or \"-\" separator and in the format of MM/DD/YYYY\n if (value.indexOf('/') !== -1) {\n values = value.split('/');\n } else if (value.indexOf('-') !== -1) {\n values = value.split('-');\n } else if ((value.length === 6 || value.length === 8) && !isNaN(+value)) {\n values = [value.substring(0, 2), value.substring(2, 4), value.substring(4)];\n }\n\n const hasMonthDayYear = values.length === 3;\n let [month, day, year] = values;\n\n // Ensure are month and year values are coerced from 0 to 1 in case of incomplete entry\n if (month === '0') {\n month = '1';\n }\n if (day === '0') {\n day = '1';\n }\n\n // Trap for the case where only 3 digit years are entered\n if (typeof year === 'string' && year.length === 3) {\n year = year.padEnd(4, '0');\n }\n \n if (hasMonthDayYear) {\n const isValidMonthLength = month.length === 1 || month.length === 2;\n const isValidDayLength = day.length === 1 || day.length === 2;\n const isValidYearLength = year.length === 2 || year.length === 4;\n\n if (!isValidMonthLength || !isValidDayLength || !isValidYearLength) {\n return null;\n }\n } else {\n return null;\n }\n\n // Check if we need to coerce two-digit years to the four-digit equivalent\n if (year.length === 2) {\n const minYear = new Date().getFullYear() - (100 - FUTURE_YEAR_COERCION);\n const maxYear = new Date().getFullYear() + FUTURE_YEAR_COERCION;\n const minYearCentury = String(minYear).slice(0, 2);\n const maxYearCentury = String(maxYear).slice(0, 2);\n const normalizedMaxYear = +String(maxYear).slice(2);\n year = +year <= normalizedMaxYear ? `${maxYearCentury}${year}` : `${minYearCentury}${year}`;\n }\n\n let numMonth = +month;\n let numDay = +day;\n const numYear = +year;\n\n if (numMonth > 12) {\n numMonth = 12;\n }\n\n const maxDaysInMonth = new Date(numYear, numMonth, 0).getDate();\n\n if (numDay > maxDaysInMonth) {\n numDay = maxDaysInMonth;\n }\n\n const parsedDate = new Date(numYear, numMonth - 1, numDay, 0, 0, 0, 0);\n return isValidDate(parsedDate) ? parsedDate : null;\n}\n\n/**\n * Formats a `Date` to a specified format.\n * @param str The date string value.\n */\nexport function formatDate(date: Date): string {\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const year = date.getFullYear();\n return [month, day, year].join('/');\n}\n\n/**\n * Determines if two date objects are equal.\n * \n * Note: Time values are ignored.\n * @param first The date to compare.\n * @param second The date to compare the first date to. \n * @returns A boolean whether the two dates are equivalent.\n */\nexport function isSameDate(first?: Date | null, second?: Date | null): boolean {\n if (!first && !second) {\n return true;\n } else if (!first || !second) {\n return false;\n } else if (!isValidDate(first) || !isValidDate(second)) {\n return false;\n }\n return first.setHours(0, 0, 0, 0) === second.setHours(0, 0, 0, 0);\n}\n\n/** \n * Returns the last date on a month.\n * \n * @param month The month.\n * @param year The year of the month, needed for February otherwise optional.\n * @returns The last date of the given month.\n */\nexport function getLastDateOfMonth(month: number, year?: number): Date {\n return new Date(year ?? 1970, month + 1, 0);\n}\n\n/**\n * Returns the number of days in a month.\n * \n * @param month The month to find the length of.\n * @param year The year to check within, needed for February otherwise optional.\n * @returns The number of days in the month.\n */\nexport function getMonthLength(month: number, year?: number): number {\n return getLastDateOfMonth(month, year).getDate();\n}\n", "/**\n * Creates an SVG element from a string.\n */\nexport function createSvgFromString(svgContent: string, defaultViewBox?: string): SVGSVGElement | null {\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n\n // Remove all non-svg child nodes\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n\n const svgElm = div.firstElementChild as SVGSVGElement;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg' && isSafeSvg(svgElm)) {\n // Check if a custom viewbox value was provided and use that if so\n if (defaultViewBox) {\n svgElm.setAttribute('viewBox', defaultViewBox);\n }\n\n // Force a default viewBox if one doesn't exist (this ensures our icon is scalable)\n if (!svgElm.hasAttribute('viewBox') && defaultViewBox) {\n svgElm.setAttribute('viewBox', defaultViewBox);\n }\n\n // Remove any height and width attributes to ensure that the icon is properly scalable\n svgElm.removeAttribute('height');\n svgElm.removeAttribute('width');\n\n return svgElm;\n }\n\n return null;\n}\n\n/**\n * Determines if the provided element is a safe SVG to use.\n * @param el The element reference to test.\n */\nexport function isSafeSvg(el: Element): boolean {\n if (el.nodeType !== 1) {\n return true;\n }\n\n // Validate no <script> tags exist\n if (el.nodeName.toLowerCase() === 'script') {\n return false;\n }\n\n // Ensure there are no inline listeners\n const attributes = Array.from(el.attributes);\n for (const attr of attributes) {\n if (typeof attr.name === 'string' && attr.name.toLowerCase().startsWith('on')) {\n return false;\n }\n }\n\n // Ensure all child nodes are valid\n const childNodes = Array.from(el.childNodes) as Element[];\n for (const node of childNodes) {\n if (!isSafeSvg(node)) {\n return false;\n }\n }\n\n return true;\n}\n", "export const TWENTY_FOUR_HOUR_TIME_REGEX = /^(0?[0-9]|1\\d|2[0-3]):([0-5]\\d)(:([0-5]\\d))?$/;\nexport const TWELVE_HOUR_TIME_REGEX = /^(0?[1-9]|1[0-2]):([0-5]\\d)(:([0-5]\\d))?\\s*([AaPp][Mm])?$/;\nexport const PARSEABLE_TIME_FORMAT = /^(\\d\\d?):?(\\d\\d?)(:?(\\d?\\d?))?\\s*([AaPp][Mm]?)?$/;\n\nexport function tokenize24HourTimeString(value: string): { hours: string; minutes: string; seconds: string } {\n const matches = value.match(TWENTY_FOUR_HOUR_TIME_REGEX) as RegExpMatchArray || [null, 0, 0, null, 0];\n const hours = matches[1];\n const minutes = matches[2];\n const seconds = matches[4];\n return { hours, minutes, seconds };\n}\n\nexport function tokenize12HourTimeString(value: string): { hours: string; minutes: string; seconds: string; meridiem: string } {\n const matches = value.match(TWELVE_HOUR_TIME_REGEX) as RegExpMatchArray || [null, 0, 0, null, 0, 'AM'];\n const hours = matches[1];\n const minutes = matches[2];\n const seconds = matches[4];\n const meridiem = matches[5];\n return { hours, minutes, seconds, meridiem };\n}\n\nexport function isSupportedTimeFormat(value: string): boolean {\n return TWENTY_FOUR_HOUR_TIME_REGEX.test(value) ||\n TWELVE_HOUR_TIME_REGEX.test(value);\n}\n\nexport function tryCoerceTimeString(str: string, use24HourTime: boolean, allowSeconds: boolean): string {\n str = str && typeof str === 'string' ? str.replace(/_|\\s/g, '') : '';\n if (/^\\s*$/.test(str)) {\n return '';\n }\n\n const matches = str.match(PARSEABLE_TIME_FORMAT);\n if (!matches) {\n return '';\n }\n\n let hoursStr = matches[1];\n let minutesStr = matches[2];\n let secondsStr = matches[4];\n let meridiem = matches[5];\n\n // Normalize the meridiem string\n if (use24HourTime) {\n meridiem = '';\n } else if (/[AaPp][Mm]/.test(meridiem)) {\n meridiem = meridiem.toUpperCase();\n } else {\n if (/^[AaPp]/.test(meridiem)) {\n if (meridiem.toLowerCase().startsWith('a')) {\n meridiem = 'AM';\n } else if (meridiem.toLowerCase().startsWith('p')) {\n meridiem = 'PM';\n }\n } else {\n meridiem = '';\n }\n }\n\n const hoursNum = +hoursStr || 0;\n const minutesNum = +minutesStr || 0;\n\n // Clamp and normalize hours\n const maxHours = !meridiem || use24HourTime ? 23 : 12;\n if (hoursNum >= maxHours) {\n hoursStr = String(maxHours);\n } else if (hoursNum < 0) {\n hoursStr = '00';\n }\n\n // Clamp and normalize minutes\n if (minutesStr !== undefined) {\n if (minutesNum > 59) {\n minutesStr = '59';\n } else if (minutesNum < 0) {\n minutesStr = '00';\n } else {\n minutesStr = minutesStr.padStart(2, '0');\n }\n }\n\n // Clamp and normalize seconds (if applicable)\n if (secondsStr !== undefined) {\n const secondsNum = +secondsStr || 0;\n if (secondsNum > 59) {\n secondsStr = '59';\n } else if (secondsNum < 0) {\n secondsStr = '00';\n } else {\n secondsStr = secondsStr.padStart(2, '0');\n }\n }\n\n // Build resulting time string\n let timeStr = hoursStr;\n if (minutesStr !== undefined) {\n timeStr += `:${minutesStr}`;\n if (secondsStr === undefined && allowSeconds) {\n secondsStr = '00';\n }\n }\n if (secondsStr !== undefined) {\n timeStr += `:${secondsStr}`;\n }\n if (meridiem) {\n timeStr += ` ${meridiem}`;\n }\n\n return timeStr;\n}\n", "/**\n * Highlights text in the given label by converting it to HTML and using a `<span>` tag to show the highlighted text within the original label.\n * @param label The full text.\n * @param highlightText The text to highlight.\n */\nexport function highlightTextHTML(label: string, highlightText: string): HTMLElement | undefined {\n const text = label.toLowerCase();\n const startIndex = text.indexOf(highlightText.toLowerCase());\n\n if (startIndex !== -1) {\n const endIndex = startIndex + highlightText.length;\n const wrapperSpan = document.createElement('span');\n const highlightSpan = document.createElement('span');\n\n highlightSpan.style.fontWeight = 'bold';\n highlightSpan.textContent = label.substring(startIndex, endIndex);\n \n wrapperSpan.appendChild(document.createTextNode(label.substring(0, startIndex)));\n wrapperSpan.appendChild(highlightSpan);\n wrapperSpan.appendChild(document.createTextNode(label.substring(endIndex)));\n \n return wrapperSpan;\n }\n\n return undefined;\n}\n\n\n/**\n * Awaits user interaction on an element in the form of `pointerenter` or `focusin` to let a listener know\n * when the user has attempted to interact with the provided element.\n * \n * The listeners are only called once, and the other is removed after one of the listeners is called.\n * @param element The element to listen to.\n * @param capture Whether to use capturing listeners or not.\n * @returns A `Promise` that will be resolved when either of the listeners has executed.\n */\nexport function userInteractionListener(element: HTMLElement, { capture = true, pointerenter = true, focusin = true } = {}): Promise<'pointerenter' | 'focusin'> {\n return new Promise<'pointerenter' | 'focusin'>(resolve => {\n const listenerOpts: EventListenerOptions & { once: boolean } = { once: true, capture };\n \n const handlePointerenter = (): void => {\n if (focusin) {\n element.removeEventListener('focusin', handleFocusin, listenerOpts);\n }\n resolve('pointerenter');\n };\n \n const handleFocusin = (): void => {\n if (pointerenter) {\n element.removeEventListener('pointerenter', handlePointerenter, listenerOpts);\n }\n resolve('focusin');\n };\n\n if (pointerenter) {\n element.addEventListener('pointerenter', handlePointerenter, listenerOpts);\n }\n if (focusin) {\n element.addEventListener('focusin', handleFocusin, listenerOpts);\n }\n });\n}\n\n/**\n * Converts a percent value to pixels.\n * @param amount A percent value.\n * @param containerSize The size of the parent element along the relevant axis.\n * @returns A pixel value.\n */\nexport function percentToPixels(amount: number, containerSize: number): number {\n if (containerSize === 0) {\n return 0;\n }\n return amount / 100 * containerSize;\n}\n\n/**\n * Converts a pixel value to a percentage.\n * @param amount A pixel value.\n * @param containerSize The size of the parent element along the relevant axis.\n * @returns A percent value.\n */\nexport function pixelsToPercent(amount: number, containerSize: number): number {\n if (containerSize === 0) {\n return 0;\n }\n return amount * 100 / containerSize;\n}\n\n/**\n * Scales a value from one range to another.\n * @param value The original number value.\n * @param fromMin The lower bound of the input range.\n * @param fromMax The upper bound of the input range.\n * @param toMin The lower bound of the output range (defaults to 0).\n * @param toMax The lower bound of the output range (defaults to 100).\n * @returns A value mapped to the output range.\n */\nexport function scaleValue(value: number, fromMin: number, fromMax: number, toMin = 0, toMax = 100): number {\n const range = fromMax - fromMin;\n const adjustedValue = value - fromMin;\n if (!range || !adjustedValue) {\n return toMin;\n }\n return adjustedValue * toMax / range + toMin;\n}\n\n/**\n * Returns the min of a set of numbers where some values may be undefined.\n * @param args `number` or `undefined` values to compare.\n * @returns The min value or `Number.POSITIVE_INFINITY` if all values are `undefined`.\n */\nexport function safeMin(...args: (number | undefined)[]): number {\n return Math.min(...args.map(arg => arg ?? Number.POSITIVE_INFINITY));\n}\n\n/**\n * Returns the max of a set of numbers where some values may be undefined.\n * @param args `number` or `undefined` values to compare.\n * @returns The max value or `Number.NEGATIVE_INFINITY` if all values are `undefined`.\n */\nexport function safeMax(...args: (number | undefined)[]): number {\n return Math.max(...args.map(arg => arg ?? Number.NEGATIVE_INFINITY));\n}\n\n/**\n * Copies properties from one object to another, much like Object.assign(), but only where properties exist in both source objects.\n * @param from The object to apply properties from.\n * @param to The object to apply property values to.\n */\nexport function assignMatchingProperties(from: object, to: object): void {\n Object.keys(from)\n .filter(prop => prop in to)\n .forEach(prop => to[prop] = from[prop]);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -3,5 +3,5 @@
3
3
  * Copyright 2022 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{b as K}from"./chunk.G5BCWBD5.js";import{B as D}from"./chunk.LZMYHIO2.js";import{d as F}from"./chunk.OUEF6VQ6.js";import{d as U,l as Z}from"./chunk.7TQYFMM4.js";import{a as z}from"./chunk.A23NSEWA.js";import{a as g}from"./chunk.B3IJU6XJ.js";import{a as B,b as N}from"./chunk.BSZ2LBJX.js";import{a as G}from"./chunk.3E5QKMHL.js";import{a as M,e as O,g as s}from"./chunk.HN4PXH3D.js";import{d as u,k as C,o as P}from"./chunk.G76HB2FK.js";import{a as L,f as h}from"./chunk.MCIQXNKY.js";var W=`${N}color-picker`,Y={VALUE:"value",ALLOW_OPACITY:"allow-opacity",DEBOUNCE_CHANGE_EVENT:"debounce-change-event"},J={SLIDER_THUMB_ACTIVE:"forge-color-picker__slider-thumb--active",GRADIENT_THUMB_ACTIVE:"forge-color-picker__gradient-thumb--active"},Q={GRADIENT:".forge-color-picker__gradient",GRADIENT_THUMB:".forge-color-picker__gradient-thumb",PREVIEW_COLOR:".forge-color-picker__color-preview",HEX_INPUT:"#forge-color-picker-hex-input",RGBA_INPUT:"#forge-color-picker-rgba-input",HSVA_INPUT:"#forge-color-picker-hsva-input",HUE_SLIDER:".forge-color-picker__hue-slider",HUE_SLIDER_THUMB:"#forge-color-picker-hue-thumb",OPACITY_SLIDER:".forge-color-picker__opacity-slider",OPACITY_SLIDER_THUMB:"#forge-color-picker-opacity-thumb",SLIDER:".forge-color-picker__slider",SLIDER_THUMB:".forge-color-picker__slider-thumb",COLOR_VALUE_HEX_CONTAINER:".forge-color-picker__color-hex",COLOR_VALUE_RGBA_CONTAINER:".forge-color-picker__color-rgba",COLOR_VALUE_HSVA_CONTAINER:".forge-color-picker__color-hsva",TYPE_BUTTON:"#forge-color-picker-type-button",COLOR_VALUE_RGBA_R:"#forge-color-picker-rgba-r-input",COLOR_VALUE_RGBA_G:"#forge-color-picker-rgba-g-input",COLOR_VALUE_RGBA_B:"#forge-color-picker-rgba-b-input",COLOR_VALUE_RGBA_A:"#forge-color-picker-rgba-a-input",COLOR_VALUE_HSVA_H:"#forge-color-picker-hsva-h-input",COLOR_VALUE_HSVA_S:"#forge-color-picker-hsva-s-input",COLOR_VALUE_HSVA_V:"#forge-color-picker-hsva-v-input",COLOR_VALUE_HSVA_A:"#forge-color-picker-hsva-a-input"},q={CHANGE:`${W}-change`},ee={CHANGE_EVENT_DEBOUNCE_THRESHOLD:200},o={elementName:W,attributes:Y,events:q,classes:J,selectors:Q,numbers:ee},w="000000",A=(n=>(n.HEX="hex",n.RGB="rgb",n.RGBA="rgba",n.HSV="hsv",n.HSVA="hsva",n))(A||{});var f=class extends z{constructor(t){super(t);this._gradientElement=s(t,o.selectors.GRADIENT),this._previewColorElement=s(t,o.selectors.PREVIEW_COLOR),this._hexInputElement=s(t,o.selectors.HEX_INPUT),this._rgbaInputRElement=s(t,o.selectors.COLOR_VALUE_RGBA_R),this._rgbaInputGElement=s(t,o.selectors.COLOR_VALUE_RGBA_G),this._rgbaInputBElement=s(t,o.selectors.COLOR_VALUE_RGBA_B),this._rgbaInputAElement=s(t,o.selectors.COLOR_VALUE_RGBA_A),this._hsvaInputHElement=s(t,o.selectors.COLOR_VALUE_HSVA_H),this._hsvaInputSElement=s(t,o.selectors.COLOR_VALUE_HSVA_S),this._hsvaInputVElement=s(t,o.selectors.COLOR_VALUE_HSVA_V),this._hsvaInputAElement=s(t,o.selectors.COLOR_VALUE_HSVA_A),this._hueSliderElement=s(t,o.selectors.HUE_SLIDER),this._hueSliderThumbElement=s(t,o.selectors.HUE_SLIDER_THUMB),this._opacitySliderElement=s(t,o.selectors.OPACITY_SLIDER),this._opacitySliderThumbElement=s(t,o.selectors.OPACITY_SLIDER_THUMB),this._hexValueContainerElement=s(t,o.selectors.COLOR_VALUE_HEX_CONTAINER),this._rgbaValueContainerElement=s(t,o.selectors.COLOR_VALUE_RGBA_CONTAINER),this._hsvaValueContainerElement=s(t,o.selectors.COLOR_VALUE_HSVA_CONTAINER),this._typeButtonElement=s(t,o.selectors.TYPE_BUTTON)}setPreviewColor(t){this._previewColorElement.style.backgroundColor=t}setHexInputValue(t){this._hexInputElement.value=t}setRgbaInputValue(t){this._rgbaInputRElement.value=t.r.toString(),this._rgbaInputGElement.value=t.g.toString(),this._rgbaInputBElement.value=t.b.toString(),this._rgbaInputAElement.value=t.a.toString()}setHsvaInputValue(t){this._hsvaInputHElement.value=t.h.toString(),this._hsvaInputSElement.value=t.s.toString(),this._hsvaInputVElement.value=t.v.toString(),this._hsvaInputAElement.value=t.a.toString()}updateA11y(t,i){this._hueSliderThumbElement.setAttribute("aria-valuenow",t.toString()),this._hueSliderThumbElement.setAttribute("aria-valuetext",t.toString()),this._opacitySliderThumbElement.setAttribute("aria-valuenow",i.toString()),this._opacitySliderThumbElement.setAttribute("aria-valuetext",i.toString())}setGradientColor(t){this._gradientElement.style.backgroundColor=t}getHueSliderElement(){return this._hueSliderElement}getOpacitySliderElement(){return this._opacitySliderElement}getGradientElement(){return this._gradientElement}setActiveValueType(t){switch(this._hexValueContainerElement.style.display="none",this._rgbaValueContainerElement.style.display="none",this._hsvaValueContainerElement.style.display="none",t){case"hex":this._hexValueContainerElement.style.removeProperty("display");break;case"rgba":this._rgbaValueContainerElement.style.removeProperty("display");break;case"hsva":this._hsvaValueContainerElement.style.removeProperty("display");break}}focusValueInput(t){switch(t){case"hex":this._hexInputElement.focus(),this._hexInputElement.select();break;case"rgba":this._rgbaInputRElement.focus(),this._rgbaInputRElement.select();break;case"hsva":this._hsvaInputHElement.focus(),this._hsvaInputHElement.select();break}}setTypeClickListener(t){this._typeButtonElement.addEventListener("click",t)}removeTypeClickListener(t){this._typeButtonElement.removeEventListener("click",t)}setHexInputListener(t,i){this._hexInputElement.addEventListener(t,i)}removeHexInputListener(t,i){this._hexInputElement.removeEventListener(t,i)}getHexInputValue(){return this._hexInputElement.value}setRgbaInputListener(t,i){this._rgbaInputRElement.addEventListener(t,i),this._rgbaInputGElement.addEventListener(t,i),this._rgbaInputBElement.addEventListener(t,i),this._rgbaInputAElement.addEventListener(t,i)}removeRgbaInputListener(t,i){this._rgbaInputRElement.removeEventListener(t,i),this._rgbaInputGElement.removeEventListener(t,i),this._rgbaInputBElement.removeEventListener(t,i),this._rgbaInputAElement.removeEventListener(t,i)}getRgbaInputValue(){return{r:parseInt(this._rgbaInputRElement.value,10),g:parseInt(this._rgbaInputGElement.value,10),b:parseInt(this._rgbaInputBElement.value,10),a:parseFloat(this._rgbaInputAElement.value)}}setHsvaInputListener(t,i){this._hsvaInputHElement.addEventListener(t,i),this._hsvaInputSElement.addEventListener(t,i),this._hsvaInputVElement.addEventListener(t,i),this._hsvaInputAElement.addEventListener(t,i)}removeHsvaInputListener(t,i){this._hsvaInputHElement.removeEventListener(t,i),this._hsvaInputSElement.removeEventListener(t,i),this._hsvaInputVElement.removeEventListener(t,i),this._hsvaInputAElement.removeEventListener(t,i)}getHsvaInputValue(){return{h:parseInt(this._hsvaInputHElement.value,10),s:parseInt(this._hsvaInputSElement.value,10),v:parseInt(this._hsvaInputVElement.value,10),a:parseFloat(this._hsvaInputAElement.value)}}toggleOpacityControls(t){t?(this._opacitySliderElement.style.removeProperty("display"),this._rgbaInputAElement.parentElement&&this._rgbaInputAElement.parentElement.style.removeProperty("display"),this._hsvaInputAElement.parentElement&&this._hsvaInputAElement.parentElement.style.removeProperty("display")):(this._opacitySliderElement.style.display="none",this._rgbaInputAElement.parentElement&&(this._rgbaInputAElement.parentElement.style.display="none"),this._hsvaInputAElement.parentElement&&(this._hsvaInputAElement.parentElement.style.display="none"))}};function E(r,e,t){let i=t.getBoundingClientRect(),a=r-i.left,n=e-i.top;return a>i.width?a=i.width:a<0&&(a=0),n>i.height?n=i.height:n<0&&(n=0),{x:a,y:n,height:i.height,width:i.width}}function v(r){let e,t,i,a=r.h/60,n=r.s/100,l=r.v/100;if(n===0)return e=t=i=l,{r:Math.round(e*255),g:Math.round(t*255),b:Math.round(i*255),a:r.a};let d=Math.floor(a),_=a-d,c=l*(1-n),x=l*(1-n*_),k=l*(1-n*(1-_));switch(d){case 0:e=l,t=k,i=c;break;case 1:e=x,t=l,i=c;break;case 2:e=c,t=l,i=k;break;case 3:e=c,t=x,i=l;break;case 4:e=k,t=c,i=l;break;default:e=l,t=c,i=x}return{r:Math.round(e*255),g:Math.round(t*255),b:Math.round(i*255),a:r.a}}function m(r){return T(r.r)+T(r.g)+T(r.b)+(Math.round(r.a*255)+65536).toString(16).substr(-2)}function T(r){return("0"+r.toString(16)).slice(-2)}function $(r){let e=r.length===3||r.length===4,t=e?`${r.slice(0,1)}${r.slice(0,1)}`:r.slice(0,2),i=e?`${r.slice(1,2)}${r.slice(1,2)}`:r.slice(2,4),a=e?`${r.slice(2,3)}${r.slice(2,3)}`:r.slice(4,6),n=(e?`${r.slice(3,4)}${r.slice(3,4)}`:r.slice(6,8))||"ff";return{r:parseInt(t,16),g:parseInt(i,16),b:parseInt(a,16),a:parseFloat((parseInt(n,16)/255).toFixed(2))}}function X(r){return`rgba(${r.r}, ${r.g}, ${r.b}, ${r.a})`}function H(r,e){let t=r.replace(/^#/,"");return e||(t.length===4?t=t.substring(0,3):t.length===8&&(t=t.substring(0,6))),`#${t}`}function j(r){let e=r.r/255,t=r.g/255,i=r.b/255,a=Math.max(e,t,i),n=Math.min(e,t,i),l=a,d=a,_=a,c=a-n;if(d=a===0?0:c/a,a===n)l=0;else{switch(a){case e:l=(t-i)/c+(t<i?6:0);break;case t:l=(i-e)/c+2;break;case i:l=(e-t)/c+4;break}l/=6}return{h:Math.round(l*360),s:Math.round(d*100),v:Math.round(_*100),a:r.a}}function S(r){if(!r||typeof r!="string")return!1;switch(r.substring(0,1)==="#"&&(r=r.substring(1)),r.length){case 3:return/^[0-9A-F]{3}$/i.test(r);case 4:return/^[0-9A-F]{4}$/i.test(r);case 6:return/^[0-9A-F]{6}$/i.test(r);case 8:return/^[0-9A-F]{8}$/i.test(r);default:return!1}}function R(r){return u(r.r)&&r.r>=0&&r.r<=255&&u(r.g)&&r.g>=0&&r.g<=255&&u(r.b)&&r.b>=0&&r.b<=255&&u(r.a)&&r.a>=0&&r.a<=1}function V(r){return u(r.h)&&r.h>=0&&r.h<=360&&u(r.s)&&r.s>=0&&r.s<=100&&u(r.v)&&r.v>=0&&r.v<=100&&u(r.a)&&r.a>=0&&r.a<=1}var y=class{constructor(e,t){this._rootElement=e;this._changeListener=t;this._keydownListener=i=>this._onKeydown(i),this._downListener=i=>this._onDown(i),this._moveListener=i=>this._onMove(i),this._upListener=i=>this._onUp(i),this._initialize()}destroy(){this._unlisten()}setValue(e,t){window.requestAnimationFrame(()=>{let i=this._rootElement.getBoundingClientRect();this._xPercent=Math.round(i.width*(e/100)),this._yPercent=i.height-Math.round(i.height*(t/100)),this._setThumbPosition(this._xPercent,this._yPercent)})}_initialize(){this._thumbElement=this._rootElement.querySelector(o.selectors.GRADIENT_THUMB),this._listen(),this._setThumbPosition(this._xPercent,this._yPercent)}_listen(){this._rootElement.addEventListener("keydown",this._keydownListener),this._rootElement.addEventListener("mousedown",this._downListener),this._rootElement.addEventListener("touchstart",this._downListener)}_unlisten(){this._rootElement.removeEventListener("keydown",this._keydownListener),this._rootElement.removeEventListener("mousedown",this._downListener),this._rootElement.removeEventListener("touchstart",this._downListener),document.removeEventListener("mousemove",this._moveListener),document.removeEventListener("touchmove",this._moveListener),document.removeEventListener("mouseup",this._upListener),document.removeEventListener("touchend",this._upListener)}_onKeydown(e){let t=e.key==="Enter"||e.keyCode===13,i=e.key==="ArrowLeft"||e.keyCode===37,a=e.key==="ArrowUp"||e.keyCode===38,n=e.key==="ArrowRight"||e.keyCode===39,l=e.key==="ArrowDown"||e.keyCode===40,d=this._rootElement.getBoundingClientRect();if(l)e.preventDefault(),this._yPercent++;else if(a)e.preventDefault(),this._yPercent--;else if(i)e.preventDefault(),this._xPercent--;else if(n)e.preventDefault(),this._xPercent++;else if(t)e.preventDefault();else return;this._xPercent>d.width?this._xPercent=d.width:this._xPercent<0&&(this._xPercent=0),this._yPercent>d.height?this._yPercent=d.height:this._yPercent<0&&(this._yPercent=0),this._setThumbPosition(this._xPercent,this._yPercent),this._notify()}_onDown(e){e.preventDefault(),document.addEventListener("mousemove",this._moveListener),document.addEventListener("touchmove",this._moveListener),document.addEventListener("mouseup",this._upListener),document.addEventListener("touchend",this._upListener),this._updateThumbPosition(e)}_onMove(e){e.preventDefault(),this._updateThumbPosition(e)}_onUp(e){document.removeEventListener("mousemove",this._moveListener),document.removeEventListener("touchmove",this._moveListener),document.removeEventListener("mouseup",this._upListener),document.removeEventListener("touchend",this._upListener),this._updateThumbPosition(e),this._thumbElement.focus()}_updateThumbPosition(e){let t=/^mouse/.test(e.type),i=t?e.clientX:e.changedTouches[0].clientX,a=t?e.clientY:e.changedTouches[0].clientY,n=this._calculateSliderPercent(i,a);this._setThumbPosition(n.x,n.y),this._xPercent=parseInt((n.x/n.width*100).toString(),10),this._yPercent=Math.abs(parseInt((n.y/n.height*100).toString(),10)-100),this._notify()}_calculateSliderPercent(e,t){return E(e,t,this._rootElement)}_setThumbPosition(e,t){this._thumbElement.style.left=`${e}px`,this._thumbElement.style.top=`${t}px`}_notify(){typeof this._changeListener=="function"&&this._changeListener(this._xPercent,this._yPercent)}};var b=class{constructor(e,t){this._rootElement=e;this._changeListener=t;this._percent=1;this._min=0;this._max=1;this._step=.01;this._keydownListener=i=>this._onKeydown(i),this._downListener=i=>this._onDown(i),this._moveListener=i=>this._onMove(i),this._upListener=i=>this._onUp(i),this._initialize()}destroy(){this._unlisten()}setValue(e){this._percent=e,this._setThumbPosition(this._percent)}_initialize(){this._thumbElement=this._rootElement.querySelector(o.selectors.SLIDER_THUMB),this._listen(),this._setThumbPosition(this._percent)}_listen(){this._thumbElement.addEventListener("keydown",this._keydownListener),this._rootElement.addEventListener("mousedown",this._downListener),this._rootElement.addEventListener("touchstart",this._downListener)}_unlisten(){this._thumbElement.removeEventListener("keydown",this._keydownListener),this._rootElement.removeEventListener("mousedown",this._downListener),this._rootElement.removeEventListener("touchstart",this._downListener),document.removeEventListener("mousemove",this._moveListener),document.removeEventListener("touchmove",this._moveListener),document.removeEventListener("mouseup",this._upListener),document.removeEventListener("touchend",this._upListener)}_onKeydown(e){let t=e.key==="ArrowLeft"||e.keyCode===37,i=e.key==="ArrowRight"||e.keyCode===39,a=e.key==="Home"||e.keyCode===36,n=e.key==="End"||e.keyCode===35;t?(e.preventDefault(),this._percent-=this._step):i?(e.preventDefault(),this._percent+=this._step):a?(e.preventDefault(),this._percent=this._min):n&&(e.preventDefault(),this._percent=this._max),this._percent<this._min?this._percent=this._min:this._percent>this._max&&(this._percent=this._max),this._setThumbPosition(this._percent),this._notify()}_onDown(e){e.preventDefault(),document.addEventListener("mousemove",this._moveListener),document.addEventListener("touchmove",this._moveListener),document.addEventListener("mouseup",this._upListener),document.addEventListener("touchend",this._upListener),this._updateThumbPosition(e)}_onMove(e){e.preventDefault(),this._thumbElement.classList.add(o.classes.SLIDER_THUMB_ACTIVE),this._updateThumbPosition(e)}_onUp(e){this._thumbElement.classList.remove(o.classes.SLIDER_THUMB_ACTIVE),document.removeEventListener("mousemove",this._moveListener),document.removeEventListener("touchmove",this._moveListener),document.removeEventListener("mouseup",this._upListener),document.removeEventListener("touchend",this._upListener),this._updateThumbPosition(e),this._thumbElement.focus()}_updateThumbPosition(e){let t=/^mouse/.test(e.type)?e.clientX:e.changedTouches[0].clientX;this._percent=this._calculateSliderPercent(t),this._setThumbPosition(this._percent),this._notify()}_calculateSliderPercent(e){let t=E(e,0,this._rootElement);return parseFloat((t.x/t.width).toFixed(2))}_setThumbPosition(e){this._thumbElement.style.left=`${e*100}%`}_notify(){typeof this._changeListener=="function"&&this._changeListener(this._percent)}};var I=class{constructor(e){this._adapter=e;this._value=null;this._allowOpacity=!0;this._hex=w;this._hsva={h:0,s:0,v:0,a:1};this._rgba={r:0,g:0,b:0,a:1};this._debounceChangeEvent=!1;this._valueType="hex";this._gradientSliderChangedListener=(t,i)=>this._onGradientSliderChanged(t,i),this._hueSliderChangedListener=t=>this._onHueSliderChanged(t),this._opacitySliderChangedListener=t=>this._onOpacitySliderChanged(t),this._typeClickListener=t=>this._onTypeClicked(t),this._hexInputChangedListener=t=>this._onHexInputChanged(),this._rgbaInputChangedListener=t=>this._onRgbaInputChanged(),this._hsvaInputChangedListener=t=>this._onHsvaInputChanged()}initialize(){this._applyChangeEventTrigger(),this._adapter.setTypeClickListener(this._typeClickListener),this._adapter.setHexInputListener("input",this._hexInputChangedListener),this._adapter.setRgbaInputListener("input",this._rgbaInputChangedListener),this._adapter.setHsvaInputListener("input",this._hsvaInputChangedListener),this._gradientSlider=new y(this._adapter.getGradientElement(),this._gradientSliderChangedListener),this._hueSlider=new b(this._adapter.getHueSliderElement(),this._hueSliderChangedListener),this._opacitySlider=new b(this._adapter.getOpacitySliderElement(),this._opacitySliderChangedListener),this._initializeOpacity(),this._setColorFromHex(),this._adapter.setActiveValueType(this._valueType)}disconnect(){this._adapter.removeTypeClickListener(this._typeClickListener),this._adapter.removeHexInputListener("input",this._hexInputChangedListener),this._adapter.removeRgbaInputListener("input",this._hexInputChangedListener),this._adapter.removeHsvaInputListener("input",this._hexInputChangedListener),this._gradientSlider.destroy(),this._hueSlider.destroy(),this._opacitySlider.destroy()}_applyChangeEventTrigger(){this._debounceChangeEvent?this._triggerChangeEvent=P((e,t)=>{this._emitChangeEvent(e,t)},o.numbers.CHANGE_EVENT_DEBOUNCE_THRESHOLD,!1):this._triggerChangeEvent=(e,t)=>this._emitChangeEvent(e,t)}_initializeOpacity(){this._hsva.a=1,this._adapter.toggleOpacityControls(this._allowOpacity),this._render()}_onTypeClicked(e){this._valueType==="hex"?this._valueType="rgba":this._valueType==="rgba"?this._valueType="hsva":this._valueType==="hsva"&&(this._valueType="hex"),this._adapter.setActiveValueType(this._valueType),this._adapter.focusValueInput(this._valueType)}_onHexInputChanged(){let e=this._adapter.getHexInputValue();S(e)&&(this.value=e,this._triggerChangeEvent("input","hex"))}_onRgbaInputChanged(){let e=this._adapter.getRgbaInputValue();R(e)&&(this.value=m(e),this._triggerChangeEvent("input","rgba"))}_onHsvaInputChanged(){let e=this._adapter.getHsvaInputValue();V(e)&&(this.value=m(v(e)),this._triggerChangeEvent("input","hsva"))}_setColorFromHex(){this._rgba=$(this._hex),this._hsva=j(this._rgba),this._gradientSlider.setValue(this._hsva.s,this._hsva.v),this._hueSlider.setValue(parseFloat((this._hsva.h/360).toFixed(2))),this._opacitySlider.setValue(this._hsva.a),this._render()}_onGradientSliderChanged(e,t){this._hsva.s=e,this._hsva.v=t,this._syncColors(),this._render(),this._triggerChangeEvent("slider","gradient")}_onHueSliderChanged(e){this._hsva.h=parseInt((360*e).toString(),10),this._syncColors(),this._setGradientColor(),this._render(),this._triggerChangeEvent("slider","hue")}_onOpacitySliderChanged(e){this._hsva.a=e,this._syncColors(),this._render(),this._triggerChangeEvent("slider","opacity")}_setGradientColor(){let e=v({h:this._hsva.h,s:100,v:100,a:1});this._adapter.setGradientColor(`rgb(${e.r}, ${e.g}, ${e.b})`)}_syncColors(){this._rgba=v(this._hsva),this._hex=m(this._rgba),this._value=this._hex||null}_render(){this._setGradientColor(),this._adapter.setPreviewColor(X(this._rgba)),this._adapter.setHexInputValue(this._getFormattedHex()),this._adapter.setRgbaInputValue(this._rgba),this._adapter.setHsvaInputValue(this._hsva),this._adapter.updateA11y(this._hsva.h,Math.round(this._hsva.a*100))}_getFormattedHex(){return H(this._hex,!1)}_emitChangeEvent(e,t){let i={type:e,source:t,hex:H(this._hex,!1).replace(/^#/,""),rgba:this._rgba,hsva:this._hsva};this._allowOpacity&&(i.alpha=this._hsva.a),this._adapter.emitHostEvent(o.events.CHANGE,i)}get value(){return this._getFormattedHex()}set value(e){if(this._value!==e){if(this._value=e||w,!S(this._value))throw new Error("Invalid hex value provided.");this._hex=this._value.replace(/^#/,""),this._setColorFromHex(),this._adapter.setHostAttribute(o.attributes.VALUE,this._value)}}get rgba(){return this._rgba?L({},this._rgba):null}set rgba(e){e?R(e)&&(this.value=m(e)):this.value=null}get hsva(){return this._hsva?L({},this._hsva):null}set hsva(e){e?V(e)&&(this.value=m(v(e))):this.value=null}get opacity(){return this._hsva?this._hsva.a:null}set opacity(e){this._hsva.a!==e&&e!=null&&this._allowOpacity&&(e>=0&&e<=1?(this._hsva.a=e,this._opacitySlider.setValue(this._hsva.a),this._syncColors(),this._render()):console.warn(`The provided opacity value (${e}) must be between 0 and 1.`))}get allowOpacity(){return this._allowOpacity}set allowOpacity(e){this._allowOpacity=e,this._initializeOpacity()}get debounceChangeEvent(){return this._debounceChangeEvent}set debounceChangeEvent(e){this._debounceChangeEvent!==e&&(this._debounceChangeEvent=e,this._applyChangeEventTrigger())}};var te='<template><div class="forge-color-picker" part="root"><input type="color" tabindex="-1" class="forge-color-picker__input" spellcheck="false" autocomplete="off" aria-label="Color picker value" part="input"><div class="forge-color-picker__container" part="container"><div class="forge-color-picker__gradient" tabindex="0" part="gradient"><div class="forge-color-picker__gradient-color" part="gradient-color"></div><div class="forge-color-picker__gradient-thumb" part="gradient-thumb"></div></div><div class="forge-color-picker__control-preview" part="controls-preview-container"><div class="forge-color-picker__controls" part="controls-container"><div class="forge-color-picker__slider-control" part="hue-control-container"><div class="forge-color-picker__slider forge-color-picker__hue-slider" part="hue-control-slider"><div class="forge-color-picker__slider-thumb" id="forge-color-picker-hue-thumb" part="hue-control-slider-thumb" tabindex="0" role="slider" aria-label="Change hue" aria-valuemin="0" aria-valuemax="360" aria-valuenow="0" aria-orientation="horizontal" aria-valuetext="0"></div></div></div><div class="forge-color-picker__slider-control" part="opacity-control-container"><div class="forge-color-picker__canvas" part="opacity-control-canvas"><div class="forge-color-picker__slider forge-color-picker__opacity-slider" part="opacity-control-slider"><div class="forge-color-picker__slider-thumb" id="forge-color-picker-opacity-thumb" part="opacity-control-slider-thumb" tabindex="0" role="slider" aria-label="Change opacity" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" aria-orientation="horizontal" aria-valuetext="0"></div></div></div></div></div><div class="forge-color-picker__color-preview-container forge-color-picker__canvas" part="color-preview-container"><div class="forge-color-picker__color-preview" part="color-preview"></div></div></div><div class="forge-color-picker__value" part="value-container"><div class="forge-color-picker__color-types" part="types-container"><div class="forge-color-picker__color-hex" part="hex-type-container"><div part="hex-type-label-wrapper"><label for="forge-color-picker-hex-input" part="hex-label">HEX</label></div><input type="text" id="forge-color-picker-hex-input" part="hex-input" style="width: 88px;" maxlength="9" spellcheck="false" autocomplete="off" aria-label="HEX value"></div><div class="forge-color-picker__color-rgba" part="rgba-type-container"><div part="rgba-type-wrapper-r"><label for="forge-color-picker-rgba-r-input" part="rgba-type-label-r">R</label> <input type="number" id="forge-color-picker-rgba-r-input" part="rgba-type-input-r" min="0" max="255" maxlength="3" autocomplete="off" aria-label="Red"></div><div part="rgba-type-wrapper-g"><label for="forge-color-picker-rgba-g-input" part="rgba-type-label-g">G</label> <input type="number" id="forge-color-picker-rgba-g-input" part="rgba-type-input-g" min="0" max="255" maxlength="3" autocomplete="off" aria-label="Green"></div><div part="rgba-type-wrapper-b"><label for="forge-color-picker-rgba-b-input" part="rgba-type-label-b">B</label> <input type="number" id="forge-color-picker-rgba-b-input" part="rgba-type-input-b" min="0" max="255" maxlength="3" autocomplete="off" aria-label="Blue"></div><div part="rgba-type-wrapper-a"><label for="forge-color-picker-rgba-a-input" part="rgba-type-label-a">A</label> <input type="number" id="forge-color-picker-rgba-a-input" part="rgba-type-input-a" min="0" max="1" step="0.1" maxlength="3" autocomplete="off" aria-label="Alpha"></div></div><div class="forge-color-picker__color-hsva" part="hsva-type-container"><div part="hsva-type-wrapper-h"><label for="forge-color-picker-hsva-h-input" part="hsva-type-label-h">H</label> <input type="number" id="forge-color-picker-hsva-h-input" part="hsva-type-input-h" min="0" max="360" maxlength="3" autocomplete="off" aria-label="Hue"></div><div part="hsva-type-wrapper-s"><label for="forge-color-picker-hsva-s-input" part="hsva-type-label-s">S</label> <input type="number" id="forge-color-picker-hsva-s-input" part="hsva-type-input-s" min="0" max="100" maxlength="3" autocomplete="off" aria-label="Saturation"></div><div part="hsva-type-wrapper-v"><label for="forge-color-picker-hsva-v-input" part="hsva-type-label-v">V</label> <input type="number" id="forge-color-picker-hsva-v-input" part="hsva-type-input-v" min="0" max="100" maxlength="3" autocomplete="off" aria-label="Value"></div><div part="hsva-type-wrapper-a"><label for="forge-color-picker-hsva-a-input" part="hsva-type-label-a">A</label> <input type="number" id="forge-color-picker-hsva-a-input" part="hsva-type-input-a" min="0" max="1" step="0.1" maxlength="3" autocomplete="off" aria-label="Alpha"></div></div></div><div class="forge-color-picker__type-button" part="type-container"><forge-icon-button part="type-button"><button type="button" id="forge-color-picker-type-button" aria-labelledby="type-button-tooltip" part="type-button-element"><forge-icon name="unfold_more" part="type-button-icon"></forge-icon></button><forge-tooltip delay="500" position="bottom" id="type-button-tooltip">Change color format</forge-tooltip></forge-icon-button></div></div></div></div></template>',ie='.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.forge-icon-button{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.forge-icon-button::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-icon-button.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}*{-webkit-box-sizing:border-box;box-sizing:border-box}.forge-color-picker{width:272px;width:var(--forge-color-picker-width,272px);position:relative;display:inline-block;overflow:hidden}.forge-color-picker__input{height:1px;opacity:0;position:absolute;width:1px}.forge-color-picker__gradient{position:relative;outline:0}.forge-color-picker__gradient-color{background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,0)),to(#000)),-webkit-gradient(linear,left top,right top,color-stop(0,#fff),to(rgba(255,255,255,0)));background:linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 100%),linear-gradient(to right,#fff 0,rgba(255,255,255,0) 100%);height:152px}.forge-color-picker__gradient-thumb{border:1px solid #fff;border-radius:50%;cursor:pointer;display:inline-block;height:10px;width:10px;margin-left:-5px;margin-top:-5px;position:absolute;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:left .2s cubic-bezier(.25, .8, .25, 1) 0s,top .2s cubic-bezier(.25, .8, .25, 1) 0s;transition:left .2s cubic-bezier(.25, .8, .25, 1) 0s,top .2s cubic-bezier(.25, .8, .25, 1) 0s}.forge-color-picker__control-preview{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;width:100%;padding:16px}.forge-color-picker__controls{-webkit-box-flex:1;flex:1;margin-right:16px}.forge-color-picker__slider{position:relative}.forge-color-picker__slider-thumb{outline:0;height:16px;width:16px;background-color:#fff;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3);position:absolute;border-radius:50%;top:calc(50% - 8px);margin-left:-8px;-webkit-transition:left .4s cubic-bezier(.25, .8, .25, 1);transition:left .4s cubic-bezier(.25, .8, .25, 1)}.forge-color-picker__slider-thumb--active{-webkit-transition:none;transition:none}.forge-color-picker__slider-thumb:hover{cursor:pointer}.forge-color-picker__color-preview-container{border-radius:50%;-webkit-box-shadow:0 0 2px 0 rgba(0,0,0,.54) inset,0 0 2px 0 rgba(0,0,0,.54);box-shadow:0 0 2px 0 rgba(0,0,0,.54) inset,0 0 2px 0 rgba(0,0,0,.54);overflow:hidden}.forge-color-picker__color-preview{height:32px;width:32px;-webkit-transition:background-color .2s cubic-bezier(.25, .8, .25, 1);transition:background-color .2s cubic-bezier(.25, .8, .25, 1)}.forge-color-picker__value{display:-webkit-box;display:flex;width:100%;-webkit-box-align:center;align-items:center;padding:0 8px 16px 16px;font-size:12px}.forge-color-picker__color-types{-webkit-box-flex:1;flex:1}.forge-color-picker__color-types label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-light,rgba(0,0,0,.54))}.forge-color-picker__color-types input{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit)}.forge-color-picker__color-types input[type=number],.forge-color-picker__color-types input[type=text]{color:#000;color:var(--mdc-theme-on-surface,#000);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);background-color:transparent;padding:4px 8px;border-width:1px;border-style:solid;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;-webkit-transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1),-webkit-box-shadow .2s 0s cubic-bezier(0, 0, .2, 1);transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1),-webkit-box-shadow .2s 0s cubic-bezier(0, 0, .2, 1);transition:box-shadow .2s 0s cubic-bezier(0, 0, .2, 1),border-color .2s 0s cubic-bezier(0, 0, .2, 1);transition:box-shadow .2s 0s cubic-bezier(0, 0, .2, 1),border-color .2s 0s cubic-bezier(0, 0, .2, 1),-webkit-box-shadow .2s 0s cubic-bezier(0, 0, .2, 1)}.forge-color-picker__color-types input[type=number]:hover,.forge-color-picker__color-types input[type=text]:hover{border-color:rgba(0,0,0,.87);border-color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-color-picker__color-types input[type=number]:focus,.forge-color-picker__color-types input[type=text]:focus{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5);-webkit-box-shadow:0 0 0 1px inset #3f51b5;box-shadow:0 0 0 1px inset #3f51b5;-webkit-box-shadow:0 0 0 1px inset var(--mdc-theme-primary,#3f51b5);box-shadow:0 0 0 1px inset var(--mdc-theme-primary,#3f51b5)}.forge-color-picker__color-types input[type=number]{text-align:center;-moz-appearance:textfield}.forge-color-picker__color-types input[type=number]::-webkit-inner-spin-button,.forge-color-picker__color-types input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.forge-color-picker__color-hex{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;-webkit-box-align:space-between;align-items:space-between}.forge-color-picker__canvas{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNnB4IiBoZWlnaHQ9IjZweCIgdmlld0JveD0iMCAwIDYgNiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDwhLS0gR2VuZXJhdG9yOiBTa2V0Y2ggNTAgKDU0OTgzKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5Hcm91cCA5PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Ikdyb3VwLTkiPgogICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLTExIiBmaWxsPSIjRTBFMEUwIiB4PSIwIiB5PSIwIiB3aWR0aD0iMyIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtMTEtQ29weS0yIiBmaWxsPSIjRkZGRkZGIiB4PSIwIiB5PSIzIiB3aWR0aD0iMyIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtMTEtQ29weSIgZmlsbD0iI0ZGRkZGRiIgeD0iMyIgeT0iMCIgd2lkdGg9IjMiIGhlaWdodD0iMyI+PC9yZWN0PgogICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLTExLUNvcHktMyIgZmlsbD0iI0UwRTBFMCIgeD0iMyIgeT0iMyIgd2lkdGg9IjMiIGhlaWdodD0iMyI+PC9yZWN0PgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+")}.forge-color-picker__hue-slider{height:8px;background:-webkit-gradient(linear,left top,right top,color-stop(0,red),color-stop(16%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(84%,#f0f),to(#ff0004));background:linear-gradient(to right,red 0,#ff0 16%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 84%,#ff0004 100%)}.forge-color-picker__opacity-slider{height:8px;margin-top:16px;background:-webkit-gradient(linear,left top,right top,from(rgba(255,0,0,0)),to(red));background:linear-gradient(to right,rgba(255,0,0,0) 0,red 100%)}.forge-color-picker__color-hsva,.forge-color-picker__color-rgba{display:-webkit-box;display:flex}.forge-color-picker__color-hsva div,.forge-color-picker__color-rgba div{margin-right:4px}.forge-color-picker__color-hsva label,.forge-color-picker__color-rgba label{display:block;text-align:center}.forge-color-picker__color-hsva input,.forge-color-picker__color-rgba input{width:44px}:host{display:inline-block}:host([hidden]){display:none}',p=class extends G{constructor(){super();U.define(D),O(this,te,ie),this._foundation=new I(new f(this))}static get observedAttributes(){return[o.attributes.VALUE,o.attributes.ALLOW_OPACITY,o.attributes.DEBOUNCE_CHANGE_EVENT]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,i,a){switch(t){case o.attributes.VALUE:this.value=a;break;case o.attributes.ALLOW_OPACITY:this.allowOpacity=C(a);break;case o.attributes.DEBOUNCE_CHANGE_EVENT:this.debounceChangeEvent=C(a);break}}};h([g()],p.prototype,"value",2),h([g()],p.prototype,"rgba",2),h([g()],p.prototype,"hsva",2),h([g()],p.prototype,"opacity",2),h([g()],p.prototype,"allowOpacity",2),h([g()],p.prototype,"debounceChangeEvent",2),p=h([B({name:o.elementName,dependencies:[K,F,Z]})],p);function Xe(){M(p)}export{o as a,w as b,A as c,f as d,I as e,p as f,Xe as g};
7
- //# sourceMappingURL=chunk.NEGJYSPB.js.map
6
+ import{b as K}from"./chunk.BOENNFXE.js";import{B as D}from"./chunk.LZMYHIO2.js";import{d as F}from"./chunk.OUEF6VQ6.js";import{d as U,l as Z}from"./chunk.YAJT3P6V.js";import{a as z}from"./chunk.A23NSEWA.js";import{a as g}from"./chunk.B3IJU6XJ.js";import{a as B,b as N}from"./chunk.BSZ2LBJX.js";import{a as G}from"./chunk.3E5QKMHL.js";import{a as M,e as O,g as s}from"./chunk.HN4PXH3D.js";import{d as u,k as C,o as P}from"./chunk.G76HB2FK.js";import{a as L,f as h}from"./chunk.MCIQXNKY.js";var W=`${N}color-picker`,Y={VALUE:"value",ALLOW_OPACITY:"allow-opacity",DEBOUNCE_CHANGE_EVENT:"debounce-change-event"},J={SLIDER_THUMB_ACTIVE:"forge-color-picker__slider-thumb--active",GRADIENT_THUMB_ACTIVE:"forge-color-picker__gradient-thumb--active"},Q={GRADIENT:".forge-color-picker__gradient",GRADIENT_THUMB:".forge-color-picker__gradient-thumb",PREVIEW_COLOR:".forge-color-picker__color-preview",HEX_INPUT:"#forge-color-picker-hex-input",RGBA_INPUT:"#forge-color-picker-rgba-input",HSVA_INPUT:"#forge-color-picker-hsva-input",HUE_SLIDER:".forge-color-picker__hue-slider",HUE_SLIDER_THUMB:"#forge-color-picker-hue-thumb",OPACITY_SLIDER:".forge-color-picker__opacity-slider",OPACITY_SLIDER_THUMB:"#forge-color-picker-opacity-thumb",SLIDER:".forge-color-picker__slider",SLIDER_THUMB:".forge-color-picker__slider-thumb",COLOR_VALUE_HEX_CONTAINER:".forge-color-picker__color-hex",COLOR_VALUE_RGBA_CONTAINER:".forge-color-picker__color-rgba",COLOR_VALUE_HSVA_CONTAINER:".forge-color-picker__color-hsva",TYPE_BUTTON:"#forge-color-picker-type-button",COLOR_VALUE_RGBA_R:"#forge-color-picker-rgba-r-input",COLOR_VALUE_RGBA_G:"#forge-color-picker-rgba-g-input",COLOR_VALUE_RGBA_B:"#forge-color-picker-rgba-b-input",COLOR_VALUE_RGBA_A:"#forge-color-picker-rgba-a-input",COLOR_VALUE_HSVA_H:"#forge-color-picker-hsva-h-input",COLOR_VALUE_HSVA_S:"#forge-color-picker-hsva-s-input",COLOR_VALUE_HSVA_V:"#forge-color-picker-hsva-v-input",COLOR_VALUE_HSVA_A:"#forge-color-picker-hsva-a-input"},q={CHANGE:`${W}-change`},ee={CHANGE_EVENT_DEBOUNCE_THRESHOLD:200},o={elementName:W,attributes:Y,events:q,classes:J,selectors:Q,numbers:ee},w="000000",A=(n=>(n.HEX="hex",n.RGB="rgb",n.RGBA="rgba",n.HSV="hsv",n.HSVA="hsva",n))(A||{});var f=class extends z{constructor(t){super(t);this._gradientElement=s(t,o.selectors.GRADIENT),this._previewColorElement=s(t,o.selectors.PREVIEW_COLOR),this._hexInputElement=s(t,o.selectors.HEX_INPUT),this._rgbaInputRElement=s(t,o.selectors.COLOR_VALUE_RGBA_R),this._rgbaInputGElement=s(t,o.selectors.COLOR_VALUE_RGBA_G),this._rgbaInputBElement=s(t,o.selectors.COLOR_VALUE_RGBA_B),this._rgbaInputAElement=s(t,o.selectors.COLOR_VALUE_RGBA_A),this._hsvaInputHElement=s(t,o.selectors.COLOR_VALUE_HSVA_H),this._hsvaInputSElement=s(t,o.selectors.COLOR_VALUE_HSVA_S),this._hsvaInputVElement=s(t,o.selectors.COLOR_VALUE_HSVA_V),this._hsvaInputAElement=s(t,o.selectors.COLOR_VALUE_HSVA_A),this._hueSliderElement=s(t,o.selectors.HUE_SLIDER),this._hueSliderThumbElement=s(t,o.selectors.HUE_SLIDER_THUMB),this._opacitySliderElement=s(t,o.selectors.OPACITY_SLIDER),this._opacitySliderThumbElement=s(t,o.selectors.OPACITY_SLIDER_THUMB),this._hexValueContainerElement=s(t,o.selectors.COLOR_VALUE_HEX_CONTAINER),this._rgbaValueContainerElement=s(t,o.selectors.COLOR_VALUE_RGBA_CONTAINER),this._hsvaValueContainerElement=s(t,o.selectors.COLOR_VALUE_HSVA_CONTAINER),this._typeButtonElement=s(t,o.selectors.TYPE_BUTTON)}setPreviewColor(t){this._previewColorElement.style.backgroundColor=t}setHexInputValue(t){this._hexInputElement.value=t}setRgbaInputValue(t){this._rgbaInputRElement.value=t.r.toString(),this._rgbaInputGElement.value=t.g.toString(),this._rgbaInputBElement.value=t.b.toString(),this._rgbaInputAElement.value=t.a.toString()}setHsvaInputValue(t){this._hsvaInputHElement.value=t.h.toString(),this._hsvaInputSElement.value=t.s.toString(),this._hsvaInputVElement.value=t.v.toString(),this._hsvaInputAElement.value=t.a.toString()}updateA11y(t,i){this._hueSliderThumbElement.setAttribute("aria-valuenow",t.toString()),this._hueSliderThumbElement.setAttribute("aria-valuetext",t.toString()),this._opacitySliderThumbElement.setAttribute("aria-valuenow",i.toString()),this._opacitySliderThumbElement.setAttribute("aria-valuetext",i.toString())}setGradientColor(t){this._gradientElement.style.backgroundColor=t}getHueSliderElement(){return this._hueSliderElement}getOpacitySliderElement(){return this._opacitySliderElement}getGradientElement(){return this._gradientElement}setActiveValueType(t){switch(this._hexValueContainerElement.style.display="none",this._rgbaValueContainerElement.style.display="none",this._hsvaValueContainerElement.style.display="none",t){case"hex":this._hexValueContainerElement.style.removeProperty("display");break;case"rgba":this._rgbaValueContainerElement.style.removeProperty("display");break;case"hsva":this._hsvaValueContainerElement.style.removeProperty("display");break}}focusValueInput(t){switch(t){case"hex":this._hexInputElement.focus(),this._hexInputElement.select();break;case"rgba":this._rgbaInputRElement.focus(),this._rgbaInputRElement.select();break;case"hsva":this._hsvaInputHElement.focus(),this._hsvaInputHElement.select();break}}setTypeClickListener(t){this._typeButtonElement.addEventListener("click",t)}removeTypeClickListener(t){this._typeButtonElement.removeEventListener("click",t)}setHexInputListener(t,i){this._hexInputElement.addEventListener(t,i)}removeHexInputListener(t,i){this._hexInputElement.removeEventListener(t,i)}getHexInputValue(){return this._hexInputElement.value}setRgbaInputListener(t,i){this._rgbaInputRElement.addEventListener(t,i),this._rgbaInputGElement.addEventListener(t,i),this._rgbaInputBElement.addEventListener(t,i),this._rgbaInputAElement.addEventListener(t,i)}removeRgbaInputListener(t,i){this._rgbaInputRElement.removeEventListener(t,i),this._rgbaInputGElement.removeEventListener(t,i),this._rgbaInputBElement.removeEventListener(t,i),this._rgbaInputAElement.removeEventListener(t,i)}getRgbaInputValue(){return{r:parseInt(this._rgbaInputRElement.value,10),g:parseInt(this._rgbaInputGElement.value,10),b:parseInt(this._rgbaInputBElement.value,10),a:parseFloat(this._rgbaInputAElement.value)}}setHsvaInputListener(t,i){this._hsvaInputHElement.addEventListener(t,i),this._hsvaInputSElement.addEventListener(t,i),this._hsvaInputVElement.addEventListener(t,i),this._hsvaInputAElement.addEventListener(t,i)}removeHsvaInputListener(t,i){this._hsvaInputHElement.removeEventListener(t,i),this._hsvaInputSElement.removeEventListener(t,i),this._hsvaInputVElement.removeEventListener(t,i),this._hsvaInputAElement.removeEventListener(t,i)}getHsvaInputValue(){return{h:parseInt(this._hsvaInputHElement.value,10),s:parseInt(this._hsvaInputSElement.value,10),v:parseInt(this._hsvaInputVElement.value,10),a:parseFloat(this._hsvaInputAElement.value)}}toggleOpacityControls(t){t?(this._opacitySliderElement.style.removeProperty("display"),this._rgbaInputAElement.parentElement&&this._rgbaInputAElement.parentElement.style.removeProperty("display"),this._hsvaInputAElement.parentElement&&this._hsvaInputAElement.parentElement.style.removeProperty("display")):(this._opacitySliderElement.style.display="none",this._rgbaInputAElement.parentElement&&(this._rgbaInputAElement.parentElement.style.display="none"),this._hsvaInputAElement.parentElement&&(this._hsvaInputAElement.parentElement.style.display="none"))}};function E(r,e,t){let i=t.getBoundingClientRect(),a=r-i.left,n=e-i.top;return a>i.width?a=i.width:a<0&&(a=0),n>i.height?n=i.height:n<0&&(n=0),{x:a,y:n,height:i.height,width:i.width}}function v(r){let e,t,i,a=r.h/60,n=r.s/100,l=r.v/100;if(n===0)return e=t=i=l,{r:Math.round(e*255),g:Math.round(t*255),b:Math.round(i*255),a:r.a};let d=Math.floor(a),_=a-d,c=l*(1-n),x=l*(1-n*_),k=l*(1-n*(1-_));switch(d){case 0:e=l,t=k,i=c;break;case 1:e=x,t=l,i=c;break;case 2:e=c,t=l,i=k;break;case 3:e=c,t=x,i=l;break;case 4:e=k,t=c,i=l;break;default:e=l,t=c,i=x}return{r:Math.round(e*255),g:Math.round(t*255),b:Math.round(i*255),a:r.a}}function m(r){return T(r.r)+T(r.g)+T(r.b)+(Math.round(r.a*255)+65536).toString(16).substr(-2)}function T(r){return("0"+r.toString(16)).slice(-2)}function $(r){let e=r.length===3||r.length===4,t=e?`${r.slice(0,1)}${r.slice(0,1)}`:r.slice(0,2),i=e?`${r.slice(1,2)}${r.slice(1,2)}`:r.slice(2,4),a=e?`${r.slice(2,3)}${r.slice(2,3)}`:r.slice(4,6),n=(e?`${r.slice(3,4)}${r.slice(3,4)}`:r.slice(6,8))||"ff";return{r:parseInt(t,16),g:parseInt(i,16),b:parseInt(a,16),a:parseFloat((parseInt(n,16)/255).toFixed(2))}}function X(r){return`rgba(${r.r}, ${r.g}, ${r.b}, ${r.a})`}function H(r,e){let t=r.replace(/^#/,"");return e||(t.length===4?t=t.substring(0,3):t.length===8&&(t=t.substring(0,6))),`#${t}`}function j(r){let e=r.r/255,t=r.g/255,i=r.b/255,a=Math.max(e,t,i),n=Math.min(e,t,i),l=a,d=a,_=a,c=a-n;if(d=a===0?0:c/a,a===n)l=0;else{switch(a){case e:l=(t-i)/c+(t<i?6:0);break;case t:l=(i-e)/c+2;break;case i:l=(e-t)/c+4;break}l/=6}return{h:Math.round(l*360),s:Math.round(d*100),v:Math.round(_*100),a:r.a}}function S(r){if(!r||typeof r!="string")return!1;switch(r.substring(0,1)==="#"&&(r=r.substring(1)),r.length){case 3:return/^[0-9A-F]{3}$/i.test(r);case 4:return/^[0-9A-F]{4}$/i.test(r);case 6:return/^[0-9A-F]{6}$/i.test(r);case 8:return/^[0-9A-F]{8}$/i.test(r);default:return!1}}function R(r){return u(r.r)&&r.r>=0&&r.r<=255&&u(r.g)&&r.g>=0&&r.g<=255&&u(r.b)&&r.b>=0&&r.b<=255&&u(r.a)&&r.a>=0&&r.a<=1}function V(r){return u(r.h)&&r.h>=0&&r.h<=360&&u(r.s)&&r.s>=0&&r.s<=100&&u(r.v)&&r.v>=0&&r.v<=100&&u(r.a)&&r.a>=0&&r.a<=1}var y=class{constructor(e,t){this._rootElement=e;this._changeListener=t;this._keydownListener=i=>this._onKeydown(i),this._downListener=i=>this._onDown(i),this._moveListener=i=>this._onMove(i),this._upListener=i=>this._onUp(i),this._initialize()}destroy(){this._unlisten()}setValue(e,t){window.requestAnimationFrame(()=>{let i=this._rootElement.getBoundingClientRect();this._xPercent=Math.round(i.width*(e/100)),this._yPercent=i.height-Math.round(i.height*(t/100)),this._setThumbPosition(this._xPercent,this._yPercent)})}_initialize(){this._thumbElement=this._rootElement.querySelector(o.selectors.GRADIENT_THUMB),this._listen(),this._setThumbPosition(this._xPercent,this._yPercent)}_listen(){this._rootElement.addEventListener("keydown",this._keydownListener),this._rootElement.addEventListener("mousedown",this._downListener),this._rootElement.addEventListener("touchstart",this._downListener)}_unlisten(){this._rootElement.removeEventListener("keydown",this._keydownListener),this._rootElement.removeEventListener("mousedown",this._downListener),this._rootElement.removeEventListener("touchstart",this._downListener),document.removeEventListener("mousemove",this._moveListener),document.removeEventListener("touchmove",this._moveListener),document.removeEventListener("mouseup",this._upListener),document.removeEventListener("touchend",this._upListener)}_onKeydown(e){let t=e.key==="Enter"||e.keyCode===13,i=e.key==="ArrowLeft"||e.keyCode===37,a=e.key==="ArrowUp"||e.keyCode===38,n=e.key==="ArrowRight"||e.keyCode===39,l=e.key==="ArrowDown"||e.keyCode===40,d=this._rootElement.getBoundingClientRect();if(l)e.preventDefault(),this._yPercent++;else if(a)e.preventDefault(),this._yPercent--;else if(i)e.preventDefault(),this._xPercent--;else if(n)e.preventDefault(),this._xPercent++;else if(t)e.preventDefault();else return;this._xPercent>d.width?this._xPercent=d.width:this._xPercent<0&&(this._xPercent=0),this._yPercent>d.height?this._yPercent=d.height:this._yPercent<0&&(this._yPercent=0),this._setThumbPosition(this._xPercent,this._yPercent),this._notify()}_onDown(e){e.preventDefault(),document.addEventListener("mousemove",this._moveListener),document.addEventListener("touchmove",this._moveListener),document.addEventListener("mouseup",this._upListener),document.addEventListener("touchend",this._upListener),this._updateThumbPosition(e)}_onMove(e){e.preventDefault(),this._updateThumbPosition(e)}_onUp(e){document.removeEventListener("mousemove",this._moveListener),document.removeEventListener("touchmove",this._moveListener),document.removeEventListener("mouseup",this._upListener),document.removeEventListener("touchend",this._upListener),this._updateThumbPosition(e),this._thumbElement.focus()}_updateThumbPosition(e){let t=/^mouse/.test(e.type),i=t?e.clientX:e.changedTouches[0].clientX,a=t?e.clientY:e.changedTouches[0].clientY,n=this._calculateSliderPercent(i,a);this._setThumbPosition(n.x,n.y),this._xPercent=parseInt((n.x/n.width*100).toString(),10),this._yPercent=Math.abs(parseInt((n.y/n.height*100).toString(),10)-100),this._notify()}_calculateSliderPercent(e,t){return E(e,t,this._rootElement)}_setThumbPosition(e,t){this._thumbElement.style.left=`${e}px`,this._thumbElement.style.top=`${t}px`}_notify(){typeof this._changeListener=="function"&&this._changeListener(this._xPercent,this._yPercent)}};var b=class{constructor(e,t){this._rootElement=e;this._changeListener=t;this._percent=1;this._min=0;this._max=1;this._step=.01;this._keydownListener=i=>this._onKeydown(i),this._downListener=i=>this._onDown(i),this._moveListener=i=>this._onMove(i),this._upListener=i=>this._onUp(i),this._initialize()}destroy(){this._unlisten()}setValue(e){this._percent=e,this._setThumbPosition(this._percent)}_initialize(){this._thumbElement=this._rootElement.querySelector(o.selectors.SLIDER_THUMB),this._listen(),this._setThumbPosition(this._percent)}_listen(){this._thumbElement.addEventListener("keydown",this._keydownListener),this._rootElement.addEventListener("mousedown",this._downListener),this._rootElement.addEventListener("touchstart",this._downListener)}_unlisten(){this._thumbElement.removeEventListener("keydown",this._keydownListener),this._rootElement.removeEventListener("mousedown",this._downListener),this._rootElement.removeEventListener("touchstart",this._downListener),document.removeEventListener("mousemove",this._moveListener),document.removeEventListener("touchmove",this._moveListener),document.removeEventListener("mouseup",this._upListener),document.removeEventListener("touchend",this._upListener)}_onKeydown(e){let t=e.key==="ArrowLeft"||e.keyCode===37,i=e.key==="ArrowRight"||e.keyCode===39,a=e.key==="Home"||e.keyCode===36,n=e.key==="End"||e.keyCode===35;t?(e.preventDefault(),this._percent-=this._step):i?(e.preventDefault(),this._percent+=this._step):a?(e.preventDefault(),this._percent=this._min):n&&(e.preventDefault(),this._percent=this._max),this._percent<this._min?this._percent=this._min:this._percent>this._max&&(this._percent=this._max),this._setThumbPosition(this._percent),this._notify()}_onDown(e){e.preventDefault(),document.addEventListener("mousemove",this._moveListener),document.addEventListener("touchmove",this._moveListener),document.addEventListener("mouseup",this._upListener),document.addEventListener("touchend",this._upListener),this._updateThumbPosition(e)}_onMove(e){e.preventDefault(),this._thumbElement.classList.add(o.classes.SLIDER_THUMB_ACTIVE),this._updateThumbPosition(e)}_onUp(e){this._thumbElement.classList.remove(o.classes.SLIDER_THUMB_ACTIVE),document.removeEventListener("mousemove",this._moveListener),document.removeEventListener("touchmove",this._moveListener),document.removeEventListener("mouseup",this._upListener),document.removeEventListener("touchend",this._upListener),this._updateThumbPosition(e),this._thumbElement.focus()}_updateThumbPosition(e){let t=/^mouse/.test(e.type)?e.clientX:e.changedTouches[0].clientX;this._percent=this._calculateSliderPercent(t),this._setThumbPosition(this._percent),this._notify()}_calculateSliderPercent(e){let t=E(e,0,this._rootElement);return parseFloat((t.x/t.width).toFixed(2))}_setThumbPosition(e){this._thumbElement.style.left=`${e*100}%`}_notify(){typeof this._changeListener=="function"&&this._changeListener(this._percent)}};var I=class{constructor(e){this._adapter=e;this._value=null;this._allowOpacity=!0;this._hex=w;this._hsva={h:0,s:0,v:0,a:1};this._rgba={r:0,g:0,b:0,a:1};this._debounceChangeEvent=!1;this._valueType="hex";this._gradientSliderChangedListener=(t,i)=>this._onGradientSliderChanged(t,i),this._hueSliderChangedListener=t=>this._onHueSliderChanged(t),this._opacitySliderChangedListener=t=>this._onOpacitySliderChanged(t),this._typeClickListener=t=>this._onTypeClicked(t),this._hexInputChangedListener=t=>this._onHexInputChanged(),this._rgbaInputChangedListener=t=>this._onRgbaInputChanged(),this._hsvaInputChangedListener=t=>this._onHsvaInputChanged()}initialize(){this._applyChangeEventTrigger(),this._adapter.setTypeClickListener(this._typeClickListener),this._adapter.setHexInputListener("input",this._hexInputChangedListener),this._adapter.setRgbaInputListener("input",this._rgbaInputChangedListener),this._adapter.setHsvaInputListener("input",this._hsvaInputChangedListener),this._gradientSlider=new y(this._adapter.getGradientElement(),this._gradientSliderChangedListener),this._hueSlider=new b(this._adapter.getHueSliderElement(),this._hueSliderChangedListener),this._opacitySlider=new b(this._adapter.getOpacitySliderElement(),this._opacitySliderChangedListener),this._initializeOpacity(),this._setColorFromHex(),this._adapter.setActiveValueType(this._valueType)}disconnect(){this._adapter.removeTypeClickListener(this._typeClickListener),this._adapter.removeHexInputListener("input",this._hexInputChangedListener),this._adapter.removeRgbaInputListener("input",this._hexInputChangedListener),this._adapter.removeHsvaInputListener("input",this._hexInputChangedListener),this._gradientSlider.destroy(),this._hueSlider.destroy(),this._opacitySlider.destroy()}_applyChangeEventTrigger(){this._debounceChangeEvent?this._triggerChangeEvent=P((e,t)=>{this._emitChangeEvent(e,t)},o.numbers.CHANGE_EVENT_DEBOUNCE_THRESHOLD,!1):this._triggerChangeEvent=(e,t)=>this._emitChangeEvent(e,t)}_initializeOpacity(){this._hsva.a=1,this._adapter.toggleOpacityControls(this._allowOpacity),this._render()}_onTypeClicked(e){this._valueType==="hex"?this._valueType="rgba":this._valueType==="rgba"?this._valueType="hsva":this._valueType==="hsva"&&(this._valueType="hex"),this._adapter.setActiveValueType(this._valueType),this._adapter.focusValueInput(this._valueType)}_onHexInputChanged(){let e=this._adapter.getHexInputValue();S(e)&&(this.value=e,this._triggerChangeEvent("input","hex"))}_onRgbaInputChanged(){let e=this._adapter.getRgbaInputValue();R(e)&&(this.value=m(e),this._triggerChangeEvent("input","rgba"))}_onHsvaInputChanged(){let e=this._adapter.getHsvaInputValue();V(e)&&(this.value=m(v(e)),this._triggerChangeEvent("input","hsva"))}_setColorFromHex(){this._rgba=$(this._hex),this._hsva=j(this._rgba),this._gradientSlider.setValue(this._hsva.s,this._hsva.v),this._hueSlider.setValue(parseFloat((this._hsva.h/360).toFixed(2))),this._opacitySlider.setValue(this._hsva.a),this._render()}_onGradientSliderChanged(e,t){this._hsva.s=e,this._hsva.v=t,this._syncColors(),this._render(),this._triggerChangeEvent("slider","gradient")}_onHueSliderChanged(e){this._hsva.h=parseInt((360*e).toString(),10),this._syncColors(),this._setGradientColor(),this._render(),this._triggerChangeEvent("slider","hue")}_onOpacitySliderChanged(e){this._hsva.a=e,this._syncColors(),this._render(),this._triggerChangeEvent("slider","opacity")}_setGradientColor(){let e=v({h:this._hsva.h,s:100,v:100,a:1});this._adapter.setGradientColor(`rgb(${e.r}, ${e.g}, ${e.b})`)}_syncColors(){this._rgba=v(this._hsva),this._hex=m(this._rgba),this._value=this._hex||null}_render(){this._setGradientColor(),this._adapter.setPreviewColor(X(this._rgba)),this._adapter.setHexInputValue(this._getFormattedHex()),this._adapter.setRgbaInputValue(this._rgba),this._adapter.setHsvaInputValue(this._hsva),this._adapter.updateA11y(this._hsva.h,Math.round(this._hsva.a*100))}_getFormattedHex(){return H(this._hex,!1)}_emitChangeEvent(e,t){let i={type:e,source:t,hex:H(this._hex,!1).replace(/^#/,""),rgba:this._rgba,hsva:this._hsva};this._allowOpacity&&(i.alpha=this._hsva.a),this._adapter.emitHostEvent(o.events.CHANGE,i)}get value(){return this._getFormattedHex()}set value(e){if(this._value!==e){if(this._value=e||w,!S(this._value))throw new Error("Invalid hex value provided.");this._hex=this._value.replace(/^#/,""),this._setColorFromHex(),this._adapter.setHostAttribute(o.attributes.VALUE,this._value)}}get rgba(){return this._rgba?L({},this._rgba):null}set rgba(e){e?R(e)&&(this.value=m(e)):this.value=null}get hsva(){return this._hsva?L({},this._hsva):null}set hsva(e){e?V(e)&&(this.value=m(v(e))):this.value=null}get opacity(){return this._hsva?this._hsva.a:null}set opacity(e){this._hsva.a!==e&&e!=null&&this._allowOpacity&&(e>=0&&e<=1?(this._hsva.a=e,this._opacitySlider.setValue(this._hsva.a),this._syncColors(),this._render()):console.warn(`The provided opacity value (${e}) must be between 0 and 1.`))}get allowOpacity(){return this._allowOpacity}set allowOpacity(e){this._allowOpacity=e,this._initializeOpacity()}get debounceChangeEvent(){return this._debounceChangeEvent}set debounceChangeEvent(e){this._debounceChangeEvent!==e&&(this._debounceChangeEvent=e,this._applyChangeEventTrigger())}};var te='<template><div class="forge-color-picker" part="root"><input type="color" tabindex="-1" class="forge-color-picker__input" spellcheck="false" autocomplete="off" aria-label="Color picker value" part="input"><div class="forge-color-picker__container" part="container"><div class="forge-color-picker__gradient" tabindex="0" part="gradient"><div class="forge-color-picker__gradient-color" part="gradient-color"></div><div class="forge-color-picker__gradient-thumb" part="gradient-thumb"></div></div><div class="forge-color-picker__control-preview" part="controls-preview-container"><div class="forge-color-picker__controls" part="controls-container"><div class="forge-color-picker__slider-control" part="hue-control-container"><div class="forge-color-picker__slider forge-color-picker__hue-slider" part="hue-control-slider"><div class="forge-color-picker__slider-thumb" id="forge-color-picker-hue-thumb" part="hue-control-slider-thumb" tabindex="0" role="slider" aria-label="Change hue" aria-valuemin="0" aria-valuemax="360" aria-valuenow="0" aria-orientation="horizontal" aria-valuetext="0"></div></div></div><div class="forge-color-picker__slider-control" part="opacity-control-container"><div class="forge-color-picker__canvas" part="opacity-control-canvas"><div class="forge-color-picker__slider forge-color-picker__opacity-slider" part="opacity-control-slider"><div class="forge-color-picker__slider-thumb" id="forge-color-picker-opacity-thumb" part="opacity-control-slider-thumb" tabindex="0" role="slider" aria-label="Change opacity" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" aria-orientation="horizontal" aria-valuetext="0"></div></div></div></div></div><div class="forge-color-picker__color-preview-container forge-color-picker__canvas" part="color-preview-container"><div class="forge-color-picker__color-preview" part="color-preview"></div></div></div><div class="forge-color-picker__value" part="value-container"><div class="forge-color-picker__color-types" part="types-container"><div class="forge-color-picker__color-hex" part="hex-type-container"><div part="hex-type-label-wrapper"><label for="forge-color-picker-hex-input" part="hex-label">HEX</label></div><input type="text" id="forge-color-picker-hex-input" part="hex-input" style="width: 88px;" maxlength="9" spellcheck="false" autocomplete="off" aria-label="HEX value"></div><div class="forge-color-picker__color-rgba" part="rgba-type-container"><div part="rgba-type-wrapper-r"><label for="forge-color-picker-rgba-r-input" part="rgba-type-label-r">R</label> <input type="number" id="forge-color-picker-rgba-r-input" part="rgba-type-input-r" min="0" max="255" maxlength="3" autocomplete="off" aria-label="Red"></div><div part="rgba-type-wrapper-g"><label for="forge-color-picker-rgba-g-input" part="rgba-type-label-g">G</label> <input type="number" id="forge-color-picker-rgba-g-input" part="rgba-type-input-g" min="0" max="255" maxlength="3" autocomplete="off" aria-label="Green"></div><div part="rgba-type-wrapper-b"><label for="forge-color-picker-rgba-b-input" part="rgba-type-label-b">B</label> <input type="number" id="forge-color-picker-rgba-b-input" part="rgba-type-input-b" min="0" max="255" maxlength="3" autocomplete="off" aria-label="Blue"></div><div part="rgba-type-wrapper-a"><label for="forge-color-picker-rgba-a-input" part="rgba-type-label-a">A</label> <input type="number" id="forge-color-picker-rgba-a-input" part="rgba-type-input-a" min="0" max="1" step="0.1" maxlength="3" autocomplete="off" aria-label="Alpha"></div></div><div class="forge-color-picker__color-hsva" part="hsva-type-container"><div part="hsva-type-wrapper-h"><label for="forge-color-picker-hsva-h-input" part="hsva-type-label-h">H</label> <input type="number" id="forge-color-picker-hsva-h-input" part="hsva-type-input-h" min="0" max="360" maxlength="3" autocomplete="off" aria-label="Hue"></div><div part="hsva-type-wrapper-s"><label for="forge-color-picker-hsva-s-input" part="hsva-type-label-s">S</label> <input type="number" id="forge-color-picker-hsva-s-input" part="hsva-type-input-s" min="0" max="100" maxlength="3" autocomplete="off" aria-label="Saturation"></div><div part="hsva-type-wrapper-v"><label for="forge-color-picker-hsva-v-input" part="hsva-type-label-v">V</label> <input type="number" id="forge-color-picker-hsva-v-input" part="hsva-type-input-v" min="0" max="100" maxlength="3" autocomplete="off" aria-label="Value"></div><div part="hsva-type-wrapper-a"><label for="forge-color-picker-hsva-a-input" part="hsva-type-label-a">A</label> <input type="number" id="forge-color-picker-hsva-a-input" part="hsva-type-input-a" min="0" max="1" step="0.1" maxlength="3" autocomplete="off" aria-label="Alpha"></div></div></div><div class="forge-color-picker__type-button" part="type-container"><forge-icon-button part="type-button"><button type="button" id="forge-color-picker-type-button" aria-labelledby="type-button-tooltip" part="type-button-element"><forge-icon name="unfold_more" part="type-button-icon"></forge-icon></button><forge-tooltip delay="500" position="bottom" id="type-button-tooltip">Change color format</forge-tooltip></forge-icon-button></div></div></div></div></template>',ie='.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.forge-icon-button{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.forge-icon-button::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-icon-button.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}*{-webkit-box-sizing:border-box;box-sizing:border-box}.forge-color-picker{width:272px;width:var(--forge-color-picker-width,272px);position:relative;display:inline-block;overflow:hidden}.forge-color-picker__input{height:1px;opacity:0;position:absolute;width:1px}.forge-color-picker__gradient{position:relative;outline:0}.forge-color-picker__gradient-color{background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,0)),to(#000)),-webkit-gradient(linear,left top,right top,color-stop(0,#fff),to(rgba(255,255,255,0)));background:linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 100%),linear-gradient(to right,#fff 0,rgba(255,255,255,0) 100%);height:152px}.forge-color-picker__gradient-thumb{border:1px solid #fff;border-radius:50%;cursor:pointer;display:inline-block;height:10px;width:10px;margin-left:-5px;margin-top:-5px;position:absolute;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:left .2s cubic-bezier(.25, .8, .25, 1) 0s,top .2s cubic-bezier(.25, .8, .25, 1) 0s;transition:left .2s cubic-bezier(.25, .8, .25, 1) 0s,top .2s cubic-bezier(.25, .8, .25, 1) 0s}.forge-color-picker__control-preview{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;width:100%;padding:16px}.forge-color-picker__controls{-webkit-box-flex:1;flex:1;margin-right:16px}.forge-color-picker__slider{position:relative}.forge-color-picker__slider-thumb{outline:0;height:16px;width:16px;background-color:#fff;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3);position:absolute;border-radius:50%;top:calc(50% - 8px);margin-left:-8px;-webkit-transition:left .4s cubic-bezier(.25, .8, .25, 1);transition:left .4s cubic-bezier(.25, .8, .25, 1)}.forge-color-picker__slider-thumb--active{-webkit-transition:none;transition:none}.forge-color-picker__slider-thumb:hover{cursor:pointer}.forge-color-picker__color-preview-container{border-radius:50%;-webkit-box-shadow:0 0 2px 0 rgba(0,0,0,.54) inset,0 0 2px 0 rgba(0,0,0,.54);box-shadow:0 0 2px 0 rgba(0,0,0,.54) inset,0 0 2px 0 rgba(0,0,0,.54);overflow:hidden}.forge-color-picker__color-preview{height:32px;width:32px;-webkit-transition:background-color .2s cubic-bezier(.25, .8, .25, 1);transition:background-color .2s cubic-bezier(.25, .8, .25, 1)}.forge-color-picker__value{display:-webkit-box;display:flex;width:100%;-webkit-box-align:center;align-items:center;padding:0 8px 16px 16px;font-size:12px}.forge-color-picker__color-types{-webkit-box-flex:1;flex:1}.forge-color-picker__color-types label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-light,rgba(0,0,0,.54))}.forge-color-picker__color-types input{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit)}.forge-color-picker__color-types input[type=number],.forge-color-picker__color-types input[type=text]{color:#000;color:var(--mdc-theme-on-surface,#000);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);background-color:transparent;padding:4px 8px;border-width:1px;border-style:solid;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;-webkit-transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1),-webkit-box-shadow .2s 0s cubic-bezier(0, 0, .2, 1);transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1),-webkit-box-shadow .2s 0s cubic-bezier(0, 0, .2, 1);transition:box-shadow .2s 0s cubic-bezier(0, 0, .2, 1),border-color .2s 0s cubic-bezier(0, 0, .2, 1);transition:box-shadow .2s 0s cubic-bezier(0, 0, .2, 1),border-color .2s 0s cubic-bezier(0, 0, .2, 1),-webkit-box-shadow .2s 0s cubic-bezier(0, 0, .2, 1)}.forge-color-picker__color-types input[type=number]:hover,.forge-color-picker__color-types input[type=text]:hover{border-color:rgba(0,0,0,.87);border-color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-color-picker__color-types input[type=number]:focus,.forge-color-picker__color-types input[type=text]:focus{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5);-webkit-box-shadow:0 0 0 1px inset #3f51b5;box-shadow:0 0 0 1px inset #3f51b5;-webkit-box-shadow:0 0 0 1px inset var(--mdc-theme-primary,#3f51b5);box-shadow:0 0 0 1px inset var(--mdc-theme-primary,#3f51b5)}.forge-color-picker__color-types input[type=number]{text-align:center;-moz-appearance:textfield}.forge-color-picker__color-types input[type=number]::-webkit-inner-spin-button,.forge-color-picker__color-types input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.forge-color-picker__color-hex{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;-webkit-box-align:space-between;align-items:space-between}.forge-color-picker__canvas{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNnB4IiBoZWlnaHQ9IjZweCIgdmlld0JveD0iMCAwIDYgNiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDwhLS0gR2VuZXJhdG9yOiBTa2V0Y2ggNTAgKDU0OTgzKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5Hcm91cCA5PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Ikdyb3VwLTkiPgogICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLTExIiBmaWxsPSIjRTBFMEUwIiB4PSIwIiB5PSIwIiB3aWR0aD0iMyIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtMTEtQ29weS0yIiBmaWxsPSIjRkZGRkZGIiB4PSIwIiB5PSIzIiB3aWR0aD0iMyIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtMTEtQ29weSIgZmlsbD0iI0ZGRkZGRiIgeD0iMyIgeT0iMCIgd2lkdGg9IjMiIGhlaWdodD0iMyI+PC9yZWN0PgogICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLTExLUNvcHktMyIgZmlsbD0iI0UwRTBFMCIgeD0iMyIgeT0iMyIgd2lkdGg9IjMiIGhlaWdodD0iMyI+PC9yZWN0PgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+")}.forge-color-picker__hue-slider{height:8px;background:-webkit-gradient(linear,left top,right top,color-stop(0,red),color-stop(16%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(84%,#f0f),to(#ff0004));background:linear-gradient(to right,red 0,#ff0 16%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 84%,#ff0004 100%)}.forge-color-picker__opacity-slider{height:8px;margin-top:16px;background:-webkit-gradient(linear,left top,right top,from(rgba(255,0,0,0)),to(red));background:linear-gradient(to right,rgba(255,0,0,0) 0,red 100%)}.forge-color-picker__color-hsva,.forge-color-picker__color-rgba{display:-webkit-box;display:flex}.forge-color-picker__color-hsva div,.forge-color-picker__color-rgba div{margin-right:4px}.forge-color-picker__color-hsva label,.forge-color-picker__color-rgba label{display:block;text-align:center}.forge-color-picker__color-hsva input,.forge-color-picker__color-rgba input{width:44px}:host{display:inline-block}:host([hidden]){display:none}',p=class extends G{constructor(){super();U.define(D),O(this,te,ie),this._foundation=new I(new f(this))}static get observedAttributes(){return[o.attributes.VALUE,o.attributes.ALLOW_OPACITY,o.attributes.DEBOUNCE_CHANGE_EVENT]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,i,a){switch(t){case o.attributes.VALUE:this.value=a;break;case o.attributes.ALLOW_OPACITY:this.allowOpacity=C(a);break;case o.attributes.DEBOUNCE_CHANGE_EVENT:this.debounceChangeEvent=C(a);break}}};h([g()],p.prototype,"value",2),h([g()],p.prototype,"rgba",2),h([g()],p.prototype,"hsva",2),h([g()],p.prototype,"opacity",2),h([g()],p.prototype,"allowOpacity",2),h([g()],p.prototype,"debounceChangeEvent",2),p=h([B({name:o.elementName,dependencies:[K,F,Z]})],p);function Xe(){M(p)}export{o as a,w as b,A as c,f as d,I as e,p as f,Xe as g};
7
+ //# sourceMappingURL=chunk.LLHA3SQR.js.map
@@ -3,5 +3,5 @@
3
3
  * Copyright 2022 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{b as h}from"./chunk.QXLPBYMX.js";import{r as _}from"./chunk.AABG6MSC.js";import{a as b}from"./chunk.MIYZJUXH.js";import{a as c,b as m}from"./chunk.BSZ2LBJX.js";import{a as d}from"./chunk.3E5QKMHL.js";import{a as p}from"./chunk.HN4PXH3D.js";import{l,u}from"./chunk.R4NDFXVA.js";import{f as a}from"./chunk.MCIQXNKY.js";var v=`${m}button`,r={BUTTON:"forge-button",LABEL:"forge-button__label",ICON:"forge-button__icon",BUTTON_RAISED:"forge-button--raised",BUTTON_UNELEVATED:"forge-button--unelevated",BUTTON_OUTLINED:"forge-button--outlined",BUTTON_DENSE:"forge-button--dense",RIPPLE:"forge-button__ripple"},B={BUTTON:"button",LABEL:`span:not(.${r.RIPPLE})`,ICON:"i,forge-icon,[data-forge-button-icon]",RIPPLE:`.${r.RIPPLE}`},O={TYPE:"type",DISABLED:"disabled"},e={elementName:v,classes:r,selectors:B,attributes:O};var s=class extends d{constructor(){super()}static get observedAttributes(){return[e.attributes.TYPE]}connectedCallback(){this.children.length?this._initialize():l(this).then(()=>this._initialize())}attributeChangedCallback(t,n,i){switch(t){case e.attributes.TYPE:this.type=i;break}}disconnectedCallback(){this._rippleInstance&&this._rippleInstance.destroy(),this._mutationObserver&&this._mutationObserver.disconnect(),this._buttonAttrMutationObserver&&this._buttonAttrMutationObserver.disconnect()}get type(){return this._type}set type(t){this._type!==t&&(this._type=t,this._applyType(t),this.setAttribute(e.attributes.TYPE,this._type))}_applyType(t){this._buttonElement&&(this._buttonElement.classList.remove(e.classes.BUTTON_RAISED),this._buttonElement.classList.remove(e.classes.BUTTON_UNELEVATED),this._buttonElement.classList.remove(e.classes.BUTTON_OUTLINED),this._buttonElement.classList.remove(e.classes.BUTTON_DENSE),t.includes("raised")&&this._buttonElement.classList.add(e.classes.BUTTON_RAISED),t.includes("unelevated")&&this._buttonElement.classList.add(e.classes.BUTTON_UNELEVATED),t.includes("outlined")&&this._buttonElement.classList.add(e.classes.BUTTON_OUTLINED),t.includes("dense")&&this._buttonElement.classList.add(e.classes.BUTTON_DENSE))}_initialize(){this._initializeButton(),this._initializeMutationObserver()}_initializeButton(){this._buttonElement=this.querySelector(e.selectors.BUTTON),this._buttonElement&&(this.hasAttribute(e.attributes.TYPE)&&(this._type=this.getAttribute(e.attributes.TYPE),this._applyType(this._type)),this._buttonElement.classList.add(e.classes.BUTTON),this._syncDisabledState(),this._initializeButtonChildren(),this._deferRippleInitialization())}async _deferRippleInitialization(){let t=await _(this._buttonElement);this._rippleInstance||(this._initRipple(),t==="focusin"&&this._rippleInstance.foundation.handleFocus())}_initRipple(){this._rippleInstance&&this._rippleInstance.destroy(),this._rippleInstance=new h(this._buttonElement)}_initializeButtonChildren(){if(!this._buttonElement.querySelector(e.selectors.RIPPLE)){let i=document.createElement("span");i.classList.add(e.classes.RIPPLE),this._buttonElement.appendChild(i)}let t=this.querySelector(e.selectors.LABEL);t&&t.classList.add(e.classes.LABEL),Array.from(this.querySelectorAll(e.selectors.ICON)).forEach(i=>{i.classList.add(e.classes.ICON),i.hasAttribute("aria-hidden")||i.setAttribute("aria-hidden","true")})}_initializeMutationObserver(){if(!this._mutationObserver){let t={childList:!0,subtree:!0},n=i=>{this._buttonWasAdded(i)?this._initializeButton():i.some(o=>o.addedNodes.length)&&this._initializeButtonChildren()};this._mutationObserver=new MutationObserver(n),this._mutationObserver.observe(this,t),this._buttonElement&&(this._buttonAttrMutationObserver=new MutationObserver(i=>{i.some(o=>o.attributeName==="disabled")&&this._syncDisabledState()}),this._buttonAttrMutationObserver.observe(this._buttonElement,{attributes:!0,attributeFilter:["disabled"]}))}}_buttonWasAdded(t){return t.some(n=>Array.from(n.addedNodes).some(i=>i.nodeName.toLowerCase()===e.selectors.BUTTON))}_syncDisabledState(){u(this,this._buttonElement.disabled,e.attributes.DISABLED)}};s=a([c({name:e.elementName})],s);var E=class extends b{constructor(t){super(t)}destroy(){this._buttonElement=void 0}get buttonElement(){return this._buttonElement}_build(){var n,i;let t=document.createElement(e.elementName);return this._buttonElement=document.createElement("button"),this._buttonElement.type=((n=this._config.options)==null?void 0:n.type)||"button",this._buttonElement.textContent=((i=this._config.options)==null?void 0:i.text)||"",t.appendChild(this._buttonElement),t}onClick(t){var n;(n=this._buttonElement)==null||n.addEventListener("click",t)}onFocus(t){var n;(n=this._buttonElement)==null||n.addEventListener("focus",i=>t(i))}onBlur(t){var n;(n=this._buttonElement)==null||n.addEventListener("blur",i=>t(i))}};function F(){p(s)}export{e as a,s as b,E as c,F as d};
7
- //# sourceMappingURL=chunk.JXQZMASB.js.map
6
+ import{b as h}from"./chunk.QXLPBYMX.js";import{r as _}from"./chunk.KYCC3C3M.js";import{a as b}from"./chunk.MIYZJUXH.js";import{a as c,b as m}from"./chunk.BSZ2LBJX.js";import{a as d}from"./chunk.3E5QKMHL.js";import{a as p}from"./chunk.HN4PXH3D.js";import{l,u}from"./chunk.R4NDFXVA.js";import{f as a}from"./chunk.MCIQXNKY.js";var v=`${m}button`,r={BUTTON:"forge-button",LABEL:"forge-button__label",ICON:"forge-button__icon",BUTTON_RAISED:"forge-button--raised",BUTTON_UNELEVATED:"forge-button--unelevated",BUTTON_OUTLINED:"forge-button--outlined",BUTTON_DENSE:"forge-button--dense",RIPPLE:"forge-button__ripple"},B={BUTTON:"button",LABEL:`span:not(.${r.RIPPLE})`,ICON:"i,forge-icon,[data-forge-button-icon]",RIPPLE:`.${r.RIPPLE}`},O={TYPE:"type",DISABLED:"disabled"},e={elementName:v,classes:r,selectors:B,attributes:O};var s=class extends d{constructor(){super()}static get observedAttributes(){return[e.attributes.TYPE]}connectedCallback(){this.children.length?this._initialize():l(this).then(()=>this._initialize())}attributeChangedCallback(t,n,i){switch(t){case e.attributes.TYPE:this.type=i;break}}disconnectedCallback(){this._rippleInstance&&this._rippleInstance.destroy(),this._mutationObserver&&this._mutationObserver.disconnect(),this._buttonAttrMutationObserver&&this._buttonAttrMutationObserver.disconnect()}get type(){return this._type}set type(t){this._type!==t&&(this._type=t,this._applyType(t),this.setAttribute(e.attributes.TYPE,this._type))}_applyType(t){this._buttonElement&&(this._buttonElement.classList.remove(e.classes.BUTTON_RAISED),this._buttonElement.classList.remove(e.classes.BUTTON_UNELEVATED),this._buttonElement.classList.remove(e.classes.BUTTON_OUTLINED),this._buttonElement.classList.remove(e.classes.BUTTON_DENSE),t.includes("raised")&&this._buttonElement.classList.add(e.classes.BUTTON_RAISED),t.includes("unelevated")&&this._buttonElement.classList.add(e.classes.BUTTON_UNELEVATED),t.includes("outlined")&&this._buttonElement.classList.add(e.classes.BUTTON_OUTLINED),t.includes("dense")&&this._buttonElement.classList.add(e.classes.BUTTON_DENSE))}_initialize(){this._initializeButton(),this._initializeMutationObserver()}_initializeButton(){this._buttonElement=this.querySelector(e.selectors.BUTTON),this._buttonElement&&(this.hasAttribute(e.attributes.TYPE)&&(this._type=this.getAttribute(e.attributes.TYPE),this._applyType(this._type)),this._buttonElement.classList.add(e.classes.BUTTON),this._syncDisabledState(),this._initializeButtonChildren(),this._deferRippleInitialization())}async _deferRippleInitialization(){let t=await _(this._buttonElement);this._rippleInstance||(this._initRipple(),t==="focusin"&&this._rippleInstance.foundation.handleFocus())}_initRipple(){this._rippleInstance&&this._rippleInstance.destroy(),this._rippleInstance=new h(this._buttonElement)}_initializeButtonChildren(){if(!this._buttonElement.querySelector(e.selectors.RIPPLE)){let i=document.createElement("span");i.classList.add(e.classes.RIPPLE),this._buttonElement.appendChild(i)}let t=this.querySelector(e.selectors.LABEL);t&&t.classList.add(e.classes.LABEL),Array.from(this.querySelectorAll(e.selectors.ICON)).forEach(i=>{i.classList.add(e.classes.ICON),i.hasAttribute("aria-hidden")||i.setAttribute("aria-hidden","true")})}_initializeMutationObserver(){if(!this._mutationObserver){let t={childList:!0,subtree:!0},n=i=>{this._buttonWasAdded(i)?this._initializeButton():i.some(o=>o.addedNodes.length)&&this._initializeButtonChildren()};this._mutationObserver=new MutationObserver(n),this._mutationObserver.observe(this,t),this._buttonElement&&(this._buttonAttrMutationObserver=new MutationObserver(i=>{i.some(o=>o.attributeName==="disabled")&&this._syncDisabledState()}),this._buttonAttrMutationObserver.observe(this._buttonElement,{attributes:!0,attributeFilter:["disabled"]}))}}_buttonWasAdded(t){return t.some(n=>Array.from(n.addedNodes).some(i=>i.nodeName.toLowerCase()===e.selectors.BUTTON))}_syncDisabledState(){u(this,this._buttonElement.disabled,e.attributes.DISABLED)}};s=a([c({name:e.elementName})],s);var E=class extends b{constructor(t){super(t)}destroy(){this._buttonElement=void 0}get buttonElement(){return this._buttonElement}_build(){var n,i;let t=document.createElement(e.elementName);return this._buttonElement=document.createElement("button"),this._buttonElement.type=((n=this._config.options)==null?void 0:n.type)||"button",this._buttonElement.textContent=((i=this._config.options)==null?void 0:i.text)||"",t.appendChild(this._buttonElement),t}onClick(t){var n;(n=this._buttonElement)==null||n.addEventListener("click",t)}onFocus(t){var n;(n=this._buttonElement)==null||n.addEventListener("focus",i=>t(i))}onBlur(t){var n;(n=this._buttonElement)==null||n.addEventListener("blur",i=>t(i))}};function F(){p(s)}export{e as a,s as b,E as c,F as d};
7
+ //# sourceMappingURL=chunk.OAKTW64X.js.map