@servicetitan/anvil2 1.41.0 → 1.42.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/{AnvilProvider-Lh8YtV03.js → AnvilProvider-BLYCqIbb.js} +2 -2
  3. package/dist/{AnvilProvider-Lh8YtV03.js.map → AnvilProvider-BLYCqIbb.js.map} +1 -1
  4. package/dist/AnvilProvider.js +1 -1
  5. package/dist/{Avatar-B20IdOEO-Di14brYV.js → Avatar-C7cbRTCt-DCvzmr2C.js} +14 -12
  6. package/dist/Avatar-C7cbRTCt-DCvzmr2C.js.map +1 -0
  7. package/dist/{Avatar-B20IdOEO.css → Avatar-C7cbRTCt.css} +34 -19
  8. package/dist/{Avatar-hNOToS9S.js → Avatar-DREZJN2K.js} +2 -2
  9. package/dist/Avatar-DREZJN2K.js.map +1 -0
  10. package/dist/Avatar.js +1 -1
  11. package/dist/{Breadcrumbs-D_jgwoN3-Dlw-weD8.js → Breadcrumbs-B5bqrZ5D-BqK-Qfh9.js} +3 -3
  12. package/dist/{Breadcrumbs-D_jgwoN3-Dlw-weD8.js.map → Breadcrumbs-B5bqrZ5D-BqK-Qfh9.js.map} +1 -1
  13. package/dist/{Breadcrumbs-C_gan90a.js → Breadcrumbs-De8uoLi8.js} +2 -2
  14. package/dist/{Breadcrumbs-C_gan90a.js.map → Breadcrumbs-De8uoLi8.js.map} +1 -1
  15. package/dist/Breadcrumbs.js +1 -1
  16. package/dist/{Calendar-MIwfKzm7.js → Calendar-Bgpz99F2.js} +2 -2
  17. package/dist/{Calendar-MIwfKzm7.js.map → Calendar-Bgpz99F2.js.map} +1 -1
  18. package/dist/{Calendar-CNrdcd3f-BAKv-Gz3.js → Calendar-DD5kmVd3-CBGTR11R.js} +4 -4
  19. package/dist/{Calendar-CNrdcd3f-BAKv-Gz3.js.map → Calendar-DD5kmVd3-CBGTR11R.js.map} +1 -1
  20. package/dist/Calendar.js +1 -1
  21. package/dist/{Checkbox-JWDraGFN--7ptfLKN.js → Checkbox-DyHm7Ntt-DYw5QL3l.js} +2 -2
  22. package/dist/{Checkbox-JWDraGFN--7ptfLKN.js.map → Checkbox-DyHm7Ntt-DYw5QL3l.js.map} +1 -1
  23. package/dist/{Checkbox-IPM-sdvR.js → Checkbox-zg8LVvB6.js} +2 -2
  24. package/dist/{Checkbox-IPM-sdvR.js.map → Checkbox-zg8LVvB6.js.map} +1 -1
  25. package/dist/Checkbox.js +1 -1
  26. package/dist/Chip-DXQiqF8k.js +34 -0
  27. package/dist/Chip-DXQiqF8k.js.map +1 -0
  28. package/dist/{Chip-_daV8CmM-CTke7zH4.js → Chip-MbBEXeAm-DmAcwPRJ.js} +57 -10
  29. package/dist/Chip-MbBEXeAm-DmAcwPRJ.js.map +1 -0
  30. package/dist/{Chip-_daV8CmM.css → Chip-MbBEXeAm.css} +68 -18
  31. package/dist/Chip.js +1 -1
  32. package/dist/{Combobox-CM8DmNMs.js → Combobox-D2aSaDkz.js} +7 -7
  33. package/dist/{Combobox-CM8DmNMs.js.map → Combobox-D2aSaDkz.js.map} +1 -1
  34. package/dist/Combobox.js +1 -1
  35. package/dist/{DateField-BDJEsVc1.js → DateField-D28_sa7P.js} +6 -6
  36. package/dist/{DateField-BDJEsVc1.js.map → DateField-D28_sa7P.js.map} +1 -1
  37. package/dist/DateField.js +1 -1
  38. package/dist/{DateFieldRange-BTq6MrNu.js → DateFieldRange-c4LX8hoE.js} +2 -2
  39. package/dist/{DateFieldRange-BTq6MrNu.js.map → DateFieldRange-c4LX8hoE.js.map} +1 -1
  40. package/dist/DateFieldRange.js +1 -1
  41. package/dist/{DateFieldSingle-CaeOLrI4.js → DateFieldSingle-WfPOm0qk.js} +2 -2
  42. package/dist/{DateFieldSingle-CaeOLrI4.js.map → DateFieldSingle-WfPOm0qk.js.map} +1 -1
  43. package/dist/DateFieldSingle.js +1 -1
  44. package/dist/{DateFieldYearless-CbFo3oyZ.js → DateFieldYearless-DC50l-ht.js} +2 -2
  45. package/dist/{DateFieldYearless-CbFo3oyZ.js.map → DateFieldYearless-DC50l-ht.js.map} +1 -1
  46. package/dist/{DateFieldYearless-CJP3H_Dg-BV5wGJp1.js → DateFieldYearless-DU0z2fEA-ByR2ixI5.js} +697 -610
  47. package/dist/{DateFieldYearless-CJP3H_Dg-BV5wGJp1.js.map → DateFieldYearless-DU0z2fEA-ByR2ixI5.js.map} +1 -1
  48. package/dist/DateFieldYearless.js +1 -1
  49. package/dist/{DaysOfTheWeek-8zaAuw55.js → DaysOfTheWeek-ImBPjEvl.js} +2 -2
  50. package/dist/{DaysOfTheWeek-8zaAuw55.js.map → DaysOfTheWeek-ImBPjEvl.js.map} +1 -1
  51. package/dist/DaysOfTheWeek.js +1 -1
  52. package/dist/{Dialog-DnZE02ob.js → Dialog-BR6f-XRH.js} +3 -3
  53. package/dist/{Dialog-DnZE02ob.js.map → Dialog-BR6f-XRH.js.map} +1 -1
  54. package/dist/Dialog.js +1 -1
  55. package/dist/{Drawer-5kgL0gY9.js → Drawer-0ayAWgAA.js} +2 -2
  56. package/dist/{Drawer-5kgL0gY9.js.map → Drawer-0ayAWgAA.js.map} +1 -1
  57. package/dist/Drawer.js +1 -1
  58. package/dist/{EditCard-C0hD1VPA.js → EditCard-B_n1uFkv.js} +2 -2
  59. package/dist/{EditCard-C0hD1VPA.js.map → EditCard-B_n1uFkv.js.map} +1 -1
  60. package/dist/EditCard.js +1 -1
  61. package/dist/{FieldLabel-D5rNXy6h.js → FieldLabel-DWl5qsRY.js} +2 -2
  62. package/dist/{FieldLabel-D5rNXy6h.js.map → FieldLabel-DWl5qsRY.js.map} +1 -1
  63. package/dist/FieldLabel.js +1 -1
  64. package/dist/{HammerProvider-CYP98rq3-Dd9GVIyP.js → HammerProvider-vt3DkcCZ-06BeBrPu.js} +2 -2
  65. package/dist/{HammerProvider-CYP98rq3-Dd9GVIyP.js.map → HammerProvider-vt3DkcCZ-06BeBrPu.js.map} +1 -1
  66. package/dist/{InputMask-BLZh7hka-CTcRCY2k.js → InputMask-CE3pdXwL-B8XVrj36.js} +2 -2
  67. package/dist/{InputMask-BLZh7hka-CTcRCY2k.js.map → InputMask-CE3pdXwL-B8XVrj36.js.map} +1 -1
  68. package/dist/{InputMask-B6kMdXCB.js → InputMask-wUro4G2j.js} +2 -2
  69. package/dist/{InputMask-B6kMdXCB.js.map → InputMask-wUro4G2j.js.map} +1 -1
  70. package/dist/InputMask.js +1 -1
  71. package/dist/{ListView-cMMBtp1O.js → ListView-DdHpJHTc.js} +3 -3
  72. package/dist/{ListView-cMMBtp1O.js.map → ListView-DdHpJHTc.js.map} +1 -1
  73. package/dist/ListView.js +1 -1
  74. package/dist/{Listbox-BvJLSAVO-Br5k6fmq.js → Listbox-B-WUuj-_-BWWeWtLW.js} +2 -2
  75. package/dist/{Listbox-BvJLSAVO-Br5k6fmq.js.map → Listbox-B-WUuj-_-BWWeWtLW.js.map} +1 -1
  76. package/dist/{Listbox-dVARiucB.js → Listbox-Di6OS1Fk.js} +2 -2
  77. package/dist/{Listbox-dVARiucB.js.map → Listbox-Di6OS1Fk.js.map} +1 -1
  78. package/dist/Listbox.js +1 -1
  79. package/dist/{Menu-Dk3ESnzI.js → Menu-DHCOMJx2.js} +2 -2
  80. package/dist/{Menu-Dk3ESnzI.js.map → Menu-DHCOMJx2.js.map} +1 -1
  81. package/dist/{Menu-CAiyc2zk-rxU7H28t.js → Menu-TtVJnSrA-yBYichuJ.js} +6 -9
  82. package/dist/Menu-TtVJnSrA-yBYichuJ.js.map +1 -0
  83. package/dist/Menu.js +1 -1
  84. package/dist/{Page-DWeD3rrr.js → Page-KN0DLtcf.js} +8 -8
  85. package/dist/{Page-DWeD3rrr.js.map → Page-KN0DLtcf.js.map} +1 -1
  86. package/dist/Page.js +1 -1
  87. package/dist/Pagination.js +2 -2
  88. package/dist/Pagination.js.map +1 -1
  89. package/dist/{Popover-2O1Q-34V.js → Popover-B1HaUjGI.js} +2 -2
  90. package/dist/{Popover-2O1Q-34V.js.map → Popover-B1HaUjGI.js.map} +1 -1
  91. package/dist/{Popover-DvLcjLjG-Yu5STx-v.js → Popover-CU2cGVD8-FWJOuFRj.js} +4 -4
  92. package/dist/{Popover-DvLcjLjG-Yu5STx-v.js.map → Popover-CU2cGVD8-FWJOuFRj.js.map} +1 -1
  93. package/dist/Popover.js +1 -1
  94. package/dist/{ProgressBar-BezETeA3-CeeedJ_w.js → ProgressBar-BRvB-bD4-DppwBrFg.js} +5 -5
  95. package/dist/{ProgressBar-BezETeA3-CeeedJ_w.js.map → ProgressBar-BRvB-bD4-DppwBrFg.js.map} +1 -1
  96. package/dist/{ProgressBar-CfstmN5D.js → ProgressBar-lPKNTz6i.js} +2 -2
  97. package/dist/{ProgressBar-CfstmN5D.js.map → ProgressBar-lPKNTz6i.js.map} +1 -1
  98. package/dist/ProgressBar.js +1 -1
  99. package/dist/{Radio-8E1l0DJa-CLVaSyQc.js → Radio-DQ_VQFGZ-SdFBlDnE.js} +3 -3
  100. package/dist/{Radio-8E1l0DJa-CLVaSyQc.js.map → Radio-DQ_VQFGZ-SdFBlDnE.js.map} +1 -1
  101. package/dist/{Radio-P6dkI3W0.js → Radio-DnOuBPi_.js} +2 -2
  102. package/dist/{Radio-P6dkI3W0.js.map → Radio-DnOuBPi_.js.map} +1 -1
  103. package/dist/Radio.js +1 -1
  104. package/dist/{SelectCard-m61WUlo--DlByowef.js → SelectCard-DUNwYa5y-BSi21Aba.js} +4 -4
  105. package/dist/{SelectCard-m61WUlo--DlByowef.js.map → SelectCard-DUNwYa5y-BSi21Aba.js.map} +1 -1
  106. package/dist/SelectCard.js +1 -1
  107. package/dist/{SelectCardGroup-DIaWX2Vp.js → SelectCardGroup-YGYiBv5M.js} +2 -2
  108. package/dist/{SelectCardGroup-DIaWX2Vp.js.map → SelectCardGroup-YGYiBv5M.js.map} +1 -1
  109. package/dist/{SelectTrigger-DKh0Bzy6.js → SelectTrigger-Cg-rlFKY.js} +3 -3
  110. package/dist/{SelectTrigger-DKh0Bzy6.js.map → SelectTrigger-Cg-rlFKY.js.map} +1 -1
  111. package/dist/SelectTrigger.js +1 -1
  112. package/dist/{SelectTriggerBase-DnRvuD3R-CTFWVZhY.js → SelectTriggerBase-C0fhFfuj-DfR6h1Lq.js} +4 -4
  113. package/dist/{SelectTriggerBase-DnRvuD3R-CTFWVZhY.js.map → SelectTriggerBase-C0fhFfuj-DfR6h1Lq.js.map} +1 -1
  114. package/dist/{SideNav-DEoGpeqJ.js → SideNav-Bh_pVeEw.js} +11 -11
  115. package/dist/{SideNav-DEoGpeqJ.js.map → SideNav-Bh_pVeEw.js.map} +1 -1
  116. package/dist/SideNav.css +70 -52
  117. package/dist/SideNav.js +1 -1
  118. package/dist/{Text-B91g6xKn.js → Text-35Ve4Uq0.js} +2 -2
  119. package/dist/{Text-B91g6xKn.js.map → Text-35Ve4Uq0.js.map} +1 -1
  120. package/dist/{Text-DCvcLCvf-DlmnnjTR.js → Text-CED_yrId-DsRYZw2-.js} +10 -10
  121. package/dist/{Text-DCvcLCvf-DlmnnjTR.js.map → Text-CED_yrId-DsRYZw2-.js.map} +1 -1
  122. package/dist/{Text-DCvcLCvf.css → Text-CED_yrId.css} +35 -17
  123. package/dist/Text.js +1 -1
  124. package/dist/{TextField-D_fqJf85-Bcd6rWv4.js → TextField-CRTh0gL_-D2CjcYXX.js} +6 -3
  125. package/dist/TextField-CRTh0gL_-D2CjcYXX.js.map +1 -0
  126. package/dist/{TextField--tytNBLh.js → TextField-gYAqTpcX.js} +2 -2
  127. package/dist/{TextField--tytNBLh.js.map → TextField-gYAqTpcX.js.map} +1 -1
  128. package/dist/TextField.js +1 -1
  129. package/dist/{Textarea-B0nZ9vOV.js → Textarea-DohNOiIp.js} +24 -11
  130. package/dist/Textarea-DohNOiIp.js.map +1 -0
  131. package/dist/Textarea.js +1 -1
  132. package/dist/{ThemeProvider-BKave7Ha.js → ThemeProvider-DwJqkbiU.js} +2 -2
  133. package/dist/{ThemeProvider-BKave7Ha.js.map → ThemeProvider-DwJqkbiU.js.map} +1 -1
  134. package/dist/{ThemeProvider-CR67FJg0-DYVRlJRA.js → ThemeProvider-Q3ji6Rpx-DBXlAuQ8.js} +5 -5
  135. package/dist/{ThemeProvider-CR67FJg0-DYVRlJRA.js.map → ThemeProvider-Q3ji6Rpx-DBXlAuQ8.js.map} +1 -1
  136. package/dist/{ThemeProvider-CR67FJg0.css → ThemeProvider-Q3ji6Rpx.css} +106 -4
  137. package/dist/ThemeProvider.js +1 -1
  138. package/dist/Toast.js +1 -1
  139. package/dist/{Toolbar-BM78DEEM.js → Toolbar-BznMJKGJ.js} +4 -4
  140. package/dist/{Toolbar-BM78DEEM.js.map → Toolbar-BznMJKGJ.js.map} +1 -1
  141. package/dist/Toolbar.js +1 -1
  142. package/dist/{Tooltip-ZFFXA77Y.js → Tooltip-C2HQDvYj.js} +2 -2
  143. package/dist/{Tooltip-ZFFXA77Y.js.map → Tooltip-C2HQDvYj.js.map} +1 -1
  144. package/dist/Tooltip.js +1 -1
  145. package/dist/assets/icons/st/fixed.svg +1 -0
  146. package/dist/assets/icons/st/full_fluid.svg +1 -0
  147. package/dist/assets/icons/st/installed_equipment.svg +1 -0
  148. package/dist/assets/icons/st/unpin.svg +1 -0
  149. package/dist/assets/icons/st.ts +4 -0
  150. package/dist/components/Avatar/Avatar.d.ts +7 -2
  151. package/dist/components/Chip/Chip.d.ts +12 -10
  152. package/dist/components/DateField/DateField.d.ts +1 -0
  153. package/dist/index.js +34 -34
  154. package/dist/{toast-uADTqqrS.js → toast-BhV_Ask2.js} +2 -2
  155. package/dist/{toast-uADTqqrS.js.map → toast-BhV_Ask2.js.map} +1 -1
  156. package/dist/token/core/raw.js +85 -0
  157. package/dist/token/core/semantic-variables.scss +102 -0
  158. package/dist/token/core/semantic.js +357 -0
  159. package/dist/token/core/semantic.scss +51 -0
  160. package/dist/token.js +408 -0
  161. package/dist/token.js.map +1 -1
  162. package/package.json +3 -3
  163. package/dist/Avatar-B20IdOEO-Di14brYV.js.map +0 -1
  164. package/dist/Avatar-hNOToS9S.js.map +0 -1
  165. package/dist/Chip-BlLavyIK.js +0 -24
  166. package/dist/Chip-BlLavyIK.js.map +0 -1
  167. package/dist/Chip-_daV8CmM-CTke7zH4.js.map +0 -1
  168. package/dist/Menu-CAiyc2zk-rxU7H28t.js.map +0 -1
  169. package/dist/TextField-D_fqJf85-Bcd6rWv4.js.map +0 -1
  170. package/dist/Textarea-B0nZ9vOV.js.map +0 -1
  171. /package/dist/{Breadcrumbs-D_jgwoN3.css → Breadcrumbs-B5bqrZ5D.css} +0 -0
  172. /package/dist/{Calendar-CNrdcd3f.css → Calendar-DD5kmVd3.css} +0 -0
  173. /package/dist/{Menu-CAiyc2zk.css → Menu-TtVJnSrA.css} +0 -0
  174. /package/dist/{Popover-DvLcjLjG.css → Popover-CU2cGVD8.css} +0 -0
  175. /package/dist/{ProgressBar-BezETeA3.css → ProgressBar-BRvB-bD4.css} +0 -0
  176. /package/dist/{Radio-8E1l0DJa.css → Radio-DQ_VQFGZ.css} +0 -0
  177. /package/dist/{SelectCard-m61WUlo-.css → SelectCard-DUNwYa5y.css} +0 -0
  178. /package/dist/{SelectTriggerBase-DnRvuD3R.css → SelectTriggerBase-C0fhFfuj.css} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"InputMask-BLZh7hka-CTcRCY2k.js","sources":["../../hammer-react/dist/InputMask-BLZh7hka.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { forwardRef, useRef, useMemo, isValidElement, cloneElement } from 'react';\nimport { T as TextField } from './TextField-D_fqJf85.js';\nimport { useMergeRefs } from '@floating-ui/react';\nimport { u as useOptionallyControlledState } from './useOptionallyControlledState-DAv5LXXh.js';\n\nconst MASK_CHARS = [\"a\", \"9\", \"*\"];\nconst InputMask = forwardRef(\n ({\n children,\n mask,\n defaultMaskCharacter = \"_\",\n value,\n defaultValue,\n onChange,\n inputProps\n }, ref) => {\n const [v, setV] = useOptionallyControlledState({\n controlledValue: value !== void 0 ? applyMask(value, mask, defaultMaskCharacter) : void 0,\n defaultValue: applyMask(defaultValue || \"\", mask, defaultMaskCharacter)\n // Omitting the onChange handler here because we want to handle it ourselves (i.e. send an event instead of just the value)\n });\n const specialChange = useRef(null);\n const inputRef = useRef(null);\n const passInRef = useMergeRefs([inputRef, ref]);\n const currentOpenCharacterCount = useMemo(() => {\n return v.split(\"\").filter((char) => char === defaultMaskCharacter).length;\n }, [v, defaultMaskCharacter]);\n const fixedCharacterIndices = useMemo(() => {\n const fixedIndices = [];\n mask.split(\"\").forEach((char, i) => {\n if (!MASK_CHARS.includes(char)) {\n fixedIndices.push(i);\n }\n });\n return fixedIndices;\n }, [mask]);\n const moveCursorTo = (start, end = start) => {\n requestAnimationFrame(() => {\n inputRef.current?.setSelectionRange(start, end);\n });\n };\n const handleChange = (e) => {\n let newVal = applyMask(e.target.value, mask, defaultMaskCharacter);\n if (\n // A single character was backspaced\n specialChange.current?.reason === \"Backspace\" && specialChange.current.start === specialChange.current.end\n ) {\n if (fixedCharacterIndices.includes(specialChange.current.start - 1)) {\n const removeIndex = getLastFilledCharacterIndex(\n newVal.slice(0, specialChange.current.start),\n mask\n );\n newVal = applyMask(\n newVal.slice(0, removeIndex) + newVal.slice(removeIndex + 1),\n mask,\n defaultMaskCharacter\n );\n moveCursorTo(removeIndex, removeIndex);\n } else {\n const idx = Math.min(\n getLastFilledCharacterIndex(newVal, mask) + 1,\n specialChange.current.start - 1\n );\n moveCursorTo(idx, idx);\n }\n } else if (\n // A single character was deleted\n specialChange.current?.reason === \"Delete\" && specialChange.current.start === specialChange.current.end\n ) {\n if (fixedCharacterIndices.includes(specialChange.current.start)) {\n const removeIndex = getFirstFilledCharacterIndex(\n newVal.slice(specialChange.current.start + 1),\n mask\n );\n newVal = applyMask(\n newVal.slice(0, removeIndex) + newVal.slice(removeIndex + 1),\n mask,\n defaultMaskCharacter\n );\n }\n const firstFilledIdx = getFirstFilledCharacterIndex(newVal, mask);\n const targetIdx = Math.max(firstFilledIdx, specialChange.current.start);\n moveCursorTo(targetIdx, targetIdx);\n } else if (specialChange.current?.reason === \"Edit\" && specialChange.current.start === specialChange.current.end) {\n const firstNonFixedIdx = getFirstNonFixedCharacterIndex(\n specialChange.current.start + 1,\n fixedCharacterIndices\n );\n moveCursorTo(firstNonFixedIdx, firstNonFixedIdx);\n } else {\n const newIndex = getNextOpenCharacterIndex(\n newVal,\n defaultMaskCharacter\n );\n moveCursorTo(newIndex, newIndex);\n }\n setV(newVal);\n if (inputRef.current) {\n inputRef.current.value = newVal;\n }\n onChange?.({ ...e, target: { ...e.target, value: newVal } });\n };\n const handleFocus = (e) => {\n requestAnimationFrame(() => {\n if (e.target.selectionStart === null || e.target.selectionStart === void 0 || e.target.selectionStart >= v.length) {\n const newIndex = getNextOpenCharacterIndex(v, defaultMaskCharacter);\n moveCursorTo(newIndex, newIndex);\n }\n });\n inputProps?.onFocus?.(e);\n };\n const handleKeyDown = (e) => {\n const target = e.target;\n if (target.selectionStart === null || target.selectionEnd === null) {\n return;\n }\n if (e.key === \"Backspace\") {\n specialChange.current = {\n reason: \"Backspace\",\n start: target.selectionStart,\n end: target.selectionEnd\n };\n } else if (e.key === \"Delete\") {\n specialChange.current = {\n reason: \"Delete\",\n start: target.selectionStart,\n end: target.selectionEnd\n };\n } else if (currentOpenCharacterCount === 0) {\n specialChange.current = {\n reason: \"Edit\",\n start: target.selectionStart,\n end: target.selectionEnd\n };\n } else {\n specialChange.current = null;\n }\n inputProps?.onKeyDown?.(e);\n };\n const handleClick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n inputProps?.onClick?.(e);\n };\n const handleBlur = (e) => {\n e.preventDefault();\n e.stopPropagation();\n inputProps?.onBlur?.(e);\n };\n const mergedInputProps = {\n ...inputProps,\n ...children && isValidElement(children) ? children.props : {},\n value: v,\n onChange: handleChange,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onClick: handleClick,\n onBlur: handleBlur,\n ref: passInRef\n };\n const isInputEmpty = useMemo(() => {\n if (v.length === 0) {\n return true;\n }\n return v === applyMask(\"\", mask, defaultMaskCharacter);\n }, [v, defaultMaskCharacter, mask]);\n return children && isValidElement(children) && children.type === \"input\" ? cloneElement(children, {\n ...mergedInputProps\n }) : /* @__PURE__ */ jsx(\n TextField,\n {\n \"data-input-empty\": isInputEmpty,\n ...mergedInputProps\n }\n );\n }\n);\nInputMask.displayName = \"InputMask\";\nfunction applyMask(value, mask, defaultMaskCharacter) {\n let maskedValue = \"\";\n let valueIndex = 0;\n for (let i = 0; i < mask.length; i++) {\n const maskChar = mask[i];\n if (MASK_CHARS.includes(maskChar)) {\n while (valueIndex < value.length && !isAcceptableChar(value[valueIndex], maskChar)) {\n valueIndex++;\n }\n if (valueIndex < value.length) {\n maskedValue += value[valueIndex];\n valueIndex++;\n } else {\n maskedValue += defaultMaskCharacter;\n }\n } else {\n maskedValue += maskChar;\n }\n }\n return maskedValue;\n}\nfunction isAcceptableChar(char, maskChar) {\n if (maskChar === \"9\") {\n return /\\d/.test(char);\n }\n if (maskChar === \"a\") {\n return /[a-zA-Z]/.test(char);\n }\n if (maskChar === \"*\") {\n return /[a-zA-Z0-9]/.test(char);\n }\n return false;\n}\nfunction getNextOpenCharacterIndex(value, defaultMaskCharacter) {\n let idx = value.indexOf(defaultMaskCharacter);\n if (idx < 0) {\n idx = value.length;\n }\n return idx;\n}\nfunction getFirstNonFixedCharacterIndex(startingIndex, fixedCharacterIndices) {\n let idx = startingIndex;\n while (fixedCharacterIndices.includes(idx)) {\n idx++;\n }\n return idx;\n}\nfunction getLastFilledCharacterIndex(value, mask) {\n let idx = value.split(\"\").findLastIndex((char, i) => isAcceptableChar(char, mask[i]));\n if (idx < 0) {\n idx = 0;\n }\n return idx;\n}\nfunction getFirstFilledCharacterIndex(value, mask) {\n let idx = value.split(\"\").findIndex((char, i) => isAcceptableChar(char, mask[i]));\n if (idx < 0) {\n idx = 0;\n }\n return idx;\n}\n\nexport { InputMask as I };\n//# sourceMappingURL=InputMask-BLZh7hka.js.map\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InputMask-CE3pdXwL-B8XVrj36.js","sources":["../../hammer-react/dist/InputMask-CE3pdXwL.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { forwardRef, useRef, useMemo, isValidElement, cloneElement } from 'react';\nimport { T as TextField } from './TextField-CRTh0gL_.js';\nimport { useMergeRefs } from '@floating-ui/react';\nimport { u as useOptionallyControlledState } from './useOptionallyControlledState-DAv5LXXh.js';\n\nconst MASK_CHARS = [\"a\", \"9\", \"*\"];\nconst InputMask = forwardRef(\n ({\n children,\n mask,\n defaultMaskCharacter = \"_\",\n value,\n defaultValue,\n onChange,\n inputProps\n }, ref) => {\n const [v, setV] = useOptionallyControlledState({\n controlledValue: value !== void 0 ? applyMask(value, mask, defaultMaskCharacter) : void 0,\n defaultValue: applyMask(defaultValue || \"\", mask, defaultMaskCharacter)\n // Omitting the onChange handler here because we want to handle it ourselves (i.e. send an event instead of just the value)\n });\n const specialChange = useRef(null);\n const inputRef = useRef(null);\n const passInRef = useMergeRefs([inputRef, ref]);\n const currentOpenCharacterCount = useMemo(() => {\n return v.split(\"\").filter((char) => char === defaultMaskCharacter).length;\n }, [v, defaultMaskCharacter]);\n const fixedCharacterIndices = useMemo(() => {\n const fixedIndices = [];\n mask.split(\"\").forEach((char, i) => {\n if (!MASK_CHARS.includes(char)) {\n fixedIndices.push(i);\n }\n });\n return fixedIndices;\n }, [mask]);\n const moveCursorTo = (start, end = start) => {\n requestAnimationFrame(() => {\n inputRef.current?.setSelectionRange(start, end);\n });\n };\n const handleChange = (e) => {\n let newVal = applyMask(e.target.value, mask, defaultMaskCharacter);\n if (\n // A single character was backspaced\n specialChange.current?.reason === \"Backspace\" && specialChange.current.start === specialChange.current.end\n ) {\n if (fixedCharacterIndices.includes(specialChange.current.start - 1)) {\n const removeIndex = getLastFilledCharacterIndex(\n newVal.slice(0, specialChange.current.start),\n mask\n );\n newVal = applyMask(\n newVal.slice(0, removeIndex) + newVal.slice(removeIndex + 1),\n mask,\n defaultMaskCharacter\n );\n moveCursorTo(removeIndex, removeIndex);\n } else {\n const idx = Math.min(\n getLastFilledCharacterIndex(newVal, mask) + 1,\n specialChange.current.start - 1\n );\n moveCursorTo(idx, idx);\n }\n } else if (\n // A single character was deleted\n specialChange.current?.reason === \"Delete\" && specialChange.current.start === specialChange.current.end\n ) {\n if (fixedCharacterIndices.includes(specialChange.current.start)) {\n const removeIndex = getFirstFilledCharacterIndex(\n newVal.slice(specialChange.current.start + 1),\n mask\n );\n newVal = applyMask(\n newVal.slice(0, removeIndex) + newVal.slice(removeIndex + 1),\n mask,\n defaultMaskCharacter\n );\n }\n const firstFilledIdx = getFirstFilledCharacterIndex(newVal, mask);\n const targetIdx = Math.max(firstFilledIdx, specialChange.current.start);\n moveCursorTo(targetIdx, targetIdx);\n } else if (specialChange.current?.reason === \"Edit\" && specialChange.current.start === specialChange.current.end) {\n const firstNonFixedIdx = getFirstNonFixedCharacterIndex(\n specialChange.current.start + 1,\n fixedCharacterIndices\n );\n moveCursorTo(firstNonFixedIdx, firstNonFixedIdx);\n } else {\n const newIndex = getNextOpenCharacterIndex(\n newVal,\n defaultMaskCharacter\n );\n moveCursorTo(newIndex, newIndex);\n }\n setV(newVal);\n if (inputRef.current) {\n inputRef.current.value = newVal;\n }\n onChange?.({ ...e, target: { ...e.target, value: newVal } });\n };\n const handleFocus = (e) => {\n requestAnimationFrame(() => {\n if (e.target.selectionStart === null || e.target.selectionStart === void 0 || e.target.selectionStart >= v.length) {\n const newIndex = getNextOpenCharacterIndex(v, defaultMaskCharacter);\n moveCursorTo(newIndex, newIndex);\n }\n });\n inputProps?.onFocus?.(e);\n };\n const handleKeyDown = (e) => {\n const target = e.target;\n if (target.selectionStart === null || target.selectionEnd === null) {\n return;\n }\n if (e.key === \"Backspace\") {\n specialChange.current = {\n reason: \"Backspace\",\n start: target.selectionStart,\n end: target.selectionEnd\n };\n } else if (e.key === \"Delete\") {\n specialChange.current = {\n reason: \"Delete\",\n start: target.selectionStart,\n end: target.selectionEnd\n };\n } else if (currentOpenCharacterCount === 0) {\n specialChange.current = {\n reason: \"Edit\",\n start: target.selectionStart,\n end: target.selectionEnd\n };\n } else {\n specialChange.current = null;\n }\n inputProps?.onKeyDown?.(e);\n };\n const handleClick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n inputProps?.onClick?.(e);\n };\n const handleBlur = (e) => {\n e.preventDefault();\n e.stopPropagation();\n inputProps?.onBlur?.(e);\n };\n const mergedInputProps = {\n ...inputProps,\n ...children && isValidElement(children) ? children.props : {},\n value: v,\n onChange: handleChange,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onClick: handleClick,\n onBlur: handleBlur,\n ref: passInRef\n };\n const isInputEmpty = useMemo(() => {\n if (v.length === 0) {\n return true;\n }\n return v === applyMask(\"\", mask, defaultMaskCharacter);\n }, [v, defaultMaskCharacter, mask]);\n return children && isValidElement(children) && children.type === \"input\" ? cloneElement(children, {\n ...mergedInputProps\n }) : /* @__PURE__ */ jsx(\n TextField,\n {\n \"data-input-empty\": isInputEmpty,\n ...mergedInputProps\n }\n );\n }\n);\nInputMask.displayName = \"InputMask\";\nfunction applyMask(value, mask, defaultMaskCharacter) {\n let maskedValue = \"\";\n let valueIndex = 0;\n for (let i = 0; i < mask.length; i++) {\n const maskChar = mask[i];\n if (MASK_CHARS.includes(maskChar)) {\n while (valueIndex < value.length && !isAcceptableChar(value[valueIndex], maskChar)) {\n valueIndex++;\n }\n if (valueIndex < value.length) {\n maskedValue += value[valueIndex];\n valueIndex++;\n } else {\n maskedValue += defaultMaskCharacter;\n }\n } else {\n maskedValue += maskChar;\n }\n }\n return maskedValue;\n}\nfunction isAcceptableChar(char, maskChar) {\n if (maskChar === \"9\") {\n return /\\d/.test(char);\n }\n if (maskChar === \"a\") {\n return /[a-zA-Z]/.test(char);\n }\n if (maskChar === \"*\") {\n return /[a-zA-Z0-9]/.test(char);\n }\n return false;\n}\nfunction getNextOpenCharacterIndex(value, defaultMaskCharacter) {\n let idx = value.indexOf(defaultMaskCharacter);\n if (idx < 0) {\n idx = value.length;\n }\n return idx;\n}\nfunction getFirstNonFixedCharacterIndex(startingIndex, fixedCharacterIndices) {\n let idx = startingIndex;\n while (fixedCharacterIndices.includes(idx)) {\n idx++;\n }\n return idx;\n}\nfunction getLastFilledCharacterIndex(value, mask) {\n let idx = value.split(\"\").findLastIndex((char, i) => isAcceptableChar(char, mask[i]));\n if (idx < 0) {\n idx = 0;\n }\n return idx;\n}\nfunction getFirstFilledCharacterIndex(value, mask) {\n let idx = value.split(\"\").findIndex((char, i) => isAcceptableChar(char, mask[i]));\n if (idx < 0) {\n idx = 0;\n }\n return idx;\n}\n\nexport { InputMask as I };\n//# sourceMappingURL=InputMask-CE3pdXwL.js.map\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
3
  import { useTrackingId } from './useTrackingId.js';
4
4
  import { c as childrenToString } from './childrenToString-Bz9MqbHb-Bz9MqbHb.js';
5
- import { I as InputMask$1 } from './InputMask-BLZh7hka-CTcRCY2k.js';
5
+ import { I as InputMask$1 } from './InputMask-CE3pdXwL-B8XVrj36.js';
6
6
 
7
7
  const InputMask = forwardRef(
8
8
  (props, ref) => {
@@ -27,4 +27,4 @@ const InputMask = forwardRef(
27
27
  InputMask.displayName = InputMask$1.displayName;
28
28
 
29
29
  export { InputMask as I };
30
- //# sourceMappingURL=InputMask-B6kMdXCB.js.map
30
+ //# sourceMappingURL=InputMask-wUro4G2j.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputMask-B6kMdXCB.js","sources":["../src/components/InputMask/InputMask.tsx"],"sourcesContent":["import {\n InputMaskProps as CoreInputMaskProps,\n InputMask as CoreInputMask,\n childrenToString,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\n\n/**\n * Props for the InputMask component\n * @property {string} mask - The mask pattern to apply to the input (9 for digits, a for letters, * for alphanumeric)\n * @property {string} [defaultMaskCharacter] - Character to display for unfilled mask positions\n * @property {array} [customMaskHandler] - Array of custom mask handlers for advanced transformations\n * @property {object} [inputProps] - Props to pass to the input component\n * @property {ReactElement} [children] - Custom input element to be wrapped with mask functionality\n * @property {string} [data-tracking-id] - Custom tracking ID for analytics\n */\nexport type InputMaskProps = CoreInputMaskProps & {\n [\"data-tracking-id\"]?: string;\n};\n\n/**\n * InputMask component for applying input masks and formatting to text inputs.\n *\n * Features:\n * - Input masking with configurable patterns (9, a, *, fixed characters)\n * - Support for both controlled and uncontrolled inputs\n * - Custom input elements or default TextField integration\n * - Advanced cursor positioning and selection management\n * - Custom mask handlers for complex transformations\n * - Paste and keyboard event handling\n * - Automatic mask character replacement\n * - Focus and blur event management\n * - Accessible with proper ARIA attributes\n * - Support for all standard input element props\n * - Flexible mask pattern configuration\n * - Real-time input validation and formatting\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <InputMask\n * mask=\"99/99/9999\"\n * inputProps={{ label: \"Date\", hint: \"mm/dd/yyyy\" }}\n * />\n *\n * @example\n * <InputMask mask=\"(999) 999-9999\">\n * <TextField label=\"Phone Number\" hint=\"(555) 123-4567\" />\n * </InputMask>\n *\n * @example\n * <InputMask\n * mask=\"99/99/9999\"\n * customMaskHandler={[\n * {\n * match: {\n * matchPattern: /^(\\d)\\//,\n * startPosition: 0,\n * endPosition: 2,\n * },\n * apply: {\n * applyPattern: \"0$1\",\n * caretOffset: 2,\n * },\n * },\n * ]}\n * inputProps={{ label: \"Date with custom handler\" }}\n * />\n */\nexport const InputMask = forwardRef(\n (props: InputMaskProps, ref: Ref<HTMLInputElement>) => {\n const inputProps = props.inputProps ?? {};\n\n const data = {\n label: \"label\" in inputProps ? childrenToString(inputProps.label) : null,\n labelProps: \"labelProps\" in inputProps ? inputProps.labelProps : null,\n prefix: childrenToString(inputProps.prefix),\n hint: \"hint\" in inputProps ? childrenToString(inputProps.hint) : null,\n description:\n \"description\" in inputProps\n ? childrenToString(inputProps.description)\n : null,\n size: inputProps.size,\n type: inputProps.type,\n };\n\n const trackingId = useTrackingId({\n name: \"InputMask\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n return <CoreInputMask ref={ref} data-tracking-id={trackingId} {...props} />;\n },\n);\nInputMask.displayName = CoreInputMask.displayName;\n"],"names":["CoreInputMask"],"mappings":";;;;;;AAqEO,MAAM,SAAY,GAAA,UAAA;AAAA,EACvB,CAAC,OAAuB,GAA+B,KAAA;AACrD,IAAM,MAAA,UAAA,GAAa,KAAM,CAAA,UAAA,IAAc,EAAC;AAExC,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,OAAO,OAAW,IAAA,UAAA,GAAa,gBAAiB,CAAA,UAAA,CAAW,KAAK,CAAI,GAAA,IAAA;AAAA,MACpE,UAAY,EAAA,YAAA,IAAgB,UAAa,GAAA,UAAA,CAAW,UAAa,GAAA,IAAA;AAAA,MACjE,MAAA,EAAQ,gBAAiB,CAAA,UAAA,CAAW,MAAM,CAAA;AAAA,MAC1C,MAAM,MAAU,IAAA,UAAA,GAAa,gBAAiB,CAAA,UAAA,CAAW,IAAI,CAAI,GAAA,IAAA;AAAA,MACjE,aACE,aAAiB,IAAA,UAAA,GACb,gBAAiB,CAAA,UAAA,CAAW,WAAW,CACvC,GAAA,IAAA;AAAA,MACN,MAAM,UAAW,CAAA,IAAA;AAAA,MACjB,MAAM,UAAW,CAAA;AAAA,KACnB;AAEA,IAAA,MAAM,aAAa,aAAc,CAAA;AAAA,MAC/B,IAAM,EAAA,WAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AACD,IAAA,2BAAQA,WAAc,EAAA,EAAA,GAAA,EAAU,kBAAkB,EAAA,UAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AAAA;AAE7E;AACA,SAAA,CAAU,cAAcA,WAAc,CAAA,WAAA;;;;"}
1
+ {"version":3,"file":"InputMask-wUro4G2j.js","sources":["../src/components/InputMask/InputMask.tsx"],"sourcesContent":["import {\n InputMaskProps as CoreInputMaskProps,\n InputMask as CoreInputMask,\n childrenToString,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\n\n/**\n * Props for the InputMask component\n * @property {string} mask - The mask pattern to apply to the input (9 for digits, a for letters, * for alphanumeric)\n * @property {string} [defaultMaskCharacter] - Character to display for unfilled mask positions\n * @property {array} [customMaskHandler] - Array of custom mask handlers for advanced transformations\n * @property {object} [inputProps] - Props to pass to the input component\n * @property {ReactElement} [children] - Custom input element to be wrapped with mask functionality\n * @property {string} [data-tracking-id] - Custom tracking ID for analytics\n */\nexport type InputMaskProps = CoreInputMaskProps & {\n [\"data-tracking-id\"]?: string;\n};\n\n/**\n * InputMask component for applying input masks and formatting to text inputs.\n *\n * Features:\n * - Input masking with configurable patterns (9, a, *, fixed characters)\n * - Support for both controlled and uncontrolled inputs\n * - Custom input elements or default TextField integration\n * - Advanced cursor positioning and selection management\n * - Custom mask handlers for complex transformations\n * - Paste and keyboard event handling\n * - Automatic mask character replacement\n * - Focus and blur event management\n * - Accessible with proper ARIA attributes\n * - Support for all standard input element props\n * - Flexible mask pattern configuration\n * - Real-time input validation and formatting\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <InputMask\n * mask=\"99/99/9999\"\n * inputProps={{ label: \"Date\", hint: \"mm/dd/yyyy\" }}\n * />\n *\n * @example\n * <InputMask mask=\"(999) 999-9999\">\n * <TextField label=\"Phone Number\" hint=\"(555) 123-4567\" />\n * </InputMask>\n *\n * @example\n * <InputMask\n * mask=\"99/99/9999\"\n * customMaskHandler={[\n * {\n * match: {\n * matchPattern: /^(\\d)\\//,\n * startPosition: 0,\n * endPosition: 2,\n * },\n * apply: {\n * applyPattern: \"0$1\",\n * caretOffset: 2,\n * },\n * },\n * ]}\n * inputProps={{ label: \"Date with custom handler\" }}\n * />\n */\nexport const InputMask = forwardRef(\n (props: InputMaskProps, ref: Ref<HTMLInputElement>) => {\n const inputProps = props.inputProps ?? {};\n\n const data = {\n label: \"label\" in inputProps ? childrenToString(inputProps.label) : null,\n labelProps: \"labelProps\" in inputProps ? inputProps.labelProps : null,\n prefix: childrenToString(inputProps.prefix),\n hint: \"hint\" in inputProps ? childrenToString(inputProps.hint) : null,\n description:\n \"description\" in inputProps\n ? childrenToString(inputProps.description)\n : null,\n size: inputProps.size,\n type: inputProps.type,\n };\n\n const trackingId = useTrackingId({\n name: \"InputMask\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n return <CoreInputMask ref={ref} data-tracking-id={trackingId} {...props} />;\n },\n);\nInputMask.displayName = CoreInputMask.displayName;\n"],"names":["CoreInputMask"],"mappings":";;;;;;AAqEO,MAAM,SAAY,GAAA,UAAA;AAAA,EACvB,CAAC,OAAuB,GAA+B,KAAA;AACrD,IAAM,MAAA,UAAA,GAAa,KAAM,CAAA,UAAA,IAAc,EAAC;AAExC,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,OAAO,OAAW,IAAA,UAAA,GAAa,gBAAiB,CAAA,UAAA,CAAW,KAAK,CAAI,GAAA,IAAA;AAAA,MACpE,UAAY,EAAA,YAAA,IAAgB,UAAa,GAAA,UAAA,CAAW,UAAa,GAAA,IAAA;AAAA,MACjE,MAAA,EAAQ,gBAAiB,CAAA,UAAA,CAAW,MAAM,CAAA;AAAA,MAC1C,MAAM,MAAU,IAAA,UAAA,GAAa,gBAAiB,CAAA,UAAA,CAAW,IAAI,CAAI,GAAA,IAAA;AAAA,MACjE,aACE,aAAiB,IAAA,UAAA,GACb,gBAAiB,CAAA,UAAA,CAAW,WAAW,CACvC,GAAA,IAAA;AAAA,MACN,MAAM,UAAW,CAAA,IAAA;AAAA,MACjB,MAAM,UAAW,CAAA;AAAA,KACnB;AAEA,IAAA,MAAM,aAAa,aAAc,CAAA;AAAA,MAC/B,IAAM,EAAA,WAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AACD,IAAA,2BAAQA,WAAc,EAAA,EAAA,GAAA,EAAU,kBAAkB,EAAA,UAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AAAA;AAE7E;AACA,SAAA,CAAU,cAAcA,WAAc,CAAA,WAAA;;;;"}
package/dist/InputMask.js CHANGED
@@ -1,2 +1,2 @@
1
- export { I as InputMask, I as default } from './InputMask-B6kMdXCB.js';
1
+ export { I as InputMask, I as default } from './InputMask-wUro4G2j.js';
2
2
  //# sourceMappingURL=InputMask.js.map
@@ -3,8 +3,8 @@ import { forwardRef, useRef, useId, useState, useEffect, useContext, createConte
3
3
  import { useTrackingId } from './useTrackingId.js';
4
4
  import { c as cx } from './index-tZvMCc77.js';
5
5
  import { s as styles } from './ListView.module-MVsNF0X0-MVsNF0X0.js';
6
- import { g as getActiveElement } from './ProgressBar-BezETeA3-CeeedJ_w.js';
7
- import { a as Checkbox } from './Checkbox-JWDraGFN--7ptfLKN.js';
6
+ import { g as getActiveElement } from './ProgressBar-BRvB-bD4-DppwBrFg.js';
7
+ import { a as Checkbox } from './Checkbox-DyHm7Ntt-DYw5QL3l.js';
8
8
  import { u as useMergeRefs } from './useMergeRefs-Bde85AWI-Bde85AWI.js';
9
9
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js';
10
10
 
@@ -593,4 +593,4 @@ const ListView = Object.assign(
593
593
  );
594
594
 
595
595
  export { ListView as L, ListViewOption as a, ListViewOptionCell as b };
596
- //# sourceMappingURL=ListView-cMMBtp1O.js.map
596
+ //# sourceMappingURL=ListView-DdHpJHTc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView-cMMBtp1O.js","sources":["../../hammer-react/dist/ListView-D3MNAkZm.js","../src/components/ListView/ListView.tsx"],"sourcesContent":["import { jsxs, jsx } from 'react/jsx-runtime';\nimport { createContext, useContext, forwardRef, useRef, useId, useState, useEffect } from 'react';\nimport cx from 'classnames';\nimport { s as styles } from './ListView.module-MVsNF0X0.js';\nimport { q as getActiveElement } from './ProgressBar-BezETeA3.js';\nimport { C as Checkbox } from './Checkbox-JWDraGFN.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\n\nfunction mapOrder(array, order, key) {\n array.sort(function(a, b) {\n const A = a[key], B = b[key];\n if (order.indexOf(A) > order.indexOf(B)) {\n return 1;\n } else {\n return -1;\n }\n });\n return array;\n}\n\nconst listViewKeyboardNavigation = (e, options, focusedItem, setFocusedItem, parent, currentFocusId) => {\n if (!options) return;\n let activeElement;\n switch (e.code) {\n case \"Enter\":\n case \"Space\":\n options[focusedItem.row].focusables[focusedItem.col].click();\n activeElement = getActiveElement(document);\n if (!activeElement) break;\n activeElement.click();\n e.preventDefault();\n break;\n case \"ArrowDown\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\"\n );\n if (focusedItem.row === options.length - 1) {\n options[0].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(options[0].focusables[focusedItem.col].id);\n setFocusedItem((prev) => {\n return { ...prev, row: 0 };\n });\n break;\n }\n options[focusedItem.row + 1].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[focusedItem.row + 1].focusables[focusedItem.col].id\n );\n setFocusedItem((prev) => {\n return { ...prev, row: focusedItem.row + 1 };\n });\n break;\n case \"ArrowUp\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\"\n );\n if (focusedItem.row === 0) {\n options[options.length - 1].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[options.length - 1].focusables[focusedItem.col].id\n );\n setFocusedItem((prev) => {\n return { ...prev, row: options.length - 1 };\n });\n break;\n }\n options[focusedItem.row - 1].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[focusedItem.row - 1].focusables[focusedItem.col].id\n );\n setFocusedItem((prev) => {\n return { ...prev, row: focusedItem.row - 1 };\n });\n break;\n case \"ArrowRight\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\"\n );\n if (focusedItem.col === options[focusedItem.row].focusables.length - 1) {\n options[focusedItem.row].focusables[0].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(options[focusedItem.row].focusables[0].id);\n setFocusedItem((prev) => {\n return {\n ...prev,\n col: 0\n };\n });\n break;\n }\n options[focusedItem.row].focusables[focusedItem.col + 1].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[focusedItem.row].focusables[focusedItem.col + 1].id\n );\n setFocusedItem((prev) => {\n return { ...prev, col: focusedItem.col + 1 };\n });\n break;\n case \"ArrowLeft\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\"\n );\n if (focusedItem.col === 0) {\n options[focusedItem.row].focusables[options[focusedItem.row].focusables.length - 1].setAttribute(\"data-interactive\", \"focus-visible\");\n currentFocusId(\n options[focusedItem.row].focusables[options[focusedItem.row].focusables.length - 1].id\n );\n setFocusedItem((prev) => {\n return {\n ...prev,\n col: options[focusedItem.row].focusables.length - 1\n };\n });\n break;\n }\n options[focusedItem.row].focusables[focusedItem.col - 1].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[focusedItem.row].focusables[focusedItem.col - 1].id\n );\n setFocusedItem((prev) => {\n return { ...prev, col: focusedItem.col - 1 };\n });\n break;\n }\n};\n\nconst ListViewContext = createContext(null);\n\nfunction useListView() {\n const context = useContext(ListViewContext);\n if (context == null) {\n throw new Error(\"useListView must be wrapped in <ListView />\");\n }\n return context;\n}\n\nconst ListViewOption = forwardRef(\n (props, ref) => {\n const {\n className,\n children,\n onChange,\n style,\n disabled: disabledProp,\n ...remainingProps\n } = props;\n const optionRef = useRef(null);\n const mergedRef = useMergeRefs([ref, optionRef]);\n const itemRef = useRef();\n const cellRef = useRef(null);\n const rowId = useId();\n const [isSelected, setIsSelected] = useState(false);\n const { selectedItems, setSelectedItems, controlled, onSelectionChange } = useListView();\n const disabled = \"item\" in remainingProps ? disabledProp || remainingProps.item.disabled : disabledProp;\n useEffect(() => {\n const focusables = optionRef.current?.querySelectorAll(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [tabindex='0']:not(:disabled):not([aria-disabled='true'])\"\n );\n focusables?.forEach((item, i) => {\n item.setAttribute(\"tabindex\", \"-1\");\n if (item.hasAttribute(\"id\")) return;\n item.setAttribute(\"id\", `${rowId}-${i}`);\n });\n }, [rowId]);\n useEffect(() => {\n if (\"item\" in remainingProps) {\n const isPartOfSelectedItems = selectedItems.some((item) => {\n return item.label === remainingProps.item.label;\n });\n setIsSelected(isPartOfSelectedItems);\n } else {\n const isPartOfSelectedItems = selectedItems.includes(\n remainingProps.label\n );\n setIsSelected(isPartOfSelectedItems);\n }\n }, [controlled, remainingProps, selectedItems]);\n const onChangeHandler = (e) => {\n onChange?.(e, { checked: isSelected });\n };\n const onClickHandler = () => {\n updateSelectedItems();\n };\n const removeItemFromSelectedItems = (itemToRemove) => {\n return selectedItems.filter((item) => {\n if (typeof itemToRemove === \"string\") {\n return item !== itemToRemove;\n }\n return item?.label !== itemToRemove.label;\n });\n };\n const addItemFromSelectedItems = (itemToAdd) => {\n return [...selectedItems, itemToAdd];\n };\n function updateSelectedItems() {\n const currentItem = \"item\" in remainingProps ? remainingProps.item : remainingProps.label;\n const isPartOfSelectedItems = selectedItems.some((item) => {\n if (typeof currentItem === \"string\") {\n return item === currentItem;\n }\n return item?.label === currentItem.label;\n });\n const newSelectedItems = isPartOfSelectedItems ? removeItemFromSelectedItems(currentItem) : addItemFromSelectedItems(currentItem);\n if (controlled) {\n onSelectionChange?.(newSelectedItems);\n } else {\n setSelectedItems(newSelectedItems);\n setIsSelected(!isPartOfSelectedItems);\n }\n }\n if (\"item\" in remainingProps) {\n itemRef.current = remainingProps.item;\n const { item, ...rest } = remainingProps;\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: cx([styles[\"listview-option\"]], className),\n \"data-anv\": \"listview-option\",\n style,\n ref: mergedRef,\n \"aria-disabled\": disabled,\n \"aria-selected\": isSelected,\n \"aria-label\": item.label,\n role: \"row\",\n ...rest,\n children: [\n /* @__PURE__ */ jsx(\"div\", { className: styles[\"cell\"], ref: cellRef, role: \"gridcell\", children: /* @__PURE__ */ jsx(\n Checkbox,\n {\n disabled,\n checked: isSelected,\n \"aria-label\": item.label,\n onChange: onChangeHandler,\n onClick: onClickHandler\n }\n ) }),\n children\n ]\n }\n );\n }\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: cx([styles[\"listview-option\"]], className),\n \"data-anv\": \"listview-option\",\n style,\n ref: mergedRef,\n \"aria-disabled\": disabled,\n \"aria-selected\": isSelected,\n \"aria-label\": \"label\" in props ? props.label : \"Select\",\n role: \"row\",\n ...remainingProps,\n children: [\n /* @__PURE__ */ jsx(\"div\", { className: styles[\"cell\"], ref: cellRef, role: \"gridcell\", children: /* @__PURE__ */ jsx(\n Checkbox,\n {\n disabled,\n checked: isSelected,\n \"aria-label\": \"label\" in props ? props.label : \"Select\",\n onChange: onChangeHandler,\n onClick: onClickHandler\n }\n ) }),\n children\n ]\n }\n );\n }\n);\nListViewOption.displayName = \"ListViewOption\";\n\nconst ListViewOptionCell = forwardRef((props, ref) => {\n const { ...rest } = props;\n return /* @__PURE__ */ jsx(\"div\", { role: \"gridcell\", \"data-anv\": \"listview-option-cell\", ...rest, ref });\n});\nListViewOptionCell.displayName = \"ListViewOptionCell\";\n\nconst getFocusables = (el) => {\n return el.querySelectorAll(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [tabindex='0']:not(:disabled):not([aria-disabled='true'])\"\n );\n};\nconst ListViewElement = function(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n onSelectionChange,\n className,\n selected,\n defaultSelected,\n style,\n onKeyDown,\n ...remainingProps\n } = componentProps;\n const ListViewRef = useRef(null);\n const isFocusVisible = useRef(true);\n const combinedRef = useMergeRefs([ref, ListViewRef]);\n const [options, setOptions] = useState();\n const [currentActive, setCurrentActive] = useState();\n const [selectedItems, setSelectedItems] = useState(\n selected ?? defaultSelected ?? []\n );\n const [focusedItem, setFocusedItem] = useState({\n row: 0,\n col: 0\n });\n const styleCombined = {\n ...style,\n ...layoutStyles\n };\n const onFocusHandler = () => {\n if (!isFocusVisible.current) return;\n if (!options) return;\n options[focusedItem.row].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n return;\n };\n const onBlurHandler = () => {\n if (!options) return;\n options[focusedItem.row].focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\"\n );\n return;\n };\n const onKeyDownHandler = (e) => {\n onKeyDown?.(e);\n if (!options) return;\n isFocusVisible.current = true;\n listViewKeyboardNavigation(\n e,\n options,\n focusedItem,\n setFocusedItem,\n ListViewRef.current,\n (id) => setCurrentActive(id)\n );\n };\n const onMouseDownHandler = (e) => {\n isFocusVisible.current = false;\n if (options && ListViewRef.current) {\n options[focusedItem.row].focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\"\n );\n const closestFocusable = e.target.closest(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [data-anv='checkbox']\"\n );\n const optionRow = e.target.closest(\n '[data-anv=\"listview-option\"]'\n );\n if (!optionRow || optionRow.ariaDisabled) return;\n const row = options.findIndex((option) => option.node === optionRow);\n if (!closestFocusable) {\n options[row].focusables[0].click();\n return;\n }\n const col = Array.prototype.indexOf.call(\n options[row].focusables,\n closestFocusable?.getAttribute(\"data-anv\") === \"checkbox\" ? closestFocusable.children[0] : closestFocusable\n );\n setFocusedItem({ row, col });\n }\n };\n useEffect(() => {\n if (!ListViewRef.current) return;\n const optionArr = ListViewRef.current.querySelectorAll(\n \"div[data-anv='listview-option']:not([aria-disabled='true'])\"\n );\n const makeTree = Array.from(optionArr).map((option) => {\n const childFocusables = getFocusables(option);\n return {\n node: option,\n focusables: childFocusables\n };\n });\n setOptions(makeTree);\n }, [props.children]);\n const prevSelectedItems = useRef();\n useEffect(() => {\n if (!options) return;\n const compareArr = options.map((option) => option.node.ariaLabel);\n const orderedSelectedItems = mapOrder(selectedItems, compareArr, \"label\");\n if (JSON.stringify(prevSelectedItems.current) === JSON.stringify(orderedSelectedItems))\n return;\n onSelectionChange?.(orderedSelectedItems);\n prevSelectedItems.current = orderedSelectedItems;\n }, [onSelectionChange, options, selectedItems]);\n useEffect(() => {\n if (!selected) return;\n const filterDuplicates = selected.reduce(\n (acc, current) => {\n const isDup = acc.find((item) => item.label === current.label);\n if (!isDup) {\n return acc.concat([current]);\n } else {\n return acc;\n }\n },\n []\n );\n if (!options) return;\n const compareArr = options.map((option) => option.node.ariaLabel);\n const orderedSelected = mapOrder(filterDuplicates, compareArr, \"label\");\n if (JSON.stringify(prevSelectedItems.current) === JSON.stringify(orderedSelected))\n return;\n setSelectedItems(orderedSelected);\n prevSelectedItems.current = orderedSelected;\n }, [onSelectionChange, options, selected]);\n const ListViewClassNames = cx([styles[\"listview\"]], className);\n if (\"items\" in remainingProps) {\n const { children: children2, items, ...rest2 } = remainingProps;\n return /* @__PURE__ */ jsx(\n ListViewContext.Provider,\n {\n value: {\n options,\n onSelectionChange,\n selectedItems,\n setSelectedItems,\n items,\n controlled: !!selected\n },\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: combinedRef,\n className: ListViewClassNames,\n style: styleCombined,\n \"data-anv\": \"listview\",\n role: \"grid\",\n \"aria-multiselectable\": \"true\",\n onFocus: onFocusHandler,\n onBlur: onBlurHandler,\n onKeyDown: onKeyDownHandler,\n onMouseDown: onMouseDownHandler,\n \"aria-activedescendant\": currentActive,\n tabIndex: 0,\n ...rest2,\n children: children2?.({\n items: items.map((item) => {\n return item;\n })\n })\n }\n )\n }\n );\n }\n const { children, ...rest } = remainingProps;\n return /* @__PURE__ */ jsx(\n ListViewContext.Provider,\n {\n value: {\n options,\n onSelectionChange,\n selectedItems,\n setSelectedItems,\n controlled: !!selected\n },\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: combinedRef,\n className: ListViewClassNames,\n style: styleCombined,\n \"data-anv\": \"listview\",\n role: \"grid\",\n onFocus: onFocusHandler,\n onBlur: onBlurHandler,\n onKeyDown: onKeyDownHandler,\n onMouseDown: onMouseDownHandler,\n \"aria-activedescendant\": currentActive,\n tabIndex: 0,\n ...rest,\n children\n }\n )\n }\n );\n};\nListViewElement.displayName = \"ListView\";\nconst ListView = Object.assign(\n forwardRef(ListViewElement),\n {\n /**\n * ListViewOption component for individual selectable items within a listview.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n *\n * @example\n * <ListView.Option item={{ label: \"Option 1\" }} />\n */\n Option: ListViewOption,\n /**\n * ListViewOptionCell component for rendering a cell within a listview option.\n *\n * Features:\n * - Renders a grid cell for option content\n * - Supports custom content and layout\n * - Accessible with proper ARIA attributes\n *\n * @example\n * <ListView.OptionCell>Custom cell content</ListView.OptionCell>\n */\n OptionCell: ListViewOptionCell\n }\n);\n\nexport { ListView as L, ListViewOption as a, ListViewOptionCell as b };\n//# sourceMappingURL=ListView-D3MNAkZm.js.map\n","import {\n ListViewProps as CoreListViewProps,\n ListView as CoreListView,\n ListViewOption as CoreListViewOption,\n ListViewOptionCell as CoreListViewOptionCell,\n ListViewOptionProps as CoreListViewOptionProps,\n} from \"@servicetitan/hammer-react\";\nimport { ComponentPropsWithoutRef, ForwardedRef, Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the ListView component\n * @property {function} [onSelectionChange] - Callback when selection changes\n * @property {Array} [selected] - Currently selected items (controlled)\n * @property {Array} [items] - Array of items to render\n * @property {Array} [defaultSelected] - Default selected items (uncontrolled)\n * @property {function} [children] - Optional render function for items\n * @extends LayoutUtilProps\n */\nexport type ListViewProps<T> = CoreListViewProps<T>;\n\n/**\n * Props for the ListViewOption component\n * @property {boolean} [disabled] - Whether the option is disabled\n * @property {function} [onChange] - Callback when the option changes\n * @property {object} [item] - The item object when using items prop\n * @property {string} [label] - The display label for the option\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type ListViewOptionProps = CoreListViewOptionProps & DataTrackingId;\n\nconst ListViewElement = function <T>(\n props: ListViewProps<T>,\n ref: ForwardedRef<HTMLUListElement>,\n) {\n return <CoreListView ref={ref} {...props} />;\n};\n\n/**\n * ListViewOption component for individual selectable items within a listview.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ListView.Option item={{ label: \"Option 1\" }} />\n */\nexport const ListViewOption = forwardRef(\n (props: ListViewOptionProps, ref: Ref<HTMLDivElement>) => {\n const data = {\n label: \"item\" in props ? props.item?.label : props.label,\n };\n\n const trackingId = useTrackingId({\n name: \"ListViewOption\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <CoreListViewOption ref={ref} data-tracking-id={trackingId} {...props} />\n );\n },\n);\nListViewOption.displayName = CoreListViewOption.displayName;\n\n/**\n * ListViewOptionCell component for rendering a cell within a listview option.\n *\n * Features:\n * - Renders a grid cell for option content\n * - Supports custom content and layout\n * - Accessible with proper ARIA attributes\n *\n * @example\n * <ListView.OptionCell>Custom cell content</ListView.OptionCell>\n */\nexport const ListViewOptionCell = forwardRef(\n (props: ComponentPropsWithoutRef<\"div\">, ref: Ref<HTMLDivElement>) => {\n return <CoreListViewOptionCell ref={ref} {...props} />;\n },\n);\nListViewOptionCell.displayName = CoreListViewOptionCell.displayName;\n\n/**\n * ListView component for displaying a list of selectable items in a grid layout.\n *\n * Features:\n * - Supports single and multiple selection modes\n * - Keyboard navigation with arrow keys\n * - Customizable item rendering\n * - Controlled and uncontrolled modes\n * - Accessible with proper ARIA attributes\n * - Focus management for interactive elements\n * - Layout utilities for positioning and spacing\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ListView items={[{ label: \"Item 1\" }, { label: \"Item 2\" }]} onSelectionChange={handleSelection}>\n * {({ items }) => items.map(item => (\n * <ListView.Option key={item.label} item={item} />\n * ))}\n * </ListView>\n */\nexport const ListView = Object.assign(\n forwardRef(ListViewElement) as <T>(\n props: ListViewProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListViewElement>,\n {\n /**\n * ListViewOption component for individual selectable items within a listview.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ListView.Option item={{ label: \"Option 1\" }} />\n */\n Option: ListViewOption,\n /**\n * ListViewOptionCell component for rendering a cell within a listview option.\n *\n * Features:\n * - Renders a grid cell for option content\n * - Supports custom content and layout\n * - Accessible with proper ARIA attributes\n *\n * @example\n * <ListView.OptionCell>Custom cell content</ListView.OptionCell>\n */\n OptionCell: ListViewOptionCell,\n },\n);\n"],"names":["ListViewOption","ListViewOptionCell","ListViewElement","ListView","CoreListView","CoreListViewOption","CoreListViewOptionCell"],"mappings":";;;;;;;;;;AASA,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;AACrC,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;AAC5B,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AAChC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,OAAO,CAAC;AACd,KAAK,MAAM;AACX,MAAM,OAAO,EAAE;AACf;AACA,GAAG,CAAC;AACJ,EAAE,OAAO,KAAK;AACd;;AAEA,MAAM,0BAA0B,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,KAAK;AACxG,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,EAAE,IAAI,aAAa;AACnB,EAAE,QAAQ,CAAC,CAAC,IAAI;AAChB,IAAI,KAAK,OAAO;AAChB,IAAI,KAAK,OAAO;AAChB,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;AAClE,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC;AAChD,MAAM,IAAI,CAAC,aAAa,EAAE;AAC1B,MAAM,aAAa,CAAC,KAAK,EAAE;AAC3B,MAAM,CAAC,CAAC,cAAc,EAAE;AACxB,MAAM;AACN,IAAI,KAAK,WAAW;AACpB,MAAM,MAAM,EAAE,KAAK,EAAE;AACrB,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,eAAe;AAC1E,QAAQ;AACR,OAAO;AACP,MAAM,IAAI,WAAW,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAClD,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,YAAY;AAC3D,UAAU,kBAAkB;AAC5B,UAAU;AACV,SAAS;AACT,QAAQ,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACjE,QAAQ,cAAc,CAAC,CAAC,IAAI,KAAK;AACjC,UAAU,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;AACpC,SAAS,CAAC;AACV,QAAQ;AACR;AACA,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,YAAY;AAC3E,QAAQ,kBAAkB;AAC1B,QAAQ;AACR,OAAO;AACP,MAAM,cAAc;AACpB,QAAQ,OAAO,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACjE,OAAO;AACP,MAAM,cAAc,CAAC,CAAC,IAAI,KAAK;AAC/B,QAAQ,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,EAAE;AACpD,OAAO,CAAC;AACR,MAAM;AACN,IAAI,KAAK,SAAS;AAClB,MAAM,MAAM,EAAE,KAAK,EAAE;AACrB,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,eAAe;AAC1E,QAAQ;AACR,OAAO;AACP,MAAM,IAAI,WAAW,CAAC,GAAG,KAAK,CAAC,EAAE;AACjC,QAAQ,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,YAAY;AAC5E,UAAU,kBAAkB;AAC5B,UAAU;AACV,SAAS;AACT,QAAQ,cAAc;AACtB,UAAU,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAClE,SAAS;AACT,QAAQ,cAAc,CAAC,CAAC,IAAI,KAAK;AACjC,UAAU,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,SAAS,CAAC;AACV,QAAQ;AACR;AACA,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,YAAY;AAC3E,QAAQ,kBAAkB;AAC1B,QAAQ;AACR,OAAO;AACP,MAAM,cAAc;AACpB,QAAQ,OAAO,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACjE,OAAO;AACP,MAAM,cAAc,CAAC,CAAC,IAAI,KAAK;AAC/B,QAAQ,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,EAAE;AACpD,OAAO,CAAC;AACR,MAAM;AACN,IAAI,KAAK,YAAY;AACrB,MAAM,MAAM,EAAE,KAAK,EAAE;AACrB,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,eAAe;AAC1E,QAAQ;AACR,OAAO;AACP,MAAM,IAAI,WAAW,CAAC,GAAG,KAAK,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9E,QAAQ,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY;AAC3D,UAAU,kBAAkB;AAC5B,UAAU;AACV,SAAS;AACT,QAAQ,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjE,QAAQ,cAAc,CAAC,CAAC,IAAI,KAAK;AACjC,UAAU,OAAO;AACjB,YAAY,GAAG,IAAI;AACnB,YAAY,GAAG,EAAE;AACjB,WAAW;AACX,SAAS,CAAC;AACV,QAAQ;AACR;AACA,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY;AAC3E,QAAQ,kBAAkB;AAC1B,QAAQ;AACR,OAAO;AACP,MAAM,cAAc;AACpB,QAAQ,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACjE,OAAO;AACP,MAAM,cAAc,CAAC,CAAC,IAAI,KAAK;AAC/B,QAAQ,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,EAAE;AACpD,OAAO,CAAC;AACR,MAAM;AACN,IAAI,KAAK,WAAW;AACpB,MAAM,MAAM,EAAE,KAAK,EAAE;AACrB,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,eAAe;AAC1E,QAAQ;AACR,OAAO;AACP,MAAM,IAAI,WAAW,CAAC,GAAG,KAAK,CAAC,EAAE;AACjC,QAAQ,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE,eAAe,CAAC;AAC7I,QAAQ,cAAc;AACtB,UAAU,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC9F,SAAS;AACT,QAAQ,cAAc,CAAC,CAAC,IAAI,KAAK;AACjC,UAAU,OAAO;AACjB,YAAY,GAAG,IAAI;AACnB,YAAY,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG;AAC9D,WAAW;AACX,SAAS,CAAC;AACV,QAAQ;AACR;AACA,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY;AAC3E,QAAQ,kBAAkB;AAC1B,QAAQ;AACR,OAAO;AACP,MAAM,cAAc;AACpB,QAAQ,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACjE,OAAO;AACP,MAAM,cAAc,CAAC,CAAC,IAAI,KAAK;AAC/B,QAAQ,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,EAAE;AACpD,OAAO,CAAC;AACR,MAAM;AACN;AACA,CAAC;;AAED,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC;;AAE3C,SAAS,WAAW,GAAG;AACvB,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC;AAC7C,EAAE,IAAI,OAAO,IAAI,IAAI,EAAE;AACvB,IAAI,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;AAClE;AACA,EAAE,OAAO,OAAO;AAChB;;AAEA,MAAMA,gBAAc,GAAG,UAAU;AACjC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK;AAClB,IAAI,MAAM;AACV,MAAM,SAAS;AACf,MAAM,QAAQ;AACd,MAAM,QAAQ;AACd,MAAM,KAAK;AACX,MAAM,QAAQ,EAAE,YAAY;AAC5B,MAAM,GAAG;AACT,KAAK,GAAG,KAAK;AACb,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;AAClC,IAAI,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AACpD,IAAI,MAAM,OAAO,GAAG,MAAM,EAAE;AAC5B,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;AAChC,IAAI,MAAM,KAAK,GAAG,KAAK,EAAE;AACzB,IAAI,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACvD,IAAI,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE;AAC5F,IAAI,MAAM,QAAQ,GAAG,MAAM,IAAI,cAAc,GAAG,YAAY,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,GAAG,YAAY;AAC3G,IAAI,SAAS,CAAC,MAAM;AACpB,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,gBAAgB;AAC5D,QAAQ;AACR,OAAO;AACP,MAAM,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AACvC,QAAQ,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;AAC3C,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AACrC,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,OAAO,CAAC;AACR,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,IAAI,SAAS,CAAC,MAAM;AACpB,MAAM,IAAI,MAAM,IAAI,cAAc,EAAE;AACpC,QAAQ,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACnE,UAAU,OAAO,IAAI,CAAC,KAAK,KAAK,cAAc,CAAC,IAAI,CAAC,KAAK;AACzD,SAAS,CAAC;AACV,QAAQ,aAAa,CAAC,qBAAqB,CAAC;AAC5C,OAAO,MAAM;AACb,QAAQ,MAAM,qBAAqB,GAAG,aAAa,CAAC,QAAQ;AAC5D,UAAU,cAAc,CAAC;AACzB,SAAS;AACT,QAAQ,aAAa,CAAC,qBAAqB,CAAC;AAC5C;AACA,KAAK,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;AACnD,IAAI,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK;AACnC,MAAM,QAAQ,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC5C,KAAK;AACL,IAAI,MAAM,cAAc,GAAG,MAAM;AACjC,MAAM,mBAAmB,EAAE;AAC3B,KAAK;AACL,IAAI,MAAM,2BAA2B,GAAG,CAAC,YAAY,KAAK;AAC1D,MAAM,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK;AAC5C,QAAQ,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;AAC9C,UAAU,OAAO,IAAI,KAAK,YAAY;AACtC;AACA,QAAQ,OAAO,IAAI,EAAE,KAAK,KAAK,YAAY,CAAC,KAAK;AACjD,OAAO,CAAC;AACR,KAAK;AACL,IAAI,MAAM,wBAAwB,GAAG,CAAC,SAAS,KAAK;AACpD,MAAM,OAAO,CAAC,GAAG,aAAa,EAAE,SAAS,CAAC;AAC1C,KAAK;AACL,IAAI,SAAS,mBAAmB,GAAG;AACnC,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,cAAc,GAAG,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK;AAC/F,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACjE,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AAC7C,UAAU,OAAO,IAAI,KAAK,WAAW;AACrC;AACA,QAAQ,OAAO,IAAI,EAAE,KAAK,KAAK,WAAW,CAAC,KAAK;AAChD,OAAO,CAAC;AACR,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,2BAA2B,CAAC,WAAW,CAAC,GAAG,wBAAwB,CAAC,WAAW,CAAC;AACvI,MAAM,IAAI,UAAU,EAAE;AACtB,QAAQ,iBAAiB,GAAG,gBAAgB,CAAC;AAC7C,OAAO,MAAM;AACb,QAAQ,gBAAgB,CAAC,gBAAgB,CAAC;AAC1C,QAAQ,aAAa,CAAC,CAAC,qBAAqB,CAAC;AAC7C;AACA;AACA,IAAI,IAAI,MAAM,IAAI,cAAc,EAAE;AAClC,MAAM,OAAO,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI;AAC3C,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,cAAc;AAC9C,MAAM,uBAAuB,IAAI;AACjC,QAAQ,KAAK;AACb,QAAQ;AACR,UAAU,SAAS,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC;AAC/D,UAAU,UAAU,EAAE,iBAAiB;AACvC,UAAU,KAAK;AACf,UAAU,GAAG,EAAE,SAAS;AACxB,UAAU,eAAe,EAAE,QAAQ;AACnC,UAAU,eAAe,EAAE,UAAU;AACrC,UAAU,YAAY,EAAE,IAAI,CAAC,KAAK;AAClC,UAAU,IAAI,EAAE,KAAK;AACrB,UAAU,GAAG,IAAI;AACjB,UAAU,QAAQ,EAAE;AACpB,4BAA4B,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,kBAAkB,GAAG;AACjI,cAAc,QAAQ;AACtB,cAAc;AACd,gBAAgB,QAAQ;AACxB,gBAAgB,OAAO,EAAE,UAAU;AACnC,gBAAgB,YAAY,EAAE,IAAI,CAAC,KAAK;AACxC,gBAAgB,QAAQ,EAAE,eAAe;AACzC,gBAAgB,OAAO,EAAE;AACzB;AACA,aAAa,EAAE,CAAC;AAChB,YAAY;AACZ;AACA;AACA,OAAO;AACP;AACA,IAAI,uBAAuB,IAAI;AAC/B,MAAM,KAAK;AACX,MAAM;AACN,QAAQ,SAAS,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC;AAC7D,QAAQ,UAAU,EAAE,iBAAiB;AACrC,QAAQ,KAAK;AACb,QAAQ,GAAG,EAAE,SAAS;AACtB,QAAQ,eAAe,EAAE,QAAQ;AACjC,QAAQ,eAAe,EAAE,UAAU;AACnC,QAAQ,YAAY,EAAE,OAAO,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,QAAQ;AAC/D,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,GAAG,cAAc;AACzB,QAAQ,QAAQ,EAAE;AAClB,0BAA0B,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,kBAAkB,GAAG;AAC/H,YAAY,QAAQ;AACpB,YAAY;AACZ,cAAc,QAAQ;AACtB,cAAc,OAAO,EAAE,UAAU;AACjC,cAAc,YAAY,EAAE,OAAO,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,QAAQ;AACrE,cAAc,QAAQ,EAAE,eAAe;AACvC,cAAc,OAAO,EAAE;AACvB;AACA,WAAW,EAAE,CAAC;AACd,UAAU;AACV;AACA;AACA,KAAK;AACL;AACA,CAAC;AACDA,gBAAc,CAAC,WAAW,GAAG,gBAAgB;;AAE7C,MAAMC,oBAAkB,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AACtD,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAC3B,EAAE,uBAAuB,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,sBAAsB,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;AAC3G,CAAC,CAAC;AACFA,oBAAkB,CAAC,WAAW,GAAG,oBAAoB;;AAErD,MAAM,aAAa,GAAG,CAAC,EAAE,KAAK;AAC9B,EAAE,OAAO,EAAE,CAAC,gBAAgB;AAC5B,IAAI;AACJ,GAAG;AACH,CAAC;AACD,MAAMC,iBAAe,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC7C,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACpE,EAAE,MAAM;AACR,IAAI,iBAAiB;AACrB,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,eAAe;AACnB,IAAI,KAAK;AACT,IAAI,SAAS;AACb,IAAI,GAAG;AACP,GAAG,GAAG,cAAc;AACpB,EAAE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;AAClC,EAAE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC;AACrC,EAAE,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AACtD,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAE;AAC1C,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAAE;AACtD,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ;AACpD,IAAI,QAAQ,IAAI,eAAe,IAAI;AACnC,GAAG;AACH,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC;AACjD,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,GAAG,EAAE;AACT,GAAG,CAAC;AACJ,EAAE,MAAM,aAAa,GAAG;AACxB,IAAI,GAAG,KAAK;AACZ,IAAI,GAAG;AACP,GAAG;AACH,EAAE,MAAM,cAAc,GAAG,MAAM;AAC/B,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AACjC,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,YAAY;AACrE,MAAM,kBAAkB;AACxB,MAAM;AACN,KAAK;AACL,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,aAAa,GAAG,MAAM;AAC9B,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,eAAe;AACzE,MAAM;AACN,KAAK;AACL,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK;AAClC,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,IAAI,cAAc,CAAC,OAAO,GAAG,IAAI;AACjC,IAAI,0BAA0B;AAC9B,MAAM,CAAC;AACP,MAAM,OAAO;AACb,MAAM,WAAW;AACjB,MAAM,cAAc;AACpB,MAAM,WAAW,CAAC,OAAO;AACzB,MAAM,CAAC,EAAE,KAAK,gBAAgB,CAAC,EAAE;AACjC,KAAK;AACL,GAAG;AACH,EAAE,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK;AACpC,IAAI,cAAc,CAAC,OAAO,GAAG,KAAK;AAClC,IAAI,IAAI,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE;AACxC,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,eAAe;AAC3E,QAAQ;AACR,OAAO;AACP,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;AAC/C,QAAQ;AACR,OAAO;AACP,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;AACxC,QAAQ;AACR,OAAO;AACP,MAAM,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,YAAY,EAAE;AAChD,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;AAC1E,MAAM,IAAI,CAAC,gBAAgB,EAAE;AAC7B,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAC1C,QAAQ;AACR;AACA,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI;AAC9C,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU;AAC/B,QAAQ,gBAAgB,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;AACnG,OAAO;AACP,MAAM,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAClC;AACA,GAAG;AACH,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC9B,IAAI,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,gBAAgB;AAC1D,MAAM;AACN,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AAC3D,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC;AACnD,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,UAAU,EAAE;AACpB,OAAO;AACP,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,QAAQ,CAAC;AACxB,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtB,EAAE,MAAM,iBAAiB,GAAG,MAAM,EAAE;AACpC,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,IAAI,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACrE,IAAI,MAAM,oBAAoB,GAAG,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC;AAC7E,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;AAC1F,MAAM;AACN,IAAI,iBAAiB,GAAG,oBAAoB,CAAC;AAC7C,IAAI,iBAAiB,CAAC,OAAO,GAAG,oBAAoB;AACpD,GAAG,EAAE,CAAC,iBAAiB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AACjD,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,IAAI,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM;AAC5C,MAAM,CAAC,GAAG,EAAE,OAAO,KAAK;AACxB,QAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC;AACtE,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,UAAU,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AACtC,SAAS,MAAM;AACf,UAAU,OAAO,GAAG;AACpB;AACA,OAAO;AACP,MAAM;AACN,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,IAAI,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACrE,IAAI,MAAM,eAAe,GAAG,QAAQ,CAAC,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC;AAC3E,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;AACrF,MAAM;AACN,IAAI,gBAAgB,CAAC,eAAe,CAAC;AACrC,IAAI,iBAAiB,CAAC,OAAO,GAAG,eAAe;AAC/C,GAAG,EAAE,CAAC,iBAAiB,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC5C,EAAE,MAAM,kBAAkB,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC;AAChE,EAAE,IAAI,OAAO,IAAI,cAAc,EAAE;AACjC,IAAI,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,cAAc;AACnE,IAAI,uBAAuB,GAAG;AAC9B,MAAM,eAAe,CAAC,QAAQ;AAC9B,MAAM;AACN,QAAQ,KAAK,EAAE;AACf,UAAU,OAAO;AACjB,UAAU,iBAAiB;AAC3B,UAAU,aAAa;AACvB,UAAU,gBAAgB;AAC1B,UAAU,KAAK;AACf,UAAU,UAAU,EAAE,CAAC,CAAC;AACxB,SAAS;AACT,QAAQ,QAAQ,kBAAkB,GAAG;AACrC,UAAU,KAAK;AACf,UAAU;AACV,YAAY,GAAG,EAAE,WAAW;AAC5B,YAAY,SAAS,EAAE,kBAAkB;AACzC,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,UAAU,EAAE,UAAU;AAClC,YAAY,IAAI,EAAE,MAAM;AACxB,YAAY,sBAAsB,EAAE,MAAM;AAC1C,YAAY,OAAO,EAAE,cAAc;AACnC,YAAY,MAAM,EAAE,aAAa;AACjC,YAAY,SAAS,EAAE,gBAAgB;AACvC,YAAY,WAAW,EAAE,kBAAkB;AAC3C,YAAY,uBAAuB,EAAE,aAAa;AAClD,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,GAAG,KAAK;AACpB,YAAY,QAAQ,EAAE,SAAS,GAAG;AAClC,cAAc,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACzC,gBAAgB,OAAO,IAAI;AAC3B,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;AACA,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,cAAc;AAC9C,EAAE,uBAAuB,GAAG;AAC5B,IAAI,eAAe,CAAC,QAAQ;AAC5B,IAAI;AACJ,MAAM,KAAK,EAAE;AACb,QAAQ,OAAO;AACf,QAAQ,iBAAiB;AACzB,QAAQ,aAAa;AACrB,QAAQ,gBAAgB;AACxB,QAAQ,UAAU,EAAE,CAAC,CAAC;AACtB,OAAO;AACP,MAAM,QAAQ,kBAAkB,GAAG;AACnC,QAAQ,KAAK;AACb,QAAQ;AACR,UAAU,GAAG,EAAE,WAAW;AAC1B,UAAU,SAAS,EAAE,kBAAkB;AACvC,UAAU,KAAK,EAAE,aAAa;AAC9B,UAAU,UAAU,EAAE,UAAU;AAChC,UAAU,IAAI,EAAE,MAAM;AACtB,UAAU,OAAO,EAAE,cAAc;AACjC,UAAU,MAAM,EAAE,aAAa;AAC/B,UAAU,SAAS,EAAE,gBAAgB;AACrC,UAAU,WAAW,EAAE,kBAAkB;AACzC,UAAU,uBAAuB,EAAE,aAAa;AAChD,UAAU,QAAQ,EAAE,CAAC;AACrB,UAAU,GAAG,IAAI;AACjB,UAAU;AACV;AACA;AACA;AACA,GAAG;AACH,CAAC;AACDA,iBAAe,CAAC,WAAW,GAAG,UAAU;AACxC,MAAMC,UAAQ,GAAG,MAAM,CAAC,MAAM;AAC9B,EAAE,UAAU,CAACD,iBAAe,CAAC;AAC7B,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,EAAEF,gBAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,EAAEC;AAChB;AACA,CAAC;;ACxfD,MAAM,eAAA,GAAkB,SACtB,KAAA,EACA,GACA,EAAA;AACA,EAAA,uBAAQ,GAAA,CAAAG,UAAA,EAAA,EAAa,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA;AAC5C,CAAA;AAeO,MAAM,cAAiB,GAAA,UAAA;AAAA,EAC5B,CAAC,OAA4B,GAA6B,KAAA;AACxD,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,OAAO,MAAU,IAAA,KAAA,GAAQ,KAAM,CAAA,IAAA,EAAM,QAAQ,KAAM,CAAA;AAAA,KACrD;AAEA,IAAA,MAAM,aAAa,aAAc,CAAA;AAAA,MAC/B,IAAM,EAAA,gBAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,2BACGC,gBAAmB,EAAA,EAAA,GAAA,EAAU,kBAAkB,EAAA,UAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AAAA;AAG7E;AACA,cAAA,CAAe,cAAcA,gBAAmB,CAAA,WAAA;AAazC,MAAM,kBAAqB,GAAA,UAAA;AAAA,EAChC,CAAC,OAAwC,GAA6B,KAAA;AACpE,IAAA,uBAAQ,GAAA,CAAAC,oBAAA,EAAA,EAAuB,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA;AAAA;AAExD;AACA,kBAAA,CAAmB,cAAcA,oBAAuB,CAAA,WAAA;AAsBjD,MAAM,WAAW,MAAO,CAAA,MAAA;AAAA,EAC7B,WAAW,eAAe,CAAA;AAAA,EAG1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcE,MAAQ,EAAA,cAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYR,UAAY,EAAA;AAAA;AAEhB;;;;"}
1
+ {"version":3,"file":"ListView-DdHpJHTc.js","sources":["../../hammer-react/dist/ListView-D2dfWXC-.js","../src/components/ListView/ListView.tsx"],"sourcesContent":["import { jsxs, jsx } from 'react/jsx-runtime';\nimport { createContext, useContext, forwardRef, useRef, useId, useState, useEffect } from 'react';\nimport cx from 'classnames';\nimport { s as styles } from './ListView.module-MVsNF0X0.js';\nimport { q as getActiveElement } from './ProgressBar-BRvB-bD4.js';\nimport { C as Checkbox } from './Checkbox-DyHm7Ntt.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\n\nfunction mapOrder(array, order, key) {\n array.sort(function(a, b) {\n const A = a[key], B = b[key];\n if (order.indexOf(A) > order.indexOf(B)) {\n return 1;\n } else {\n return -1;\n }\n });\n return array;\n}\n\nconst listViewKeyboardNavigation = (e, options, focusedItem, setFocusedItem, parent, currentFocusId) => {\n if (!options) return;\n let activeElement;\n switch (e.code) {\n case \"Enter\":\n case \"Space\":\n options[focusedItem.row].focusables[focusedItem.col].click();\n activeElement = getActiveElement(document);\n if (!activeElement) break;\n activeElement.click();\n e.preventDefault();\n break;\n case \"ArrowDown\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\"\n );\n if (focusedItem.row === options.length - 1) {\n options[0].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(options[0].focusables[focusedItem.col].id);\n setFocusedItem((prev) => {\n return { ...prev, row: 0 };\n });\n break;\n }\n options[focusedItem.row + 1].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[focusedItem.row + 1].focusables[focusedItem.col].id\n );\n setFocusedItem((prev) => {\n return { ...prev, row: focusedItem.row + 1 };\n });\n break;\n case \"ArrowUp\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\"\n );\n if (focusedItem.row === 0) {\n options[options.length - 1].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[options.length - 1].focusables[focusedItem.col].id\n );\n setFocusedItem((prev) => {\n return { ...prev, row: options.length - 1 };\n });\n break;\n }\n options[focusedItem.row - 1].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[focusedItem.row - 1].focusables[focusedItem.col].id\n );\n setFocusedItem((prev) => {\n return { ...prev, row: focusedItem.row - 1 };\n });\n break;\n case \"ArrowRight\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\"\n );\n if (focusedItem.col === options[focusedItem.row].focusables.length - 1) {\n options[focusedItem.row].focusables[0].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(options[focusedItem.row].focusables[0].id);\n setFocusedItem((prev) => {\n return {\n ...prev,\n col: 0\n };\n });\n break;\n }\n options[focusedItem.row].focusables[focusedItem.col + 1].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[focusedItem.row].focusables[focusedItem.col + 1].id\n );\n setFocusedItem((prev) => {\n return { ...prev, col: focusedItem.col + 1 };\n });\n break;\n case \"ArrowLeft\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\"\n );\n if (focusedItem.col === 0) {\n options[focusedItem.row].focusables[options[focusedItem.row].focusables.length - 1].setAttribute(\"data-interactive\", \"focus-visible\");\n currentFocusId(\n options[focusedItem.row].focusables[options[focusedItem.row].focusables.length - 1].id\n );\n setFocusedItem((prev) => {\n return {\n ...prev,\n col: options[focusedItem.row].focusables.length - 1\n };\n });\n break;\n }\n options[focusedItem.row].focusables[focusedItem.col - 1].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[focusedItem.row].focusables[focusedItem.col - 1].id\n );\n setFocusedItem((prev) => {\n return { ...prev, col: focusedItem.col - 1 };\n });\n break;\n }\n};\n\nconst ListViewContext = createContext(null);\n\nfunction useListView() {\n const context = useContext(ListViewContext);\n if (context == null) {\n throw new Error(\"useListView must be wrapped in <ListView />\");\n }\n return context;\n}\n\nconst ListViewOption = forwardRef(\n (props, ref) => {\n const {\n className,\n children,\n onChange,\n style,\n disabled: disabledProp,\n ...remainingProps\n } = props;\n const optionRef = useRef(null);\n const mergedRef = useMergeRefs([ref, optionRef]);\n const itemRef = useRef();\n const cellRef = useRef(null);\n const rowId = useId();\n const [isSelected, setIsSelected] = useState(false);\n const { selectedItems, setSelectedItems, controlled, onSelectionChange } = useListView();\n const disabled = \"item\" in remainingProps ? disabledProp || remainingProps.item.disabled : disabledProp;\n useEffect(() => {\n const focusables = optionRef.current?.querySelectorAll(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [tabindex='0']:not(:disabled):not([aria-disabled='true'])\"\n );\n focusables?.forEach((item, i) => {\n item.setAttribute(\"tabindex\", \"-1\");\n if (item.hasAttribute(\"id\")) return;\n item.setAttribute(\"id\", `${rowId}-${i}`);\n });\n }, [rowId]);\n useEffect(() => {\n if (\"item\" in remainingProps) {\n const isPartOfSelectedItems = selectedItems.some((item) => {\n return item.label === remainingProps.item.label;\n });\n setIsSelected(isPartOfSelectedItems);\n } else {\n const isPartOfSelectedItems = selectedItems.includes(\n remainingProps.label\n );\n setIsSelected(isPartOfSelectedItems);\n }\n }, [controlled, remainingProps, selectedItems]);\n const onChangeHandler = (e) => {\n onChange?.(e, { checked: isSelected });\n };\n const onClickHandler = () => {\n updateSelectedItems();\n };\n const removeItemFromSelectedItems = (itemToRemove) => {\n return selectedItems.filter((item) => {\n if (typeof itemToRemove === \"string\") {\n return item !== itemToRemove;\n }\n return item?.label !== itemToRemove.label;\n });\n };\n const addItemFromSelectedItems = (itemToAdd) => {\n return [...selectedItems, itemToAdd];\n };\n function updateSelectedItems() {\n const currentItem = \"item\" in remainingProps ? remainingProps.item : remainingProps.label;\n const isPartOfSelectedItems = selectedItems.some((item) => {\n if (typeof currentItem === \"string\") {\n return item === currentItem;\n }\n return item?.label === currentItem.label;\n });\n const newSelectedItems = isPartOfSelectedItems ? removeItemFromSelectedItems(currentItem) : addItemFromSelectedItems(currentItem);\n if (controlled) {\n onSelectionChange?.(newSelectedItems);\n } else {\n setSelectedItems(newSelectedItems);\n setIsSelected(!isPartOfSelectedItems);\n }\n }\n if (\"item\" in remainingProps) {\n itemRef.current = remainingProps.item;\n const { item, ...rest } = remainingProps;\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: cx([styles[\"listview-option\"]], className),\n \"data-anv\": \"listview-option\",\n style,\n ref: mergedRef,\n \"aria-disabled\": disabled,\n \"aria-selected\": isSelected,\n \"aria-label\": item.label,\n role: \"row\",\n ...rest,\n children: [\n /* @__PURE__ */ jsx(\"div\", { className: styles[\"cell\"], ref: cellRef, role: \"gridcell\", children: /* @__PURE__ */ jsx(\n Checkbox,\n {\n disabled,\n checked: isSelected,\n \"aria-label\": item.label,\n onChange: onChangeHandler,\n onClick: onClickHandler\n }\n ) }),\n children\n ]\n }\n );\n }\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: cx([styles[\"listview-option\"]], className),\n \"data-anv\": \"listview-option\",\n style,\n ref: mergedRef,\n \"aria-disabled\": disabled,\n \"aria-selected\": isSelected,\n \"aria-label\": \"label\" in props ? props.label : \"Select\",\n role: \"row\",\n ...remainingProps,\n children: [\n /* @__PURE__ */ jsx(\"div\", { className: styles[\"cell\"], ref: cellRef, role: \"gridcell\", children: /* @__PURE__ */ jsx(\n Checkbox,\n {\n disabled,\n checked: isSelected,\n \"aria-label\": \"label\" in props ? props.label : \"Select\",\n onChange: onChangeHandler,\n onClick: onClickHandler\n }\n ) }),\n children\n ]\n }\n );\n }\n);\nListViewOption.displayName = \"ListViewOption\";\n\nconst ListViewOptionCell = forwardRef((props, ref) => {\n const { ...rest } = props;\n return /* @__PURE__ */ jsx(\"div\", { role: \"gridcell\", \"data-anv\": \"listview-option-cell\", ...rest, ref });\n});\nListViewOptionCell.displayName = \"ListViewOptionCell\";\n\nconst getFocusables = (el) => {\n return el.querySelectorAll(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [tabindex='0']:not(:disabled):not([aria-disabled='true'])\"\n );\n};\nconst ListViewElement = function(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n onSelectionChange,\n className,\n selected,\n defaultSelected,\n style,\n onKeyDown,\n ...remainingProps\n } = componentProps;\n const ListViewRef = useRef(null);\n const isFocusVisible = useRef(true);\n const combinedRef = useMergeRefs([ref, ListViewRef]);\n const [options, setOptions] = useState();\n const [currentActive, setCurrentActive] = useState();\n const [selectedItems, setSelectedItems] = useState(\n selected ?? defaultSelected ?? []\n );\n const [focusedItem, setFocusedItem] = useState({\n row: 0,\n col: 0\n });\n const styleCombined = {\n ...style,\n ...layoutStyles\n };\n const onFocusHandler = () => {\n if (!isFocusVisible.current) return;\n if (!options) return;\n options[focusedItem.row].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n return;\n };\n const onBlurHandler = () => {\n if (!options) return;\n options[focusedItem.row].focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\"\n );\n return;\n };\n const onKeyDownHandler = (e) => {\n onKeyDown?.(e);\n if (!options) return;\n isFocusVisible.current = true;\n listViewKeyboardNavigation(\n e,\n options,\n focusedItem,\n setFocusedItem,\n ListViewRef.current,\n (id) => setCurrentActive(id)\n );\n };\n const onMouseDownHandler = (e) => {\n isFocusVisible.current = false;\n if (options && ListViewRef.current) {\n options[focusedItem.row].focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\"\n );\n const closestFocusable = e.target.closest(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [data-anv='checkbox']\"\n );\n const optionRow = e.target.closest(\n '[data-anv=\"listview-option\"]'\n );\n if (!optionRow || optionRow.ariaDisabled) return;\n const row = options.findIndex((option) => option.node === optionRow);\n if (!closestFocusable) {\n options[row].focusables[0].click();\n return;\n }\n const col = Array.prototype.indexOf.call(\n options[row].focusables,\n closestFocusable?.getAttribute(\"data-anv\") === \"checkbox\" ? closestFocusable.children[0] : closestFocusable\n );\n setFocusedItem({ row, col });\n }\n };\n useEffect(() => {\n if (!ListViewRef.current) return;\n const optionArr = ListViewRef.current.querySelectorAll(\n \"div[data-anv='listview-option']:not([aria-disabled='true'])\"\n );\n const makeTree = Array.from(optionArr).map((option) => {\n const childFocusables = getFocusables(option);\n return {\n node: option,\n focusables: childFocusables\n };\n });\n setOptions(makeTree);\n }, [props.children]);\n const prevSelectedItems = useRef();\n useEffect(() => {\n if (!options) return;\n const compareArr = options.map((option) => option.node.ariaLabel);\n const orderedSelectedItems = mapOrder(selectedItems, compareArr, \"label\");\n if (JSON.stringify(prevSelectedItems.current) === JSON.stringify(orderedSelectedItems))\n return;\n onSelectionChange?.(orderedSelectedItems);\n prevSelectedItems.current = orderedSelectedItems;\n }, [onSelectionChange, options, selectedItems]);\n useEffect(() => {\n if (!selected) return;\n const filterDuplicates = selected.reduce(\n (acc, current) => {\n const isDup = acc.find((item) => item.label === current.label);\n if (!isDup) {\n return acc.concat([current]);\n } else {\n return acc;\n }\n },\n []\n );\n if (!options) return;\n const compareArr = options.map((option) => option.node.ariaLabel);\n const orderedSelected = mapOrder(filterDuplicates, compareArr, \"label\");\n if (JSON.stringify(prevSelectedItems.current) === JSON.stringify(orderedSelected))\n return;\n setSelectedItems(orderedSelected);\n prevSelectedItems.current = orderedSelected;\n }, [onSelectionChange, options, selected]);\n const ListViewClassNames = cx([styles[\"listview\"]], className);\n if (\"items\" in remainingProps) {\n const { children: children2, items, ...rest2 } = remainingProps;\n return /* @__PURE__ */ jsx(\n ListViewContext.Provider,\n {\n value: {\n options,\n onSelectionChange,\n selectedItems,\n setSelectedItems,\n items,\n controlled: !!selected\n },\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: combinedRef,\n className: ListViewClassNames,\n style: styleCombined,\n \"data-anv\": \"listview\",\n role: \"grid\",\n \"aria-multiselectable\": \"true\",\n onFocus: onFocusHandler,\n onBlur: onBlurHandler,\n onKeyDown: onKeyDownHandler,\n onMouseDown: onMouseDownHandler,\n \"aria-activedescendant\": currentActive,\n tabIndex: 0,\n ...rest2,\n children: children2?.({\n items: items.map((item) => {\n return item;\n })\n })\n }\n )\n }\n );\n }\n const { children, ...rest } = remainingProps;\n return /* @__PURE__ */ jsx(\n ListViewContext.Provider,\n {\n value: {\n options,\n onSelectionChange,\n selectedItems,\n setSelectedItems,\n controlled: !!selected\n },\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: combinedRef,\n className: ListViewClassNames,\n style: styleCombined,\n \"data-anv\": \"listview\",\n role: \"grid\",\n onFocus: onFocusHandler,\n onBlur: onBlurHandler,\n onKeyDown: onKeyDownHandler,\n onMouseDown: onMouseDownHandler,\n \"aria-activedescendant\": currentActive,\n tabIndex: 0,\n ...rest,\n children\n }\n )\n }\n );\n};\nListViewElement.displayName = \"ListView\";\nconst ListView = Object.assign(\n forwardRef(ListViewElement),\n {\n /**\n * ListViewOption component for individual selectable items within a listview.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n *\n * @example\n * <ListView.Option item={{ label: \"Option 1\" }} />\n */\n Option: ListViewOption,\n /**\n * ListViewOptionCell component for rendering a cell within a listview option.\n *\n * Features:\n * - Renders a grid cell for option content\n * - Supports custom content and layout\n * - Accessible with proper ARIA attributes\n *\n * @example\n * <ListView.OptionCell>Custom cell content</ListView.OptionCell>\n */\n OptionCell: ListViewOptionCell\n }\n);\n\nexport { ListView as L, ListViewOption as a, ListViewOptionCell as b };\n//# sourceMappingURL=ListView-D2dfWXC-.js.map\n","import {\n ListViewProps as CoreListViewProps,\n ListView as CoreListView,\n ListViewOption as CoreListViewOption,\n ListViewOptionCell as CoreListViewOptionCell,\n ListViewOptionProps as CoreListViewOptionProps,\n} from \"@servicetitan/hammer-react\";\nimport { ComponentPropsWithoutRef, ForwardedRef, Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the ListView component\n * @property {function} [onSelectionChange] - Callback when selection changes\n * @property {Array} [selected] - Currently selected items (controlled)\n * @property {Array} [items] - Array of items to render\n * @property {Array} [defaultSelected] - Default selected items (uncontrolled)\n * @property {function} [children] - Optional render function for items\n * @extends LayoutUtilProps\n */\nexport type ListViewProps<T> = CoreListViewProps<T>;\n\n/**\n * Props for the ListViewOption component\n * @property {boolean} [disabled] - Whether the option is disabled\n * @property {function} [onChange] - Callback when the option changes\n * @property {object} [item] - The item object when using items prop\n * @property {string} [label] - The display label for the option\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type ListViewOptionProps = CoreListViewOptionProps & DataTrackingId;\n\nconst ListViewElement = function <T>(\n props: ListViewProps<T>,\n ref: ForwardedRef<HTMLUListElement>,\n) {\n return <CoreListView ref={ref} {...props} />;\n};\n\n/**\n * ListViewOption component for individual selectable items within a listview.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ListView.Option item={{ label: \"Option 1\" }} />\n */\nexport const ListViewOption = forwardRef(\n (props: ListViewOptionProps, ref: Ref<HTMLDivElement>) => {\n const data = {\n label: \"item\" in props ? props.item?.label : props.label,\n };\n\n const trackingId = useTrackingId({\n name: \"ListViewOption\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <CoreListViewOption ref={ref} data-tracking-id={trackingId} {...props} />\n );\n },\n);\nListViewOption.displayName = CoreListViewOption.displayName;\n\n/**\n * ListViewOptionCell component for rendering a cell within a listview option.\n *\n * Features:\n * - Renders a grid cell for option content\n * - Supports custom content and layout\n * - Accessible with proper ARIA attributes\n *\n * @example\n * <ListView.OptionCell>Custom cell content</ListView.OptionCell>\n */\nexport const ListViewOptionCell = forwardRef(\n (props: ComponentPropsWithoutRef<\"div\">, ref: Ref<HTMLDivElement>) => {\n return <CoreListViewOptionCell ref={ref} {...props} />;\n },\n);\nListViewOptionCell.displayName = CoreListViewOptionCell.displayName;\n\n/**\n * ListView component for displaying a list of selectable items in a grid layout.\n *\n * Features:\n * - Supports single and multiple selection modes\n * - Keyboard navigation with arrow keys\n * - Customizable item rendering\n * - Controlled and uncontrolled modes\n * - Accessible with proper ARIA attributes\n * - Focus management for interactive elements\n * - Layout utilities for positioning and spacing\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ListView items={[{ label: \"Item 1\" }, { label: \"Item 2\" }]} onSelectionChange={handleSelection}>\n * {({ items }) => items.map(item => (\n * <ListView.Option key={item.label} item={item} />\n * ))}\n * </ListView>\n */\nexport const ListView = Object.assign(\n forwardRef(ListViewElement) as <T>(\n props: ListViewProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListViewElement>,\n {\n /**\n * ListViewOption component for individual selectable items within a listview.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ListView.Option item={{ label: \"Option 1\" }} />\n */\n Option: ListViewOption,\n /**\n * ListViewOptionCell component for rendering a cell within a listview option.\n *\n * Features:\n * - Renders a grid cell for option content\n * - Supports custom content and layout\n * - Accessible with proper ARIA attributes\n *\n * @example\n * <ListView.OptionCell>Custom cell content</ListView.OptionCell>\n */\n OptionCell: ListViewOptionCell,\n },\n);\n"],"names":["ListViewOption","ListViewOptionCell","ListViewElement","ListView","CoreListView","CoreListViewOption","CoreListViewOptionCell"],"mappings":"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"}
package/dist/ListView.js CHANGED
@@ -1,2 +1,2 @@
1
- export { L as ListView, a as ListViewOption, b as ListViewOptionCell, L as default } from './ListView-cMMBtp1O.js';
1
+ export { L as ListView, a as ListViewOption, b as ListViewOptionCell, L as default } from './ListView-DdHpJHTc.js';
2
2
  //# sourceMappingURL=ListView.js.map
@@ -2,7 +2,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useState, useEffect, forwardRef, useContext, createContext, useRef, useMemo } from 'react';
3
3
  import { c as cx } from './index-tZvMCc77.js';
4
4
  import { s as styles } from './Listbox.module-DcBE8Zmo-DcBE8Zmo.js';
5
- import { T as Text } from './Text-DCvcLCvf-DlmnnjTR.js';
5
+ import { T as Text } from './Text-CED_yrId-DsRYZw2-.js';
6
6
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js';
7
7
  import { u as useMergeRefs } from './useMergeRefs-Bde85AWI-Bde85AWI.js';
8
8
  import { I as Icon } from './Icon-B6HmlQiR-BxQkO3X5.js';
@@ -578,4 +578,4 @@ const Listbox = Object.assign(
578
578
  );
579
579
 
580
580
  export { ListboxOption as L, ListboxOptionGroup as a, Listbox as b };
581
- //# sourceMappingURL=Listbox-BvJLSAVO-Br5k6fmq.js.map
581
+ //# sourceMappingURL=Listbox-B-WUuj-_-BWWeWtLW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Listbox-BvJLSAVO-Br5k6fmq.js","sources":["../../hammer-react/dist/useTypeAhead-D_x_x3nw.js","../../hammer-react/dist/Listbox-BvJLSAVO.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nconst useTypeAhead = (timeout = 750) => {\n const [typeAhead, setTypeAhead] = useState(\"\");\n useEffect(() => {\n const timer = setTimeout(() => setTypeAhead(\"\"), timeout);\n return () => clearTimeout(timer);\n }, [typeAhead, timeout]);\n const updateTypeAhead = (char) => setTypeAhead((prev) => prev + char);\n return [typeAhead, updateTypeAhead];\n};\n\nexport { useTypeAhead as u };\n//# sourceMappingURL=useTypeAhead-D_x_x3nw.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { forwardRef, createContext, useContext, useRef, useState, useEffect, useMemo } from 'react';\nimport cx from 'classnames';\nimport { s as styles } from './Listbox.module-DcBE8Zmo.js';\nimport { u as useTypeAhead } from './useTypeAhead-D_x_x3nw.js';\nimport { T as Text } from './Text-DCvcLCvf.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport { F as Flex } from './Flex-CiK7uNUu.js';\nimport Check from '@servicetitan/hammer-icon/mdi/round/check.svg';\n\nconst ListboxOptionGroupContext = createContext({});\nconst ListboxOptionGroup = forwardRef((props, ref) => {\n const { className, children, disabled, label, ...rest } = props;\n const optionGroupCx = cx(styles[\"option-group\"], className);\n const labelCx = cx(styles[\"label\"], {\n [styles[\"disabled\"]]: disabled\n });\n return /* @__PURE__ */ jsx(ListboxOptionGroupContext.Provider, { value: { disabled }, children: /* @__PURE__ */ jsxs(\n \"div\",\n {\n \"data-anv\": \"listbox-option-group\",\n className: optionGroupCx,\n ref,\n ...rest,\n children: [\n /* @__PURE__ */ jsx(Text, { variant: \"eyebrow\", className: labelCx, children: label }),\n children\n ]\n }\n ) });\n});\nListboxOptionGroup.displayName = \"ListboxOptionGroup\";\n\nconst ListboxOption = forwardRef(\n (props, ref) => {\n const {\n className,\n children,\n disabled: disabledProp,\n onClick,\n label: labelProp,\n item,\n value,\n alignItems,\n justifyItems,\n alignContent,\n justifyContent,\n placeItems,\n placeContent,\n ...rest\n } = props;\n const {\n setCurrentFocus,\n currentFocus,\n selected,\n setSelected,\n selectionMode,\n onSelectionChange,\n controlled\n } = useListbox();\n const ListboxOptionClassNames = cx(styles[\"option\"], className, {});\n const label = labelProp || item?.label || \"\";\n const { disabled: groupDisabled } = useContext(ListboxOptionGroupContext);\n const disabled = groupDisabled || disabledProp || item?.disabled || false;\n const isSelected = () => {\n if (selectionMode === \"single\") {\n if (item) {\n return selected?.label === label;\n }\n return selected === label;\n }\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected) ? selected : selected ? [selected] : [];\n if (item) {\n return selectedItems.some(\n (selectedItem) => selectedItem.label === label\n );\n }\n return selectedItems.includes(label);\n }\n return false;\n };\n const onClickHandler = (e) => {\n if (disabled) return;\n onClick?.(e);\n setCurrentFocus?.(label);\n if (selectionMode === \"single\") {\n if (!item && selected === label || item && selected?.label === label) {\n if (!controlled) {\n setSelected?.(void 0);\n }\n onSelectionChange?.(void 0);\n return;\n }\n if (item) {\n if (!controlled) {\n setSelected?.(item);\n }\n onSelectionChange?.(item);\n return;\n }\n if (!item) {\n if (!controlled) {\n setSelected?.(label);\n }\n onSelectionChange?.(label);\n return;\n }\n }\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected) ? selected : selected ? [selected] : [];\n if (item && selectedItems.some((selectedItem) => selectedItem.label === label)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem.label !== label\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n }\n if (!item && selectedItems.includes(label)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem !== label\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n }\n if (item) {\n const selectedItemsWithItemAdded = [...selectedItems, item];\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n if (!item) {\n const selectedItemsWithItemAdded = [...selectedItems, label];\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n }\n };\n return /* @__PURE__ */ jsxs(\n \"li\",\n {\n className: ListboxOptionClassNames,\n \"data-anv\": \"listbox-option\",\n role: \"option\",\n \"aria-disabled\": disabled,\n \"data-focused\": currentFocus === label,\n \"aria-selected\": isSelected(),\n id: label,\n onClick: onClickHandler,\n ref,\n value: value ?? label,\n ...rest,\n children: [\n /* @__PURE__ */ jsx(\n Flex,\n {\n className: styles[\"children\"],\n grow: 1,\n shrink: 1,\n alignItems,\n justifyItems,\n alignContent,\n justifyContent,\n placeItems,\n placeContent,\n children\n }\n ),\n /* @__PURE__ */ jsx(\n Icon,\n {\n \"aria-hidden\": true,\n svg: Check,\n inherit: true,\n className: styles[\"Icon\"],\n style: { opacity: isSelected() ? 1 : 0 }\n }\n )\n ]\n }\n );\n }\n);\nListboxOption.displayName = \"ListboxOption\";\n\nconst scrollToOption = (node) => {\n node?.scrollIntoView({\n block: \"nearest\",\n inline: \"center\"\n });\n};\nconst onListboxKeyDown = (e, context) => {\n const {\n options,\n currentFocus,\n selectionMode,\n onSelectionChange,\n selected,\n setSelected,\n items,\n controlled\n } = context;\n if (!options) return;\n const currentNode = Array.from(options).find(\n (node) => node.id === currentFocus\n );\n const currentIndex = Array.from(options).indexOf(currentNode);\n switch (e.code) {\n case \"ArrowDown\":\n e.preventDefault();\n if (currentIndex === options.length - 1) {\n goTo(options[0], 0, context);\n } else {\n goTo(options[currentIndex + 1], currentIndex + 1, context);\n }\n break;\n case \"ArrowUp\":\n e.preventDefault();\n if (currentIndex === 0) {\n goTo(options[options.length - 1], options.length - 1, context);\n } else {\n goTo(options[currentIndex - 1], currentIndex - 1, context);\n }\n break;\n case \"Home\":\n e.preventDefault();\n goTo(options[0], 0, context);\n break;\n case \"End\":\n e.preventDefault();\n goTo(options[options.length - 1], options.length - 1, context);\n break;\n case \"Enter\":\n case \"Space\":\n e.preventDefault();\n if (!currentFocus) return;\n if (controlled) return;\n if (selectionMode === \"single\") {\n if (typeof selected === \"object\" ? selected.label === currentFocus : selected === currentFocus) {\n setSelected?.(void 0);\n onSelectionChange?.(void 0);\n return;\n }\n if (items) {\n const enabledItems = items.filter((item) => !item?.disabled);\n setSelected?.(enabledItems[currentIndex]);\n onSelectionChange?.(enabledItems[currentIndex]);\n return;\n }\n if (!items) {\n setSelected?.(currentFocus);\n onSelectionChange?.(currentFocus);\n return;\n }\n }\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected) ? selected : [selected];\n if (items) {\n const focusedItem = items.find(\n (item) => item.label === currentFocus\n );\n if (selectedItems.includes(focusedItem)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem !== focusedItem\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n } else {\n const selectedItemsWithItemAdded = [...selectedItems, focusedItem];\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n }\n if (!items) {\n if (selectedItems.includes(currentFocus)) {\n setSelected?.(\n selectedItems.filter((item) => item !== currentFocus)\n );\n onSelectionChange?.(\n selectedItems.filter((item) => item !== currentFocus)\n );\n return;\n }\n setSelected?.([...selectedItems, currentFocus]);\n onSelectionChange?.([...selectedItems, currentFocus]);\n }\n }\n break;\n }\n};\nconst goTo = (option, index, context) => {\n const {\n setCurrentFocus,\n setSelected,\n selectionMode,\n disableAutoSelectOnFocus,\n onSelectionChange,\n items,\n controlled\n } = context;\n scrollToOption(option);\n if (disableAutoSelectOnFocus || selectionMode === \"multiple\") {\n setCurrentFocus(option?.id);\n return;\n }\n setCurrentFocus(option?.id);\n if (controlled) return;\n if (items) {\n const enabledItems = items.filter((item) => !item?.disabled);\n setSelected(enabledItems[index]);\n onSelectionChange?.(enabledItems[index]);\n } else {\n setSelected(option?.id);\n onSelectionChange?.(option?.id);\n }\n};\n\nconst ListboxContext = createContext(\n null\n);\nconst ListboxElement = function(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n selectionMode = \"single\",\n items,\n children,\n onKeyDown,\n onFocus,\n onSelectionChange,\n selected: selectedProp,\n defaultSelected,\n disableAutoSelectOnFocus,\n style,\n ...rest\n } = componentProps;\n const listboxRef = useRef(null);\n const [selected, setSelected] = useState(\n selectedProp || defaultSelected\n );\n const [options, setOptions] = useState();\n const [typeAhead, updateTypeAhead] = useTypeAhead();\n const [currentFocus, setCurrentFocus] = useState(\n Array.isArray(selected) ? typeof selected[0] === \"object\" ? selected[0].label : selected[0] : typeof selected === \"object\" ? selected?.label : selected\n );\n const ListboxClassNames = cx(styles[\"listbox\"], className, {});\n const controlled = selectedProp !== void 0;\n useEffect(() => {\n if (listboxRef.current) {\n setOptions(\n listboxRef.current.querySelectorAll(\n \"[role=option]:not([aria-disabled='true'])\"\n )\n );\n }\n }, [items, listboxRef, selectionMode]);\n useEffect(() => {\n if (\"selected\" in componentProps) {\n setSelected(selectedProp);\n }\n }, [selectedProp]);\n useEffect(() => {\n if (!typeAhead.length) {\n return;\n }\n const lowerTypeAhead = typeAhead.toLowerCase();\n const nodes = options && Array.from(options).filter(\n (node2) => node2.innerText.toLowerCase().startsWith(lowerTypeAhead)\n );\n if (!nodes?.length) {\n return;\n }\n let node = nodes[0];\n if (lowerTypeAhead.length === 1 && nodes.length > 1) {\n const focusIndex = currentFocus ? nodes.map((node2) => node2.id).indexOf(currentFocus) : -1;\n if (focusIndex > -1) {\n let nextFocusIndex = focusIndex + 1;\n if (nextFocusIndex === nodes.length) {\n nextFocusIndex = 0;\n }\n node = nodes[nextFocusIndex];\n }\n }\n setCurrentFocus(node.id);\n scrollToOption(node);\n if (controlled) return;\n if (selectionMode === \"single\") {\n if (items) {\n if (disableAutoSelectOnFocus) {\n const focusedItem = items.find(\n (item) => item.label === currentFocus\n );\n setSelected?.(focusedItem);\n onSelectionChange?.(focusedItem);\n }\n return;\n }\n if (!items) {\n if (disableAutoSelectOnFocus) {\n setSelected(node.id);\n onSelectionChange?.(node.id);\n }\n return;\n }\n }\n }, [typeAhead]);\n const onKeyDownHandler = (e) => {\n onKeyDown?.(e);\n if (new RegExp(/^[a-zA-Z0-9]$/i).test(e.key)) {\n e.preventDefault();\n e.stopPropagation();\n updateTypeAhead(e.key);\n return;\n }\n onListboxKeyDown(e, {\n setCurrentFocus,\n currentFocus,\n setSelected,\n selected,\n selectionMode,\n options,\n onSelectionChange,\n disableAutoSelectOnFocus: !!disableAutoSelectOnFocus,\n items\n });\n };\n const onFocusHandler = (e) => {\n onFocus?.(e);\n if (!options) return;\n if (selectionMode === \"single\") {\n const currentFocusExists = Array.from(options).some(\n (item) => item.id === currentFocus\n );\n if (currentFocus && currentFocusExists) return;\n if (!items) {\n if (currentFocusExists) {\n setCurrentFocus(selected);\n return;\n }\n setCurrentFocus(options[0].id);\n return;\n }\n if (currentFocusExists) {\n setCurrentFocus(selected?.label);\n return;\n }\n setCurrentFocus(items?.[0].label);\n return;\n }\n if (selectionMode === \"multiple\") {\n const selectedArr = Array.isArray(selected) ? selected : [selected];\n const currentFocusExists = Array.from(options).some(\n (item) => item.id === currentFocus\n );\n if (currentFocus && currentFocusExists) return;\n if (!items) {\n console.log({ currentFocus, currentFocusExists });\n if (currentFocusExists) {\n setCurrentFocus(selectedArr[0].label);\n return;\n }\n setCurrentFocus(options[0].id);\n return;\n }\n if (currentFocusExists) {\n setCurrentFocus(selectedArr[0]?.label);\n return;\n }\n setCurrentFocus(items?.[0].label);\n return;\n }\n setCurrentFocus(options[0].id);\n };\n const mergeRef = useMergeRefs([ref, listboxRef]);\n const styleCombined = {\n ...style,\n ...layoutStyles\n };\n const value = useMemo(\n () => ({\n setCurrentFocus,\n currentFocus,\n setSelected,\n selected,\n selectionMode,\n items,\n options,\n onSelectionChange,\n disableAutoSelectOnFocus: !!disableAutoSelectOnFocus,\n controlled\n }),\n [\n currentFocus,\n disableAutoSelectOnFocus,\n onSelectionChange,\n options,\n selected,\n selectionMode,\n items,\n controlled\n ]\n );\n return /* @__PURE__ */ jsx(ListboxContext.Provider, { value, children: /* @__PURE__ */ jsx(\n \"ul\",\n {\n tabIndex: 0,\n role: \"listbox\",\n style: styleCombined,\n \"aria-multiselectable\": selectionMode === \"multiple\" ? \"true\" : \"false\",\n \"aria-activedescendant\": currentFocus,\n className: ListboxClassNames,\n \"data-anv\": \"listbox\",\n onKeyDown: onKeyDownHandler,\n onFocus: onFocusHandler,\n ...rest,\n ref: mergeRef,\n children: items ? children?.({ items }) : children\n }\n ) });\n};\nconst useListbox = () => {\n const context = useContext(ListboxContext);\n if (context == null) {\n throw new Error(\"useListbox must be wrapped in <Listbox />\");\n }\n return context;\n};\nListboxElement.displayName = \"Listbox\";\nconst Listbox = Object.assign(\n forwardRef(ListboxElement),\n {\n /**\n * ListboxOption component for individual selectable items within a listbox.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n *\n * @example\n * <Listbox.Option value=\"option1\" label=\"Option 1\" />\n */\n Option: ListboxOption,\n /**\n * ListboxOptionGroup component for grouping related options within a listbox.\n *\n * Features:\n * - Groups related options with a descriptive label\n * - Maintains proper ARIA structure for accessibility\n * - Supports keyboard navigation within groups\n * - Visual separation of option categories\n *\n * @example\n * <Listbox.OptionGroup label=\"Fruits\">\n * <Listbox.Option value=\"apple\">Apple</Listbox.Option>\n * <Listbox.Option value=\"banana\">Banana</Listbox.Option>\n * </Listbox.OptionGroup>\n */\n OptionGroup: ListboxOptionGroup\n }\n);\n\nexport { Listbox as L, ListboxOption as a, ListboxOptionGroup as b };\n//# sourceMappingURL=Listbox-BvJLSAVO.js.map\n"],"names":["Check"],"mappings":"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"}
1
+ {"version":3,"file":"Listbox-B-WUuj-_-BWWeWtLW.js","sources":["../../hammer-react/dist/useTypeAhead-D_x_x3nw.js","../../hammer-react/dist/Listbox-B-WUuj-_.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nconst useTypeAhead = (timeout = 750) => {\n const [typeAhead, setTypeAhead] = useState(\"\");\n useEffect(() => {\n const timer = setTimeout(() => setTypeAhead(\"\"), timeout);\n return () => clearTimeout(timer);\n }, [typeAhead, timeout]);\n const updateTypeAhead = (char) => setTypeAhead((prev) => prev + char);\n return [typeAhead, updateTypeAhead];\n};\n\nexport { useTypeAhead as u };\n//# sourceMappingURL=useTypeAhead-D_x_x3nw.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { forwardRef, createContext, useContext, useRef, useState, useEffect, useMemo } from 'react';\nimport cx from 'classnames';\nimport { s as styles } from './Listbox.module-DcBE8Zmo.js';\nimport { u as useTypeAhead } from './useTypeAhead-D_x_x3nw.js';\nimport { T as Text } from './Text-CED_yrId.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport { F as Flex } from './Flex-CiK7uNUu.js';\nimport Check from '@servicetitan/hammer-icon/mdi/round/check.svg';\n\nconst ListboxOptionGroupContext = createContext({});\nconst ListboxOptionGroup = forwardRef((props, ref) => {\n const { className, children, disabled, label, ...rest } = props;\n const optionGroupCx = cx(styles[\"option-group\"], className);\n const labelCx = cx(styles[\"label\"], {\n [styles[\"disabled\"]]: disabled\n });\n return /* @__PURE__ */ jsx(ListboxOptionGroupContext.Provider, { value: { disabled }, children: /* @__PURE__ */ jsxs(\n \"div\",\n {\n \"data-anv\": \"listbox-option-group\",\n className: optionGroupCx,\n ref,\n ...rest,\n children: [\n /* @__PURE__ */ jsx(Text, { variant: \"eyebrow\", className: labelCx, children: label }),\n children\n ]\n }\n ) });\n});\nListboxOptionGroup.displayName = \"ListboxOptionGroup\";\n\nconst ListboxOption = forwardRef(\n (props, ref) => {\n const {\n className,\n children,\n disabled: disabledProp,\n onClick,\n label: labelProp,\n item,\n value,\n alignItems,\n justifyItems,\n alignContent,\n justifyContent,\n placeItems,\n placeContent,\n ...rest\n } = props;\n const {\n setCurrentFocus,\n currentFocus,\n selected,\n setSelected,\n selectionMode,\n onSelectionChange,\n controlled\n } = useListbox();\n const ListboxOptionClassNames = cx(styles[\"option\"], className, {});\n const label = labelProp || item?.label || \"\";\n const { disabled: groupDisabled } = useContext(ListboxOptionGroupContext);\n const disabled = groupDisabled || disabledProp || item?.disabled || false;\n const isSelected = () => {\n if (selectionMode === \"single\") {\n if (item) {\n return selected?.label === label;\n }\n return selected === label;\n }\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected) ? selected : selected ? [selected] : [];\n if (item) {\n return selectedItems.some(\n (selectedItem) => selectedItem.label === label\n );\n }\n return selectedItems.includes(label);\n }\n return false;\n };\n const onClickHandler = (e) => {\n if (disabled) return;\n onClick?.(e);\n setCurrentFocus?.(label);\n if (selectionMode === \"single\") {\n if (!item && selected === label || item && selected?.label === label) {\n if (!controlled) {\n setSelected?.(void 0);\n }\n onSelectionChange?.(void 0);\n return;\n }\n if (item) {\n if (!controlled) {\n setSelected?.(item);\n }\n onSelectionChange?.(item);\n return;\n }\n if (!item) {\n if (!controlled) {\n setSelected?.(label);\n }\n onSelectionChange?.(label);\n return;\n }\n }\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected) ? selected : selected ? [selected] : [];\n if (item && selectedItems.some((selectedItem) => selectedItem.label === label)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem.label !== label\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n }\n if (!item && selectedItems.includes(label)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem !== label\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n }\n if (item) {\n const selectedItemsWithItemAdded = [...selectedItems, item];\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n if (!item) {\n const selectedItemsWithItemAdded = [...selectedItems, label];\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n }\n };\n return /* @__PURE__ */ jsxs(\n \"li\",\n {\n className: ListboxOptionClassNames,\n \"data-anv\": \"listbox-option\",\n role: \"option\",\n \"aria-disabled\": disabled,\n \"data-focused\": currentFocus === label,\n \"aria-selected\": isSelected(),\n id: label,\n onClick: onClickHandler,\n ref,\n value: value ?? label,\n ...rest,\n children: [\n /* @__PURE__ */ jsx(\n Flex,\n {\n className: styles[\"children\"],\n grow: 1,\n shrink: 1,\n alignItems,\n justifyItems,\n alignContent,\n justifyContent,\n placeItems,\n placeContent,\n children\n }\n ),\n /* @__PURE__ */ jsx(\n Icon,\n {\n \"aria-hidden\": true,\n svg: Check,\n inherit: true,\n className: styles[\"Icon\"],\n style: { opacity: isSelected() ? 1 : 0 }\n }\n )\n ]\n }\n );\n }\n);\nListboxOption.displayName = \"ListboxOption\";\n\nconst scrollToOption = (node) => {\n node?.scrollIntoView({\n block: \"nearest\",\n inline: \"center\"\n });\n};\nconst onListboxKeyDown = (e, context) => {\n const {\n options,\n currentFocus,\n selectionMode,\n onSelectionChange,\n selected,\n setSelected,\n items,\n controlled\n } = context;\n if (!options) return;\n const currentNode = Array.from(options).find(\n (node) => node.id === currentFocus\n );\n const currentIndex = Array.from(options).indexOf(currentNode);\n switch (e.code) {\n case \"ArrowDown\":\n e.preventDefault();\n if (currentIndex === options.length - 1) {\n goTo(options[0], 0, context);\n } else {\n goTo(options[currentIndex + 1], currentIndex + 1, context);\n }\n break;\n case \"ArrowUp\":\n e.preventDefault();\n if (currentIndex === 0) {\n goTo(options[options.length - 1], options.length - 1, context);\n } else {\n goTo(options[currentIndex - 1], currentIndex - 1, context);\n }\n break;\n case \"Home\":\n e.preventDefault();\n goTo(options[0], 0, context);\n break;\n case \"End\":\n e.preventDefault();\n goTo(options[options.length - 1], options.length - 1, context);\n break;\n case \"Enter\":\n case \"Space\":\n e.preventDefault();\n if (!currentFocus) return;\n if (controlled) return;\n if (selectionMode === \"single\") {\n if (typeof selected === \"object\" ? selected.label === currentFocus : selected === currentFocus) {\n setSelected?.(void 0);\n onSelectionChange?.(void 0);\n return;\n }\n if (items) {\n const enabledItems = items.filter((item) => !item?.disabled);\n setSelected?.(enabledItems[currentIndex]);\n onSelectionChange?.(enabledItems[currentIndex]);\n return;\n }\n if (!items) {\n setSelected?.(currentFocus);\n onSelectionChange?.(currentFocus);\n return;\n }\n }\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected) ? selected : [selected];\n if (items) {\n const focusedItem = items.find(\n (item) => item.label === currentFocus\n );\n if (selectedItems.includes(focusedItem)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem !== focusedItem\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n } else {\n const selectedItemsWithItemAdded = [...selectedItems, focusedItem];\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n }\n if (!items) {\n if (selectedItems.includes(currentFocus)) {\n setSelected?.(\n selectedItems.filter((item) => item !== currentFocus)\n );\n onSelectionChange?.(\n selectedItems.filter((item) => item !== currentFocus)\n );\n return;\n }\n setSelected?.([...selectedItems, currentFocus]);\n onSelectionChange?.([...selectedItems, currentFocus]);\n }\n }\n break;\n }\n};\nconst goTo = (option, index, context) => {\n const {\n setCurrentFocus,\n setSelected,\n selectionMode,\n disableAutoSelectOnFocus,\n onSelectionChange,\n items,\n controlled\n } = context;\n scrollToOption(option);\n if (disableAutoSelectOnFocus || selectionMode === \"multiple\") {\n setCurrentFocus(option?.id);\n return;\n }\n setCurrentFocus(option?.id);\n if (controlled) return;\n if (items) {\n const enabledItems = items.filter((item) => !item?.disabled);\n setSelected(enabledItems[index]);\n onSelectionChange?.(enabledItems[index]);\n } else {\n setSelected(option?.id);\n onSelectionChange?.(option?.id);\n }\n};\n\nconst ListboxContext = createContext(\n null\n);\nconst ListboxElement = function(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n selectionMode = \"single\",\n items,\n children,\n onKeyDown,\n onFocus,\n onSelectionChange,\n selected: selectedProp,\n defaultSelected,\n disableAutoSelectOnFocus,\n style,\n ...rest\n } = componentProps;\n const listboxRef = useRef(null);\n const [selected, setSelected] = useState(\n selectedProp || defaultSelected\n );\n const [options, setOptions] = useState();\n const [typeAhead, updateTypeAhead] = useTypeAhead();\n const [currentFocus, setCurrentFocus] = useState(\n Array.isArray(selected) ? typeof selected[0] === \"object\" ? selected[0].label : selected[0] : typeof selected === \"object\" ? selected?.label : selected\n );\n const ListboxClassNames = cx(styles[\"listbox\"], className, {});\n const controlled = selectedProp !== void 0;\n useEffect(() => {\n if (listboxRef.current) {\n setOptions(\n listboxRef.current.querySelectorAll(\n \"[role=option]:not([aria-disabled='true'])\"\n )\n );\n }\n }, [items, listboxRef, selectionMode]);\n useEffect(() => {\n if (\"selected\" in componentProps) {\n setSelected(selectedProp);\n }\n }, [selectedProp]);\n useEffect(() => {\n if (!typeAhead.length) {\n return;\n }\n const lowerTypeAhead = typeAhead.toLowerCase();\n const nodes = options && Array.from(options).filter(\n (node2) => node2.innerText.toLowerCase().startsWith(lowerTypeAhead)\n );\n if (!nodes?.length) {\n return;\n }\n let node = nodes[0];\n if (lowerTypeAhead.length === 1 && nodes.length > 1) {\n const focusIndex = currentFocus ? nodes.map((node2) => node2.id).indexOf(currentFocus) : -1;\n if (focusIndex > -1) {\n let nextFocusIndex = focusIndex + 1;\n if (nextFocusIndex === nodes.length) {\n nextFocusIndex = 0;\n }\n node = nodes[nextFocusIndex];\n }\n }\n setCurrentFocus(node.id);\n scrollToOption(node);\n if (controlled) return;\n if (selectionMode === \"single\") {\n if (items) {\n if (disableAutoSelectOnFocus) {\n const focusedItem = items.find(\n (item) => item.label === currentFocus\n );\n setSelected?.(focusedItem);\n onSelectionChange?.(focusedItem);\n }\n return;\n }\n if (!items) {\n if (disableAutoSelectOnFocus) {\n setSelected(node.id);\n onSelectionChange?.(node.id);\n }\n return;\n }\n }\n }, [typeAhead]);\n const onKeyDownHandler = (e) => {\n onKeyDown?.(e);\n if (new RegExp(/^[a-zA-Z0-9]$/i).test(e.key)) {\n e.preventDefault();\n e.stopPropagation();\n updateTypeAhead(e.key);\n return;\n }\n onListboxKeyDown(e, {\n setCurrentFocus,\n currentFocus,\n setSelected,\n selected,\n selectionMode,\n options,\n onSelectionChange,\n disableAutoSelectOnFocus: !!disableAutoSelectOnFocus,\n items\n });\n };\n const onFocusHandler = (e) => {\n onFocus?.(e);\n if (!options) return;\n if (selectionMode === \"single\") {\n const currentFocusExists = Array.from(options).some(\n (item) => item.id === currentFocus\n );\n if (currentFocus && currentFocusExists) return;\n if (!items) {\n if (currentFocusExists) {\n setCurrentFocus(selected);\n return;\n }\n setCurrentFocus(options[0].id);\n return;\n }\n if (currentFocusExists) {\n setCurrentFocus(selected?.label);\n return;\n }\n setCurrentFocus(items?.[0].label);\n return;\n }\n if (selectionMode === \"multiple\") {\n const selectedArr = Array.isArray(selected) ? selected : [selected];\n const currentFocusExists = Array.from(options).some(\n (item) => item.id === currentFocus\n );\n if (currentFocus && currentFocusExists) return;\n if (!items) {\n console.log({ currentFocus, currentFocusExists });\n if (currentFocusExists) {\n setCurrentFocus(selectedArr[0].label);\n return;\n }\n setCurrentFocus(options[0].id);\n return;\n }\n if (currentFocusExists) {\n setCurrentFocus(selectedArr[0]?.label);\n return;\n }\n setCurrentFocus(items?.[0].label);\n return;\n }\n setCurrentFocus(options[0].id);\n };\n const mergeRef = useMergeRefs([ref, listboxRef]);\n const styleCombined = {\n ...style,\n ...layoutStyles\n };\n const value = useMemo(\n () => ({\n setCurrentFocus,\n currentFocus,\n setSelected,\n selected,\n selectionMode,\n items,\n options,\n onSelectionChange,\n disableAutoSelectOnFocus: !!disableAutoSelectOnFocus,\n controlled\n }),\n [\n currentFocus,\n disableAutoSelectOnFocus,\n onSelectionChange,\n options,\n selected,\n selectionMode,\n items,\n controlled\n ]\n );\n return /* @__PURE__ */ jsx(ListboxContext.Provider, { value, children: /* @__PURE__ */ jsx(\n \"ul\",\n {\n tabIndex: 0,\n role: \"listbox\",\n style: styleCombined,\n \"aria-multiselectable\": selectionMode === \"multiple\" ? \"true\" : \"false\",\n \"aria-activedescendant\": currentFocus,\n className: ListboxClassNames,\n \"data-anv\": \"listbox\",\n onKeyDown: onKeyDownHandler,\n onFocus: onFocusHandler,\n ...rest,\n ref: mergeRef,\n children: items ? children?.({ items }) : children\n }\n ) });\n};\nconst useListbox = () => {\n const context = useContext(ListboxContext);\n if (context == null) {\n throw new Error(\"useListbox must be wrapped in <Listbox />\");\n }\n return context;\n};\nListboxElement.displayName = \"Listbox\";\nconst Listbox = Object.assign(\n forwardRef(ListboxElement),\n {\n /**\n * ListboxOption component for individual selectable items within a listbox.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n *\n * @example\n * <Listbox.Option value=\"option1\" label=\"Option 1\" />\n */\n Option: ListboxOption,\n /**\n * ListboxOptionGroup component for grouping related options within a listbox.\n *\n * Features:\n * - Groups related options with a descriptive label\n * - Maintains proper ARIA structure for accessibility\n * - Supports keyboard navigation within groups\n * - Visual separation of option categories\n *\n * @example\n * <Listbox.OptionGroup label=\"Fruits\">\n * <Listbox.Option value=\"apple\">Apple</Listbox.Option>\n * <Listbox.Option value=\"banana\">Banana</Listbox.Option>\n * </Listbox.OptionGroup>\n */\n OptionGroup: ListboxOptionGroup\n }\n);\n\nexport { Listbox as L, ListboxOption as a, ListboxOptionGroup as b };\n//# sourceMappingURL=Listbox-B-WUuj-_.js.map\n"],"names":["Check"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
3
  import { useTrackingId } from './useTrackingId.js';
4
- import { L as ListboxOption$1, a as ListboxOptionGroup$1, b as Listbox$1 } from './Listbox-BvJLSAVO-Br5k6fmq.js';
4
+ import { L as ListboxOption$1, a as ListboxOptionGroup$1, b as Listbox$1 } from './Listbox-B-WUuj-_-BWWeWtLW.js';
5
5
 
6
6
  const ListboxElement = function(props, ref) {
7
7
  return /* @__PURE__ */ jsx(Listbox$1, { ref, ...props });
@@ -64,4 +64,4 @@ const Listbox = Object.assign(
64
64
  );
65
65
 
66
66
  export { Listbox as L, ListboxOption as a, ListboxOptionGroup as b };
67
- //# sourceMappingURL=Listbox-dVARiucB.js.map
67
+ //# sourceMappingURL=Listbox-Di6OS1Fk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Listbox-dVARiucB.js","sources":["../src/components/Listbox/Listbox.tsx"],"sourcesContent":["import {\n ListboxProps as CoreListboxProps,\n Listbox as CoreListbox,\n ListboxOption as CoreListboxOption,\n ListboxOptionProps as CoreListboxOptionProps,\n ListboxOptionGroup as CoreListboxOptionGroup,\n ListboxOptionGroupProps as CoreListboxOptionGroupProps,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef, ForwardedRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the Listbox component\n * @property {\"single\" | \"multiple\"} [selectionMode] - Selection mode for the listbox\n * @property {boolean} [disableAutoSelectOnFocus] - Whether to disable automatic selection when focusing on an option\n * @property {string | string[] | ItemType<T> | ItemType<T>[]} [selected] - Currently selected item(s) (controlled)\n * @property {string | string[] | ItemType<T> | ItemType<T>[]} [defaultSelected] - Default selected item(s) (uncontrolled)\n * @property {function} [onSelectionChange] - Callback when selection changes\n * @property {ItemType<T>[]} [items] - Array of items to render (when using items prop)\n * @property {ReactNode | function} [children] - Child elements or render function for items\n * @extends ComponentPropsWithoutRef<\"ul\">\n * @extends LayoutUtilProps\n */\nexport type ListboxProps<T> = CoreListboxProps<T>;\n\n/**\n * Props for the ListboxOption component\n * @property {string} value - The value of the option\n * @property {string} [label] - The display label for the option\n * @property {boolean} [disabled] - Whether the option is disabled\n * @property {ItemType<T>} [item] - The item object when using items prop\n * @extends ComponentPropsWithoutRef<\"li\">\n */\nexport type ListboxOptionProps = CoreListboxOptionProps & DataTrackingId;\n\n/**\n * Props for the ListboxOptionGroup component\n * @property {string} label - The label for the option group\n * @property {ReactNode} children - The options within this group\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type ListboxOptionGroupProps = CoreListboxOptionGroupProps;\n\n/**\n * Listbox component for selecting one or more items from a list\n *\n * Features:\n * - Supports single and multiple selection modes\n * - Keyboard navigation with arrow keys and type-ahead\n * - Optional auto-selection on focus\n * - Controlled and uncontrolled modes\n * - Accessible with proper ARIA attributes\n * - Supports custom item rendering\n * - Option grouping for organization\n * - Layout utilities for positioning and spacing\n * - Automatic tracking ID generation for analytics\n *\n * @template T - The type of additional properties for items\n * @example\n * <Listbox selectionMode=\"single\" onSelectionChange={handleSelection}>\n * <Listbox.Option value=\"option1\">Option 1</Listbox.Option>\n * <Listbox.Option value=\"option2\">Option 2</Listbox.Option>\n * </Listbox>\n */\nconst ListboxElement = function <T>(\n props: ListboxProps<T>,\n ref: ForwardedRef<HTMLUListElement>,\n) {\n return <CoreListbox ref={ref} {...props} />;\n};\n\n/**\n * ListboxOption component for individual selectable items within a listbox\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Automatic tracking ID generation for analytics\n * - Accessible with screen reader support\n *\n * @example\n * <ListboxOption value=\"option1\" label=\"Option 1\" />\n */\nexport const ListboxOption = forwardRef(\n (props: ListboxOptionProps, ref: Ref<HTMLLIElement>) => {\n const data = {\n value: props.value,\n label: \"item\" in props ? props.item?.label : props.label,\n };\n\n const trackingId = useTrackingId({\n name: \"ListboxOption\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <CoreListboxOption ref={ref} data-tracking-id={trackingId} {...props} />\n );\n },\n);\n\nListboxOption.displayName = CoreListboxOption.displayName;\n\n/**\n * ListboxOptionGroup component for grouping related options within a listbox\n *\n * Features:\n * - Groups related options with a descriptive label\n * - Maintains proper ARIA structure for accessibility\n * - Supports keyboard navigation within groups\n * - Visual separation of option categories\n *\n * @example\n * <ListboxOptionGroup label=\"Fruits\">\n * <ListboxOption value=\"apple\">Apple</ListboxOption>\n * <ListboxOption value=\"banana\">Banana</ListboxOption>\n * </ListboxOptionGroup>\n */\nexport const ListboxOptionGroup = forwardRef(\n (props: ListboxOptionGroupProps, ref: Ref<HTMLDivElement>) => {\n return <CoreListboxOptionGroup ref={ref} {...props} />;\n },\n);\nListboxOptionGroup.displayName = CoreListboxOptionGroup.displayName;\n\n/**\n * Listbox component for selecting one or more items from a list\n *\n * Features:\n * - Supports single and multiple selection modes\n * - Keyboard navigation with arrow keys and type-ahead\n * - Optional auto-selection on focus\n * - Controlled and uncontrolled modes\n * - Accessible with proper ARIA attributes\n * - Supports custom item rendering\n * - Option grouping for organization\n * - Layout utilities for positioning and spacing\n * - Automatic tracking ID generation for analytics\n *\n * @template T - The type of additional properties for items\n * @example\n * <Listbox selectionMode=\"single\" onSelectionChange={handleSelection}>\n * <Listbox.Option value=\"option1\">Option 1</Listbox.Option>\n * <Listbox.Option value=\"option2\">Option 2</Listbox.Option>\n * </Listbox>\n */\nexport const Listbox = Object.assign(\n forwardRef(ListboxElement) as <T>(\n props: ListboxProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListboxElement>,\n {\n /**\n * ListboxOption component for individual selectable items within a listbox\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Automatic tracking ID generation for analytics\n * - Accessible with screen reader support\n *\n * @example\n * <Listbox.Option value=\"option1\" label=\"Option 1\" />\n */\n Option: ListboxOption,\n /**\n * ListboxOptionGroup component for grouping related options within a listbox\n *\n * Features:\n * - Groups related options with a descriptive label\n * - Maintains proper ARIA structure for accessibility\n * - Supports keyboard navigation within groups\n * - Visual separation of option categories\n *\n * @example\n * <Listbox.OptionGroup label=\"Fruits\">\n * <Listbox.Option value=\"apple\">Apple</Listbox.Option>\n * <Listbox.Option value=\"banana\">Banana</Listbox.Option>\n * </Listbox.OptionGroup>\n */\n OptionGroup: ListboxOptionGroup,\n },\n);\n"],"names":["CoreListbox","CoreListboxOption","CoreListboxOptionGroup"],"mappings":";;;;;AAiEA,MAAM,cAAA,GAAiB,SACrB,KAAA,EACA,GACA,EAAA;AACA,EAAA,uBAAQ,GAAA,CAAAA,SAAA,EAAA,EAAY,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA;AAC3C,CAAA;AAeO,MAAM,aAAgB,GAAA,UAAA;AAAA,EAC3B,CAAC,OAA2B,GAA4B,KAAA;AACtD,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,OAAO,KAAM,CAAA,KAAA;AAAA,MACb,OAAO,MAAU,IAAA,KAAA,GAAQ,KAAM,CAAA,IAAA,EAAM,QAAQ,KAAM,CAAA;AAAA,KACrD;AAEA,IAAA,MAAM,aAAa,aAAc,CAAA;AAAA,MAC/B,IAAM,EAAA,eAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,2BACGC,eAAkB,EAAA,EAAA,GAAA,EAAU,kBAAkB,EAAA,UAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AAAA;AAG5E;AAEA,aAAA,CAAc,cAAcA,eAAkB,CAAA,WAAA;AAiBvC,MAAM,kBAAqB,GAAA,UAAA;AAAA,EAChC,CAAC,OAAgC,GAA6B,KAAA;AAC5D,IAAA,uBAAQ,GAAA,CAAAC,oBAAA,EAAA,EAAuB,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA;AAAA;AAExD;AACA,kBAAA,CAAmB,cAAcA,oBAAuB,CAAA,WAAA;AAuBjD,MAAM,UAAU,MAAO,CAAA,MAAA;AAAA,EAC5B,WAAW,cAAc,CAAA;AAAA,EAGzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcE,MAAQ,EAAA,aAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAgBR,WAAa,EAAA;AAAA;AAEjB;;;;"}
1
+ {"version":3,"file":"Listbox-Di6OS1Fk.js","sources":["../src/components/Listbox/Listbox.tsx"],"sourcesContent":["import {\n ListboxProps as CoreListboxProps,\n Listbox as CoreListbox,\n ListboxOption as CoreListboxOption,\n ListboxOptionProps as CoreListboxOptionProps,\n ListboxOptionGroup as CoreListboxOptionGroup,\n ListboxOptionGroupProps as CoreListboxOptionGroupProps,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef, ForwardedRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the Listbox component\n * @property {\"single\" | \"multiple\"} [selectionMode] - Selection mode for the listbox\n * @property {boolean} [disableAutoSelectOnFocus] - Whether to disable automatic selection when focusing on an option\n * @property {string | string[] | ItemType<T> | ItemType<T>[]} [selected] - Currently selected item(s) (controlled)\n * @property {string | string[] | ItemType<T> | ItemType<T>[]} [defaultSelected] - Default selected item(s) (uncontrolled)\n * @property {function} [onSelectionChange] - Callback when selection changes\n * @property {ItemType<T>[]} [items] - Array of items to render (when using items prop)\n * @property {ReactNode | function} [children] - Child elements or render function for items\n * @extends ComponentPropsWithoutRef<\"ul\">\n * @extends LayoutUtilProps\n */\nexport type ListboxProps<T> = CoreListboxProps<T>;\n\n/**\n * Props for the ListboxOption component\n * @property {string} value - The value of the option\n * @property {string} [label] - The display label for the option\n * @property {boolean} [disabled] - Whether the option is disabled\n * @property {ItemType<T>} [item] - The item object when using items prop\n * @extends ComponentPropsWithoutRef<\"li\">\n */\nexport type ListboxOptionProps = CoreListboxOptionProps & DataTrackingId;\n\n/**\n * Props for the ListboxOptionGroup component\n * @property {string} label - The label for the option group\n * @property {ReactNode} children - The options within this group\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type ListboxOptionGroupProps = CoreListboxOptionGroupProps;\n\n/**\n * Listbox component for selecting one or more items from a list\n *\n * Features:\n * - Supports single and multiple selection modes\n * - Keyboard navigation with arrow keys and type-ahead\n * - Optional auto-selection on focus\n * - Controlled and uncontrolled modes\n * - Accessible with proper ARIA attributes\n * - Supports custom item rendering\n * - Option grouping for organization\n * - Layout utilities for positioning and spacing\n * - Automatic tracking ID generation for analytics\n *\n * @template T - The type of additional properties for items\n * @example\n * <Listbox selectionMode=\"single\" onSelectionChange={handleSelection}>\n * <Listbox.Option value=\"option1\">Option 1</Listbox.Option>\n * <Listbox.Option value=\"option2\">Option 2</Listbox.Option>\n * </Listbox>\n */\nconst ListboxElement = function <T>(\n props: ListboxProps<T>,\n ref: ForwardedRef<HTMLUListElement>,\n) {\n return <CoreListbox ref={ref} {...props} />;\n};\n\n/**\n * ListboxOption component for individual selectable items within a listbox\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Automatic tracking ID generation for analytics\n * - Accessible with screen reader support\n *\n * @example\n * <ListboxOption value=\"option1\" label=\"Option 1\" />\n */\nexport const ListboxOption = forwardRef(\n (props: ListboxOptionProps, ref: Ref<HTMLLIElement>) => {\n const data = {\n value: props.value,\n label: \"item\" in props ? props.item?.label : props.label,\n };\n\n const trackingId = useTrackingId({\n name: \"ListboxOption\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <CoreListboxOption ref={ref} data-tracking-id={trackingId} {...props} />\n );\n },\n);\n\nListboxOption.displayName = CoreListboxOption.displayName;\n\n/**\n * ListboxOptionGroup component for grouping related options within a listbox\n *\n * Features:\n * - Groups related options with a descriptive label\n * - Maintains proper ARIA structure for accessibility\n * - Supports keyboard navigation within groups\n * - Visual separation of option categories\n *\n * @example\n * <ListboxOptionGroup label=\"Fruits\">\n * <ListboxOption value=\"apple\">Apple</ListboxOption>\n * <ListboxOption value=\"banana\">Banana</ListboxOption>\n * </ListboxOptionGroup>\n */\nexport const ListboxOptionGroup = forwardRef(\n (props: ListboxOptionGroupProps, ref: Ref<HTMLDivElement>) => {\n return <CoreListboxOptionGroup ref={ref} {...props} />;\n },\n);\nListboxOptionGroup.displayName = CoreListboxOptionGroup.displayName;\n\n/**\n * Listbox component for selecting one or more items from a list\n *\n * Features:\n * - Supports single and multiple selection modes\n * - Keyboard navigation with arrow keys and type-ahead\n * - Optional auto-selection on focus\n * - Controlled and uncontrolled modes\n * - Accessible with proper ARIA attributes\n * - Supports custom item rendering\n * - Option grouping for organization\n * - Layout utilities for positioning and spacing\n * - Automatic tracking ID generation for analytics\n *\n * @template T - The type of additional properties for items\n * @example\n * <Listbox selectionMode=\"single\" onSelectionChange={handleSelection}>\n * <Listbox.Option value=\"option1\">Option 1</Listbox.Option>\n * <Listbox.Option value=\"option2\">Option 2</Listbox.Option>\n * </Listbox>\n */\nexport const Listbox = Object.assign(\n forwardRef(ListboxElement) as <T>(\n props: ListboxProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListboxElement>,\n {\n /**\n * ListboxOption component for individual selectable items within a listbox\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Automatic tracking ID generation for analytics\n * - Accessible with screen reader support\n *\n * @example\n * <Listbox.Option value=\"option1\" label=\"Option 1\" />\n */\n Option: ListboxOption,\n /**\n * ListboxOptionGroup component for grouping related options within a listbox\n *\n * Features:\n * - Groups related options with a descriptive label\n * - Maintains proper ARIA structure for accessibility\n * - Supports keyboard navigation within groups\n * - Visual separation of option categories\n *\n * @example\n * <Listbox.OptionGroup label=\"Fruits\">\n * <Listbox.Option value=\"apple\">Apple</Listbox.Option>\n * <Listbox.Option value=\"banana\">Banana</Listbox.Option>\n * </Listbox.OptionGroup>\n */\n OptionGroup: ListboxOptionGroup,\n },\n);\n"],"names":["CoreListbox","CoreListboxOption","CoreListboxOptionGroup"],"mappings":";;;;;AAiEA,MAAM,cAAA,GAAiB,SACrB,KAAA,EACA,GACA,EAAA;AACA,EAAA,uBAAQ,GAAA,CAAAA,SAAA,EAAA,EAAY,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA;AAC3C,CAAA;AAeO,MAAM,aAAgB,GAAA,UAAA;AAAA,EAC3B,CAAC,OAA2B,GAA4B,KAAA;AACtD,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,OAAO,KAAM,CAAA,KAAA;AAAA,MACb,OAAO,MAAU,IAAA,KAAA,GAAQ,KAAM,CAAA,IAAA,EAAM,QAAQ,KAAM,CAAA;AAAA,KACrD;AAEA,IAAA,MAAM,aAAa,aAAc,CAAA;AAAA,MAC/B,IAAM,EAAA,eAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,2BACGC,eAAkB,EAAA,EAAA,GAAA,EAAU,kBAAkB,EAAA,UAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AAAA;AAG5E;AAEA,aAAA,CAAc,cAAcA,eAAkB,CAAA,WAAA;AAiBvC,MAAM,kBAAqB,GAAA,UAAA;AAAA,EAChC,CAAC,OAAgC,GAA6B,KAAA;AAC5D,IAAA,uBAAQ,GAAA,CAAAC,oBAAA,EAAA,EAAuB,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA;AAAA;AAExD;AACA,kBAAA,CAAmB,cAAcA,oBAAuB,CAAA,WAAA;AAuBjD,MAAM,UAAU,MAAO,CAAA,MAAA;AAAA,EAC5B,WAAW,cAAc,CAAA;AAAA,EAGzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcE,MAAQ,EAAA,aAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAgBR,WAAa,EAAA;AAAA;AAEjB;;;;"}
package/dist/Listbox.js CHANGED
@@ -1,2 +1,2 @@
1
- export { L as Listbox, a as ListboxOption, b as ListboxOptionGroup, L as default } from './Listbox-dVARiucB.js';
1
+ export { L as Listbox, a as ListboxOption, b as ListboxOptionGroup, L as default } from './Listbox-Di6OS1Fk.js';
2
2
  //# sourceMappingURL=Listbox.js.map