@servicetitan/anvil2 3.0.4 → 3.0.6
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.
- package/CHANGELOG.md +28 -0
- package/dist/{AiMark-DjOf60tj.js → AiMark-BXL0sWIV.js} +2 -2
- package/dist/{AiMark-DjOf60tj.js.map → AiMark-BXL0sWIV.js.map} +1 -1
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-BTesdKK7.js → Alert-BNH0UD2s.js} +2 -2
- package/dist/{Alert-BTesdKK7.js.map → Alert-BNH0UD2s.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{AnvilProvider-JXEbeQjR.js → AnvilProvider-J9DjoJiB.js} +13 -2
- package/dist/AnvilProvider-J9DjoJiB.js.map +1 -0
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Breadcrumbs-DTi5RqT-.js → Breadcrumbs-Bzxbdu-S.js} +2 -2
- package/dist/{Breadcrumbs-DTi5RqT-.js.map → Breadcrumbs-Bzxbdu-S.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Calendar-ddGQKSGU.js → Calendar-BYNFAWpZ.js} +2 -2
- package/dist/{Calendar-ddGQKSGU.js.map → Calendar-BYNFAWpZ.js.map} +1 -1
- package/dist/{Calendar-CpCRxcue.js → Calendar-DS5eWpGF.js} +2 -2
- package/dist/{Calendar-CpCRxcue.js.map → Calendar-DS5eWpGF.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-CJ8eYejR.js → Checkbox-BB3BDJsK.js} +4 -4
- package/dist/{Checkbox-CJ8eYejR.js.map → Checkbox-BB3BDJsK.js.map} +1 -1
- package/dist/{Checkbox-CVidv1sO.js → Checkbox-BeIzx_ZX.js} +2 -2
- package/dist/{Checkbox-CVidv1sO.js.map → Checkbox-BeIzx_ZX.js.map} +1 -1
- package/dist/Checkbox.css +40 -37
- package/dist/Checkbox.js +1 -1
- package/dist/Checkbox.module-CURNX27M.js +28 -0
- package/dist/Checkbox.module-CURNX27M.js.map +1 -0
- package/dist/{Chip-0-Yx9SGX.js → Chip-D2k5X_wX.js} +2 -2
- package/dist/{Chip-0-Yx9SGX.js.map → Chip-D2k5X_wX.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-C9-3tlcP.js → Combobox-Cp7M4-4r.js} +5 -5
- package/dist/{Combobox-C9-3tlcP.js.map → Combobox-Cp7M4-4r.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-Dr5A6RDe.js → DataTable-0kOuVgSB.js} +8 -8
- package/dist/{DataTable-Dr5A6RDe.js.map → DataTable-0kOuVgSB.js.map} +1 -1
- package/dist/{DateFieldRange-CO2C776E.js → DateFieldRange-Be_I9GTp.js} +4 -4
- package/dist/{DateFieldRange-CO2C776E.js.map → DateFieldRange-Be_I9GTp.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-DjmHpn1y.js → DateFieldSingle-CsrsY9i8.js} +4 -4
- package/dist/{DateFieldSingle-DjmHpn1y.js.map → DateFieldSingle-CsrsY9i8.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-CCJAopYd.js → DateFieldYearless-m_Hl2gMY.js} +5 -5
- package/dist/{DateFieldYearless-CCJAopYd.js.map → DateFieldYearless-m_Hl2gMY.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-BUv1mGJg.js → DateFieldYearlessRange-DNqSTBDr.js} +4 -4
- package/dist/{DateFieldYearlessRange-BUv1mGJg.js.map → DateFieldYearlessRange-DNqSTBDr.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-BihTU2No.js → DaysOfTheWeek-D58z_eF3.js} +10 -9
- package/dist/{DaysOfTheWeek-BihTU2No.js.map → DaysOfTheWeek-D58z_eF3.js.map} +1 -1
- package/dist/DaysOfTheWeek.css +10 -6
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-BZTo4hbX.js → Dialog-CD-SDfPT.js} +22 -20
- package/dist/{Dialog-BZTo4hbX.js.map → Dialog-CD-SDfPT.js.map} +1 -1
- package/dist/Dialog.css +43 -29
- package/dist/Dialog.js +1 -1
- package/dist/{Drawer-Dg35inxH.js → Drawer-s2y0xcgV.js} +3 -3
- package/dist/{Drawer-Dg35inxH.js.map → Drawer-s2y0xcgV.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-BfNq-T8n.js → EditCard-B25pj0Jx.js} +2 -2
- package/dist/{EditCard-BfNq-T8n.js.map → EditCard-B25pj0Jx.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-xV6EdVwo.js → FieldLabel-D1qPAGtB.js} +3 -3
- package/dist/{FieldLabel-xV6EdVwo.js.map → FieldLabel-D1qPAGtB.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/{FilterBar-BUfajdQU.js → FilterBar-yysyZ-t1.js} +378 -23
- package/dist/FilterBar-yysyZ-t1.js.map +1 -0
- package/dist/FilterBar.js +1 -1
- package/dist/{InputMask-8rI6UIb8.js → InputMask-BDl09V4u.js} +3 -3
- package/dist/{InputMask-8rI6UIb8.js.map → InputMask-BDl09V4u.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-CIa981KJ.js → ListView-CcRRh1ap.js} +2 -2
- package/dist/{ListView-CIa981KJ.js.map → ListView-CcRRh1ap.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-DRznPBCr.js → Listbox-CvQHBFWb.js} +2 -2
- package/dist/{Listbox-DRznPBCr.js.map → Listbox-CvQHBFWb.js.map} +1 -1
- package/dist/Listbox.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-DXIBQABc.js → MultiSelectFieldSync-BMVROOjy.js} +58 -28
- package/dist/MultiSelectFieldSync-BMVROOjy.js.map +1 -0
- package/dist/MultiSelectFieldSync.css +63 -57
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-CCINebbr.js → MultiSelectMenuSync-BNPp_2Bm.js} +20 -7
- package/dist/MultiSelectMenuSync-BNPp_2Bm.js.map +1 -0
- package/dist/{NumberField-D7YYo4Rl.js → NumberField-BymFZhIJ.js} +4 -4
- package/dist/{NumberField-D7YYo4Rl.js.map → NumberField-BymFZhIJ.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/{Page-cELP59Hm.js → Page-SBy27-Wv.js} +8 -8
- package/dist/{Page-cELP59Hm.js.map → Page-SBy27-Wv.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Pagination-DTN4FovY.js → Pagination-Cm8-K6VH.js} +2 -2
- package/dist/{Pagination-DTN4FovY.js.map → Pagination-Cm8-K6VH.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-B3Vw4lDW.js → Popover-8mTJoMy7.js} +2 -2
- package/dist/{Popover-B3Vw4lDW.js.map → Popover-8mTJoMy7.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-kzCNhaCO.js → ProgressBar-C1CkQHV5.js} +2 -2
- package/dist/{ProgressBar-kzCNhaCO.js.map → ProgressBar-C1CkQHV5.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-CSBetBV6.js → Radio-BcHMk8dD.js} +2 -2
- package/dist/{Radio-CSBetBV6.js.map → Radio-BcHMk8dD.js.map} +1 -1
- package/dist/{Radio-BDE1xGel.js → Radio-D5WyQN2i.js} +16 -16
- package/dist/{Radio-BDE1xGel.js.map → Radio-D5WyQN2i.js.map} +1 -1
- package/dist/Radio.css +40 -37
- package/dist/Radio.js +1 -1
- package/dist/{RichTextEditor-BFFXj0zS.js → RichTextEditor-DstVbYch.js} +8 -8
- package/dist/{RichTextEditor-BFFXj0zS.js.map → RichTextEditor-DstVbYch.js.map} +1 -1
- package/dist/RichTextEditor.js +1 -1
- package/dist/{SearchField-Dl7sh_M4.js → SearchField-3tUPU8hH.js} +2 -2
- package/dist/{SearchField-Dl7sh_M4.js.map → SearchField-3tUPU8hH.js.map} +1 -1
- package/dist/{SearchField-CO9BHCYB.js → SearchField-BcQZ5e0x.js} +2 -2
- package/dist/{SearchField-CO9BHCYB.js.map → SearchField-BcQZ5e0x.js.map} +1 -1
- package/dist/SearchField.js +1 -1
- package/dist/{SelectCard-CLCLIBoq.js → SelectCard-BN-LI14f.js} +3 -3
- package/dist/{SelectCard-CLCLIBoq.js.map → SelectCard-BN-LI14f.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-Db9w6O6r.js → SelectFieldLabel-UbQT7fDD.js} +2 -2
- package/dist/{SelectFieldLabel-Db9w6O6r.js.map → SelectFieldLabel-UbQT7fDD.js.map} +1 -1
- package/dist/{SelectFieldSync-DqIDTKqt.js → SelectFieldSync-BeDYbJ2M.js} +41 -11
- package/dist/SelectFieldSync-BeDYbJ2M.js.map +1 -0
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-DYPEX5wc.js → SelectMenuSync-C-PFemsQ.js} +20 -7
- package/dist/SelectMenuSync-C-PFemsQ.js.map +1 -0
- package/dist/{SelectOptions-DuMbmJjh.js → SelectOptions-Tr11Ckqw.js} +2 -2
- package/dist/{SelectOptions-DuMbmJjh.js.map → SelectOptions-Tr11Ckqw.js.map} +1 -1
- package/dist/{SelectTrigger-RiRjgwXd.js → SelectTrigger-DTz7V-Xx.js} +2 -2
- package/dist/{SelectTrigger-RiRjgwXd.js.map → SelectTrigger-DTz7V-Xx.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-CWxP7nPA.js → SelectTriggerBase-Ds6I7Qbr.js} +4 -4
- package/dist/{SelectTriggerBase-CWxP7nPA.js.map → SelectTriggerBase-Ds6I7Qbr.js.map} +1 -1
- package/dist/SelectTriggerBase.css +48 -42
- package/dist/SelectTriggerBase.module-DsPvTQE7.js +37 -0
- package/dist/SelectTriggerBase.module-DsPvTQE7.js.map +1 -0
- package/dist/{Switch-p4yVJTNy.js → Switch-onmiKoRd.js} +2 -2
- package/dist/{Switch-p4yVJTNy.js.map → Switch-onmiKoRd.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-BgPuOXJM.js → Text-BTzgTpqu.js} +2 -2
- package/dist/{Text-BgPuOXJM.js.map → Text-BTzgTpqu.js.map} +1 -1
- package/dist/Text.js +1 -1
- package/dist/{TextField-DzuM8vvd.js → TextField-WTYZJlX3.js} +2 -2
- package/dist/{TextField-DzuM8vvd.js.map → TextField-WTYZJlX3.js.map} +1 -1
- package/dist/{TextField-D7NyaKId.js → TextField-rVfctM1E.js} +4 -4
- package/dist/{TextField-D7NyaKId.js.map → TextField-rVfctM1E.js.map} +1 -1
- package/dist/TextField.css +22 -58
- package/dist/TextField.js +1 -1
- package/dist/TextField.module-C8FsjTpx.js +23 -0
- package/dist/TextField.module-C8FsjTpx.js.map +1 -0
- package/dist/{Textarea-Dks15Zt3.js → Textarea-PXjppEQ6.js} +3 -3
- package/dist/{Textarea-Dks15Zt3.js.map → Textarea-PXjppEQ6.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-lN_5V6-X.js → TimeField-BJPXIv6W.js} +4 -4
- package/dist/{TimeField-lN_5V6-X.js.map → TimeField-BJPXIv6W.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-3GI_qJxj.js → Toaster-CoChsMD0.js} +3 -3
- package/dist/{Toaster-3GI_qJxj.js.map → Toaster-CoChsMD0.js.map} +1 -1
- package/dist/{Toaster-2pAMQXRk.js → Toaster-DXLc86VD.js} +2 -2
- package/dist/{Toaster-2pAMQXRk.js.map → Toaster-DXLc86VD.js.map} +1 -1
- package/dist/{Toolbar-B0WHsX9W.js → Toolbar-BUd9eNkq.js} +6 -6
- package/dist/{Toolbar-B0WHsX9W.js.map → Toolbar-BUd9eNkq.js.map} +1 -1
- package/dist/{Toolbar-BRQpvj9U.js → Toolbar-Bt3kShho.js} +4 -4
- package/dist/{Toolbar-BRQpvj9U.js.map → Toolbar-Bt3kShho.js.map} +1 -1
- package/dist/Toolbar.js +2 -2
- package/dist/{ToolbarButtonToggle-xvMWRxzC.js → ToolbarButtonToggle-C06cqJ6F.js} +2 -2
- package/dist/{ToolbarButtonToggle-xvMWRxzC.js.map → ToolbarButtonToggle-C06cqJ6F.js.map} +1 -1
- package/dist/{Tooltip-DGo3OWqL.js → Tooltip-yr1D06BE.js} +5 -5
- package/dist/{Tooltip-DGo3OWqL.js.map → Tooltip-yr1D06BE.js.map} +1 -1
- package/dist/Tooltip.css +6 -7
- package/dist/Tooltip.js +1 -1
- package/dist/{YearlessDateInputWithPicker-BhbR5F22.js → YearlessDateInputWithPicker-BIcVgz-J.js} +3 -3
- package/dist/{YearlessDateInputWithPicker-BhbR5F22.js.map → YearlessDateInputWithPicker-BIcVgz-J.js.map} +1 -1
- package/dist/assets/icons/st/batch.svg +1 -1
- package/dist/assets/icons/st/call.svg +1 -1
- package/dist/assets/icons/st/customer.svg +1 -1
- package/dist/assets/icons/st/enterprise_hub.svg +1 -1
- package/dist/assets/icons/st/equipment.svg +1 -1
- package/dist/assets/icons/st/estimate.svg +1 -1
- package/dist/assets/icons/st/full_fluid.svg +1 -1
- package/dist/assets/icons/st/gnav_titan_advisor_active.svg +1 -1
- package/dist/assets/icons/st/gnav_titan_advisor_inactive.svg +1 -1
- package/dist/assets/icons/st/job.svg +1 -1
- package/dist/assets/icons/st/leads.svg +1 -1
- package/dist/assets/icons/st/proposal.svg +1 -1
- package/dist/assets/icons/st/roofing.svg +1 -1
- package/dist/beta.js +12 -12
- package/dist/{index-B6Demgr-.js → index-DVYRUKtW.js} +2 -2
- package/dist/{index-B6Demgr-.js.map → index-DVYRUKtW.js.map} +1 -1
- package/dist/index.js +39 -39
- package/dist/src/beta/components/FilterBar/FilterButton.d.ts +6 -3
- package/dist/src/beta/components/FilterBar/FilterDateList.d.ts +37 -0
- package/dist/src/beta/components/FilterBar/index.d.ts +1 -1
- package/dist/src/beta/components/FilterBar/internal/types.d.ts +40 -2
- package/dist/src/beta/components/FilterBar/internal/utils/dateListLibraryOptions.d.ts +29 -0
- package/dist/src/beta/components/FilterBar/internal/utils/filter-state.d.ts +2 -0
- package/dist/src/beta/components/FilterBar/internal/utils/test.d.ts +2 -1
- package/dist/src/beta/components/MultiSelectField/MultiSelectField.d.ts +1 -0
- package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
- package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
- package/dist/src/beta/components/MultiSelectField/internal/types.d.ts +2 -1
- package/dist/src/beta/components/MultiSelectField/types.d.ts +2 -1
- package/dist/src/beta/components/MultiSelectMenu/MultiSelectMenu.d.ts +1 -0
- package/dist/src/beta/components/MultiSelectMenu/types.d.ts +2 -1
- package/dist/src/beta/components/SelectField/SelectField.d.ts +21 -0
- package/dist/src/beta/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
- package/dist/src/beta/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
- package/dist/src/beta/components/SelectField/types.d.ts +2 -1
- package/dist/src/beta/components/SelectMenu/SelectMenu.d.ts +1 -0
- package/dist/src/beta/components/SelectMenu/types.d.ts +2 -1
- package/dist/src/internal/components/AddNewItemButton.d.ts +40 -0
- package/dist/src/internal/components/OptionsDialog/OptionsDialog.d.ts +3 -1
- package/dist/src/internal/components/OptionsPopover/OptionsPopover.d.ts +13 -1
- package/dist/src/internal/types/addNewItemTypes.d.ts +12 -0
- package/dist/src/internal/types/selectFieldInternalTypes.d.ts +2 -1
- package/dist/{stripInlineMarkdown-D_eHogvh.js → stripInlineMarkdown-C5DNxxwf.js} +2 -2
- package/dist/{stripInlineMarkdown-D_eHogvh.js.map → stripInlineMarkdown-C5DNxxwf.js.map} +1 -1
- package/dist/{syncFilterUtils-hlw11Ud8.js → syncFilterUtils-COxBIkt6.js} +271 -199
- package/dist/syncFilterUtils-COxBIkt6.js.map +1 -0
- package/dist/syncFilterUtils.css +44 -23
- package/dist/{useDrilldown-bIRsbg1m.js → useDrilldown-KZ9rRsXQ.js} +2 -2
- package/dist/{useDrilldown-bIRsbg1m.js.map → useDrilldown-KZ9rRsXQ.js.map} +1 -1
- package/dist/{useMenuInteraction-BwZ2ORo9.js → useMenuInteraction-C4RU5Fdq.js} +1 -5
- package/dist/useMenuInteraction-C4RU5Fdq.js.map +1 -0
- package/dist/{useToggleSelection-VwlBkdZo.js → useToggleSelection-B5PnTuT2.js} +2 -2
- package/dist/{useToggleSelection-VwlBkdZo.js.map → useToggleSelection-B5PnTuT2.js.map} +1 -1
- package/package.json +1 -1
- package/dist/AnvilProvider-JXEbeQjR.js.map +0 -1
- package/dist/Checkbox.module-DVbXNsaN.js +0 -28
- package/dist/Checkbox.module-DVbXNsaN.js.map +0 -1
- package/dist/FilterBar-BUfajdQU.js.map +0 -1
- package/dist/MultiSelectFieldSync-DXIBQABc.js.map +0 -1
- package/dist/MultiSelectMenuSync-CCINebbr.js.map +0 -1
- package/dist/SelectFieldSync-DqIDTKqt.js.map +0 -1
- package/dist/SelectMenuSync-DYPEX5wc.js.map +0 -1
- package/dist/SelectTriggerBase.module-CCLOnHm1.js +0 -37
- package/dist/SelectTriggerBase.module-CCLOnHm1.js.map +0 -1
- package/dist/TextField.module-DkZwywjf.js +0 -23
- package/dist/TextField.module-DkZwywjf.js.map +0 -1
- package/dist/syncFilterUtils-hlw11Ud8.js.map +0 -1
- package/dist/useMenuInteraction-BwZ2ORo9.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,73 +1,73 @@
|
|
|
1
1
|
export { DndSort, DndSortCard, DndSortZone } from './DndSort.js';
|
|
2
|
-
export { A as Alert } from './Alert-
|
|
3
|
-
export { A as AiMark } from './AiMark-
|
|
2
|
+
export { A as Alert } from './Alert-BNH0UD2s.js';
|
|
3
|
+
export { A as AiMark } from './AiMark-BXL0sWIV.js';
|
|
4
4
|
export { A as Announcement } from './Announcement-CgTqDU8A.js';
|
|
5
5
|
export { A as Avatar } from './Avatar-B_cRQqKR.js';
|
|
6
6
|
export { A as AvatarGroup } from './Avatar-FDHyqiCy.js';
|
|
7
7
|
export { B as Badge } from './Badge-DtUI2AEk.js';
|
|
8
|
-
export { B as Breadcrumbs } from './Breadcrumbs-
|
|
8
|
+
export { B as Breadcrumbs } from './Breadcrumbs-Bzxbdu-S.js';
|
|
9
9
|
export { B as Button } from './Button-C_V2xQAs.js';
|
|
10
10
|
export { B as ButtonCompound } from './ButtonCompound-BQb2gfAl.js';
|
|
11
11
|
export { B as ButtonLink } from './ButtonLink-UhLks0vM.js';
|
|
12
12
|
export { B as ButtonToggle } from './ButtonToggle-jnDMPSyK.js';
|
|
13
|
-
export { a as Calendar, g as CalendarMonth, f as CalendarMonthButton, e as CalendarNext, b as CalendarNow, d as CalendarPrev, c as CalendarYearButton } from './Calendar-
|
|
13
|
+
export { a as Calendar, g as CalendarMonth, f as CalendarMonthButton, e as CalendarNext, b as CalendarNow, d as CalendarPrev, c as CalendarYearButton } from './Calendar-BYNFAWpZ.js';
|
|
14
14
|
export { C as Card } from './Card-fBqg853U.js';
|
|
15
|
-
export { C as Checkbox } from './Checkbox-
|
|
16
|
-
export { C as Chip } from './Chip-
|
|
17
|
-
export { C as Combobox, a as ComboboxElement, c as ComboboxList, b as ComboboxSelect } from './Combobox-
|
|
15
|
+
export { C as Checkbox } from './Checkbox-BeIzx_ZX.js';
|
|
16
|
+
export { C as Chip } from './Chip-D2k5X_wX.js';
|
|
17
|
+
export { C as Combobox, a as ComboboxElement, c as ComboboxList, b as ComboboxSelect } from './Combobox-Cp7M4-4r.js';
|
|
18
18
|
export { u as useInfiniteCombobox } from './useInfiniteCombobox-WcRgC9p6.js';
|
|
19
|
-
export { D as DateFieldRange } from './DateFieldRange-
|
|
20
|
-
export { D as DateFieldSingle } from './DateFieldSingle-
|
|
21
|
-
export { D as DateFieldYearless } from './DateFieldYearless-
|
|
22
|
-
export { D as DateFieldYearlessRange } from './DateFieldYearlessRange-
|
|
23
|
-
export { D as DaysOfTheWeek } from './DaysOfTheWeek-
|
|
19
|
+
export { D as DateFieldRange } from './DateFieldRange-Be_I9GTp.js';
|
|
20
|
+
export { D as DateFieldSingle } from './DateFieldSingle-CsrsY9i8.js';
|
|
21
|
+
export { D as DateFieldYearless } from './DateFieldYearless-m_Hl2gMY.js';
|
|
22
|
+
export { D as DateFieldYearlessRange } from './DateFieldYearlessRange-DNqSTBDr.js';
|
|
23
|
+
export { D as DaysOfTheWeek } from './DaysOfTheWeek-D58z_eF3.js';
|
|
24
24
|
export { D as Details } from './Details-s2pVu-YL.js';
|
|
25
|
-
export { D as Dialog } from './Dialog-
|
|
25
|
+
export { D as Dialog } from './Dialog-CD-SDfPT.js';
|
|
26
26
|
export { D as Divider } from './Divider-CxtTyw8_.js';
|
|
27
27
|
export { D as Dnd } from './index-CukEaIHB.js';
|
|
28
|
-
export { D as Drawer } from './Drawer-
|
|
29
|
-
export { D as DrillDown, b as DrillDownContent, c as DrillDownFooter, a as DrillDownHeader, d as DrillDownNextButton, e as DrillDownPrevButton, u as useDrillDown } from './useDrilldown-
|
|
30
|
-
export { E as EditCard } from './EditCard-
|
|
31
|
-
export { F as FieldLabel } from './FieldLabel-
|
|
28
|
+
export { D as Drawer } from './Drawer-s2y0xcgV.js';
|
|
29
|
+
export { D as DrillDown, b as DrillDownContent, c as DrillDownFooter, a as DrillDownHeader, d as DrillDownNextButton, e as DrillDownPrevButton, u as useDrillDown } from './useDrilldown-KZ9rRsXQ.js';
|
|
30
|
+
export { E as EditCard } from './EditCard-B25pj0Jx.js';
|
|
31
|
+
export { F as FieldLabel } from './FieldLabel-D1qPAGtB.js';
|
|
32
32
|
export { w as warnDeprecatedErrorUsage } from './utils-CM48ODEJ.js';
|
|
33
33
|
export { F as FieldMessage } from './FieldMessage-mTGdycSA.js';
|
|
34
34
|
export { F as Flex } from './Flex-_orhvoxS.js';
|
|
35
35
|
export { G as Grid } from './Grid-BAN8WD_V.js';
|
|
36
36
|
export { I as Icon } from './Icon-feeG7gXA.js';
|
|
37
|
-
export { I as InputMask } from './InputMask-
|
|
37
|
+
export { I as InputMask } from './InputMask-BDl09V4u.js';
|
|
38
38
|
export { L as Layout, b as LayoutElement, a as LayoutItem } from './Layout-C2Q2hyLG.js';
|
|
39
39
|
export { L as Link, u as useLinkStyles } from './Link-D8A_WT94.js';
|
|
40
40
|
export { L as LinkButton } from './LinkButton-DxYsWiXB.js';
|
|
41
41
|
export { L as List } from './List-GPS-GqH7.js';
|
|
42
|
-
export { L as Listbox } from './Listbox-
|
|
43
|
-
export { L as ListView, a as ListViewOption, b as ListViewOptionCell } from './ListView-
|
|
42
|
+
export { L as Listbox } from './Listbox-CvQHBFWb.js';
|
|
43
|
+
export { L as ListView, a as ListViewOption, b as ListViewOptionCell } from './ListView-CcRRh1ap.js';
|
|
44
44
|
export { M as Menu } from './Menu-W0c-xKdX.js';
|
|
45
|
-
export { N as NumberField } from './NumberField-
|
|
45
|
+
export { N as NumberField } from './NumberField-BymFZhIJ.js';
|
|
46
46
|
export { Overflow, OverflowText } from './Overflow.js';
|
|
47
|
-
export { P as Page } from './Page-
|
|
48
|
-
export { P as Pagination } from './Pagination-
|
|
49
|
-
export { P as Popover } from './Popover-
|
|
50
|
-
export { P as ProgressBar } from './ProgressBar-
|
|
51
|
-
export { R as Radio } from './Radio-
|
|
52
|
-
export { S as SearchField } from './SearchField-
|
|
47
|
+
export { P as Page } from './Page-SBy27-Wv.js';
|
|
48
|
+
export { P as Pagination } from './Pagination-Cm8-K6VH.js';
|
|
49
|
+
export { P as Popover } from './Popover-8mTJoMy7.js';
|
|
50
|
+
export { P as ProgressBar } from './ProgressBar-C1CkQHV5.js';
|
|
51
|
+
export { R as Radio } from './Radio-BcHMk8dD.js';
|
|
52
|
+
export { S as SearchField } from './SearchField-3tUPU8hH.js';
|
|
53
53
|
export { S as SegmentedControl, a as SegmentedControlSegment } from './SegmentedControl-PwLdTdrd.js';
|
|
54
|
-
export { S as SelectCard } from './SelectCard-
|
|
55
|
-
export { S as SelectTrigger } from './SelectTrigger-
|
|
54
|
+
export { S as SelectCard } from './SelectCard-BN-LI14f.js';
|
|
55
|
+
export { S as SelectTrigger } from './SelectTrigger-DTz7V-Xx.js';
|
|
56
56
|
export { S as SideNav } from './SideNav-JzIIZSK_.js';
|
|
57
57
|
export { Skeleton, SkeletonCircle, SkeletonPill, SkeletonRectangle, SkeletonText } from './Skeleton.js';
|
|
58
58
|
export { S as Spinner } from './Spinner-B7tTWcP6.js';
|
|
59
59
|
export { S as SrOnly } from './SrOnly-pnf8ajnh.js';
|
|
60
60
|
export { S as Stepper } from './Stepper-lYywxPU5.js';
|
|
61
|
-
export { S as Switch } from './Switch-
|
|
61
|
+
export { S as Switch } from './Switch-onmiKoRd.js';
|
|
62
62
|
export { T as Tab } from './Tab-CIY6BO2e.js';
|
|
63
|
-
export { T as Text } from './Text-
|
|
64
|
-
export { T as Textarea } from './Textarea-
|
|
65
|
-
export { T as TextField } from './TextField-
|
|
66
|
-
export { T as TimeField } from './TimeField-
|
|
67
|
-
export { T as Toaster } from './Toaster-
|
|
68
|
-
export { t as toast } from './Toaster-
|
|
69
|
-
export { T as Toolbar } from './Toolbar-
|
|
70
|
-
export { T as Tooltip } from './Tooltip-
|
|
63
|
+
export { T as Text } from './Text-BTzgTpqu.js';
|
|
64
|
+
export { T as Textarea } from './Textarea-PXjppEQ6.js';
|
|
65
|
+
export { T as TextField } from './TextField-WTYZJlX3.js';
|
|
66
|
+
export { T as TimeField } from './TimeField-BJPXIv6W.js';
|
|
67
|
+
export { T as Toaster } from './Toaster-DXLc86VD.js';
|
|
68
|
+
export { t as toast } from './Toaster-CoChsMD0.js';
|
|
69
|
+
export { T as Toolbar } from './Toolbar-Bt3kShho.js';
|
|
70
|
+
export { T as Tooltip } from './Tooltip-yr1D06BE.js';
|
|
71
71
|
export { u as useAccessibleColor } from './useAccessibleColor-BYKjkGRg.js';
|
|
72
72
|
export { u as useBreakpoint } from './useBreakpoint-CeaUyHxh.js';
|
|
73
73
|
export { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
@@ -75,7 +75,7 @@ export { u as usePrefersColorScheme } from './usePrefersColorScheme-_hT7dK7_.js'
|
|
|
75
75
|
export { u as usePrefersReducedMotion } from './usePrefersReducedMotion-DR9B_D6w.js';
|
|
76
76
|
export { u as useSwipe } from './useSwipe-Cp-CJxLU.js';
|
|
77
77
|
export { useTrackingId } from './useTrackingId.js';
|
|
78
|
-
export { A as AnvilProvider, a as AnvilProviderContext } from './AnvilProvider-
|
|
78
|
+
export { A as AnvilProvider, a as AnvilProviderContext } from './AnvilProvider-J9DjoJiB.js';
|
|
79
79
|
export { L as LocalizationProvider } from './LocalizationProvider-CO8fQGqs.js';
|
|
80
80
|
export { L as LocalizationContext, u as useLocalizationContext } from './LocalizationContext-UsmB5mnR.js';
|
|
81
81
|
export { P as PortalProvider, a as PortalProviderContext } from './PortalProvider-Cj_y3gbC.js';
|
|
@@ -14,14 +14,17 @@ interface FilterButtonProps {
|
|
|
14
14
|
/**
|
|
15
15
|
* FilterButton component provides a popover interface for filter selection.
|
|
16
16
|
* Handles both controlled and uncontrolled filter updates.
|
|
17
|
-
* Built into FilterGroup for single-select, multi-select, date,
|
|
17
|
+
* Built into FilterGroup for single-select, multi-select, date, date range,
|
|
18
|
+
* and date list filter rendering.
|
|
18
19
|
*
|
|
19
20
|
* Features:
|
|
20
21
|
* - Maintains draft state for controlled filters
|
|
21
22
|
* - Updates immediately for uncontrolled filters
|
|
22
|
-
* - Provides Apply and Cancel actions in controlled mode
|
|
23
|
+
* - Provides Apply and Cancel actions in controlled mode (except dateList,
|
|
24
|
+
* which always commits and closes on selection)
|
|
23
25
|
* - Supports keyboard navigation and accessibility
|
|
24
|
-
* - Renders custom, single-select, multi-select, date,
|
|
26
|
+
* - Renders custom, single-select, multi-select, date, date range, and date
|
|
27
|
+
* list filter types
|
|
25
28
|
* - Integrates with FilterGroup context for state management
|
|
26
29
|
* - Displays appropriate icons for date-based filters
|
|
27
30
|
* - Shows formatted date values in button labels
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { DateFieldSingleProps } from '../../../components/DateFieldSingle';
|
|
2
|
+
import { DateListFilter, DateListLibraryOptionId, DateListOption } from './internal/types';
|
|
3
|
+
interface DateListDialogProps {
|
|
4
|
+
/** Library option whose dialog is open; null when closed. */
|
|
5
|
+
libraryId: DateListLibraryOptionId | null;
|
|
6
|
+
/** Parent filter id; used to derive unique DOM ids for the synthetic date pickers inside the dialog. */
|
|
7
|
+
parentFilterId: string;
|
|
8
|
+
/** Pre-seed value when re-opening an already-selected library option. */
|
|
9
|
+
initialValue?: string | {
|
|
10
|
+
startDate: string;
|
|
11
|
+
endDate: string;
|
|
12
|
+
};
|
|
13
|
+
mode?: DateFieldSingleProps["mode"];
|
|
14
|
+
/** Primary CTA label. "Apply" in popover, "Save" in drawer. */
|
|
15
|
+
dialogCtaLabel: "Apply" | "Save";
|
|
16
|
+
onCommit: (option: DateListOption) => void;
|
|
17
|
+
onCancel: () => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Dialog shared by FilterDateList (popover) and FilterDrawer's dateList case.
|
|
21
|
+
* Renders a date or range picker for the chosen library option and commits
|
|
22
|
+
* up on Apply/Save.
|
|
23
|
+
*/
|
|
24
|
+
export declare const DateListDialog: ({ libraryId, parentFilterId, initialValue, mode, dialogCtaLabel, onCommit, onCancel, }: DateListDialogProps) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
interface FilterDateListProps {
|
|
26
|
+
filter: DateListFilter;
|
|
27
|
+
draftValue: DateListOption | undefined;
|
|
28
|
+
onDraftChange: (value: DateListOption | undefined) => void;
|
|
29
|
+
/** Primary CTA label for the library-option dialog. */
|
|
30
|
+
dialogCtaLabel: "Apply" | "Save";
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* FilterDateList renders the dateList filter's option list inside a popover.
|
|
34
|
+
* Consumer options commit immediately; library options open a Dialog.
|
|
35
|
+
*/
|
|
36
|
+
export declare const FilterDateList: ({ filter, draftValue, onDraftChange, dialogCtaLabel, }: FilterDateListProps) => import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './FilterBar';
|
|
2
2
|
export { FilterBar as default, type FilterBarProps } from './FilterBar';
|
|
3
|
-
export { type Filter, type BooleanFilter, type CustomFilter, type SingleSelectFilter, type MultiSelectFilter, type DateFilter, type DateRangeFilter, type FilterValue, type FilterRenderProps, type BaseFilter, } from './internal/types';
|
|
3
|
+
export { type Filter, type BooleanFilter, type CustomFilter, type SingleSelectFilter, type MultiSelectFilter, type DateFilter, type DateRangeFilter, type DateListFilter, type DateListOption, type DateListLibraryOptionId, type FilterValue, type FilterRenderProps, type BaseFilter, } from './internal/types';
|
|
@@ -121,10 +121,48 @@ export type DateFilter = BaseFilter & Pick<DateFieldSingleProps, "value" | "mode
|
|
|
121
121
|
export type DateRangeFilter = BaseFilter & Pick<DateFieldRangeProps, "value" | "mode"> & {
|
|
122
122
|
type: "dateRange";
|
|
123
123
|
};
|
|
124
|
+
/**
|
|
125
|
+
* Pre-defined library options the dateList filter always renders below the
|
|
126
|
+
* consumer's options. Each opens a Dialog with a date picker. Callers must
|
|
127
|
+
* not use these ids in their own `options`.
|
|
128
|
+
*/
|
|
129
|
+
export type DateListLibraryOptionId = "on" | "before" | "after" | "customRange";
|
|
130
|
+
/**
|
|
131
|
+
* An option in a dateList filter. Consumer-supplied options commit their
|
|
132
|
+
* `value` immediately on click. Library options share this shape with one
|
|
133
|
+
* of the reserved `DateListLibraryOptionId` ids.
|
|
134
|
+
*/
|
|
135
|
+
export type DateListOption = {
|
|
136
|
+
/** Unique identifier for the option */
|
|
137
|
+
id: string;
|
|
138
|
+
/** Display label for the option */
|
|
139
|
+
label: string;
|
|
140
|
+
/**
|
|
141
|
+
* Concrete value the option resolves to: an ISO date string, a date range,
|
|
142
|
+
* or `null` to represent "no filter applied" (treated as inactive).
|
|
143
|
+
*/
|
|
144
|
+
value: string | {
|
|
145
|
+
startDate: string;
|
|
146
|
+
endDate: string;
|
|
147
|
+
} | null;
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Date list filter type. Renders the consumer's options followed by four
|
|
151
|
+
* library options (On…, Before…, After…, Custom Range…) that open a Dialog
|
|
152
|
+
* with the appropriate date picker.
|
|
153
|
+
*/
|
|
154
|
+
export type DateListFilter = BaseFilter & Pick<DateFieldSingleProps, "mode"> & {
|
|
155
|
+
/** Identifies this as a date list filter */
|
|
156
|
+
type: "dateList";
|
|
157
|
+
/** Consumer-supplied options. Library options are auto-rendered below. */
|
|
158
|
+
options: DateListOption[];
|
|
159
|
+
/** The currently selected option (consumer or library) */
|
|
160
|
+
selectedOption?: DateListOption;
|
|
161
|
+
};
|
|
124
162
|
/**
|
|
125
163
|
* Union type of all available filter types
|
|
126
164
|
* Uses unknown instead of any for better type safety
|
|
127
165
|
*/
|
|
128
|
-
export type Filter = BooleanFilter | CustomFilter<any> | SingleSelectFilter<any> | MultiSelectFilter<any> | DateFilter | DateRangeFilter;
|
|
166
|
+
export type Filter = BooleanFilter | CustomFilter<any> | SingleSelectFilter<any> | MultiSelectFilter<any> | DateFilter | DateRangeFilter | DateListFilter;
|
|
129
167
|
/** Type representing all possible filter values */
|
|
130
|
-
export type FilterValue = boolean | CustomFilter["value"] | SingleSelectFilter["selectedItem"] | MultiSelectFilter["selectedItems"] | DateFilter["value"] | DateRangeFilter["value"];
|
|
168
|
+
export type FilterValue = boolean | CustomFilter["value"] | SingleSelectFilter["selectedItem"] | MultiSelectFilter["selectedItems"] | DateFilter["value"] | DateRangeFilter["value"] | DateListFilter["selectedOption"];
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { DateListLibraryOptionId, DateListOption } from '../types';
|
|
2
|
+
/** Type guard for the four reserved library option ids. */
|
|
3
|
+
export declare const isDateListLibraryOptionId: (id: string) => id is DateListLibraryOptionId;
|
|
4
|
+
/** Label for a given library option id. */
|
|
5
|
+
export declare const getDateListLibraryOptionLabel: (id: DateListLibraryOptionId) => string;
|
|
6
|
+
/**
|
|
7
|
+
* Library options the dateList filter always renders below the consumer's
|
|
8
|
+
* options. Used by FilterDateList (popover) and FilterDrawer (drawer). The
|
|
9
|
+
* "…" suffix signals that picking the option opens a dialog; once a date is
|
|
10
|
+
* committed, the bare label (without "…") is what gets stored and shown in
|
|
11
|
+
* the filter trigger.
|
|
12
|
+
*/
|
|
13
|
+
export declare const dateListLibraryOptions: ReadonlyArray<{
|
|
14
|
+
id: DateListLibraryOptionId;
|
|
15
|
+
label: string;
|
|
16
|
+
}>;
|
|
17
|
+
/** True when the library option opens a date-range dialog. */
|
|
18
|
+
export declare const isDateListRangeLibraryId: (id: DateListLibraryOptionId) => boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Build the display label for a committed dateList selection. Used by both
|
|
21
|
+
* the FilterButton trigger and the FilterDrawer SelectField so the two
|
|
22
|
+
* surfaces stay in sync.
|
|
23
|
+
*
|
|
24
|
+
* - Selection with `value: null` (e.g. "Any day") → option label only.
|
|
25
|
+
* - Custom Range library option → just the formatted range (label omitted
|
|
26
|
+
* since the range is self-explanatory).
|
|
27
|
+
* - Other library or consumer options → `"<label>: <formatted>"`.
|
|
28
|
+
*/
|
|
29
|
+
export declare const formatDateListSelectionLabel: (selection: DateListOption) => string;
|
|
@@ -33,6 +33,8 @@ export declare const updateSingleFilter: (filters: Filter[], filterId: string, v
|
|
|
33
33
|
* Determines if two filter values are different.
|
|
34
34
|
* For arrays (multiSelect), compares by id set (order-insensitive, avoids JSON serialization).
|
|
35
35
|
* For singleSelect, compares by id if both are objects with id.
|
|
36
|
+
* For dateList selections (objects with both id and value), compares id AND value
|
|
37
|
+
* so re-picking the same library option with a different date still counts as a change.
|
|
36
38
|
*
|
|
37
39
|
* @param {T} a - First value to compare
|
|
38
40
|
* @param {T} b - Second value to compare
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Filter, BooleanFilter, CustomFilter, SingleSelectFilter, MultiSelectFilter, DateFilter, DateRangeFilter } from '../types';
|
|
1
|
+
import { Filter, BooleanFilter, CustomFilter, SingleSelectFilter, MultiSelectFilter, DateFilter, DateListFilter, DateRangeFilter } from '../types';
|
|
2
2
|
export type TestValue = {
|
|
3
3
|
id: number;
|
|
4
4
|
label: string;
|
|
@@ -54,5 +54,6 @@ export declare function createMockMultiSelectFilter<T = {
|
|
|
54
54
|
}>(overrides?: Partial<MultiSelectFilter<T>>): MultiSelectFilter<T>;
|
|
55
55
|
export declare function createMockDateFilter(overrides?: Partial<DateFilter>): DateFilter;
|
|
56
56
|
export declare function createMockDateRangeFilter(overrides?: Partial<DateRangeFilter>): DateRangeFilter;
|
|
57
|
+
export declare function createMockDateListFilter(overrides?: Partial<DateListFilter>): DateListFilter;
|
|
57
58
|
export declare const setupDesktopContainer: () => void;
|
|
58
59
|
export declare const setupMobileContainer: () => void;
|
|
@@ -16,5 +16,6 @@ import { MultiSelectFieldHandle, MultiSelectFieldProps } from './types';
|
|
|
16
16
|
* - Chip count limiting (maxChips prop)
|
|
17
17
|
* - Full accessibility support with ARIA attributes
|
|
18
18
|
* - Controlled selection state
|
|
19
|
+
* - Optional "Add new item" affordance below the option list with consumer-owned dialog
|
|
19
20
|
*/
|
|
20
21
|
export declare const MultiSelectField: import('react').ForwardRefExoticComponent<MultiSelectFieldProps & import('react').RefAttributes<MultiSelectFieldHandle>>;
|
package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts
CHANGED
|
@@ -2,4 +2,4 @@ import { MultiSelectFieldComboboxInternalProps } from './types';
|
|
|
2
2
|
/**
|
|
3
3
|
* Combobox mode: searchable multi-select using useCombobox.
|
|
4
4
|
*/
|
|
5
|
-
export declare const MultiSelectFieldComboboxMode: ({ labelAiMark, id, helperUid, selectedOptions, onSelectedOptionsChange, displayAs, isDisabledOrReadOnly, disabled, readOnly, required, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, hideLabel, hint, moreInfo, moreInfoId, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, debounceMs, selectAll, selectFiltered, singleRow, maxChips, getChipProps, onSearchChange, handleRemoveOption, handleClear, }: MultiSelectFieldComboboxInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare const MultiSelectFieldComboboxMode: ({ labelAiMark, id, helperUid, selectedOptions, onSelectedOptionsChange, displayAs, isDisabledOrReadOnly, disabled, readOnly, required, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, hideLabel, hint, moreInfo, moreInfoId, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, debounceMs, selectAll, selectFiltered, singleRow, maxChips, getChipProps, onSearchChange, addItemLabel, onAddNewItem, handleRemoveOption, handleClear, }: MultiSelectFieldComboboxInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -3,4 +3,4 @@ import { MultiSelectFieldBaseInternalProps } from './types';
|
|
|
3
3
|
* Select mode: non-searchable multi-select using useSelect.
|
|
4
4
|
* Active when disableSearch is true.
|
|
5
5
|
*/
|
|
6
|
-
export declare const MultiSelectFieldSelectMode: ({ labelAiMark, id, helperUid, selectedOptions, onSelectedOptionsChange, displayAs, isDisabledOrReadOnly, disabled, readOnly, required, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, hideLabel, hint, moreInfo, moreInfoId, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, selectAll, singleRow, maxChips, getChipProps, handleRemoveOption, handleClear, }: MultiSelectFieldBaseInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare const MultiSelectFieldSelectMode: ({ labelAiMark, id, helperUid, selectedOptions, onSelectedOptionsChange, displayAs, isDisabledOrReadOnly, disabled, readOnly, required, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, hideLabel, hint, moreInfo, moreInfoId, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, selectAll, singleRow, maxChips, getChipProps, addItemLabel, onAddNewItem, handleRemoveOption, handleClear, }: MultiSelectFieldBaseInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ReactElement, ReactNode, RefObject } from 'react';
|
|
2
2
|
import { AiMarkWithTooltipOrPopoverProps, CheckState } from '../../../../types';
|
|
3
|
+
import { AddNewItemProps } from '../../../../internal/types/addNewItemTypes';
|
|
3
4
|
import { MultiSelectFieldChipProps, MultiSelectFieldOption, MultiSelectFieldProps } from '../types';
|
|
4
5
|
export type MultiSelectFieldBaseInternalProps = {
|
|
5
6
|
id: string;
|
|
@@ -58,7 +59,7 @@ export type MultiSelectFieldBaseInternalProps = {
|
|
|
58
59
|
id: string | number;
|
|
59
60
|
}) => void;
|
|
60
61
|
handleClear: () => void;
|
|
61
|
-
};
|
|
62
|
+
} & AddNewItemProps;
|
|
62
63
|
export type MultiSelectFieldComboboxInternalProps = MultiSelectFieldBaseInternalProps & {
|
|
63
64
|
debounceMs: number;
|
|
64
65
|
selectFiltered?: (searchValue: string) => {
|
|
@@ -2,6 +2,7 @@ import { AriaAttributes, CSSProperties, ReactElement, ReactNode } from 'react';
|
|
|
2
2
|
import { AiMarkWithTooltipOrPopoverProps, CheckState, LayoutUtilProps, Size } from '../../../types';
|
|
3
3
|
import { SelectFieldGroupByValue, SelectFieldOption } from '../SelectField/types';
|
|
4
4
|
import { ChipProps } from '../../../components/Chip';
|
|
5
|
+
import { AddNewItemProps } from '../../../internal/types/addNewItemTypes';
|
|
5
6
|
/**
|
|
6
7
|
* Partial chip props that can be returned from the `getChipProps` callback.
|
|
7
8
|
* Supports `icon` or `avatar` (mutually exclusive) and all other chip props as optional overrides.
|
|
@@ -300,7 +301,7 @@ type MultiSelectFieldCommonProps = {
|
|
|
300
301
|
* @returns Partial chip props to merge onto the chip
|
|
301
302
|
*/
|
|
302
303
|
getChipProps?: (option: MultiSelectFieldOption) => MultiSelectFieldChipProps;
|
|
303
|
-
} & MultiSelectFieldSearchProps & LayoutUtilProps;
|
|
304
|
+
} & MultiSelectFieldSearchProps & LayoutUtilProps & AddNewItemProps;
|
|
304
305
|
type MultiSelectFieldGroupingProps = {
|
|
305
306
|
/**
|
|
306
307
|
* Function to convert a group value to a display label.
|
|
@@ -17,6 +17,7 @@ import { MultiSelectMenuHandle, MultiSelectMenuProps } from './types';
|
|
|
17
17
|
* - Full accessibility support with ARIA attributes
|
|
18
18
|
* - Controlled selection state
|
|
19
19
|
* - Configurable popover width
|
|
20
|
+
* - Optional "Add new item" affordance below the option list with consumer-owned dialog
|
|
20
21
|
*
|
|
21
22
|
* @example
|
|
22
23
|
* <MultiSelectMenu
|
|
@@ -2,6 +2,7 @@ import { KeyboardEvent, ReactElement, RefObject } from 'react';
|
|
|
2
2
|
import { CheckState } from '../../../types';
|
|
3
3
|
import { SelectFieldGroupByValue, SelectFieldOption } from '../SelectField/types';
|
|
4
4
|
import { MultiSelectFieldCacheOptions, MultiSelectFieldEagerLoader, MultiSelectFieldGroupLazyLoader, MultiSelectFieldOffsetLazyLoader, MultiSelectFieldPageLazyLoader, MultiSelectFieldPinnedOptions, MultiSelectFieldSearchProps } from '../MultiSelectField/types';
|
|
5
|
+
import { AddNewItemProps } from '../../../internal/types/addNewItemTypes';
|
|
5
6
|
export type MultiSelectMenuOption = SelectFieldOption;
|
|
6
7
|
export type MultiSelectMenuGroupByValue = SelectFieldGroupByValue;
|
|
7
8
|
/**
|
|
@@ -142,7 +143,7 @@ type MultiSelectMenuCommonProps = {
|
|
|
142
143
|
* @default 320
|
|
143
144
|
*/
|
|
144
145
|
popoverWidth?: "reference" | number | string;
|
|
145
|
-
} & MultiSelectMenuSearchProps;
|
|
146
|
+
} & MultiSelectMenuSearchProps & AddNewItemProps;
|
|
146
147
|
type MultiSelectMenuGroupingProps = {
|
|
147
148
|
/**
|
|
148
149
|
* Function to convert a group value to a display label.
|
|
@@ -1,2 +1,23 @@
|
|
|
1
1
|
import { SelectFieldHandle, SelectFieldProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* SelectField component for selecting a single option from a searchable dropdown.
|
|
4
|
+
*
|
|
5
|
+
* Features:
|
|
6
|
+
* - Async option loading with caching, lazy pagination (page, offset, group), and debounced search
|
|
7
|
+
* - Supports pinned option sections (static or dynamically loaded)
|
|
8
|
+
* - Grouped options with custom sort and label functions
|
|
9
|
+
* - Combobox mode (searchable) and select mode (non-searchable) via disableSearch
|
|
10
|
+
* - Dialog and popover display modes with auto-detection based on viewport
|
|
11
|
+
* - Imperative handle for cache management (clearCache, invalidate)
|
|
12
|
+
* - Optional "Add new item" affordance below the option list with consumer-owned dialog
|
|
13
|
+
* - Supports layout utilities for positioning and spacing
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* <SelectField
|
|
17
|
+
* label="Technician"
|
|
18
|
+
* value={selected}
|
|
19
|
+
* onSelectedOptionChange={setSelected}
|
|
20
|
+
* loadOptions={async (search) => fetchTechnicians(search)}
|
|
21
|
+
* />
|
|
22
|
+
*/
|
|
2
23
|
export declare const SelectField: import('react').ForwardRefExoticComponent<SelectFieldProps & import('react').RefAttributes<SelectFieldHandle>>;
|
|
@@ -3,4 +3,4 @@ import { SelectFieldComboboxInternalProps } from '../../../../internal/types/sel
|
|
|
3
3
|
* Combobox mode: searchable select using useCombobox.
|
|
4
4
|
* This is the default behavior when disableSearch is false.
|
|
5
5
|
*/
|
|
6
|
-
export declare const SelectFieldComboboxMode: ({ id, helperUid, selectedOption, onSelectedOptionChange, displayAs, isDisabledOrReadOnly, disabled, labelAiMark, readOnly, required, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, hideLabel, hint, moreInfo, moreInfoId, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, debounceMs, }: SelectFieldComboboxInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare const SelectFieldComboboxMode: ({ id, helperUid, selectedOption, onSelectedOptionChange, displayAs, isDisabledOrReadOnly, disabled, labelAiMark, readOnly, required, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, hideLabel, hint, moreInfo, moreInfoId, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, debounceMs, addItemLabel, onAddNewItem, }: SelectFieldComboboxInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -3,4 +3,4 @@ import { SelectFieldBaseInternalProps } from '../../../../internal/types/selectF
|
|
|
3
3
|
* Select mode: non-searchable select using useSelect.
|
|
4
4
|
* Active when disableSearch is true.
|
|
5
5
|
*/
|
|
6
|
-
export declare const SelectFieldSelectMode: ({ labelAiMark, id, helperUid, selectedOption, onSelectedOptionChange, displayAs, isDisabledOrReadOnly, disabled, readOnly, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, hideLabel, hint, moreInfo, moreInfoId, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, required, }: SelectFieldBaseInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare const SelectFieldSelectMode: ({ labelAiMark, id, helperUid, selectedOption, onSelectedOptionChange, displayAs, isDisabledOrReadOnly, disabled, readOnly, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, hideLabel, hint, moreInfo, moreInfoId, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, required, addItemLabel, onAddNewItem, }: SelectFieldBaseInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AriaAttributes, CSSProperties, ReactElement, ReactNode } from 'react';
|
|
2
2
|
import { AiMarkWithTooltipOrPopoverProps, LayoutUtilProps, Size } from '../../../types';
|
|
3
3
|
import { AvatarProps, ChipProps, IconProps } from '../../..';
|
|
4
|
+
import { AddNewItemProps } from '../../../internal/types/addNewItemTypes';
|
|
4
5
|
/**
|
|
5
6
|
* Configuration options for the SelectField cache.
|
|
6
7
|
* @property enabled - Whether caching is enabled. Defaults to true.
|
|
@@ -250,7 +251,7 @@ type SelectFieldCommonSelectFieldProps = {
|
|
|
250
251
|
* @default false
|
|
251
252
|
*/
|
|
252
253
|
disableSearch?: boolean;
|
|
253
|
-
} & SelectFieldSearchProps & SelectFieldAddNewOptionProps & LayoutUtilProps;
|
|
254
|
+
} & SelectFieldSearchProps & SelectFieldAddNewOptionProps & LayoutUtilProps & AddNewItemProps;
|
|
254
255
|
type SelectFieldGroupingProps = {
|
|
255
256
|
/**
|
|
256
257
|
* Function to convert a group value to a display label.
|
|
@@ -14,6 +14,7 @@ import { SelectMenuHandle, SelectMenuProps } from './types';
|
|
|
14
14
|
* - Full accessibility support with ARIA attributes
|
|
15
15
|
* - Controlled selection state
|
|
16
16
|
* - Configurable popover width
|
|
17
|
+
* - Optional "Add new item" affordance below the option list with consumer-owned dialog
|
|
17
18
|
*
|
|
18
19
|
* @example
|
|
19
20
|
* <SelectMenu
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { KeyboardEvent, ReactElement, RefObject } from 'react';
|
|
2
2
|
import { SelectFieldCacheOptions, SelectFieldEagerLoader, SelectFieldGroupByValue, SelectFieldGroupLazyLoader, SelectFieldGroupedOption, SelectFieldOffsetLazyLoader, SelectFieldOption, SelectFieldPageLazyLoader, SelectFieldPinnedOptions, SelectFieldSearchProps } from '../SelectField/types';
|
|
3
|
+
import { AddNewItemProps } from '../../../internal/types/addNewItemTypes';
|
|
3
4
|
export type SelectMenuOption = SelectFieldOption;
|
|
4
5
|
export type SelectMenuGroupByValue = SelectFieldGroupByValue;
|
|
5
6
|
export type SelectMenuGroupedOption = SelectFieldGroupedOption;
|
|
@@ -124,7 +125,7 @@ type SelectMenuCommonProps = {
|
|
|
124
125
|
* @default 320
|
|
125
126
|
*/
|
|
126
127
|
popoverWidth?: "reference" | number | string;
|
|
127
|
-
} & SelectMenuSearchProps;
|
|
128
|
+
} & SelectMenuSearchProps & AddNewItemProps;
|
|
128
129
|
type SelectMenuGroupingProps = {
|
|
129
130
|
/**
|
|
130
131
|
* Function to convert a group value to a display label.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AddNewItemProps } from '../types/addNewItemTypes';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the AddNewItemButton component.
|
|
4
|
+
*
|
|
5
|
+
* @property {string} searchText - The current search text, forwarded to the consumer's handler and label callback.
|
|
6
|
+
* @property {() => void} [onCloseMenu] - Internal hook for the host menu to close itself when the button is clicked. Fires before the consumer's handler.
|
|
7
|
+
* @extends AddNewItemProps
|
|
8
|
+
*/
|
|
9
|
+
export type AddNewItemButtonProps = AddNewItemProps & {
|
|
10
|
+
/** The current search text, forwarded to the consumer's handler and label callback. */
|
|
11
|
+
searchText: string;
|
|
12
|
+
/** Internal hook for the host menu to close itself when the button is clicked. */
|
|
13
|
+
onCloseMenu?: () => void;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* AddNewItemButton renders the consumer's "Add new item" affordance for the
|
|
17
|
+
* Select* / MultiSelect* components. Positioning, padding, background tint,
|
|
18
|
+
* and the visual separator from the option list are owned by the surrounding
|
|
19
|
+
* popover/dialog footer slot — this component is only responsible for the
|
|
20
|
+
* button itself.
|
|
21
|
+
*
|
|
22
|
+
* Features:
|
|
23
|
+
* - Renders nothing when no `onAddNewItem` handler is provided
|
|
24
|
+
* - Static or dynamic label resolved against the current search text
|
|
25
|
+
* - Closes the host menu via `onCloseMenu` when clicked, before invoking the consumer's handler
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* <AddNewItemButton
|
|
29
|
+
* searchText={searchText}
|
|
30
|
+
* addItemLabel={(s) => `Add "${s}"`}
|
|
31
|
+
* onAddNewItem={(text) => openAddDialog(text)}
|
|
32
|
+
* onCloseMenu={closeMenu}
|
|
33
|
+
* />
|
|
34
|
+
*
|
|
35
|
+
* @returns The button, or null when the feature is not enabled.
|
|
36
|
+
*/
|
|
37
|
+
export declare const AddNewItemButton: {
|
|
38
|
+
({ searchText, addItemLabel, onAddNewItem, onCloseMenu, }: AddNewItemButtonProps): import("react/jsx-runtime").JSX.Element | null;
|
|
39
|
+
displayName: string;
|
|
40
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FocusableElement } from '../../..';
|
|
2
|
-
export declare const OptionsDialog: ({ id, isOpen, onClose, field, children, title, initialFocusResolver, }: {
|
|
2
|
+
export declare const OptionsDialog: ({ id, isOpen, onClose, field, children, title, initialFocusResolver, footer, }: {
|
|
3
3
|
id: string;
|
|
4
4
|
isOpen: boolean;
|
|
5
5
|
onClose: () => void;
|
|
@@ -7,4 +7,6 @@ export declare const OptionsDialog: ({ id, isOpen, onClose, field, children, tit
|
|
|
7
7
|
field?: React.ReactNode;
|
|
8
8
|
children: React.ReactNode;
|
|
9
9
|
initialFocusResolver?: (focusables: FocusableElement[]) => FocusableElement;
|
|
10
|
+
/** Optional content rendered below the dialog body. */
|
|
11
|
+
footer?: React.ReactNode;
|
|
10
12
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -4,7 +4,13 @@ export type OptionsPopoverProps = {
|
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
referenceElement: RefObject<HTMLElement>;
|
|
6
6
|
open: boolean;
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Fired when the popover should close — either because the user clicked
|
|
9
|
+
* outside it, focus moved to an element outside the popover or its
|
|
10
|
+
* reference (trigger) element, or the user pressed Escape inside the
|
|
11
|
+
* popover.
|
|
12
|
+
*/
|
|
13
|
+
onClose: () => void;
|
|
8
14
|
/** Controls the popover width strategy.
|
|
9
15
|
* - `"reference"` — match the reference element's width
|
|
10
16
|
* - `number` — fixed width in px
|
|
@@ -12,5 +18,11 @@ export type OptionsPopoverProps = {
|
|
|
12
18
|
* - `undefined` (default) — intrinsic sizing (`max-content`)
|
|
13
19
|
*/
|
|
14
20
|
width?: "reference" | number | string;
|
|
21
|
+
/**
|
|
22
|
+
* Optional content rendered as a full-bleed footer region inside the popover
|
|
23
|
+
* shell, separated from the body by a top border. The popover suppresses its
|
|
24
|
+
* own bottom padding so the footer can hug the popover's lower edge.
|
|
25
|
+
*/
|
|
26
|
+
footer?: ReactNode;
|
|
15
27
|
};
|
|
16
28
|
export declare const OptionsPopover: (props: OptionsPopoverProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Shared prop set for the "Add new item" affordance available on
|
|
4
|
+
* SelectField, SelectMenu, MultiSelectField, and MultiSelectMenu.
|
|
5
|
+
*
|
|
6
|
+
* @property addItemLabel - Label rendered inside the "Add new item" button. May be a static node or a callback that receives the current search text and returns a dynamic label (e.g. `Add "${searchText}"`). When omitted but `onAddNewItem` is provided, falls back to `"Add new item"`.
|
|
7
|
+
* @property onAddNewItem - Click handler for the "Add new item" button. Presence of this prop is what gates rendering the button. Receives the current search text. The menu auto-closes synchronously on click; the handler runs immediately after — typically opening a Dialog or Drawer to collect the new item's details. Consumers manage their own overlay presentation, focus return, option list updates, and selection state.
|
|
8
|
+
*/
|
|
9
|
+
export type AddNewItemProps = {
|
|
10
|
+
addItemLabel?: ReactNode | ((searchText: string) => ReactNode);
|
|
11
|
+
onAddNewItem?: (searchText: string) => void;
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ReactElement, ReactNode, RefObject } from 'react';
|
|
2
2
|
import { AiMarkWithTooltipOrPopoverProps, CheckState } from '../../types';
|
|
3
3
|
import { SelectFieldOption, SelectFieldProps } from '../../beta/components/SelectField/types';
|
|
4
|
+
import { AddNewItemProps } from './addNewItemTypes';
|
|
4
5
|
/**
|
|
5
6
|
* Metadata about list sections for rendering purposes.
|
|
6
7
|
* Used by SelectOptions, MultiSelectOptions, and their Menu counterparts to render section headers and dividers.
|
|
@@ -62,7 +63,7 @@ export type SelectFieldBaseInternalProps = {
|
|
|
62
63
|
initialLoadPerformed: boolean;
|
|
63
64
|
setInitialLoadPerformed: (val: boolean) => void;
|
|
64
65
|
inputWrapperRef: RefObject<HTMLDivElement>;
|
|
65
|
-
};
|
|
66
|
+
} & AddNewItemProps;
|
|
66
67
|
export type SelectFieldComboboxInternalProps = SelectFieldBaseInternalProps & {
|
|
67
68
|
debounceMs: number;
|
|
68
69
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { I as INLINE_MARKDOWN_REGEX } from './FieldLabel-
|
|
1
|
+
import { I as INLINE_MARKDOWN_REGEX } from './FieldLabel-D1qPAGtB.js';
|
|
2
2
|
|
|
3
3
|
const stripInlineMarkdown = (str) => {
|
|
4
4
|
const parts = [];
|
|
@@ -22,4 +22,4 @@ const stripInlineMarkdown = (str) => {
|
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
export { stripInlineMarkdown as s };
|
|
25
|
-
//# sourceMappingURL=stripInlineMarkdown-
|
|
25
|
+
//# sourceMappingURL=stripInlineMarkdown-C5DNxxwf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stripInlineMarkdown-
|
|
1
|
+
{"version":3,"file":"stripInlineMarkdown-C5DNxxwf.js","sources":["../src/internal/functions/stripInlineMarkdown.ts"],"sourcesContent":["import { INLINE_MARKDOWN_REGEX } from \"../utils/inlineMarkdownRegex\";\n\n/**\n * Strips inline markdown syntax from a string, returning plain text.\n * Intended for accessibility contexts (e.g. `aria-label`) where only plain text is appropriate.\n *\n * @param str - The string to strip\n * @returns The string with all inline markdown syntax removed\n */\nexport const stripInlineMarkdown = (str: string): string => {\n const parts: string[] = [];\n let lastIndex = 0;\n\n INLINE_MARKDOWN_REGEX.lastIndex = 0;\n let match: RegExpExecArray | null;\n\n while ((match = INLINE_MARKDOWN_REGEX.exec(str)) !== null) {\n if (match.index > lastIndex) {\n parts.push(str.substring(lastIndex, match.index));\n }\n\n const savedIndex = INLINE_MARKDOWN_REGEX.lastIndex;\n const inner =\n match[1] ?? match[2] ?? match[3] ?? match[4] ?? match[5] ?? \"\";\n\n // code spans don't support nested markdown, matching parseInlineMarkdown behavior\n parts.push(match[5] ? inner : stripInlineMarkdown(inner));\n\n INLINE_MARKDOWN_REGEX.lastIndex = savedIndex;\n lastIndex = savedIndex;\n }\n\n if (lastIndex < str.length) {\n parts.push(str.substring(lastIndex));\n }\n\n return parts.join(\"\");\n};\n"],"names":[],"mappings":";;AASO,MAAM,mBAAA,GAAsB,CAAC,GAAA,KAAwB;AAC1D,EAAA,MAAM,QAAkB,EAAC;AACzB,EAAA,IAAI,SAAA,GAAY,CAAA;AAEhB,EAAA,qBAAA,CAAsB,SAAA,GAAY,CAAA;AAClC,EAAA,IAAI,KAAA;AAEJ,EAAA,OAAA,CAAQ,KAAA,GAAQ,qBAAA,CAAsB,IAAA,CAAK,GAAG,OAAO,IAAA,EAAM;AACzD,IAAA,IAAI,KAAA,CAAM,QAAQ,SAAA,EAAW;AAC3B,MAAA,KAAA,CAAM,KAAK,GAAA,CAAI,SAAA,CAAU,SAAA,EAAW,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,IAClD;AAEA,IAAA,MAAM,aAAa,qBAAA,CAAsB,SAAA;AACzC,IAAA,MAAM,KAAA,GACJ,KAAA,CAAM,CAAC,CAAA,IAAK,MAAM,CAAC,CAAA,IAAK,KAAA,CAAM,CAAC,KAAK,KAAA,CAAM,CAAC,CAAA,IAAK,KAAA,CAAM,CAAC,CAAA,IAAK,EAAA;AAG9D,IAAA,KAAA,CAAM,KAAK,KAAA,CAAM,CAAC,IAAI,KAAA,GAAQ,mBAAA,CAAoB,KAAK,CAAC,CAAA;AAExD,IAAA,qBAAA,CAAsB,SAAA,GAAY,UAAA;AAClC,IAAA,SAAA,GAAY,UAAA;AAAA,EACd;AAEA,EAAA,IAAI,SAAA,GAAY,IAAI,MAAA,EAAQ;AAC1B,IAAA,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,SAAA,CAAU,SAAS,CAAC,CAAA;AAAA,EACrC;AAEA,EAAA,OAAO,KAAA,CAAM,KAAK,EAAE,CAAA;AACtB;;;;"}
|