@servicetitan/anvil2 2.9.2 → 2.9.3

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 (156) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/{AiMark-DhgDh95y.js → AiMark-Dge6ktmW.js} +2 -2
  3. package/dist/{AiMark-DhgDh95y.js.map → AiMark-Dge6ktmW.js.map} +1 -1
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-DffLPz0l.js → Alert-B83r7r7T.js} +2 -2
  6. package/dist/{Alert-DffLPz0l.js.map → Alert-B83r7r7T.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{Breadcrumbs-CkPZHJGM.js → Breadcrumbs-c-0298cq.js} +2 -2
  9. package/dist/{Breadcrumbs-CkPZHJGM.js.map → Breadcrumbs-c-0298cq.js.map} +1 -1
  10. package/dist/Breadcrumbs.js +1 -1
  11. package/dist/{Calendar-0DG2so95.js → Calendar-BHH6BxIs.js} +2 -2
  12. package/dist/{Calendar-0DG2so95.js.map → Calendar-BHH6BxIs.js.map} +1 -1
  13. package/dist/{Calendar-CaWPwtb3.js → Calendar-Bl6ZSodE.js} +2 -2
  14. package/dist/{Calendar-CaWPwtb3.js.map → Calendar-Bl6ZSodE.js.map} +1 -1
  15. package/dist/Calendar.js +2 -2
  16. package/dist/{Checkbox-CTR7JfWk.js → Checkbox-CmuW0fml.js} +2 -2
  17. package/dist/{Checkbox-CTR7JfWk.js.map → Checkbox-CmuW0fml.js.map} +1 -1
  18. package/dist/{Checkbox-B1I1OfZU.js → Checkbox-DuQLvvM8.js} +3 -3
  19. package/dist/{Checkbox-B1I1OfZU.js.map → Checkbox-DuQLvvM8.js.map} +1 -1
  20. package/dist/Checkbox.js +1 -1
  21. package/dist/{Chip-lIWu8uXb.js → Chip-DVzFbbgS.js} +2 -2
  22. package/dist/{Chip-lIWu8uXb.js.map → Chip-DVzFbbgS.js.map} +1 -1
  23. package/dist/Chip.js +1 -1
  24. package/dist/{Combobox-Dt3AnO9Z.js → Combobox-BlFWPOin.js} +3 -3
  25. package/dist/{Combobox-Dt3AnO9Z.js.map → Combobox-BlFWPOin.js.map} +1 -1
  26. package/dist/Combobox.js +1 -1
  27. package/dist/{DataTable-bMoIuYBK.js → DataTable-BA-Kn63l.js} +327 -117
  28. package/dist/DataTable-BA-Kn63l.js.map +1 -0
  29. package/dist/DataTable.css +200 -121
  30. package/dist/{DateFieldRange-B_D6v-F7.js → DateFieldRange-4axIJ9QU.js} +4 -4
  31. package/dist/{DateFieldRange-B_D6v-F7.js.map → DateFieldRange-4axIJ9QU.js.map} +1 -1
  32. package/dist/DateFieldRange.js +1 -1
  33. package/dist/{DateFieldSingle-D_Ve0E6q.js → DateFieldSingle-qGf_thDE.js} +4 -4
  34. package/dist/{DateFieldSingle-D_Ve0E6q.js.map → DateFieldSingle-qGf_thDE.js.map} +1 -1
  35. package/dist/DateFieldSingle.js +1 -1
  36. package/dist/{DateFieldYearless-Bg7OLIsT.js → DateFieldYearless-UTq-FBLX.js} +4 -4
  37. package/dist/{DateFieldYearless-Bg7OLIsT.js.map → DateFieldYearless-UTq-FBLX.js.map} +1 -1
  38. package/dist/DateFieldYearless.js +1 -1
  39. package/dist/{DateFieldYearlessRange-C40uUmLK.js → DateFieldYearlessRange-Bdf7R_tb.js} +3 -3
  40. package/dist/{DateFieldYearlessRange-C40uUmLK.js.map → DateFieldYearlessRange-Bdf7R_tb.js.map} +1 -1
  41. package/dist/DateFieldYearlessRange.js +1 -1
  42. package/dist/{DaysOfTheWeek-2a8Ukq59.js → DaysOfTheWeek-DneS1Y3_.js} +3 -3
  43. package/dist/{DaysOfTheWeek-2a8Ukq59.js.map → DaysOfTheWeek-DneS1Y3_.js.map} +1 -1
  44. package/dist/DaysOfTheWeek.js +1 -1
  45. package/dist/{Dialog-zxpNOCDS.js → Dialog-C6tkX_v7.js} +3 -3
  46. package/dist/{Dialog-zxpNOCDS.js.map → Dialog-C6tkX_v7.js.map} +1 -1
  47. package/dist/Dialog.js +1 -1
  48. package/dist/{Drawer-DkCcE434.js → Drawer-5Hj96MyV.js} +3 -3
  49. package/dist/{Drawer-DkCcE434.js.map → Drawer-5Hj96MyV.js.map} +1 -1
  50. package/dist/Drawer.js +1 -1
  51. package/dist/DrillDown.js +1 -1
  52. package/dist/{EditCard-BKHmnbKP.js → EditCard-CJWjBx2_.js} +2 -2
  53. package/dist/{EditCard-BKHmnbKP.js.map → EditCard-CJWjBx2_.js.map} +1 -1
  54. package/dist/EditCard.js +1 -1
  55. package/dist/{FieldLabel-M5v4-PAV.js → FieldLabel-Qxe_2xNX.js} +3 -3
  56. package/dist/{FieldLabel-M5v4-PAV.js.map → FieldLabel-Qxe_2xNX.js.map} +1 -1
  57. package/dist/FieldLabel.js +1 -1
  58. package/dist/{InputMask-PVCfJodz.js → InputMask-CcbJbNCy.js} +3 -3
  59. package/dist/{InputMask-PVCfJodz.js.map → InputMask-CcbJbNCy.js.map} +1 -1
  60. package/dist/InputMask.js +1 -1
  61. package/dist/{ListView-DT32FdKH.js → ListView-D724tdzO.js} +2 -2
  62. package/dist/{ListView-DT32FdKH.js.map → ListView-D724tdzO.js.map} +1 -1
  63. package/dist/ListView.js +1 -1
  64. package/dist/{Listbox-BR0HTJaM.js → Listbox-C7IBAFy_.js} +2 -2
  65. package/dist/{Listbox-BR0HTJaM.js.map → Listbox-C7IBAFy_.js.map} +1 -1
  66. package/dist/Listbox.js +1 -1
  67. package/dist/MultiSelectField.js +1 -1
  68. package/dist/{MultiSelectFieldSync-fV2O5J0N.js → MultiSelectFieldSync-BRXRCOvC.js} +5 -5
  69. package/dist/{MultiSelectFieldSync-fV2O5J0N.js.map → MultiSelectFieldSync-BRXRCOvC.js.map} +1 -1
  70. package/dist/MultiSelectMenu.js +1 -1
  71. package/dist/{MultiSelectMenuSync-BViWKlX1.js → MultiSelectMenuSync-DRs3iDQN.js} +3 -3
  72. package/dist/{MultiSelectMenuSync-BViWKlX1.js.map → MultiSelectMenuSync-DRs3iDQN.js.map} +1 -1
  73. package/dist/{NumberField-BxWTjbmF.js → NumberField-Ca-B_7Q5.js} +3 -3
  74. package/dist/{NumberField-BxWTjbmF.js.map → NumberField-Ca-B_7Q5.js.map} +1 -1
  75. package/dist/NumberField.js +1 -1
  76. package/dist/{Page-DFjOwTzH.js → Page-DJIcjeg7.js} +8 -8
  77. package/dist/{Page-DFjOwTzH.js.map → Page-DJIcjeg7.js.map} +1 -1
  78. package/dist/Page.js +1 -1
  79. package/dist/{Pagination-B9pdkp_V.js → Pagination-C7O7o6tl.js} +2 -2
  80. package/dist/{Pagination-B9pdkp_V.js.map → Pagination-C7O7o6tl.js.map} +1 -1
  81. package/dist/Pagination.js +1 -1
  82. package/dist/{ProgressBar-CFKKuXeN.js → ProgressBar-gMNOCMkq.js} +2 -2
  83. package/dist/{ProgressBar-CFKKuXeN.js.map → ProgressBar-gMNOCMkq.js.map} +1 -1
  84. package/dist/ProgressBar.js +1 -1
  85. package/dist/{Radio-CeVjHOXe.js → Radio-B_TLtNDx.js} +2 -2
  86. package/dist/{Radio-CeVjHOXe.js.map → Radio-B_TLtNDx.js.map} +1 -1
  87. package/dist/{Radio-Dda5sh2r.js → Radio-Cm_MS-YF.js} +3 -3
  88. package/dist/{Radio-Dda5sh2r.js.map → Radio-Cm_MS-YF.js.map} +1 -1
  89. package/dist/Radio.js +1 -1
  90. package/dist/{SelectCard-COJn0wT6.js → SelectCard-BbZcAhq1.js} +3 -3
  91. package/dist/{SelectCard-COJn0wT6.js.map → SelectCard-BbZcAhq1.js.map} +1 -1
  92. package/dist/SelectCard.js +1 -1
  93. package/dist/SelectField.js +1 -1
  94. package/dist/{SelectFieldLabel-ChEvk0uS.js → SelectFieldLabel-CktsTa2n.js} +2 -2
  95. package/dist/{SelectFieldLabel-ChEvk0uS.js.map → SelectFieldLabel-CktsTa2n.js.map} +1 -1
  96. package/dist/{SelectFieldSync-CDIRIYv2.js → SelectFieldSync-DFnRsT54.js} +4 -4
  97. package/dist/{SelectFieldSync-CDIRIYv2.js.map → SelectFieldSync-DFnRsT54.js.map} +1 -1
  98. package/dist/SelectMenu.js +1 -1
  99. package/dist/{SelectMenuSync-DkQrikHz.js → SelectMenuSync-ghETSNCu.js} +3 -3
  100. package/dist/{SelectMenuSync-DkQrikHz.js.map → SelectMenuSync-ghETSNCu.js.map} +1 -1
  101. package/dist/{SelectOptions-BN1tCi7P.js → SelectOptions-D4VTheY3.js} +2 -2
  102. package/dist/{SelectOptions-BN1tCi7P.js.map → SelectOptions-D4VTheY3.js.map} +1 -1
  103. package/dist/{SelectTrigger-LZUtpAFW.js → SelectTrigger-BpqY5C5I.js} +2 -2
  104. package/dist/{SelectTrigger-LZUtpAFW.js.map → SelectTrigger-BpqY5C5I.js.map} +1 -1
  105. package/dist/SelectTrigger.js +1 -1
  106. package/dist/{SelectTriggerBase-qeFownmF.js → SelectTriggerBase-CuchBk53.js} +3 -3
  107. package/dist/{SelectTriggerBase-qeFownmF.js.map → SelectTriggerBase-CuchBk53.js.map} +1 -1
  108. package/dist/{Switch-3u7oAQQV.js → Switch-rvb_rYeS.js} +2 -2
  109. package/dist/{Switch-3u7oAQQV.js.map → Switch-rvb_rYeS.js.map} +1 -1
  110. package/dist/Switch.js +1 -1
  111. package/dist/Table.js +1 -1
  112. package/dist/{Text-DQ78JchQ.js → Text-BRUESjpN.js} +2 -2
  113. package/dist/{Text-DQ78JchQ.js.map → Text-BRUESjpN.js.map} +1 -1
  114. package/dist/Text.js +1 -1
  115. package/dist/{TextField-DHk1k3cf.js → TextField-Be-VJZPT.js} +3 -3
  116. package/dist/{TextField-DHk1k3cf.js.map → TextField-Be-VJZPT.js.map} +1 -1
  117. package/dist/{TextField-Bu5kAe9_.js → TextField-CMkLsLLk.js} +2 -2
  118. package/dist/{TextField-Bu5kAe9_.js.map → TextField-CMkLsLLk.js.map} +1 -1
  119. package/dist/TextField.js +1 -1
  120. package/dist/{Textarea-CYv02rxW.js → Textarea-DLUFxF7O.js} +3 -3
  121. package/dist/{Textarea-CYv02rxW.js.map → Textarea-DLUFxF7O.js.map} +1 -1
  122. package/dist/Textarea.js +1 -1
  123. package/dist/{TimeField-BYtP64Qx.js → TimeField-D7pAP5pv.js} +4 -4
  124. package/dist/{TimeField-BYtP64Qx.js.map → TimeField-D7pAP5pv.js.map} +1 -1
  125. package/dist/TimeField.js +1 -1
  126. package/dist/Toast.js +2 -2
  127. package/dist/{Toaster-DO83u5o3.js → Toaster-C7j9mOgX.js} +2 -2
  128. package/dist/{Toaster-DO83u5o3.js.map → Toaster-C7j9mOgX.js.map} +1 -1
  129. package/dist/{Toaster-BRjGoIQu.js → Toaster-Da6LU4h-.js} +3 -3
  130. package/dist/{Toaster-BRjGoIQu.js.map → Toaster-Da6LU4h-.js.map} +1 -1
  131. package/dist/{Toolbar-Dsaufi65.js → Toolbar-CmiI43BR.js} +12 -12
  132. package/dist/{Toolbar-Dsaufi65.js.map → Toolbar-CmiI43BR.js.map} +1 -1
  133. package/dist/Toolbar.js +1 -1
  134. package/dist/{Tooltip-C1PBRnJv.js → Tooltip-Drml7OMN.js} +5 -5
  135. package/dist/{Tooltip-C1PBRnJv.js.map → Tooltip-Drml7OMN.js.map} +1 -1
  136. package/dist/Tooltip.css +9 -8
  137. package/dist/Tooltip.js +1 -1
  138. package/dist/{YearlessDateInputWithPicker-CChqr1gR.js → YearlessDateInputWithPicker-BCUWcF_p.js} +2 -2
  139. package/dist/{YearlessDateInputWithPicker-CChqr1gR.js.map → YearlessDateInputWithPicker-BCUWcF_p.js.map} +1 -1
  140. package/dist/beta/components/Table/DataTable/DataTable.d.ts +40 -1
  141. package/dist/beta/components/Table/DataTable/internal/DataTableBody.d.ts +22 -0
  142. package/dist/beta/components/Table/DataTable/internal/DataTableBodyRow.d.ts +18 -1
  143. package/dist/beta/components/Table/DataTable/internal/useDataTableVirtualizer.d.ts +9 -5
  144. package/dist/beta/components/Table/internal/getCommonPinningClasses.d.ts +1 -1
  145. package/dist/beta.js +9 -9
  146. package/dist/index.js +36 -36
  147. package/dist/{stripInlineMarkdown-V3M_UxQ8.js → stripInlineMarkdown-BvoVEz8b.js} +2 -2
  148. package/dist/{stripInlineMarkdown-V3M_UxQ8.js.map → stripInlineMarkdown-BvoVEz8b.js.map} +1 -1
  149. package/dist/{syncFilterUtils-DtOBvzdr.js → syncFilterUtils-v2Mrjxg-.js} +3 -3
  150. package/dist/{syncFilterUtils-DtOBvzdr.js.map → syncFilterUtils-v2Mrjxg-.js.map} +1 -1
  151. package/dist/{useDrilldown-CK9KzXvI.js → useDrilldown-5Tl36ntS.js} +2 -2
  152. package/dist/{useDrilldown-CK9KzXvI.js.map → useDrilldown-5Tl36ntS.js.map} +1 -1
  153. package/dist/{useToggleSelection-BMXohj4f.js → useToggleSelection-CxDdyrDJ.js} +2 -2
  154. package/dist/{useToggleSelection-BMXohj4f.js.map → useToggleSelection-CxDdyrDJ.js.map} +1 -1
  155. package/package.json +3 -3
  156. package/dist/DataTable-bMoIuYBK.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef, useMemo, useCallback } from 'react';
