@servicetitan/anvil2 1.38.0 → 1.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/CHANGELOG.md +51 -12
  2. package/dist/Breadcrumbs-C_gan90a.js +36 -0
  3. package/dist/Breadcrumbs-C_gan90a.js.map +1 -0
  4. package/dist/{Breadcrumbs-DJbCkSeD.js → Breadcrumbs-D_jgwoN3-Dlw-weD8.js} +8 -38
  5. package/dist/Breadcrumbs-D_jgwoN3-Dlw-weD8.js.map +1 -0
  6. package/dist/Breadcrumbs.js +1 -1
  7. package/dist/{Calendar-jl0s6W7p.js → Calendar-C2ONV7cq.js} +2 -2
  8. package/dist/{Calendar-jl0s6W7p.js.map → Calendar-C2ONV7cq.js.map} +1 -1
  9. package/dist/{Calendar-CohGSWFp-DFYJkf7Y.js → Calendar-DixTCgAW-CfphBge0.js} +16 -15
  10. package/dist/Calendar-DixTCgAW-CfphBge0.js.map +1 -0
  11. package/dist/Calendar.js +1 -1
  12. package/dist/{Checkbox-TIcImbEx-EgjesTNn.js → Checkbox-BNrjUtHs-BBLXLwO5.js} +3 -3
  13. package/dist/{Checkbox-TIcImbEx-EgjesTNn.js.map → Checkbox-BNrjUtHs-BBLXLwO5.js.map} +1 -1
  14. package/dist/{Checkbox-DbDwtefR.js → Checkbox-Dxr3rgQV.js} +2 -2
  15. package/dist/{Checkbox-DbDwtefR.js.map → Checkbox-Dxr3rgQV.js.map} +1 -1
  16. package/dist/Checkbox.js +1 -1
  17. package/dist/{Combobox-7ADxZKDE.js → Combobox-C7nV-w8I.js} +196 -392
  18. package/dist/Combobox-C7nV-w8I.js.map +1 -0
  19. package/dist/Combobox.css +43 -281
  20. package/dist/Combobox.js +1 -1
  21. package/dist/{DateField-CUO_26rh.js → DateField-Df42sxE9.js} +43 -43
  22. package/dist/DateField-Df42sxE9.js.map +1 -0
  23. package/dist/DateField.js +1 -1
  24. package/dist/DateFieldRange--ZCTVrKX-DoogWMrm.js +2759 -0
  25. package/dist/DateFieldRange--ZCTVrKX-DoogWMrm.js.map +1 -0
  26. package/dist/DateFieldRange-DQJ_FMeA.js +22 -0
  27. package/dist/DateFieldRange-DQJ_FMeA.js.map +1 -0
  28. package/dist/DateFieldRange.d.ts +2 -0
  29. package/dist/DateFieldRange.js +2 -0
  30. package/dist/DateFieldRange.js.map +1 -0
  31. package/dist/DateFieldSingle-BXPhS91g.js +22 -0
  32. package/dist/DateFieldSingle-BXPhS91g.js.map +1 -0
  33. package/dist/DateFieldSingle.d.ts +2 -0
  34. package/dist/DateFieldSingle.js +2 -0
  35. package/dist/DateFieldSingle.js.map +1 -0
  36. package/dist/{DaysOfTheWeek-CEKoAJSv.js → DaysOfTheWeek-C4ZGriW7.js} +3 -3
  37. package/dist/{DaysOfTheWeek-CEKoAJSv.js.map → DaysOfTheWeek-C4ZGriW7.js.map} +1 -1
  38. package/dist/DaysOfTheWeek.js +1 -1
  39. package/dist/{Dialog-D6zpW-GE.js → Dialog-CBWaZO5U.js} +2 -2
  40. package/dist/{Dialog-D6zpW-GE.js.map → Dialog-CBWaZO5U.js.map} +1 -1
  41. package/dist/Dialog.js +1 -1
  42. package/dist/{Drawer-qb7Q0BAm.js → Drawer-Be0tyTMM.js} +2 -2
  43. package/dist/{Drawer-qb7Q0BAm.js.map → Drawer-Be0tyTMM.js.map} +1 -1
  44. package/dist/Drawer.js +1 -1
  45. package/dist/{FieldMessage-ChFXWVDb-loVSCnCM.js → FieldMessage-Bobp105T-DYhStLY4.js} +4 -4
  46. package/dist/FieldMessage-Bobp105T-DYhStLY4.js.map +1 -0
  47. package/dist/{FieldMessage-ChFXWVDb.css → FieldMessage-Bobp105T.css} +13 -3
  48. package/dist/{FieldMessage-Cg3zcgk5.js → FieldMessage-DkJ0K5s-.js} +2 -2
  49. package/dist/{FieldMessage-Cg3zcgk5.js.map → FieldMessage-DkJ0K5s-.js.map} +1 -1
  50. package/dist/FieldMessage.js +1 -1
  51. package/dist/{Helper-C9sHaTrI-C5fAsK6i.js → Helper-h7k80qls-DHPFHTvI.js} +3 -3
  52. package/dist/{Helper-C9sHaTrI-C5fAsK6i.js.map → Helper-h7k80qls-DHPFHTvI.js.map} +1 -1
  53. package/dist/{InputMask-kJ-hlK0O-Ctwa0U7r.js → InputMask-CiHg25XE--lofQ4oF.js} +2 -2
  54. package/dist/{InputMask-kJ-hlK0O-Ctwa0U7r.js.map → InputMask-CiHg25XE--lofQ4oF.js.map} +1 -1
  55. package/dist/{InputMask-DKPqOpHs.js → InputMask-DYthrVaU.js} +2 -2
  56. package/dist/{InputMask-DKPqOpHs.js.map → InputMask-DYthrVaU.js.map} +1 -1
  57. package/dist/InputMask.js +1 -1
  58. package/dist/{ListView-0xHc5wT6.js → ListView-DgrUsTC8.js} +3 -3
  59. package/dist/{ListView-0xHc5wT6.js.map → ListView-DgrUsTC8.js.map} +1 -1
  60. package/dist/ListView.js +1 -1
  61. package/dist/Menu-By8ps-lb.js +60 -0
  62. package/dist/Menu-By8ps-lb.js.map +1 -0
  63. package/dist/{Menu-BAuADOyt.js → Menu-jt64Cbkd-mK95uUq6.js} +23 -73
  64. package/dist/Menu-jt64Cbkd-mK95uUq6.js.map +1 -0
  65. package/dist/{Menu.css → Menu-jt64Cbkd.css} +22 -21
  66. package/dist/Menu.js +1 -1
  67. package/dist/{Page-CtwsyE3i.js → Page-DoCYLmH8.js} +135 -105
  68. package/dist/Page-DoCYLmH8.js.map +1 -0
  69. package/dist/Page.js +1 -1
  70. package/dist/Pagination.css +124 -0
  71. package/dist/Pagination.d.ts +6 -0
  72. package/dist/Pagination.js +430 -0
  73. package/dist/Pagination.js.map +1 -0
  74. package/dist/{Popover-VztF0YHt-ci3tYiye.js → Popover-CVCAWhdO-CJw1mW49.js} +3 -3
  75. package/dist/{Popover-VztF0YHt-ci3tYiye.js.map → Popover-CVCAWhdO-CJw1mW49.js.map} +1 -1
  76. package/dist/{Popover-Bnkwq99S.js → Popover-Dv7ntx4P.js} +2 -2
  77. package/dist/{Popover-Bnkwq99S.js.map → Popover-Dv7ntx4P.js.map} +1 -1
  78. package/dist/Popover.js +1 -1
  79. package/dist/{ProgressBar-Cfi5zZRy-BpESsdh_.js → ProgressBar-CZhkKwaS-dlDRDjxo.js} +24 -11
  80. package/dist/ProgressBar-CZhkKwaS-dlDRDjxo.js.map +1 -0
  81. package/dist/{ProgressBar-BotOFymw.js → ProgressBar-Eeudkcyc.js} +2 -2
  82. package/dist/{ProgressBar-BotOFymw.js.map → ProgressBar-Eeudkcyc.js.map} +1 -1
  83. package/dist/ProgressBar.js +1 -1
  84. package/dist/{Radio-7U7IBI58-BDhdZJoC.js → Radio-DiBn0-hf-hhLKXDdl.js} +4 -4
  85. package/dist/{Radio-7U7IBI58-BDhdZJoC.js.map → Radio-DiBn0-hf-hhLKXDdl.js.map} +1 -1
  86. package/dist/{Radio-D4rRt1a6.js → Radio-Dx2GeEZp.js} +2 -2
  87. package/dist/{Radio-D4rRt1a6.js.map → Radio-Dx2GeEZp.js.map} +1 -1
  88. package/dist/Radio.js +1 -1
  89. package/dist/{SearchField-Bz4HPxCQ.js → SearchField-BQY7LHe2.js} +3 -3
  90. package/dist/SearchField-BQY7LHe2.js.map +1 -0
  91. package/dist/SearchField.js +1 -1
  92. package/dist/{SelectCard-B5EqtxOK-CpCgVjV8.js → SelectCard-CL8T4DQb-ClozUyqV.js} +46 -26
  93. package/dist/SelectCard-CL8T4DQb-ClozUyqV.js.map +1 -0
  94. package/dist/SelectCard-CL8T4DQb.css +51 -0
  95. package/dist/SelectCard.js +1 -1
  96. package/dist/{SelectCardGroup-DsHZgCqA.js → SelectCardGroup-KTtcsOar.js} +2 -2
  97. package/dist/{SelectCardGroup-DsHZgCqA.js.map → SelectCardGroup-KTtcsOar.js.map} +1 -1
  98. package/dist/SelectTrigger-BvUO-g1F.js +138 -0
  99. package/dist/SelectTrigger-BvUO-g1F.js.map +1 -0
  100. package/dist/SelectTrigger.css +16 -0
  101. package/dist/SelectTrigger.d.ts +6 -0
  102. package/dist/SelectTrigger.js +2 -0
  103. package/dist/SelectTrigger.js.map +1 -0
  104. package/dist/SelectTriggerBase-BMhRDkFW-DjkagPpu.js +301 -0
  105. package/dist/SelectTriggerBase-BMhRDkFW-DjkagPpu.js.map +1 -0
  106. package/dist/SelectTriggerBase-BMhRDkFW.css +270 -0
  107. package/dist/{Switch-Dd9tJFmG.js → Switch-DAQFzi-X.js} +2 -2
  108. package/dist/{Switch-Dd9tJFmG.js.map → Switch-DAQFzi-X.js.map} +1 -1
  109. package/dist/Switch.js +1 -1
  110. package/dist/{TextField-BYyyw3m2.js → TextField-0XKj7lDu.js} +2 -2
  111. package/dist/{TextField-BYyyw3m2.js.map → TextField-0XKj7lDu.js.map} +1 -1
  112. package/dist/{TextField-CGJtMoil-CJqYM83o.js → TextField-C5KbQxoU-CSkSyt7P.js} +8 -10
  113. package/dist/TextField-C5KbQxoU-CSkSyt7P.js.map +1 -0
  114. package/dist/TextField.js +1 -1
  115. package/dist/{Textarea-AczEXhHB.js → Textarea-DkSeFIg7.js} +8 -10
  116. package/dist/Textarea-DkSeFIg7.js.map +1 -0
  117. package/dist/Textarea.js +1 -1
  118. package/dist/Toast.js +1 -1
  119. package/dist/{Toolbar-Cu3u0TRX.js → Toolbar-38Z9fVxY.js} +5 -7
  120. package/dist/Toolbar-38Z9fVxY.js.map +1 -0
  121. package/dist/Toolbar.js +1 -1
  122. package/dist/{Tooltip-BL_bgvwA.js → Tooltip-BwUVaBEo.js} +2 -2
  123. package/dist/{Tooltip-BL_bgvwA.js.map → Tooltip-BwUVaBEo.js.map} +1 -1
  124. package/dist/Tooltip.js +1 -1
  125. package/dist/assets/css-utils/a2-border.css +53 -0
  126. package/dist/assets/css-utils/a2-color.css +235 -0
  127. package/dist/assets/css-utils/a2-font.css +49 -0
  128. package/dist/assets/css-utils/a2-spacing.css +483 -0
  129. package/dist/assets/css-utils/a2-utils.css +785 -0
  130. package/dist/assets/icons/st/document_audio.svg +1 -0
  131. package/dist/assets/icons/st/document_doc.svg +1 -0
  132. package/dist/assets/icons/st/document_drawing.svg +1 -0
  133. package/dist/assets/icons/st/document_form.svg +1 -0
  134. package/dist/assets/icons/st/document_message.svg +1 -0
  135. package/dist/assets/icons/st/document_other.svg +1 -0
  136. package/dist/assets/icons/st/document_pdf.svg +1 -0
  137. package/dist/assets/icons/st/document_spreadsheet.svg +1 -0
  138. package/dist/assets/icons/st/document_text.svg +1 -0
  139. package/dist/assets/icons/st/document_web.svg +1 -0
  140. package/dist/assets/icons/st/gnav_insurance_work_queue_active.svg +1 -0
  141. package/dist/assets/icons/st/gnav_insurance_work_queue_inactive.svg +1 -0
  142. package/dist/assets/icons/st/gnav_production_work_queue_active.svg +1 -0
  143. package/dist/assets/icons/st/gnav_production_work_queue_inactive.svg +1 -0
  144. package/dist/assets/icons/st.ts +14 -0
  145. package/dist/components/Alert/Alert.figma.d.ts +1 -0
  146. package/dist/components/DateFieldRange/DateFieldRange.d.ts +7 -0
  147. package/dist/components/DateFieldRange/index.d.ts +2 -0
  148. package/dist/components/DateFieldSingle/DateFieldSingle.d.ts +7 -0
  149. package/dist/components/DateFieldSingle/index.d.ts +2 -0
  150. package/dist/components/Page/Page.d.ts +19 -352
  151. package/dist/components/Page/PageContent.d.ts +24 -0
  152. package/dist/components/Page/PageContext.d.ts +4 -0
  153. package/dist/components/Page/PageFooter.d.ts +24 -0
  154. package/dist/components/Page/PageHeader.d.ts +135 -0
  155. package/dist/components/Page/PagePanel.d.ts +57 -0
  156. package/dist/components/Page/PageSidebar.d.ts +57 -0
  157. package/dist/components/Page/PageSidebarContext.d.ts +5 -0
  158. package/dist/components/Page/PageSidebarHeader.d.ts +23 -0
  159. package/dist/components/Page/index.d.ts +5 -0
  160. package/dist/components/Pagination/Pagination.d.ts +58 -0
  161. package/dist/components/Pagination/index.d.ts +2 -0
  162. package/dist/components/Pagination/internal/usePaginationArray.d.ts +36 -0
  163. package/dist/components/SelectTrigger/SelectTrigger.d.ts +11 -0
  164. package/dist/components/SelectTrigger/index.d.ts +2 -0
  165. package/dist/components/index.d.ts +3 -0
  166. package/dist/event-BEJFimi3.js +6 -0
  167. package/dist/event-BEJFimi3.js.map +1 -0
  168. package/dist/index.js +27 -24
  169. package/dist/index.js.map +1 -1
  170. package/dist/keyboard_arrow_right-DZWNVytH.js +8 -0
  171. package/dist/keyboard_arrow_right-DZWNVytH.js.map +1 -0
  172. package/dist/more_horiz-DJgdQiy0.js +6 -0
  173. package/dist/more_horiz-DJgdQiy0.js.map +1 -0
  174. package/dist/{toast-B39L6vJ0.js → toast-CWVuLkyv.js} +2 -2
  175. package/dist/{toast-B39L6vJ0.js.map → toast-CWVuLkyv.js.map} +1 -1
  176. package/dist/token/core/css-utils/a2-border.css +53 -0
  177. package/dist/token/core/css-utils/a2-color.css +235 -0
  178. package/dist/token/core/css-utils/a2-font.css +49 -0
  179. package/dist/token/core/css-utils/a2-spacing.css +483 -0
  180. package/dist/token/core/css-utils/a2-utils.css +785 -0
  181. package/package.json +8 -5
  182. package/dist/Breadcrumbs-DJbCkSeD.js.map +0 -1
  183. package/dist/Calendar-CohGSWFp-DFYJkf7Y.js.map +0 -1
  184. package/dist/Combobox-7ADxZKDE.js.map +0 -1
  185. package/dist/DateField-CUO_26rh.js.map +0 -1
  186. package/dist/FieldMessage-ChFXWVDb-loVSCnCM.js.map +0 -1
  187. package/dist/Menu-BAuADOyt.js.map +0 -1
  188. package/dist/Page-CtwsyE3i.js.map +0 -1
  189. package/dist/ProgressBar-Cfi5zZRy-BpESsdh_.js.map +0 -1
  190. package/dist/SearchField-Bz4HPxCQ.js.map +0 -1
  191. package/dist/SelectCard-B5EqtxOK-CpCgVjV8.js.map +0 -1
  192. package/dist/SelectCard-B5EqtxOK.css +0 -38
  193. package/dist/TextField-CGJtMoil-CJqYM83o.js.map +0 -1
  194. package/dist/Textarea-AczEXhHB.js.map +0 -1
  195. package/dist/Toolbar-Cu3u0TRX.js.map +0 -1
  196. /package/dist/{Breadcrumbs.css → Breadcrumbs-D_jgwoN3.css} +0 -0
  197. /package/dist/{Calendar-CohGSWFp.css → Calendar-DixTCgAW.css} +0 -0
  198. /package/dist/{Helper-C9sHaTrI.css → Helper-h7k80qls.css} +0 -0
  199. /package/dist/{Popover-VztF0YHt.css → Popover-CVCAWhdO.css} +0 -0
  200. /package/dist/{ProgressBar-Cfi5zZRy.css → ProgressBar-CZhkKwaS.css} +0 -0
  201. /package/dist/{Radio-7U7IBI58.css → Radio-DiBn0-hf.css} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"InputMask-kJ-hlK0O-Ctwa0U7r.js","sources":["../../hammer-react/dist/InputMask-kJ-hlK0O.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { forwardRef, useRef, useMemo, isValidElement, cloneElement } from 'react';\nimport { T as TextField } from './TextField-CGJtMoil.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 return children && isValidElement(children) && children.type === \"input\" ? cloneElement(children, {\n ...mergedInputProps\n }) : /* @__PURE__ */ jsx(TextField, { ...mergedInputProps });\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-kJ-hlK0O.js.map\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InputMask-CiHg25XE--lofQ4oF.js","sources":["../../hammer-react/dist/InputMask-CiHg25XE.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { forwardRef, useRef, useMemo, isValidElement, cloneElement } from 'react';\nimport { T as TextField } from './TextField-C5KbQxoU.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 return children && isValidElement(children) && children.type === \"input\" ? cloneElement(children, {\n ...mergedInputProps\n }) : /* @__PURE__ */ jsx(TextField, { ...mergedInputProps });\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-CiHg25XE.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-kJ-hlK0O-Ctwa0U7r.js';
5
+ import { I as InputMask$1 } from './InputMask-CiHg25XE--lofQ4oF.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-DKPqOpHs.js.map
30
+ //# sourceMappingURL=InputMask-DYthrVaU.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputMask-DKPqOpHs.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-DYthrVaU.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-DKPqOpHs.js';
1
+ export { I as InputMask, I as default } from './InputMask-DYthrVaU.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-Cfi5zZRy-BpESsdh_.js';
7
- import { a as Checkbox } from './Checkbox-TIcImbEx-EgjesTNn.js';
6
+ import { g as getActiveElement } from './ProgressBar-CZhkKwaS-dlDRDjxo.js';
7
+ import { a as Checkbox } from './Checkbox-BNrjUtHs-BBLXLwO5.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-0xHc5wT6.js.map
596
+ //# sourceMappingURL=ListView-DgrUsTC8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView-0xHc5wT6.js","sources":["../../hammer-react/dist/ListView-wQ7ruaGX.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-Cfi5zZRy.js';\nimport { C as Checkbox } from './Checkbox-TIcImbEx.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-wQ7ruaGX.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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"}
1
+ {"version":3,"file":"ListView-DgrUsTC8.js","sources":["../../hammer-react/dist/ListView-BUFh_S3p.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-CZhkKwaS.js';\nimport { C as Checkbox } from './Checkbox-BNrjUtHs.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-BUFh_S3p.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-0xHc5wT6.js';
1
+ export { L as ListView, a as ListViewOption, b as ListViewOptionCell, L as default } from './ListView-DgrUsTC8.js';
2
2
  //# sourceMappingURL=ListView.js.map
@@ -0,0 +1,60 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import { useTrackingId } from './useTrackingId.js';
4
+ import { c as childrenToString } from './childrenToString-Bz9MqbHb-Bz9MqbHb.js';
5
+ import { M as MenuItem$1, a as Menu$1 } from './Menu-jt64Cbkd-mK95uUq6.js';
6
+
7
+ const MenuElement = (props) => {
8
+ const data = {
9
+ value: props.value,
10
+ ariaLabel: props["aria-label"]
11
+ };
12
+ const trackingId = useTrackingId({
13
+ name: "Menu",
14
+ data,
15
+ hasOverride: !!props["data-tracking-id"]
16
+ });
17
+ return /* @__PURE__ */ jsx(Menu$1, { "data-tracking-id": trackingId, ...props });
18
+ };
19
+ MenuElement.displayName = Menu$1.displayName;
20
+ const MenuItem = forwardRef(
21
+ (props, ref) => {
22
+ const data = {
23
+ label: childrenToString(props.label)
24
+ };
25
+ const trackingId = useTrackingId({
26
+ name: "MenuItem",
27
+ data,
28
+ hasOverride: !!props["data-tracking-id"]
29
+ });
30
+ return /* @__PURE__ */ jsx(MenuItem$1, { ref, "data-tracking-id": trackingId, ...props });
31
+ }
32
+ );
33
+ MenuItem.displayName = MenuItem$1.displayName;
34
+ const Menu = Object.assign(MenuElement, {
35
+ /**
36
+ * MenuItem component for individual menu options.
37
+ *
38
+ * Features:
39
+ * - Supports icons and labels
40
+ * - Keyboard navigation support
41
+ * - Disabled state handling
42
+ * - Automatic menu closing on selection
43
+ * - Fully accessible with proper ARIA attributes
44
+ * - Focus management and tab index handling
45
+ * - Click and mouse enter event handling
46
+ * - Legacy popover support with fallback
47
+ * - Automatic tracking ID generation for analytics
48
+ *
49
+ * @example
50
+ * <Menu.Item
51
+ * label="Edit Profile"
52
+ * icon={EditIcon}
53
+ * onClick={() => console.log('Edit profile clicked')}
54
+ * />
55
+ */
56
+ Item: MenuItem
57
+ });
58
+
59
+ export { Menu as M, MenuItem as a };
60
+ //# sourceMappingURL=Menu-By8ps-lb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu-By8ps-lb.js","sources":["../src/components/Menu/Menu.tsx"],"sourcesContent":["import {\n MenuProps as CoreMenuProps,\n Menu as CoreMenu,\n MenuItemProps as CoreMenuItemProps,\n MenuItem as CoreMenuItem,\n childrenToString,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the Menu component\n * @property {string} [value] - The value associated with the menu for tracking\n * @property {string} [aria-label] - Accessible label for the menu\n */\nexport type MenuProps = CoreMenuProps & DataTrackingId;\n\n/**\n * Props for the MenuItem component\n * @property {string} [label] - The label text for the menu item\n */\nexport type MenuItemProps = CoreMenuItemProps & DataTrackingId;\n\n// TODO: Figure out why MenuProps breaks here\nconst MenuElement = (props: MenuProps) => {\n const data = {\n value: props.value,\n ariaLabel: props[\"aria-label\"],\n };\n\n const trackingId = useTrackingId({\n name: \"Menu\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreMenu data-tracking-id={trackingId} {...props} />;\n};\nMenuElement.displayName = CoreMenu.displayName;\n\n/**\n * MenuItem component for individual menu options within a Menu.\n *\n * Features:\n * - Supports icons and labels\n * - Keyboard navigation support\n * - Disabled state handling\n * - Automatic menu closing on selection\n * - Fully accessible with proper ARIA attributes\n * - Focus management and tab index handling\n * - Click and mouse enter event handling\n * - Legacy popover support with fallback\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <MenuItem\n * label=\"Edit Profile\"\n * icon={EditIcon}\n * onClick={() => console.log('Edit profile clicked')}\n * />\n */\nexport const MenuItem = forwardRef(\n (props: MenuItemProps, ref: Ref<HTMLButtonElement>) => {\n const data = {\n label: childrenToString(props.label),\n };\n\n const trackingId = useTrackingId({\n name: \"MenuItem\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreMenuItem ref={ref} data-tracking-id={trackingId} {...props} />;\n },\n);\nMenuItem.displayName = CoreMenuItem.displayName;\n\n/**\n * Menu component for displaying dropdown menus with navigation and actions.\n *\n * Features:\n * - Supports both controlled and uncontrolled modes\n * - Automatic positioning with fallback strategies\n * - Keyboard navigation with arrow keys and escape\n * - Custom trigger elements\n * - Nested menu support\n * - Automatic height adjustment\n * - Scroll indicators for overflow content\n * - Fully accessible with proper ARIA attributes\n * - Popover API support with legacy fallback\n * - Outside click detection and handling\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Menu label=\"Edit\">\n * <Menu.Item label=\"Cut\" onClick={() => console.log('Cut clicked')} />\n * <Menu.Item label=\"Copy\" onClick={() => console.log('Copy clicked')} />\n * <Menu label=\"Copy as\">\n * <Menu.Item label=\"Text\" onClick={() => console.log('Copy as Text')} />\n * <Menu.Item label=\"Video\" onClick={() => console.log('Copy as Video')} />\n * <Menu label=\"Image\">\n * <Menu.Item label=\".png\" onClick={() => console.log('Copy as PNG')} />\n * <Menu.Item label=\".jpg\" onClick={() => console.log('Copy as JPG')} />\n * </Menu>\n * </Menu>\n * </Menu>\n */\nexport const Menu = Object.assign(MenuElement, {\n /**\n * MenuItem component for individual menu options.\n *\n * Features:\n * - Supports icons and labels\n * - Keyboard navigation support\n * - Disabled state handling\n * - Automatic menu closing on selection\n * - Fully accessible with proper ARIA attributes\n * - Focus management and tab index handling\n * - Click and mouse enter event handling\n * - Legacy popover support with fallback\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Menu.Item\n * label=\"Edit Profile\"\n * icon={EditIcon}\n * onClick={() => console.log('Edit profile clicked')}\n * />\n */\n Item: MenuItem,\n});\n"],"names":["CoreMenu","CoreMenuItem"],"mappings":";;;;;;AAyBA,MAAM,WAAA,GAAc,CAAC,KAAqB,KAAA;AACxC,EAAA,MAAM,IAAO,GAAA;AAAA,IACX,OAAO,KAAM,CAAA,KAAA;AAAA,IACb,SAAA,EAAW,MAAM,YAAY;AAAA,GAC/B;AAEA,EAAA,MAAM,aAAa,aAAc,CAAA;AAAA,IAC/B,IAAM,EAAA,MAAA;AAAA,IACN,IAAA;AAAA,IACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,GACxC,CAAA;AAED,EAAA,uBAAQ,GAAA,CAAAA,MAAA,EAAA,EAAS,kBAAkB,EAAA,UAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AAC5D,CAAA;AACA,WAAA,CAAY,cAAcA,MAAS,CAAA,WAAA;AAuB5B,MAAM,QAAW,GAAA,UAAA;AAAA,EACtB,CAAC,OAAsB,GAAgC,KAAA;AACrD,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,KAAA,EAAO,gBAAiB,CAAA,KAAA,CAAM,KAAK;AAAA,KACrC;AAEA,IAAA,MAAM,aAAa,aAAc,CAAA;AAAA,MAC/B,IAAM,EAAA,UAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,2BAAQC,UAAa,EAAA,EAAA,GAAA,EAAU,kBAAkB,EAAA,UAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AAAA;AAE5E;AACA,QAAA,CAAS,cAAcA,UAAa,CAAA,WAAA;AAgCvB,MAAA,IAAA,GAAO,MAAO,CAAA,MAAA,CAAO,WAAa,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsB7C,IAAM,EAAA;AACR,CAAC;;;;"}
@@ -1,10 +1,8 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { c as cx } from './index-tZvMCc77.js';
2
3
  import * as React from 'react';
3
4
  import { forwardRef, useContext, createContext, useState, useRef, useEffect, useMemo, useId, useCallback, useLayoutEffect } from 'react';
4
- import { useTrackingId } from './useTrackingId.js';
5
- import { c as childrenToString } from './childrenToString-Bz9MqbHb-Bz9MqbHb.js';
6
- import { c as cx } from './index-tZvMCc77.js';
7
- import { i as DialogContext, o as DrawerContext, s as supportsPopover, p as safeShowPopover, q as safeHidePopover, g as getActiveElement } from './ProgressBar-Cfi5zZRy-BpESsdh_.js';
5
+ import { i as DialogContext, o as DrawerContext, s as supportsPopover, p as safeShowPopover, q as safeHidePopover, g as getActiveElement } from './ProgressBar-CZhkKwaS-dlDRDjxo.js';
8
6
  import { B as Button } from './Button-BaHFf1AT-BQy-PFB5.js';
9
7
  import { S as SvgArrowDropDown } from './arrow_drop_down-ChAdBDux.js';
10
8
  import { I as Icon } from './Icon-B6HmlQiR-BxQkO3X5.js';
@@ -12,8 +10,9 @@ import { q as useListItem, r as useFloatingTree, t as useFloatingNodeId, v as us
12
10
  import { a as PortalProviderContext } from './PortalProvider-9lXkQ0xY-BKoGegS1.js';
13
11
  import { a as ThemeProviderContext, T as ThemeProvider } from './ThemeProvider-CR67FJg0-DYVRlJRA.js';
14
12
  import { u as useMergeRefs } from './useMergeRefs-Bde85AWI-Bde85AWI.js';
13
+ import { c as childrenToString } from './childrenToString-Bz9MqbHb-Bz9MqbHb.js';
15
14
 
16
- import './Menu.css';const SvgArrowDropUp = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M8.71 12.29 11.3 9.7a.996.996 0 0 1 1.41 0l2.59 2.59c.63.63.18 1.71-.71 1.71H9.41c-.89 0-1.33-1.08-.7-1.71z" }));
15
+ import './Menu-jt64Cbkd.css';const SvgArrowDropUp = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M8.71 12.29 11.3 9.7a.996.996 0 0 1 1.41 0l2.59 2.59c.63.63.18 1.71-.71 1.71H9.41c-.89 0-1.33-1.08-.7-1.71z" }));
17
16
 
18
17
  const SvgNavigateNext = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M9.31 6.71a.996.996 0 0 0 0 1.41L13.19 12l-3.88 3.88a.996.996 0 1 0 1.41 1.41l4.59-4.59a.996.996 0 0 0 0-1.41L10.72 6.7c-.38-.38-1.02-.38-1.41.01z" }));
19
18
 
@@ -389,18 +388,18 @@ Object.assign(MenuLegacyElement, {
389
388
  Item: MenuLegacyItem
390
389
  });
391
390
 
392
- const item = "_item_978hr_2";
393
- const content = "_content_978hr_15";
394
- const scroller = "_scroller_978hr_62";
391
+ const item = "_item_w0dno_2";
392
+ const content = "_content_w0dno_15";
393
+ const scroller = "_scroller_w0dno_63";
395
394
  const styles = {
396
395
  item: item,
397
396
  content: content,
398
397
  scroller: scroller,
399
- "arrow-down": "_arrow-down_978hr_78",
400
- "arrow-up": "_arrow-up_978hr_79",
401
- "arrow-icon": "_arrow-icon_978hr_91"};
398
+ "arrow-down": "_arrow-down_w0dno_79",
399
+ "arrow-up": "_arrow-up_w0dno_80",
400
+ "arrow-icon": "_arrow-icon_w0dno_92"};
402
401
 
403
- const MenuItem$1 = forwardRef((props, ref) => {
402
+ const MenuItem = forwardRef((props, ref) => {
404
403
  const {
405
404
  label,
406
405
  disabled,
@@ -460,7 +459,7 @@ const MenuItem$1 = forwardRef((props, ref) => {
460
459
  }
461
460
  );
462
461
  });
463
- MenuItem$1.displayName = "MenuItem";
462
+ MenuItem.displayName = "MenuItem";
464
463
 
465
464
  const MenuNested = (props) => {
466
465
  const { children, open, defaultOpen = false, label, className, icon } = props;
@@ -792,7 +791,7 @@ const MenuNested = (props) => {
792
791
  };
793
792
 
794
793
  const MenuContext = createContext(null);
795
- const MenuElement$1 = forwardRef(
794
+ const MenuElement = forwardRef(
796
795
  (props, ref) => {
797
796
  const {
798
797
  children,
@@ -804,6 +803,8 @@ const MenuElement$1 = forwardRef(
804
803
  onOutsidePress,
805
804
  trigger,
806
805
  root,
806
+ contentClassName,
807
+ maxHeight,
807
808
  ...rest
808
809
  } = props;
809
810
  const uid = useId();
@@ -855,7 +856,7 @@ const MenuElement$1 = forwardRef(
855
856
  setMenuHeight(newHeight);
856
857
  Object.assign(elements.floating.style, {
857
858
  maxWidth: `${availableWidth - 16}px`,
858
- maxHeight: `${availableHeight - 16}px`
859
+ maxHeight: maxHeight ? `${Math.min(availableHeight - 16, typeof maxHeight === "number" ? maxHeight : parseInt(maxHeight.toString()))}px` : `${availableHeight - 16}px`
859
860
  });
860
861
  }
861
862
  }
@@ -875,7 +876,8 @@ const MenuElement$1 = forwardRef(
875
876
  fallbackArr,
876
877
  menuContext?.disableAutoHeight,
877
878
  disableAutoHeight,
878
- menuHeight
879
+ menuHeight,
880
+ maxHeight
879
881
  ]);
880
882
  const menuReference = useRef(null);
881
883
  useLayoutEffect(() => {
@@ -1139,7 +1141,7 @@ const MenuElement$1 = forwardRef(
1139
1141
  popover: "manual",
1140
1142
  id: `menu-${uid.replace(/:/g, "")}`,
1141
1143
  "data-anv": "menu-content",
1142
- className: styles.content,
1144
+ className: cx(styles.content, contentClassName),
1143
1145
  onKeyDown: onKeyDownHandler,
1144
1146
  ref: menuRef,
1145
1147
  role: "presentation",
@@ -1153,7 +1155,7 @@ const MenuElement$1 = forwardRef(
1153
1155
  ref: childrenRef,
1154
1156
  style: {
1155
1157
  position: "relative",
1156
- maxHeight: menuHeight ?? "inherit"
1158
+ maxHeight: maxHeight ? `${Math.min(menuHeight ?? Infinity, typeof maxHeight === "number" ? maxHeight : parseInt(maxHeight.toString()))}px` : menuHeight ?? "inherit"
1157
1159
  },
1158
1160
  onScroll: (e) => setScrollTop(e.currentTarget.scrollTop),
1159
1161
  role: "menu",
@@ -1168,57 +1170,7 @@ const MenuElement$1 = forwardRef(
1168
1170
  ] });
1169
1171
  }
1170
1172
  );
1171
- MenuElement$1.displayName = "Menu";
1172
- const Menu$1 = Object.assign(MenuElement$1, {
1173
- /**
1174
- * MenuItem component for individual menu options.
1175
- *
1176
- * Features:
1177
- * - Supports icons and labels
1178
- * - Keyboard navigation support
1179
- * - Disabled state handling
1180
- * - Automatic menu closing on selection
1181
- * - Fully accessible with proper ARIA attributes
1182
- * - Focus management and tab index handling
1183
- * - Click and mouse enter event handling
1184
- *
1185
- * @example
1186
- * <Menu.Item
1187
- * label="Edit Profile"
1188
- * icon={EditIcon}
1189
- * onClick={() => console.log('Edit profile clicked')}
1190
- * />
1191
- */
1192
- Item: MenuItem$1
1193
- });
1194
-
1195
- const MenuElement = (props) => {
1196
- const data = {
1197
- value: props.value,
1198
- ariaLabel: props["aria-label"]
1199
- };
1200
- const trackingId = useTrackingId({
1201
- name: "Menu",
1202
- data,
1203
- hasOverride: !!props["data-tracking-id"]
1204
- });
1205
- return /* @__PURE__ */ jsx(Menu$1, { "data-tracking-id": trackingId, ...props });
1206
- };
1207
- MenuElement.displayName = Menu$1.displayName;
1208
- const MenuItem = forwardRef(
1209
- (props, ref) => {
1210
- const data = {
1211
- label: childrenToString(props.label)
1212
- };
1213
- const trackingId = useTrackingId({
1214
- name: "MenuItem",
1215
- data,
1216
- hasOverride: !!props["data-tracking-id"]
1217
- });
1218
- return /* @__PURE__ */ jsx(MenuItem$1, { ref, "data-tracking-id": trackingId, ...props });
1219
- }
1220
- );
1221
- MenuItem.displayName = MenuItem$1.displayName;
1173
+ MenuElement.displayName = "Menu";
1222
1174
  const Menu = Object.assign(MenuElement, {
1223
1175
  /**
1224
1176
  * MenuItem component for individual menu options.
@@ -1231,8 +1183,6 @@ const Menu = Object.assign(MenuElement, {
1231
1183
  * - Fully accessible with proper ARIA attributes
1232
1184
  * - Focus management and tab index handling
1233
1185
  * - Click and mouse enter event handling
1234
- * - Legacy popover support with fallback
1235
- * - Automatic tracking ID generation for analytics
1236
1186
  *
1237
1187
  * @example
1238
1188
  * <Menu.Item
@@ -1244,5 +1194,5 @@ const Menu = Object.assign(MenuElement, {
1244
1194
  Item: MenuItem
1245
1195
  });
1246
1196
 
1247
- export { Menu as M, MenuItem as a };
1248
- //# sourceMappingURL=Menu-BAuADOyt.js.map
1197
+ export { MenuItem as M, Menu as a };
1198
+ //# sourceMappingURL=Menu-jt64Cbkd-mK95uUq6.js.map