3
- import { V as VirtualizedOptionsPanel, O as OptionsPanel } from './syncFilterUtils-DtOBvzdr.js';
3
+ import { V as VirtualizedOptionsPanel, O as OptionsPanel } from './syncFilterUtils-v2Mrjxg-.js';
4
4
 
5
5
  const MultiSelectOptions = forwardRef(({ selectedOptions, items, virtualize, ...rest }, ref) => {
6
6
  const selectedIds = useMemo(
@@ -60,4 +60,4 @@ const useToggleSelection = ({
60
60
  };
61
61
 
62
62
  export { MultiSelectOptions as M, useToggleSelection as u };
63
- //# sourceMappingURL=useToggleSelection-BMXohj4f.js.map
63
+ //# sourceMappingURL=useToggleSelection-CxDdyrDJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useToggleSelection-BMXohj4f.js","sources":["../src/internal/components/MultiSelectOptions.tsx","../src/internal/hooks/useToggleSelection.ts"],"sourcesContent":["import { MultiSelectFieldOption } from \"../../beta/components/MultiSelectField/types\";\nimport { CheckState } from \"../../types\";\nimport { CSSProperties, forwardRef, useCallback, useMemo } from \"react\";\nimport { OptionsPanel, OptionsPanelHandle } from \"./OptionsPanel\";\nimport { VirtualizedOptionsPanel } from \"./VirtualizedOptionsPanel\";\nimport {\n GetItemPropsFn,\n GetMenuPropsFn,\n SectionMeta,\n SelectItem,\n} from \"../types/selectFieldInternalTypes\";\n\nexport type MultiSelectOptionsProps = {\n isOpen: boolean;\n items: SelectItem[];\n getMenuProps: GetMenuPropsFn;\n getItemProps: GetItemPropsFn;\n highlightedIndex: number;\n selectedOptions: MultiSelectFieldOption[];\n hasMore: boolean;\n onLoadMore: () => void;\n loading: boolean;\n loadingMore: boolean;\n disableAutoLoadMore?: boolean;\n disabled?: boolean;\n className?: string;\n style?: CSSProperties;\n sectionsMeta?: SectionMeta[];\n virtualize?: boolean;\n};\n\nexport const MultiSelectOptions = forwardRef<\n OptionsPanelHandle,\n MultiSelectOptionsProps\n>(({ selectedOptions, items, virtualize, ...rest }, ref) => {\n const selectedIds = useMemo(\n () => new Set(selectedOptions.map((opt) => opt.id)),\n [selectedOptions],\n );\n\n const getCheckedState = useCallback(\n (item: SelectItem): CheckState => {\n if (item.type === \"select-all\" || item.type === \"select-filtered\") {\n return item.checkState ?? \"indeterminate\";\n }\n const checkId =\n item.type === \"pinned-option\" ? item.original.id : item.id;\n return selectedIds.has(checkId) ? \"checked\" : \"unchecked\";\n },\n [selectedIds],\n );\n\n const ListComponent = virtualize ? VirtualizedOptionsPanel : OptionsPanel;\n\n return (\n <ListComponent\n {...rest}\n ref={ref}\n items={items}\n selectionType=\"multiple\"\n getCheckedState={getCheckedState}\n />\n );\n});\n\nMultiSelectOptions.displayName = \"MultiSelectOptions\";\n","import { useCallback, useMemo } from \"react\";\nimport { SelectFieldOption } from \"../../beta/components/SelectField/types\";\nimport { NormalizedPinnedSection } from \"./usePinnedOptions\";\n\ntype UseToggleSelectionParams = {\n options: SelectFieldOption[];\n pinnedSections: NormalizedPinnedSection[];\n selectedOptions: SelectFieldOption[];\n onSelectedOptionsChange: (options: SelectFieldOption[]) => void;\n};\n\n/**\n * Shared multi-select toggle logic: computes allPinnedOptions and provides\n * handleItemClick to add/remove an option from the selection.\n * Used by both useComboMultiple and useSelectModeMultiple.\n */\nexport const useToggleSelection = ({\n options,\n pinnedSections,\n selectedOptions,\n onSelectedOptionsChange,\n}: UseToggleSelectionParams) => {\n const allPinnedOptions = useMemo(() => {\n return pinnedSections.flatMap((section) => section.options);\n }, [pinnedSections]);\n\n const handleItemClick = useCallback(\n (option: { id: string | number; label: string }) => {\n const isSelected = selectedOptions.some((opt) => opt.id === option.id);\n if (isSelected) {\n onSelectedOptionsChange(\n selectedOptions.filter((opt) => opt.id !== option.id),\n );\n } else {\n const fullOption =\n options.find((opt) => opt.id === option.id) ||\n allPinnedOptions.find((opt) => opt.id === option.id);\n if (fullOption) {\n onSelectedOptionsChange([...selectedOptions, fullOption]);\n }\n }\n },\n [selectedOptions, onSelectedOptionsChange, options, allPinnedOptions],\n );\n\n return { handleItemClick, allPinnedOptions };\n};\n"],"names":[],"mappings":";;;;AA+BO,MAAM,kBAAA,GAAqB,UAAA,CAGhC,CAAC,EAAE,eAAA,EAAiB,OAAO,UAAA,EAAY,GAAG,IAAA,EAAK,EAAG,GAAA,KAAQ;AAC1D,EAAA,MAAM,WAAA,GAAc,OAAA;AAAA,IAClB,MAAM,IAAI,GAAA,CAAI,eAAA,CAAgB,IAAI,CAAC,GAAA,KAAQ,GAAA,CAAI,EAAE,CAAC,CAAA;AAAA,IAClD,CAAC,eAAe;AAAA,GAClB;AAEA,EAAA,MAAM,eAAA,GAAkB,WAAA;AAAA,IACtB,CAAC,IAAA,KAAiC;AAChC,MAAA,IAAI,IAAA,CAAK,IAAA,KAAS,YAAA,IAAgB,IAAA,CAAK,SAAS,iBAAA,EAAmB;AACjE,QAAA,OAAO,KAAK,UAAA,IAAc,eAAA;AAAA,MAC5B;AACA,MAAA,MAAM,UACJ,IAAA,CAAK,IAAA,KAAS,kBAAkB,IAAA,CAAK,QAAA,CAAS,KAAK,IAAA,CAAK,EAAA;AAC1D,MAAA,OAAO,WAAA,CAAY,GAAA,CAAI,OAAO,CAAA,GAAI,SAAA,GAAY,WAAA;AAAA,IAChD,CAAA;AAAA,IACA,CAAC,WAAW;AAAA,GACd;AAEA,EAAA,MAAM,aAAA,GAAgB,aAAa,uBAAA,GAA0B,YAAA;AAE7D,EAAA,uBACE,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MACA,KAAA;AAAA,MACA,aAAA,EAAc,UAAA;AAAA,MACd;AAAA;AAAA,GACF;AAEJ,CAAC;AAED,kBAAA,CAAmB,WAAA,GAAc,oBAAA;;ACjD1B,MAAM,qBAAqB,CAAC;AAAA,EACjC,OAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,KAAgC;AAC9B,EAAA,MAAM,gBAAA,GAAmB,QAAQ,MAAM;AACrC,IAAA,OAAO,cAAA,CAAe,OAAA,CAAQ,CAAC,OAAA,KAAY,QAAQ,OAAO,CAAA;AAAA,EAC5D,CAAA,EAAG,CAAC,cAAc,CAAC,CAAA;AAEnB,EAAA,MAAM,eAAA,GAAkB,WAAA;AAAA,IACtB,CAAC,MAAA,KAAmD;AAClD,MAAA,MAAM,UAAA,GAAa,gBAAgB,IAAA,CAAK,CAAC,QAAQ,GAAA,CAAI,EAAA,KAAO,OAAO,EAAE,CAAA;AACrE,MAAA,IAAI,UAAA,EAAY;AACd,QAAA,uBAAA;AAAA,UACE,gBAAgB,MAAA,CAAO,CAAC,QAAQ,GAAA,CAAI,EAAA,KAAO,OAAO,EAAE;AAAA,SACtD;AAAA,MACF,CAAA,MAAO;AACL,QAAA,MAAM,aACJ,OAAA,CAAQ,IAAA,CAAK,CAAC,GAAA,KAAQ,IAAI,EAAA,KAAO,MAAA,CAAO,EAAE,CAAA,IAC1C,iBAAiB,IAAA,CAAK,CAAC,QAAQ,GAAA,CAAI,EAAA,KAAO,OAAO,EAAE,CAAA;AACrD,QAAA,IAAI,UAAA,EAAY;AACd,UAAA,uBAAA,CAAwB,CAAC,GAAG,eAAA,EAAiB,UAAU,CAAC,CAAA;AAAA,QAC1D;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,CAAC,eAAA,EAAiB,uBAAA,EAAyB,OAAA,EAAS,gBAAgB;AAAA,GACtE;AAEA,EAAA,OAAO,EAAE,iBAAiB,gBAAA,EAAiB;AAC7C;;;;"}
1
+ {"version":3,"file":"useToggleSelection-CxDdyrDJ.js","sources":["../src/internal/components/MultiSelectOptions.tsx","../src/internal/hooks/useToggleSelection.ts"],"sourcesContent":["import { MultiSelectFieldOption } from \"../../beta/components/MultiSelectField/types\";\nimport { CheckState } from \"../../types\";\nimport { CSSProperties, forwardRef, useCallback, useMemo } from \"react\";\nimport { OptionsPanel, OptionsPanelHandle } from \"./OptionsPanel\";\nimport { VirtualizedOptionsPanel } from \"./VirtualizedOptionsPanel\";\nimport {\n GetItemPropsFn,\n GetMenuPropsFn,\n SectionMeta,\n SelectItem,\n} from \"../types/selectFieldInternalTypes\";\n\nexport type MultiSelectOptionsProps = {\n isOpen: boolean;\n items: SelectItem[];\n getMenuProps: GetMenuPropsFn;\n getItemProps: GetItemPropsFn;\n highlightedIndex: number;\n selectedOptions: MultiSelectFieldOption[];\n hasMore: boolean;\n onLoadMore: () => void;\n loading: boolean;\n loadingMore: boolean;\n disableAutoLoadMore?: boolean;\n disabled?: boolean;\n className?: string;\n style?: CSSProperties;\n sectionsMeta?: SectionMeta[];\n virtualize?: boolean;\n};\n\nexport const MultiSelectOptions = forwardRef<\n OptionsPanelHandle,\n MultiSelectOptionsProps\n>(({ selectedOptions, items, virtualize, ...rest }, ref) => {\n const selectedIds = useMemo(\n () => new Set(selectedOptions.map((opt) => opt.id)),\n [selectedOptions],\n );\n\n const getCheckedState = useCallback(\n (item: SelectItem): CheckState => {\n if (item.type === \"select-all\" || item.type === \"select-filtered\") {\n return item.checkState ?? \"indeterminate\";\n }\n const checkId =\n item.type === \"pinned-option\" ? item.original.id : item.id;\n return selectedIds.has(checkId) ? \"checked\" : \"unchecked\";\n },\n [selectedIds],\n );\n\n const ListComponent = virtualize ? VirtualizedOptionsPanel : OptionsPanel;\n\n return (\n <ListComponent\n {...rest}\n ref={ref}\n items={items}\n selectionType=\"multiple\"\n getCheckedState={getCheckedState}\n />\n );\n});\n\nMultiSelectOptions.displayName = \"MultiSelectOptions\";\n","import { useCallback, useMemo } from \"react\";\nimport { SelectFieldOption } from \"../../beta/components/SelectField/types\";\nimport { NormalizedPinnedSection } from \"./usePinnedOptions\";\n\ntype UseToggleSelectionParams = {\n options: SelectFieldOption[];\n pinnedSections: NormalizedPinnedSection[];\n selectedOptions: SelectFieldOption[];\n onSelectedOptionsChange: (options: SelectFieldOption[]) => void;\n};\n\n/**\n * Shared multi-select toggle logic: computes allPinnedOptions and provides\n * handleItemClick to add/remove an option from the selection.\n * Used by both useComboMultiple and useSelectModeMultiple.\n */\nexport const useToggleSelection = ({\n options,\n pinnedSections,\n selectedOptions,\n onSelectedOptionsChange,\n}: UseToggleSelectionParams) => {\n const allPinnedOptions = useMemo(() => {\n return pinnedSections.flatMap((section) => section.options);\n }, [pinnedSections]);\n\n const handleItemClick = useCallback(\n (option: { id: string | number; label: string }) => {\n const isSelected = selectedOptions.some((opt) => opt.id === option.id);\n if (isSelected) {\n onSelectedOptionsChange(\n selectedOptions.filter((opt) => opt.id !== option.id),\n );\n } else {\n const fullOption =\n options.find((opt) => opt.id === option.id) ||\n allPinnedOptions.find((opt) => opt.id === option.id);\n if (fullOption) {\n onSelectedOptionsChange([...selectedOptions, fullOption]);\n }\n }\n },\n [selectedOptions, onSelectedOptionsChange, options, allPinnedOptions],\n );\n\n return { handleItemClick, allPinnedOptions };\n};\n"],"names":[],"mappings":";;;;AA+BO,MAAM,kBAAA,GAAqB,UAAA,CAGhC,CAAC,EAAE,eAAA,EAAiB,OAAO,UAAA,EAAY,GAAG,IAAA,EAAK,EAAG,GAAA,KAAQ;AAC1D,EAAA,MAAM,WAAA,GAAc,OAAA;AAAA,IAClB,MAAM,IAAI,GAAA,CAAI,eAAA,CAAgB,IAAI,CAAC,GAAA,KAAQ,GAAA,CAAI,EAAE,CAAC,CAAA;AAAA,IAClD,CAAC,eAAe;AAAA,GAClB;AAEA,EAAA,MAAM,eAAA,GAAkB,WAAA;AAAA,IACtB,CAAC,IAAA,KAAiC;AAChC,MAAA,IAAI,IAAA,CAAK,IAAA,KAAS,YAAA,IAAgB,IAAA,CAAK,SAAS,iBAAA,EAAmB;AACjE,QAAA,OAAO,KAAK,UAAA,IAAc,eAAA;AAAA,MAC5B;AACA,MAAA,MAAM,UACJ,IAAA,CAAK,IAAA,KAAS,kBAAkB,IAAA,CAAK,QAAA,CAAS,KAAK,IAAA,CAAK,EAAA;AAC1D,MAAA,OAAO,WAAA,CAAY,GAAA,CAAI,OAAO,CAAA,GAAI,SAAA,GAAY,WAAA;AAAA,IAChD,CAAA;AAAA,IACA,CAAC,WAAW;AAAA,GACd;AAEA,EAAA,MAAM,aAAA,GAAgB,aAAa,uBAAA,GAA0B,YAAA;AAE7D,EAAA,uBACE,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MACA,KAAA;AAAA,MACA,aAAA,EAAc,UAAA;AAAA,MACd;AAAA;AAAA,GACF;AAEJ,CAAC;AAED,kBAAA,CAAmB,WAAA,GAAc,oBAAA;;ACjD1B,MAAM,qBAAqB,CAAC;AAAA,EACjC,OAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,KAAgC;AAC9B,EAAA,MAAM,gBAAA,GAAmB,QAAQ,MAAM;AACrC,IAAA,OAAO,cAAA,CAAe,OAAA,CAAQ,CAAC,OAAA,KAAY,QAAQ,OAAO,CAAA;AAAA,EAC5D,CAAA,EAAG,CAAC,cAAc,CAAC,CAAA;AAEnB,EAAA,MAAM,eAAA,GAAkB,WAAA;AAAA,IACtB,CAAC,MAAA,KAAmD;AAClD,MAAA,MAAM,UAAA,GAAa,gBAAgB,IAAA,CAAK,CAAC,QAAQ,GAAA,CAAI,EAAA,KAAO,OAAO,EAAE,CAAA;AACrE,MAAA,IAAI,UAAA,EAAY;AACd,QAAA,uBAAA;AAAA,UACE,gBAAgB,MAAA,CAAO,CAAC,QAAQ,GAAA,CAAI,EAAA,KAAO,OAAO,EAAE;AAAA,SACtD;AAAA,MACF,CAAA,MAAO;AACL,QAAA,MAAM,aACJ,OAAA,CAAQ,IAAA,CAAK,CAAC,GAAA,KAAQ,IAAI,EAAA,KAAO,MAAA,CAAO,EAAE,CAAA,IAC1C,iBAAiB,IAAA,CAAK,CAAC,QAAQ,GAAA,CAAI,EAAA,KAAO,OAAO,EAAE,CAAA;AACrD,QAAA,IAAI,UAAA,EAAY;AACd,UAAA,uBAAA,CAAwB,CAAC,GAAG,eAAA,EAAiB,UAAU,CAAC,CAAA;AAAA,QAC1D;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,CAAC,eAAA,EAAiB,uBAAA,EAAyB,OAAA,EAAS,gBAAgB;AAAA,GACtE;AAEA,EAAA,OAAO,EAAE,iBAAiB,gBAAA,EAAiB;AAC7C;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/anvil2",
3
- "version": "2.9.2",
3
+ "version": "2.9.3",
4
4
  "type": "module",
5
5
  "types": "./dist/index.d.ts",
6
6
  "main": "./dist/index.js",
@@ -59,8 +59,8 @@
59
59
  "tabbable": "^6.2.0",
60
60
  "tinycolor2": "^1.6.0",
61
61
  "uuid": "^10.0.0",
62
- "@servicetitan/hammer-token": "2.5.2",
63
- "@servicetitan/hammer-icon": "1.2.0"
62
+ "@servicetitan/hammer-icon": "1.2.0",
63
+ "@servicetitan/hammer-token": "2.5.2"
64
64
  },
65
65
  "peerDependencies": {
66
66
  "@types/react": "^18 || ^19",