@soyfri/shared-library 4.0.4 → 4.1.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +15 -0
- package/README.md +393 -0
- package/chunks/ActionMenu-D81Xb35f.cjs.map +1 -0
- package/chunks/ActionMenu-co4b8doH.mjs +106 -0
- package/chunks/ActionMenu-co4b8doH.mjs.map +1 -0
- package/chunks/Alert-6Wiwby6L.mjs +53 -0
- package/chunks/Alert-6Wiwby6L.mjs.map +1 -0
- package/chunks/Alert-CLBHE4sH.cjs +52 -0
- package/chunks/Alert-CLBHE4sH.cjs.map +1 -0
- package/chunks/AppBarMenuToggle-BsN5zZTv.cjs +134 -0
- package/chunks/AppBarMenuToggle-BsN5zZTv.cjs.map +1 -0
- package/chunks/AppBarMenuToggle-DN_dFthr.mjs +135 -0
- package/chunks/AppBarMenuToggle-DN_dFthr.mjs.map +1 -0
- package/chunks/Autocomplete-BKuHgS8H.mjs +361 -0
- package/chunks/Autocomplete-BKuHgS8H.mjs.map +1 -0
- package/chunks/Autocomplete-CxZhdrSA.cjs +360 -0
- package/chunks/Autocomplete-CxZhdrSA.cjs.map +1 -0
- package/chunks/Avatar-BTEyuYXI.mjs +184 -0
- package/chunks/Avatar-BTEyuYXI.mjs.map +1 -0
- package/chunks/Avatar-CJlBSdDl.cjs +183 -0
- package/chunks/Avatar-CJlBSdDl.cjs.map +1 -0
- package/chunks/Breadcrumbs-DH0KAc8w.cjs +41 -0
- package/chunks/Breadcrumbs-DH0KAc8w.cjs.map +1 -0
- package/chunks/Breadcrumbs-Du_7W4gr.mjs +42 -0
- package/chunks/Breadcrumbs-Du_7W4gr.mjs.map +1 -0
- package/chunks/Button-BCNhPNKU.cjs +51 -0
- package/chunks/Button-BCNhPNKU.cjs.map +1 -0
- package/chunks/Button-DbqDgTAR.mjs +52 -0
- package/chunks/Button-DbqDgTAR.mjs.map +1 -0
- package/chunks/ButtonGroup-B9AnoOt_.cjs +64 -0
- package/chunks/ButtonGroup-B9AnoOt_.cjs.map +1 -0
- package/chunks/ButtonGroup-DFPzal0z.mjs +65 -0
- package/chunks/ButtonGroup-DFPzal0z.mjs.map +1 -0
- package/chunks/Card-DfueKp5e.mjs +155 -0
- package/chunks/Card-DfueKp5e.mjs.map +1 -0
- package/chunks/Card-DpKG8AOc.cjs +154 -0
- package/chunks/Card-DpKG8AOc.cjs.map +1 -0
- package/chunks/Checkbox-BaVffFaF.cjs +192 -0
- package/chunks/Checkbox-BaVffFaF.cjs.map +1 -0
- package/chunks/Checkbox-Bvky878D.mjs +193 -0
- package/chunks/Checkbox-Bvky878D.mjs.map +1 -0
- package/chunks/Chip-5QNjzffa.cjs +75 -0
- package/chunks/Chip-5QNjzffa.cjs.map +1 -0
- package/chunks/Chip-5ZYwvVc1.mjs +76 -0
- package/chunks/Chip-5ZYwvVc1.mjs.map +1 -0
- package/chunks/DataRow-6oYxHTYF.cjs +123 -0
- package/chunks/DataRow-6oYxHTYF.cjs.map +1 -0
- package/chunks/DataRow-B8SZkwHB.mjs +124 -0
- package/chunks/DataRow-B8SZkwHB.mjs.map +1 -0
- package/chunks/DatePicker-BEwQDuPy.mjs +187 -0
- package/chunks/DatePicker-BEwQDuPy.mjs.map +1 -0
- package/chunks/DatePicker-Dl46Ae5T.cjs +186 -0
- package/chunks/DatePicker-Dl46Ae5T.cjs.map +1 -0
- package/chunks/DateTimePicker-BDlUoDyR.cjs +230 -0
- package/chunks/DateTimePicker-BDlUoDyR.cjs.map +1 -0
- package/chunks/DateTimePicker-BXghtoRm.mjs +231 -0
- package/chunks/DateTimePicker-BXghtoRm.mjs.map +1 -0
- package/chunks/Divider-CSDEVgHL.cjs +41 -0
- package/chunks/Divider-CSDEVgHL.cjs.map +1 -0
- package/chunks/Divider-LWjGO0ja.mjs +42 -0
- package/chunks/Divider-LWjGO0ja.mjs.map +1 -0
- package/chunks/DrawerItem-BX8llYa3.cjs +274 -0
- package/chunks/DrawerItem-BX8llYa3.cjs.map +1 -0
- package/chunks/DrawerItem-BaLZe-DV.mjs +275 -0
- package/chunks/DrawerItem-BaLZe-DV.mjs.map +1 -0
- package/chunks/EmptyState-C3G5C0DO.cjs +91 -0
- package/chunks/EmptyState-C3G5C0DO.cjs.map +1 -0
- package/chunks/EmptyState-CVaRjXkT.mjs +92 -0
- package/chunks/EmptyState-CVaRjXkT.mjs.map +1 -0
- package/chunks/Flyout-BSaOisD7.mjs +118 -0
- package/chunks/Flyout-BSaOisD7.mjs.map +1 -0
- package/chunks/Flyout-CVH3IASy.cjs +117 -0
- package/chunks/Flyout-CVH3IASy.cjs.map +1 -0
- package/chunks/Gallery-B5XDZBRu.mjs +494 -0
- package/chunks/Gallery-B5XDZBRu.mjs.map +1 -0
- package/chunks/Gallery-BJ3O0SEf.cjs +493 -0
- package/chunks/Gallery-BJ3O0SEf.cjs.map +1 -0
- package/chunks/Icon-C4laDiIR.cjs +158 -0
- package/chunks/Icon-C4laDiIR.cjs.map +1 -0
- package/chunks/Icon-C5vYo9Is.mjs +159 -0
- package/chunks/Icon-C5vYo9Is.mjs.map +1 -0
- package/chunks/Input-BOt_sv7B.mjs +206 -0
- package/chunks/Input-BOt_sv7B.mjs.map +1 -0
- package/chunks/Input-Bcm7XRHs.cjs +205 -0
- package/chunks/Input-Bcm7XRHs.cjs.map +1 -0
- package/chunks/InputGroup-CSQ4zpAf.cjs +160 -0
- package/chunks/InputGroup-CSQ4zpAf.cjs.map +1 -0
- package/chunks/InputGroup-DIMk8yiS.mjs +161 -0
- package/chunks/InputGroup-DIMk8yiS.mjs.map +1 -0
- package/chunks/MenuButton-BqCkrXmM.cjs +79 -0
- package/chunks/MenuButton-BqCkrXmM.cjs.map +1 -0
- package/chunks/MenuButton-DUlSw-sF.mjs +80 -0
- package/chunks/MenuButton-DUlSw-sF.mjs.map +1 -0
- package/chunks/Modal-E1V8hyFI.mjs +362 -0
- package/chunks/Modal-E1V8hyFI.mjs.map +1 -0
- package/chunks/Modal-KRUDCrlp.cjs +361 -0
- package/chunks/Modal-KRUDCrlp.cjs.map +1 -0
- package/chunks/PageHeader-C5tVfSvH.cjs +88 -0
- package/chunks/PageHeader-C5tVfSvH.cjs.map +1 -0
- package/chunks/PageHeader-DAYz1_fF.mjs +89 -0
- package/chunks/PageHeader-DAYz1_fF.mjs.map +1 -0
- package/chunks/RadioGroup-DT5IaA5K.cjs +202 -0
- package/chunks/RadioGroup-DT5IaA5K.cjs.map +1 -0
- package/chunks/RadioGroup-atKq1EWA.mjs +203 -0
- package/chunks/RadioGroup-atKq1EWA.mjs.map +1 -0
- package/chunks/Select-CWZJnddP.mjs +389 -0
- package/chunks/Select-CWZJnddP.mjs.map +1 -0
- package/chunks/Select-CjiKx_1z.cjs +388 -0
- package/chunks/Select-CjiKx_1z.cjs.map +1 -0
- package/chunks/Spinner-ColidLuW.mjs +100 -0
- package/chunks/Spinner-ColidLuW.mjs.map +1 -0
- package/chunks/Spinner-D3Klgy3Z.cjs +99 -0
- package/chunks/Spinner-D3Klgy3Z.cjs.map +1 -0
- package/chunks/Stat-BYqc3PFf.cjs +149 -0
- package/chunks/Stat-BYqc3PFf.cjs.map +1 -0
- package/chunks/Stat-DX2kcT36.mjs +150 -0
- package/chunks/Stat-DX2kcT36.mjs.map +1 -0
- package/chunks/StatusMessage-Bl_E83nN.cjs +108 -0
- package/chunks/StatusMessage-Bl_E83nN.cjs.map +1 -0
- package/chunks/StatusMessage-Pa5IutUR.mjs +109 -0
- package/chunks/StatusMessage-Pa5IutUR.mjs.map +1 -0
- package/chunks/Step-BdgcmiDk.mjs +301 -0
- package/chunks/Step-BdgcmiDk.mjs.map +1 -0
- package/chunks/Step-fng1hpkt.cjs +300 -0
- package/chunks/Step-fng1hpkt.cjs.map +1 -0
- package/chunks/Switch-9zvnchC7.cjs +201 -0
- package/chunks/Switch-9zvnchC7.cjs.map +1 -0
- package/chunks/Switch-CsYwGxu5.mjs +185 -0
- package/chunks/Switch-CsYwGxu5.mjs.map +1 -0
- package/chunks/Tab-BXTh3QSn.mjs +138 -0
- package/chunks/Tab-BXTh3QSn.mjs.map +1 -0
- package/chunks/Tab-CjCGp0aH.cjs +137 -0
- package/chunks/Tab-CjCGp0aH.cjs.map +1 -0
- package/chunks/Table-BcI9uvYg.cjs +539 -0
- package/chunks/Table-BcI9uvYg.cjs.map +1 -0
- package/chunks/Table-DGmx3UyH.mjs +540 -0
- package/chunks/Table-DGmx3UyH.mjs.map +1 -0
- package/chunks/TimelineItem-BWFnies7.mjs +72 -0
- package/chunks/TimelineItem-BWFnies7.mjs.map +1 -0
- package/chunks/TimelineItem-CceZABwX.cjs +88 -0
- package/chunks/TimelineItem-CceZABwX.cjs.map +1 -0
- package/chunks/Tooltip-BWffoOtY.mjs +59 -0
- package/chunks/Tooltip-BWffoOtY.mjs.map +1 -0
- package/chunks/Tooltip-BtEsQB-y.cjs +58 -0
- package/chunks/Tooltip-BtEsQB-y.cjs.map +1 -0
- package/chunks/formField.sx-BLA6rq1F.mjs +109 -0
- package/chunks/formField.sx-BLA6rq1F.mjs.map +1 -0
- package/chunks/formField.sx-DEDuTUQS.cjs +108 -0
- package/chunks/formField.sx-DEDuTUQS.cjs.map +1 -0
- package/chunks/mergeSlotProps-D-7l6IPd.mjs +32 -0
- package/chunks/mergeSlotProps-D-7l6IPd.mjs.map +1 -0
- package/chunks/mergeSlotProps-DixXUzK1.cjs +31 -0
- package/chunks/mergeSlotProps-DixXUzK1.cjs.map +1 -0
- package/chunks/mergeSx-BXoNZjB_.mjs +10 -0
- package/chunks/mergeSx-BXoNZjB_.mjs.map +1 -0
- package/chunks/mergeSx-Dbccoo_H.cjs.map +1 -0
- package/chunks/resolvePreset-CxTI6_Ln.cjs.map +1 -0
- package/chunks/resolvePreset-K6_BfWHD.mjs +15 -0
- package/chunks/resolvePreset-K6_BfWHD.mjs.map +1 -0
- package/chunks/tokens-B5kmy5Gy.cjs +36 -0
- package/chunks/tokens-B5kmy5Gy.cjs.map +1 -0
- package/chunks/tokens-C2AKLGbM.mjs +37 -0
- package/chunks/tokens-C2AKLGbM.mjs.map +1 -0
- package/components/ActionMenu/ActionMenu.d.cts +44 -0
- package/components/ActionMenu/ActionMenu.d.mts +44 -0
- package/components/ActionMenu/index.cjs +7 -0
- package/components/ActionMenu/index.cjs.map +1 -0
- package/components/ActionMenu/index.d.cts +2 -0
- package/components/ActionMenu/index.d.mts +2 -0
- package/components/ActionMenu/index.mjs +7 -0
- package/components/ActionMenu/index.mjs.map +1 -0
- package/components/ActionMenu.d.cts +6 -0
- package/components/ActionMenu.d.mts +6 -0
- package/components/Alert/Alert.d.cts +26 -0
- package/components/Alert/Alert.d.mts +26 -0
- package/components/Alert/Alert.d.ts +3 -8
- package/components/Alert/index.cjs +6 -0
- package/components/Alert/index.cjs.map +1 -0
- package/components/Alert/index.d.cts +2 -0
- package/components/Alert/index.d.mts +2 -0
- package/components/Alert/index.mjs +6 -0
- package/components/Alert/index.mjs.map +1 -0
- package/components/Alert.d.cts +6 -0
- package/components/Alert.d.mts +6 -0
- package/components/AppBar/AppBar.d.cts +38 -0
- package/components/AppBar/AppBar.d.mts +38 -0
- package/components/AppBar/AppBar.d.ts +2 -19
- package/components/AppBar/AppBar.sx.d.cts +21 -0
- package/components/AppBar/AppBar.sx.d.mts +21 -0
- package/components/AppBar/AppBar.sx.d.ts +12 -3
- package/components/AppBar/AppBarContext.d.cts +18 -0
- package/components/AppBar/AppBarContext.d.mts +18 -0
- package/components/AppBar/AppBarMenuToggle.d.cts +39 -0
- package/components/AppBar/AppBarMenuToggle.d.mts +39 -0
- package/components/AppBar/index.cjs +9 -0
- package/components/AppBar/index.cjs.map +1 -0
- package/components/AppBar/index.d.cts +6 -0
- package/components/AppBar/index.d.mts +6 -0
- package/components/AppBar/index.mjs +9 -0
- package/components/AppBar/index.mjs.map +1 -0
- package/components/AppBar.d.cts +6 -0
- package/components/AppBar.d.mts +6 -0
- package/components/Autocomplete/Autocomplete.d.cts +102 -0
- package/components/Autocomplete/Autocomplete.d.mts +102 -0
- package/components/Autocomplete/Autocomplete.helpers.d.cts +22 -0
- package/components/Autocomplete/Autocomplete.helpers.d.mts +22 -0
- package/components/Autocomplete/Autocomplete.sx.d.cts +12 -0
- package/components/Autocomplete/Autocomplete.sx.d.mts +12 -0
- package/components/Autocomplete/Autocomplete.sx.d.ts +8 -3
- package/components/Autocomplete/_parts/AutocompleteChips.d.cts +20 -0
- package/components/Autocomplete/_parts/AutocompleteChips.d.mts +20 -0
- package/components/Autocomplete/_parts/AutocompleteLoader.d.cts +9 -0
- package/components/Autocomplete/_parts/AutocompleteLoader.d.mts +9 -0
- package/components/Autocomplete/_parts/AutocompleteOption.d.cts +16 -0
- package/components/Autocomplete/_parts/AutocompleteOption.d.mts +16 -0
- package/components/Autocomplete/index.cjs +7 -0
- package/components/Autocomplete/index.cjs.map +1 -0
- package/components/Autocomplete/index.d.cts +2 -0
- package/components/Autocomplete/index.d.mts +2 -0
- package/components/Autocomplete/index.mjs +7 -0
- package/components/Autocomplete/index.mjs.map +1 -0
- package/components/Autocomplete.d.cts +6 -0
- package/components/Autocomplete.d.mts +6 -0
- package/components/Avatar/Avatar.d.cts +48 -0
- package/components/Avatar/Avatar.d.mts +48 -0
- package/components/Avatar/Avatar.d.ts +3 -3
- package/components/Avatar/index.cjs +5 -0
- package/components/Avatar/index.cjs.map +1 -0
- package/components/Avatar/index.d.cts +2 -0
- package/components/Avatar/index.d.mts +2 -0
- package/components/Avatar/index.mjs +5 -0
- package/components/Avatar/index.mjs.map +1 -0
- package/components/Avatar.d.cts +2 -0
- package/components/Avatar.d.mts +2 -0
- package/components/Breadcrumbs/Breadcrumbs.d.cts +9 -0
- package/components/Breadcrumbs/Breadcrumbs.d.mts +9 -0
- package/components/Breadcrumbs/Breadcrumbs.d.ts +3 -10
- package/components/Breadcrumbs/index.cjs +6 -0
- package/components/Breadcrumbs/index.cjs.map +1 -0
- package/components/Breadcrumbs/index.d.cts +2 -0
- package/components/Breadcrumbs/index.d.mts +2 -0
- package/components/Breadcrumbs/index.mjs +6 -0
- package/components/Breadcrumbs/index.mjs.map +1 -0
- package/components/Breadcrumbs.d.cts +6 -0
- package/components/Breadcrumbs.d.mts +6 -0
- package/components/Button/Button.d.cts +17 -0
- package/components/Button/Button.d.mts +17 -0
- package/components/Button/Button.d.ts +16 -21
- package/components/Button/index.cjs +5 -0
- package/components/Button/index.cjs.map +1 -0
- package/components/Button/index.d.cts +2 -0
- package/components/Button/index.d.mts +2 -0
- package/components/Button/index.mjs +5 -0
- package/components/Button/index.mjs.map +1 -0
- package/components/Button.d.cts +2 -0
- package/components/Button.d.mts +2 -0
- package/components/ButtonGroup/ButtonGroup.d.cts +9 -0
- package/components/ButtonGroup/ButtonGroup.d.mts +9 -0
- package/components/ButtonGroup/ButtonGroup.d.ts +3 -12
- package/components/ButtonGroup/index.cjs +6 -0
- package/components/ButtonGroup/index.cjs.map +1 -0
- package/components/ButtonGroup/index.d.cts +2 -0
- package/components/ButtonGroup/index.d.mts +2 -0
- package/components/ButtonGroup/index.mjs +6 -0
- package/components/ButtonGroup/index.mjs.map +1 -0
- package/components/ButtonGroup.d.cts +6 -0
- package/components/ButtonGroup.d.mts +6 -0
- package/components/Card/Card.d.cts +72 -0
- package/components/Card/Card.d.mts +72 -0
- package/components/Card/Card.d.ts +25 -7
- package/components/Card/Card.sx.d.cts +25 -0
- package/components/Card/Card.sx.d.mts +25 -0
- package/components/Card/Card.sx.d.ts +16 -5
- package/components/Card/index.cjs +8 -0
- package/components/Card/index.cjs.map +1 -0
- package/components/Card/index.d.cts +4 -0
- package/components/Card/index.d.mts +4 -0
- package/components/Card/index.d.ts +1 -1
- package/components/Card/index.mjs +8 -0
- package/components/Card/index.mjs.map +1 -0
- package/components/Card.d.cts +6 -0
- package/components/Card.d.mts +6 -0
- package/components/Checkbox/Checkbox.d.cts +54 -0
- package/components/Checkbox/Checkbox.d.mts +54 -0
- package/components/Checkbox/Checkbox.d.ts +1 -2
- package/components/Checkbox/Checkbox.sx.d.cts +19 -0
- package/components/Checkbox/Checkbox.sx.d.mts +19 -0
- package/components/Checkbox/Checkbox.sx.d.ts +10 -4
- package/components/Checkbox/index.cjs +6 -0
- package/components/Checkbox/index.cjs.map +1 -0
- package/components/Checkbox/index.d.cts +2 -0
- package/components/Checkbox/index.d.mts +2 -0
- package/components/Checkbox/index.mjs +6 -0
- package/components/Checkbox/index.mjs.map +1 -0
- package/components/Checkbox.d.cts +6 -0
- package/components/Checkbox.d.mts +6 -0
- package/components/Chip/Chip.d.cts +20 -0
- package/components/Chip/Chip.d.mts +20 -0
- package/components/Chip/Chip.d.ts +1 -1
- package/components/Chip/index.cjs +6 -0
- package/components/Chip/index.cjs.map +1 -0
- package/components/Chip/index.d.cts +2 -0
- package/components/Chip/index.d.mts +2 -0
- package/components/Chip/index.mjs +6 -0
- package/components/Chip/index.mjs.map +1 -0
- package/components/Chip.d.cts +6 -0
- package/components/Chip.d.mts +6 -0
- package/components/Column/Column.d.cts +12 -0
- package/components/Column/Column.d.mts +12 -0
- package/components/Column/index.cjs +8 -0
- package/components/Column/index.cjs.map +1 -0
- package/components/Column/index.d.cts +2 -0
- package/components/Column/index.d.mts +2 -0
- package/components/Column/index.mjs +8 -0
- package/components/Column/index.mjs.map +1 -0
- package/components/Column.d.cts +2 -0
- package/components/Column.d.mts +2 -0
- package/components/DataRow/DataRow.d.cts +62 -0
- package/components/DataRow/DataRow.d.mts +62 -0
- package/components/DataRow/DataRow.d.ts +30 -12
- package/components/DataRow/index.cjs +6 -0
- package/components/DataRow/index.cjs.map +1 -0
- package/components/DataRow/index.d.cts +2 -0
- package/components/DataRow/index.d.mts +2 -0
- package/components/DataRow/index.mjs +6 -0
- package/components/DataRow/index.mjs.map +1 -0
- package/components/DataRow.d.cts +6 -0
- package/components/DataRow.d.mts +6 -0
- package/components/DatePicker/DatePicker.d.cts +44 -0
- package/components/DatePicker/DatePicker.d.mts +44 -0
- package/components/DatePicker/DatePicker.d.ts +1 -1
- package/components/DatePicker/DatePicker.helpers.d.cts +7 -0
- package/components/DatePicker/DatePicker.helpers.d.mts +7 -0
- package/components/DatePicker/DatePicker.sx.d.cts +16 -0
- package/components/DatePicker/DatePicker.sx.d.mts +16 -0
- package/components/DatePicker/DatePicker.sx.d.ts +11 -4
- package/components/DatePicker/index.cjs +6 -0
- package/components/DatePicker/index.cjs.map +1 -0
- package/components/DatePicker/index.d.cts +2 -0
- package/components/DatePicker/index.d.mts +2 -0
- package/components/DatePicker/index.mjs +6 -0
- package/components/DatePicker/index.mjs.map +1 -0
- package/components/DatePicker.d.cts +6 -0
- package/components/DatePicker.d.mts +6 -0
- package/components/DateTimePicker/DateTimePicker.d.cts +78 -0
- package/components/DateTimePicker/DateTimePicker.d.mts +78 -0
- package/components/DateTimePicker/DateTimePicker.d.ts +1 -1
- package/components/DateTimePicker/DateTimePicker.helpers.d.cts +13 -0
- package/components/DateTimePicker/DateTimePicker.helpers.d.mts +13 -0
- package/components/DateTimePicker/DateTimePicker.sx.d.cts +10 -0
- package/components/DateTimePicker/DateTimePicker.sx.d.mts +10 -0
- package/components/DateTimePicker/DateTimePicker.sx.d.ts +5 -2
- package/components/DateTimePicker/index.cjs +6 -0
- package/components/DateTimePicker/index.cjs.map +1 -0
- package/components/DateTimePicker/index.d.cts +2 -0
- package/components/DateTimePicker/index.d.mts +2 -0
- package/components/DateTimePicker/index.mjs +6 -0
- package/components/DateTimePicker/index.mjs.map +1 -0
- package/components/DateTimePicker.d.cts +6 -0
- package/components/DateTimePicker.d.mts +6 -0
- package/components/Divider/Divider.d.cts +9 -0
- package/components/Divider/Divider.d.mts +9 -0
- package/components/Divider/Divider.d.ts +3 -11
- package/components/Divider/index.cjs +6 -0
- package/components/Divider/index.cjs.map +1 -0
- package/components/Divider/index.d.cts +2 -0
- package/components/Divider/index.d.mts +2 -0
- package/components/Divider/index.mjs +6 -0
- package/components/Divider/index.mjs.map +1 -0
- package/components/Divider.d.cts +6 -0
- package/components/Divider.d.mts +6 -0
- package/components/Drawer/Drawer.d.cts +58 -0
- package/components/Drawer/Drawer.d.mts +58 -0
- package/components/Drawer/Drawer.d.ts +1 -1
- package/components/Drawer/Drawer.sx.d.cts +28 -0
- package/components/Drawer/Drawer.sx.d.mts +28 -0
- package/components/Drawer/Drawer.sx.d.ts +9 -4
- package/components/Drawer/DrawerContext.d.cts +18 -0
- package/components/Drawer/DrawerContext.d.mts +18 -0
- package/components/Drawer/DrawerItem.d.cts +40 -0
- package/components/Drawer/DrawerItem.d.mts +40 -0
- package/components/Drawer/index.cjs +8 -0
- package/components/Drawer/index.cjs.map +1 -0
- package/components/Drawer/index.d.cts +6 -0
- package/components/Drawer/index.d.mts +6 -0
- package/components/Drawer/index.mjs +8 -0
- package/components/Drawer/index.mjs.map +1 -0
- package/components/Drawer.d.cts +6 -0
- package/components/Drawer.d.mts +6 -0
- package/components/EmptyState/EmptyState.d.cts +37 -0
- package/components/EmptyState/EmptyState.d.mts +37 -0
- package/components/EmptyState/EmptyState.d.ts +18 -5
- package/components/EmptyState/index.cjs +6 -0
- package/components/EmptyState/index.cjs.map +1 -0
- package/components/EmptyState/index.d.cts +2 -0
- package/components/EmptyState/index.d.mts +2 -0
- package/components/EmptyState/index.mjs +6 -0
- package/components/EmptyState/index.mjs.map +1 -0
- package/components/EmptyState.d.cts +6 -0
- package/components/EmptyState.d.mts +6 -0
- package/components/Flyout/Flyout.d.cts +13 -0
- package/components/Flyout/Flyout.d.mts +13 -0
- package/components/Flyout/Flyout.d.ts +1 -1
- package/components/Flyout/index.cjs +5 -0
- package/components/Flyout/index.cjs.map +1 -0
- package/components/Flyout/index.d.cts +1 -0
- package/components/Flyout/index.d.mts +1 -0
- package/components/Flyout/index.mjs +5 -0
- package/components/Flyout/index.mjs.map +1 -0
- package/components/Flyout.d.cts +2 -0
- package/components/Flyout.d.mts +2 -0
- package/components/Gallery/Gallery.d.cts +28 -0
- package/components/Gallery/Gallery.d.mts +28 -0
- package/components/Gallery/Gallery.d.ts +1 -1
- package/components/Gallery/Gallery.definition.d.cts +1 -0
- package/components/Gallery/Gallery.definition.d.mts +1 -0
- package/components/Gallery/GalleryLightbox.d.cts +16 -0
- package/components/Gallery/GalleryLightbox.d.mts +16 -0
- package/components/Gallery/GalleryMain.d.cts +8 -0
- package/components/Gallery/GalleryMain.d.mts +8 -0
- package/components/Gallery/GalleryThumbnails.d.cts +13 -0
- package/components/Gallery/GalleryThumbnails.d.mts +13 -0
- package/components/Gallery/index.cjs +6 -0
- package/components/Gallery/index.cjs.map +1 -0
- package/components/Gallery/index.d.cts +2 -0
- package/components/Gallery/index.d.mts +2 -0
- package/components/Gallery/index.mjs +6 -0
- package/components/Gallery/index.mjs.map +1 -0
- package/components/Gallery.d.cts +6 -0
- package/components/Gallery.d.mts +6 -0
- package/components/Icon/Icon.d.cts +48 -0
- package/components/Icon/Icon.d.mts +48 -0
- package/components/Icon/Icon.d.ts +2 -2
- package/components/Icon/index.cjs +6 -0
- package/components/Icon/index.cjs.map +1 -0
- package/components/Icon/index.d.cts +2 -0
- package/components/Icon/index.d.mts +2 -0
- package/components/Icon/index.mjs +6 -0
- package/components/Icon/index.mjs.map +1 -0
- package/components/Icon.d.cts +6 -0
- package/components/Icon.d.mts +6 -0
- package/components/Input/Input.d.cts +48 -0
- package/components/Input/Input.d.mts +48 -0
- package/components/Input/Input.d.ts +1 -1
- package/components/Input/Input.helpers.d.cts +14 -0
- package/components/Input/Input.helpers.d.mts +14 -0
- package/components/Input/Input.sx.d.cts +11 -0
- package/components/Input/Input.sx.d.mts +11 -0
- package/components/Input/Input.sx.d.ts +6 -3
- package/components/Input/index.cjs +6 -0
- package/components/Input/index.cjs.map +1 -0
- package/components/Input/index.d.cts +2 -0
- package/components/Input/index.d.mts +2 -0
- package/components/Input/index.mjs +6 -0
- package/components/Input/index.mjs.map +1 -0
- package/components/Input.d.cts +6 -0
- package/components/Input.d.mts +6 -0
- package/components/InputGroup/InputGroup.d.cts +41 -0
- package/components/InputGroup/InputGroup.d.mts +41 -0
- package/components/InputGroup/InputGroup.d.ts +3 -4
- package/components/InputGroup/index.cjs +6 -0
- package/components/InputGroup/index.cjs.map +1 -0
- package/components/InputGroup/index.d.cts +2 -0
- package/components/InputGroup/index.d.mts +2 -0
- package/components/InputGroup/index.mjs +6 -0
- package/components/InputGroup/index.mjs.map +1 -0
- package/components/InputGroup.d.cts +6 -0
- package/components/InputGroup.d.mts +6 -0
- package/components/MenuButton/MenuButton.d.cts +24 -0
- package/components/MenuButton/MenuButton.d.mts +24 -0
- package/components/MenuButton/MenuButton.d.ts +4 -1
- package/components/MenuButton/index.cjs +5 -0
- package/components/MenuButton/index.cjs.map +1 -0
- package/components/MenuButton/index.d.cts +2 -0
- package/components/MenuButton/index.d.mts +2 -0
- package/components/MenuButton/index.d.ts +1 -0
- package/components/MenuButton/index.mjs +5 -0
- package/components/MenuButton/index.mjs.map +1 -0
- package/components/MenuButton.d.cts +2 -0
- package/components/MenuButton.d.mts +2 -0
- package/components/Modal/Modal.d.cts +87 -0
- package/components/Modal/Modal.d.mts +87 -0
- package/components/Modal/ModalBody.d.cts +11 -0
- package/components/Modal/ModalBody.d.mts +11 -0
- package/components/Modal/ModalFooter.d.cts +27 -0
- package/components/Modal/ModalFooter.d.mts +27 -0
- package/components/Modal/ModalHeader.d.cts +11 -0
- package/components/Modal/ModalHeader.d.mts +11 -0
- package/components/Modal/index.cjs +9 -0
- package/components/Modal/index.cjs.map +1 -0
- package/components/Modal/index.d.cts +8 -0
- package/components/Modal/index.d.mts +8 -0
- package/components/Modal/index.mjs +9 -0
- package/components/Modal/index.mjs.map +1 -0
- package/components/Modal.d.cts +6 -0
- package/components/Modal.d.mts +6 -0
- package/components/PageHeader/PageHeader.d.cts +36 -0
- package/components/PageHeader/PageHeader.d.mts +36 -0
- package/components/PageHeader/PageHeader.d.ts +16 -5
- package/components/PageHeader/index.cjs +6 -0
- package/components/PageHeader/index.cjs.map +1 -0
- package/components/PageHeader/index.d.cts +2 -0
- package/components/PageHeader/index.d.mts +2 -0
- package/components/PageHeader/index.mjs +6 -0
- package/components/PageHeader/index.mjs.map +1 -0
- package/components/PageHeader.d.cts +6 -0
- package/components/PageHeader.d.mts +6 -0
- package/components/RadioGroup/RadioGroup.d.cts +58 -0
- package/components/RadioGroup/RadioGroup.d.mts +58 -0
- package/components/RadioGroup/RadioGroup.d.ts +1 -2
- package/components/RadioGroup/RadioGroup.sx.d.cts +25 -0
- package/components/RadioGroup/RadioGroup.sx.d.mts +25 -0
- package/components/RadioGroup/RadioGroup.sx.d.ts +6 -1
- package/components/RadioGroup/index.cjs +6 -0
- package/components/RadioGroup/index.cjs.map +1 -0
- package/components/RadioGroup/index.d.cts +2 -0
- package/components/RadioGroup/index.d.mts +2 -0
- package/components/RadioGroup/index.mjs +6 -0
- package/components/RadioGroup/index.mjs.map +1 -0
- package/components/RadioGroup.d.cts +6 -0
- package/components/RadioGroup.d.mts +6 -0
- package/components/Select/Select.d.cts +99 -0
- package/components/Select/Select.d.mts +99 -0
- package/components/Select/Select.helpers.d.cts +14 -0
- package/components/Select/Select.helpers.d.mts +14 -0
- package/components/Select/Select.sx.d.cts +10 -0
- package/components/Select/Select.sx.d.mts +10 -0
- package/components/Select/Select.sx.d.ts +5 -2
- package/components/Select/_parts/SelectMenuItem.d.cts +20 -0
- package/components/Select/_parts/SelectMenuItem.d.mts +20 -0
- package/components/Select/_parts/SelectValue.d.cts +22 -0
- package/components/Select/_parts/SelectValue.d.mts +22 -0
- package/components/Select/index.cjs +7 -0
- package/components/Select/index.cjs.map +1 -0
- package/components/Select/index.d.cts +2 -0
- package/components/Select/index.d.mts +2 -0
- package/components/Select/index.mjs +7 -0
- package/components/Select/index.mjs.map +1 -0
- package/components/Select.d.cts +6 -0
- package/components/Select.d.mts +6 -0
- package/components/Spinner/Spinner.d.cts +27 -0
- package/components/Spinner/Spinner.d.mts +27 -0
- package/components/Spinner/Spinner.d.ts +3 -2
- package/components/Spinner/index.cjs +6 -0
- package/components/Spinner/index.cjs.map +1 -0
- package/components/Spinner/index.d.cts +2 -0
- package/components/Spinner/index.d.mts +2 -0
- package/components/Spinner/index.mjs +6 -0
- package/components/Spinner/index.mjs.map +1 -0
- package/components/Spinner.d.cts +6 -0
- package/components/Spinner.d.mts +6 -0
- package/components/Stat/Stat.d.cts +58 -0
- package/components/Stat/Stat.d.mts +58 -0
- package/components/Stat/Stat.d.ts +48 -10
- package/components/Stat/index.cjs +6 -0
- package/components/Stat/index.cjs.map +1 -0
- package/components/Stat/index.d.cts +2 -0
- package/components/Stat/index.d.mts +2 -0
- package/components/Stat/index.mjs +6 -0
- package/components/Stat/index.mjs.map +1 -0
- package/components/Stat.d.cts +6 -0
- package/components/Stat.d.mts +6 -0
- package/components/StatusMessage/StatusMessage.d.cts +35 -0
- package/components/StatusMessage/StatusMessage.d.mts +35 -0
- package/components/StatusMessage/StatusMessage.d.ts +9 -2
- package/components/StatusMessage/StatusMessageContext.d.cts +18 -0
- package/components/StatusMessage/StatusMessageContext.d.mts +18 -0
- package/components/StatusMessage/StatusMessageContext.d.ts +3 -1
- package/components/StatusMessage/StatusMessageRenderer.d.cts +1 -0
- package/components/StatusMessage/StatusMessageRenderer.d.mts +1 -0
- package/components/StatusMessage/StatusMessageRenderer.d.ts +1 -0
- package/components/StatusMessage/index.cjs +86 -0
- package/components/StatusMessage/index.cjs.map +1 -0
- package/components/StatusMessage/index.d.cts +6 -0
- package/components/StatusMessage/index.d.mts +6 -0
- package/components/StatusMessage/index.d.ts +2 -0
- package/components/StatusMessage/index.mjs +86 -0
- package/components/StatusMessage/index.mjs.map +1 -0
- package/components/StatusMessage/useStatusMessage.d.cts +6 -0
- package/components/StatusMessage/useStatusMessage.d.mts +6 -0
- package/components/StatusMessage/useStatusMessage.d.ts +6 -0
- package/components/StatusMessage.d.cts +6 -0
- package/components/StatusMessage.d.mts +6 -0
- package/components/Stepper/Step.d.cts +18 -0
- package/components/Stepper/Step.d.mts +18 -0
- package/components/Stepper/Stepper.d.cts +18 -0
- package/components/Stepper/Stepper.d.mts +18 -0
- package/components/Stepper/Stepper.d.ts +4 -3
- package/components/Stepper/StepperContext.d.cts +73 -0
- package/components/Stepper/StepperContext.d.mts +73 -0
- package/components/Stepper/_hooks/useHorizontalScroll.d.cts +19 -0
- package/components/Stepper/_hooks/useHorizontalScroll.d.mts +19 -0
- package/components/Stepper/_parts/StepperScrollArrow.d.cts +19 -0
- package/components/Stepper/_parts/StepperScrollArrow.d.mts +19 -0
- package/components/Stepper/index.cjs +10 -0
- package/components/Stepper/index.cjs.map +1 -0
- package/components/Stepper/index.d.cts +6 -0
- package/components/Stepper/index.d.mts +6 -0
- package/components/Stepper/index.mjs +10 -0
- package/components/Stepper/index.mjs.map +1 -0
- package/components/Stepper.d.cts +6 -0
- package/components/Stepper.d.mts +6 -0
- package/components/Switch/Switch.d.cts +49 -0
- package/components/Switch/Switch.d.mts +49 -0
- package/components/Switch/Switch.d.ts +2 -1
- package/components/Switch/Switch.sx.d.cts +27 -0
- package/components/Switch/Switch.sx.d.mts +27 -0
- package/components/Switch/Switch.sx.d.ts +6 -1
- package/components/Switch/Switch.types.d.cts +1 -0
- package/components/Switch/Switch.types.d.mts +1 -0
- package/components/Switch/index.cjs +6 -0
- package/components/Switch/index.cjs.map +1 -0
- package/components/Switch/index.d.cts +2 -0
- package/components/Switch/index.d.mts +2 -0
- package/components/Switch/index.mjs +6 -0
- package/components/Switch/index.mjs.map +1 -0
- package/components/Switch.d.cts +6 -0
- package/components/Switch.d.mts +6 -0
- package/components/Table/Table.d.cts +41 -0
- package/components/Table/Table.d.mts +41 -0
- package/components/Table/data.d.cts +3 -0
- package/components/Table/data.d.mts +3 -0
- package/components/Table/exportsUtils.d.cts +24 -0
- package/components/Table/exportsUtils.d.mts +24 -0
- package/components/Table/index.cjs +5 -0
- package/components/Table/index.cjs.map +1 -0
- package/components/Table/index.d.cts +1 -0
- package/components/Table/index.d.mts +1 -0
- package/components/Table/index.mjs +5 -0
- package/components/Table/index.mjs.map +1 -0
- package/components/Table/types.d.cts +31 -0
- package/components/Table/types.d.mts +31 -0
- package/components/Table.d.cts +2 -0
- package/components/Table.d.mts +2 -0
- package/components/Tabs/Tab.d.cts +24 -0
- package/components/Tabs/Tab.d.mts +24 -0
- package/components/Tabs/Tabs.d.cts +36 -0
- package/components/Tabs/Tabs.d.mts +36 -0
- package/components/Tabs/Tabs.d.ts +2 -2
- package/components/Tabs/_tabUtils.d.cts +4 -0
- package/components/Tabs/_tabUtils.d.mts +4 -0
- package/components/Tabs/index.cjs +7 -0
- package/components/Tabs/index.cjs.map +1 -0
- package/components/Tabs/index.d.cts +4 -0
- package/components/Tabs/index.d.mts +4 -0
- package/components/Tabs/index.mjs +7 -0
- package/components/Tabs/index.mjs.map +1 -0
- package/components/Tabs.d.cts +6 -0
- package/components/Tabs.d.mts +6 -0
- package/components/Timeline/Timeline.d.cts +8 -0
- package/components/Timeline/Timeline.d.mts +8 -0
- package/components/Timeline/Timeline.d.ts +3 -4
- package/components/Timeline/TimelineItem.d.cts +9 -0
- package/components/Timeline/TimelineItem.d.mts +9 -0
- package/components/Timeline/TimelineItem.d.ts +4 -2
- package/components/Timeline/index.cjs +7 -0
- package/components/Timeline/index.cjs.map +1 -0
- package/components/Timeline/index.d.cts +4 -0
- package/components/Timeline/index.d.mts +4 -0
- package/components/Timeline/index.mjs +7 -0
- package/components/Timeline/index.mjs.map +1 -0
- package/components/Timeline.d.cts +6 -0
- package/components/Timeline.d.mts +6 -0
- package/components/Tooltip/Tooltip.d.cts +24 -0
- package/components/Tooltip/Tooltip.d.mts +24 -0
- package/components/Tooltip/Tooltip.d.ts +12 -11
- package/components/Tooltip/index.cjs +6 -0
- package/components/Tooltip/index.cjs.map +1 -0
- package/components/Tooltip/index.d.cts +2 -0
- package/components/Tooltip/index.d.mts +2 -0
- package/components/Tooltip/index.d.ts +2 -1
- package/components/Tooltip/index.mjs +6 -0
- package/components/Tooltip/index.mjs.map +1 -0
- package/components/Tooltip.d.cts +6 -0
- package/components/Tooltip.d.mts +6 -0
- package/components/Tooltip.d.ts +4 -0
- package/components/_shared/formField.sx.d.cts +62 -0
- package/components/_shared/formField.sx.d.mts +62 -0
- package/components/_shared/formField.sx.d.ts +30 -1
- package/components/_shared/mergeSlotProps.d.cts +19 -0
- package/components/_shared/mergeSlotProps.d.mts +19 -0
- package/components/_shared/mergeSlotProps.d.ts +19 -0
- package/components/_shared/mergeSx.d.cts +7 -0
- package/components/_shared/mergeSx.d.mts +7 -0
- package/components/_shared/resolvePreset.d.cts +22 -0
- package/components/_shared/resolvePreset.d.mts +22 -0
- package/hooks/ClipBoard/ClipBoard.d.cts +30 -0
- package/hooks/ClipBoard/ClipBoard.d.mts +30 -0
- package/hooks/ClipBoard/ClipboardUnifiedDemo.d.cts +14 -0
- package/hooks/ClipBoard/ClipboardUnifiedDemo.d.mts +14 -0
- package/hooks/ClipBoard/index.cjs +100 -0
- package/hooks/ClipBoard/index.cjs.map +1 -0
- package/hooks/ClipBoard/index.d.cts +1 -0
- package/hooks/ClipBoard/index.d.mts +1 -0
- package/hooks/ClipBoard/index.mjs +100 -0
- package/hooks/ClipBoard/index.mjs.map +1 -0
- package/hooks/ClipBoard.d.cts +2 -0
- package/hooks/ClipBoard.d.mts +2 -0
- package/index.cjs +90 -88
- package/index.cjs.map +1 -1
- package/index.d.cts +63 -0
- package/index.d.mts +63 -0
- package/index.d.ts +1 -0
- package/index.mjs +148 -0
- package/index.mjs.map +1 -0
- package/mui.d.cts +8 -0
- package/mui.d.mts +8 -0
- package/package.json +404 -143
- package/theme/componentStyles.d.cts +33 -0
- package/theme/componentStyles.d.mts +33 -0
- package/theme/componentStyles.d.ts +3 -2
- package/theme/friComponents.d.cts +138 -0
- package/theme/friComponents.d.mts +138 -0
- package/theme/friComponents.d.ts +138 -0
- package/theme/tokens.d.cts +38 -0
- package/theme/tokens.d.mts +38 -0
- package/utils/index.d.cts +2 -0
- package/utils/index.d.mts +2 -0
- package/utils/scrollToTop.d.cts +28 -0
- package/utils/scrollToTop.d.mts +28 -0
- package/ActionMenu-D81Xb35f.cjs.map +0 -1
- package/ActionMenu-DYPA_tYk.js +0 -106
- package/ActionMenu-DYPA_tYk.js.map +0 -1
- package/Alert-B3SMPD1s.cjs +0 -31
- package/Alert-B3SMPD1s.cjs.map +0 -1
- package/Alert-YsPScpSE.js +0 -32
- package/Alert-YsPScpSE.js.map +0 -1
- package/AppBarMenuToggle-BpXBMeca.js +0 -128
- package/AppBarMenuToggle-BpXBMeca.js.map +0 -1
- package/AppBarMenuToggle-D_RJGtHO.cjs +0 -127
- package/AppBarMenuToggle-D_RJGtHO.cjs.map +0 -1
- package/Autocomplete-Baqwboth.cjs +0 -362
- package/Autocomplete-Baqwboth.cjs.map +0 -1
- package/Autocomplete-Cvf16lFk.js +0 -363
- package/Autocomplete-Cvf16lFk.js.map +0 -1
- package/Avatar-BjyfSNvP.cjs +0 -162
- package/Avatar-BjyfSNvP.cjs.map +0 -1
- package/Avatar-C_C4bcb9.js +0 -163
- package/Avatar-C_C4bcb9.js.map +0 -1
- package/Breadcrumbs-B9I3vxPb.cjs +0 -25
- package/Breadcrumbs-B9I3vxPb.cjs.map +0 -1
- package/Breadcrumbs-C41SPbtX.js +0 -26
- package/Breadcrumbs-C41SPbtX.js.map +0 -1
- package/Button-C17mExpd.cjs +0 -63
- package/Button-C17mExpd.cjs.map +0 -1
- package/Button-UkkP-bNw.js +0 -64
- package/Button-UkkP-bNw.js.map +0 -1
- package/ButtonGroup-CNunDofQ.cjs +0 -33
- package/ButtonGroup-CNunDofQ.cjs.map +0 -1
- package/ButtonGroup-CcKUZ-lT.js +0 -34
- package/ButtonGroup-CcKUZ-lT.js.map +0 -1
- package/Card-DYKGY-NG.js +0 -116
- package/Card-DYKGY-NG.js.map +0 -1
- package/Card-Dr1-ATRY.cjs +0 -115
- package/Card-Dr1-ATRY.cjs.map +0 -1
- package/Checkbox-BL4kvHFB.js +0 -189
- package/Checkbox-BL4kvHFB.js.map +0 -1
- package/Checkbox-Bx4Asmg7.cjs +0 -188
- package/Checkbox-Bx4Asmg7.cjs.map +0 -1
- package/Chip-OPYQ1uQ_.js +0 -74
- package/Chip-OPYQ1uQ_.js.map +0 -1
- package/Chip-qoJLDiva.cjs +0 -73
- package/Chip-qoJLDiva.cjs.map +0 -1
- package/DataRow-B7fJ5taA.js +0 -55
- package/DataRow-B7fJ5taA.js.map +0 -1
- package/DataRow-CfCaSdaJ.cjs +0 -54
- package/DataRow-CfCaSdaJ.cjs.map +0 -1
- package/DatePicker-D5BH4v1p.js +0 -182
- package/DatePicker-D5BH4v1p.js.map +0 -1
- package/DatePicker-mz7CYtVw.cjs +0 -181
- package/DatePicker-mz7CYtVw.cjs.map +0 -1
- package/DateTimePicker-ZCf0Wh4r.js +0 -226
- package/DateTimePicker-ZCf0Wh4r.js.map +0 -1
- package/DateTimePicker-ejQDpjgX.cjs +0 -225
- package/DateTimePicker-ejQDpjgX.cjs.map +0 -1
- package/Divider-BApcM5CV.js +0 -28
- package/Divider-BApcM5CV.js.map +0 -1
- package/Divider-CIY0JK4U.cjs +0 -27
- package/Divider-CIY0JK4U.cjs.map +0 -1
- package/DrawerItem-DlnG_NdY.cjs +0 -272
- package/DrawerItem-DlnG_NdY.cjs.map +0 -1
- package/DrawerItem-at1lsEo9.js +0 -273
- package/DrawerItem-at1lsEo9.js.map +0 -1
- package/EmptyState-DJj9KOEy.cjs +0 -47
- package/EmptyState-DJj9KOEy.cjs.map +0 -1
- package/EmptyState-kEoDkg1B.js +0 -48
- package/EmptyState-kEoDkg1B.js.map +0 -1
- package/Flyout-DCcDBYKT.js +0 -117
- package/Flyout-DCcDBYKT.js.map +0 -1
- package/Flyout-fycujUVf.cjs +0 -116
- package/Flyout-fycujUVf.cjs.map +0 -1
- package/Gallery-ClBJxCMc.js +0 -491
- package/Gallery-ClBJxCMc.js.map +0 -1
- package/Gallery-Cn1Bj_ao.cjs +0 -490
- package/Gallery-Cn1Bj_ao.cjs.map +0 -1
- package/Icon-CUwK2c8z.js +0 -108
- package/Icon-CUwK2c8z.js.map +0 -1
- package/Icon-ChnAivGo.cjs +0 -107
- package/Icon-ChnAivGo.cjs.map +0 -1
- package/Input-CmvuMwXZ.js +0 -194
- package/Input-CmvuMwXZ.js.map +0 -1
- package/Input-hnQ7g6b7.cjs +0 -193
- package/Input-hnQ7g6b7.cjs.map +0 -1
- package/InputGroup-BZ7cmAcg.cjs +0 -140
- package/InputGroup-BZ7cmAcg.cjs.map +0 -1
- package/InputGroup-D5pXKGjZ.js +0 -141
- package/InputGroup-D5pXKGjZ.js.map +0 -1
- package/MenuButton-C4s8rG05.cjs +0 -79
- package/MenuButton-C4s8rG05.cjs.map +0 -1
- package/MenuButton-CZRN4P6x.js +0 -80
- package/MenuButton-CZRN4P6x.js.map +0 -1
- package/Modal-BqW0Nk3l.js +0 -362
- package/Modal-BqW0Nk3l.js.map +0 -1
- package/Modal-Cfyr-RsW.cjs +0 -361
- package/Modal-Cfyr-RsW.cjs.map +0 -1
- package/PageHeader-BQZOqjNr.cjs +0 -37
- package/PageHeader-BQZOqjNr.cjs.map +0 -1
- package/PageHeader-DDYi6Nhy.js +0 -38
- package/PageHeader-DDYi6Nhy.js.map +0 -1
- package/RadioGroup-DVvmmDs3.cjs +0 -203
- package/RadioGroup-DVvmmDs3.cjs.map +0 -1
- package/RadioGroup-cKCpag8W.js +0 -204
- package/RadioGroup-cKCpag8W.js.map +0 -1
- package/Select-CZ0BiKVN.js +0 -383
- package/Select-CZ0BiKVN.js.map +0 -1
- package/Select-ZhFf4SBp.cjs +0 -382
- package/Select-ZhFf4SBp.cjs.map +0 -1
- package/Spinner-B6sThC1p.js +0 -74
- package/Spinner-B6sThC1p.js.map +0 -1
- package/Spinner-D7qRmNS9.cjs +0 -73
- package/Spinner-D7qRmNS9.cjs.map +0 -1
- package/Stat-BUcFCGrz.cjs +0 -83
- package/Stat-BUcFCGrz.cjs.map +0 -1
- package/Stat-C06A_izS.js +0 -84
- package/Stat-C06A_izS.js.map +0 -1
- package/StatusMessageContext-BMsbLKRq.cjs +0 -106
- package/StatusMessageContext-BMsbLKRq.cjs.map +0 -1
- package/StatusMessageContext-DgYiObYE.js +0 -107
- package/StatusMessageContext-DgYiObYE.js.map +0 -1
- package/Step-BArsou1V.js +0 -301
- package/Step-BArsou1V.js.map +0 -1
- package/Step-Nd7SJbRZ.cjs +0 -300
- package/Step-Nd7SJbRZ.cjs.map +0 -1
- package/Switch-B4ex7yKR.cjs +0 -183
- package/Switch-B4ex7yKR.cjs.map +0 -1
- package/Switch-CY1Dd2ff.js +0 -184
- package/Switch-CY1Dd2ff.js.map +0 -1
- package/Tab-D1S7kxXI.cjs +0 -137
- package/Tab-D1S7kxXI.cjs.map +0 -1
- package/Tab-DycIMXmQ.js +0 -138
- package/Tab-DycIMXmQ.js.map +0 -1
- package/Table-BpnAkCgd.cjs +0 -528
- package/Table-BpnAkCgd.cjs.map +0 -1
- package/Table-BuALBQWX.js +0 -529
- package/Table-BuALBQWX.js.map +0 -1
- package/TimelineItem-0jRPFT11.js +0 -68
- package/TimelineItem-0jRPFT11.js.map +0 -1
- package/TimelineItem-BbhUWJhU.cjs +0 -84
- package/TimelineItem-BbhUWJhU.cjs.map +0 -1
- package/Tooltip-B15a34_o.js +0 -40
- package/Tooltip-B15a34_o.js.map +0 -1
- package/Tooltip-CEEDkwds.cjs +0 -39
- package/Tooltip-CEEDkwds.cjs.map +0 -1
- package/components/ActionMenu/ActionMenu.cjs +0 -7
- package/components/ActionMenu/ActionMenu.cjs.map +0 -1
- package/components/ActionMenu/ActionMenu.js +0 -7
- package/components/ActionMenu/ActionMenu.js.map +0 -1
- package/components/Alert/Alert.cjs +0 -6
- package/components/Alert/Alert.cjs.map +0 -1
- package/components/Alert/Alert.js +0 -6
- package/components/Alert/Alert.js.map +0 -1
- package/components/AppBar/AppBar.cjs +0 -9
- package/components/AppBar/AppBar.cjs.map +0 -1
- package/components/AppBar/AppBar.js +0 -9
- package/components/AppBar/AppBar.js.map +0 -1
- package/components/Autocomplete/Autocomplete.cjs +0 -7
- package/components/Autocomplete/Autocomplete.cjs.map +0 -1
- package/components/Autocomplete/Autocomplete.js +0 -7
- package/components/Autocomplete/Autocomplete.js.map +0 -1
- package/components/Avatar/Avatar.cjs +0 -5
- package/components/Avatar/Avatar.cjs.map +0 -1
- package/components/Avatar/Avatar.js +0 -5
- package/components/Avatar/Avatar.js.map +0 -1
- package/components/Breadcrumbs/Breadcrumbs.cjs +0 -6
- package/components/Breadcrumbs/Breadcrumbs.cjs.map +0 -1
- package/components/Breadcrumbs/Breadcrumbs.js +0 -6
- package/components/Breadcrumbs/Breadcrumbs.js.map +0 -1
- package/components/Button/Button.cjs +0 -5
- package/components/Button/Button.cjs.map +0 -1
- package/components/Button/Button.js +0 -5
- package/components/Button/Button.js.map +0 -1
- package/components/ButtonGroup/ButtonGroup.cjs +0 -6
- package/components/ButtonGroup/ButtonGroup.cjs.map +0 -1
- package/components/ButtonGroup/ButtonGroup.js +0 -6
- package/components/ButtonGroup/ButtonGroup.js.map +0 -1
- package/components/Card/Card.cjs +0 -7
- package/components/Card/Card.cjs.map +0 -1
- package/components/Card/Card.js +0 -7
- package/components/Card/Card.js.map +0 -1
- package/components/Checkbox/Checkbox.cjs +0 -6
- package/components/Checkbox/Checkbox.cjs.map +0 -1
- package/components/Checkbox/Checkbox.js +0 -6
- package/components/Checkbox/Checkbox.js.map +0 -1
- package/components/Chip/Chip.cjs +0 -6
- package/components/Chip/Chip.cjs.map +0 -1
- package/components/Chip/Chip.js +0 -6
- package/components/Chip/Chip.js.map +0 -1
- package/components/Column/Column.cjs +0 -8
- package/components/Column/Column.cjs.map +0 -1
- package/components/Column/Column.js +0 -8
- package/components/Column/Column.js.map +0 -1
- package/components/DataRow/DataRow.cjs +0 -6
- package/components/DataRow/DataRow.cjs.map +0 -1
- package/components/DataRow/DataRow.js +0 -6
- package/components/DataRow/DataRow.js.map +0 -1
- package/components/DatePicker/DatePicker.cjs +0 -6
- package/components/DatePicker/DatePicker.cjs.map +0 -1
- package/components/DatePicker/DatePicker.js +0 -6
- package/components/DatePicker/DatePicker.js.map +0 -1
- package/components/DateTimePicker/DateTimePicker.cjs +0 -6
- package/components/DateTimePicker/DateTimePicker.cjs.map +0 -1
- package/components/DateTimePicker/DateTimePicker.js +0 -6
- package/components/DateTimePicker/DateTimePicker.js.map +0 -1
- package/components/Divider/Divider.cjs +0 -6
- package/components/Divider/Divider.cjs.map +0 -1
- package/components/Divider/Divider.js +0 -6
- package/components/Divider/Divider.js.map +0 -1
- package/components/Drawer/Drawer.cjs +0 -8
- package/components/Drawer/Drawer.cjs.map +0 -1
- package/components/Drawer/Drawer.js +0 -8
- package/components/Drawer/Drawer.js.map +0 -1
- package/components/EmptyState/EmptyState.cjs +0 -6
- package/components/EmptyState/EmptyState.cjs.map +0 -1
- package/components/EmptyState/EmptyState.js +0 -6
- package/components/EmptyState/EmptyState.js.map +0 -1
- package/components/Flyout/Flyout.cjs +0 -5
- package/components/Flyout/Flyout.cjs.map +0 -1
- package/components/Flyout/Flyout.js +0 -5
- package/components/Flyout/Flyout.js.map +0 -1
- package/components/Gallery/Gallery.cjs +0 -6
- package/components/Gallery/Gallery.cjs.map +0 -1
- package/components/Gallery/Gallery.js +0 -6
- package/components/Gallery/Gallery.js.map +0 -1
- package/components/Icon/Icon.cjs +0 -6
- package/components/Icon/Icon.cjs.map +0 -1
- package/components/Icon/Icon.js +0 -6
- package/components/Icon/Icon.js.map +0 -1
- package/components/Input/Input.cjs +0 -6
- package/components/Input/Input.cjs.map +0 -1
- package/components/Input/Input.js +0 -6
- package/components/Input/Input.js.map +0 -1
- package/components/InputGroup/InputGroup.cjs +0 -6
- package/components/InputGroup/InputGroup.cjs.map +0 -1
- package/components/InputGroup/InputGroup.js +0 -6
- package/components/InputGroup/InputGroup.js.map +0 -1
- package/components/MenuButton/MenuButton.cjs +0 -5
- package/components/MenuButton/MenuButton.cjs.map +0 -1
- package/components/MenuButton/MenuButton.js +0 -5
- package/components/MenuButton/MenuButton.js.map +0 -1
- package/components/Modal/Modal.cjs +0 -9
- package/components/Modal/Modal.cjs.map +0 -1
- package/components/Modal/Modal.js +0 -9
- package/components/Modal/Modal.js.map +0 -1
- package/components/PageHeader/PageHeader.cjs +0 -6
- package/components/PageHeader/PageHeader.cjs.map +0 -1
- package/components/PageHeader/PageHeader.js +0 -6
- package/components/PageHeader/PageHeader.js.map +0 -1
- package/components/RadioGroup/RadioGroup.cjs +0 -6
- package/components/RadioGroup/RadioGroup.cjs.map +0 -1
- package/components/RadioGroup/RadioGroup.js +0 -6
- package/components/RadioGroup/RadioGroup.js.map +0 -1
- package/components/Select/Select.cjs +0 -7
- package/components/Select/Select.cjs.map +0 -1
- package/components/Select/Select.js +0 -7
- package/components/Select/Select.js.map +0 -1
- package/components/Spinner/Spinner.cjs +0 -6
- package/components/Spinner/Spinner.cjs.map +0 -1
- package/components/Spinner/Spinner.js +0 -6
- package/components/Spinner/Spinner.js.map +0 -1
- package/components/Stat/Stat.cjs +0 -6
- package/components/Stat/Stat.cjs.map +0 -1
- package/components/Stat/Stat.js +0 -6
- package/components/Stat/Stat.js.map +0 -1
- package/components/StatusMessage/StatusMessage.cjs +0 -8
- package/components/StatusMessage/StatusMessage.cjs.map +0 -1
- package/components/StatusMessage/StatusMessage.js +0 -8
- package/components/StatusMessage/StatusMessage.js.map +0 -1
- package/components/Stepper/Stepper.cjs +0 -10
- package/components/Stepper/Stepper.cjs.map +0 -1
- package/components/Stepper/Stepper.js +0 -10
- package/components/Stepper/Stepper.js.map +0 -1
- package/components/Switch/Switch.cjs +0 -6
- package/components/Switch/Switch.cjs.map +0 -1
- package/components/Switch/Switch.js +0 -6
- package/components/Switch/Switch.js.map +0 -1
- package/components/Table/Table.cjs +0 -5
- package/components/Table/Table.cjs.map +0 -1
- package/components/Table/Table.js +0 -5
- package/components/Table/Table.js.map +0 -1
- package/components/Tabs/Tabs.cjs +0 -7
- package/components/Tabs/Tabs.cjs.map +0 -1
- package/components/Tabs/Tabs.js +0 -7
- package/components/Tabs/Tabs.js.map +0 -1
- package/components/Timeline/Timeline.cjs +0 -7
- package/components/Timeline/Timeline.cjs.map +0 -1
- package/components/Timeline/Timeline.js +0 -7
- package/components/Timeline/Timeline.js.map +0 -1
- package/components/Tooltip/Tooltip.cjs +0 -5
- package/components/Tooltip/Tooltip.cjs.map +0 -1
- package/components/Tooltip/Tooltip.js +0 -5
- package/components/Tooltip/Tooltip.js.map +0 -1
- package/demos/themes.d.ts +0 -29
- package/formField.sx-BZj7TaMa.cjs +0 -92
- package/formField.sx-BZj7TaMa.cjs.map +0 -1
- package/formField.sx-DD1sxwWH.js +0 -93
- package/formField.sx-DD1sxwWH.js.map +0 -1
- package/hooks/ClipBoard/ClipBoard.cjs +0 -100
- package/hooks/ClipBoard/ClipBoard.cjs.map +0 -1
- package/hooks/ClipBoard/ClipBoard.js +0 -100
- package/hooks/ClipBoard/ClipBoard.js.map +0 -1
- package/index.css +0 -3
- package/index.js +0 -146
- package/index.js.map +0 -1
- package/mergeSx-BXoNZjB_.js +0 -10
- package/mergeSx-BXoNZjB_.js.map +0 -1
- package/mergeSx-Dbccoo_H.cjs.map +0 -1
- package/resolvePreset-CxTI6_Ln.cjs.map +0 -1
- package/resolvePreset-K6_BfWHD.js +0 -15
- package/resolvePreset-K6_BfWHD.js.map +0 -1
- package/tokens-BGPazVFO.cjs +0 -22
- package/tokens-BGPazVFO.cjs.map +0 -1
- package/tokens-DE2fV3a9.js +0 -23
- package/tokens-DE2fV3a9.js.map +0 -1
- /package/{ActionMenu-D81Xb35f.cjs → chunks/ActionMenu-D81Xb35f.cjs} +0 -0
- /package/{mergeSx-Dbccoo_H.cjs → chunks/mergeSx-Dbccoo_H.cjs} +0 -0
- /package/{resolvePreset-CxTI6_Ln.cjs → chunks/resolvePreset-CxTI6_Ln.cjs} +0 -0
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
+
var __spreadValues = (a, b) => {
|
|
10
|
+
for (var prop in b || (b = {}))
|
|
11
|
+
if (__hasOwnProp.call(b, prop))
|
|
12
|
+
__defNormalProp(a, prop, b[prop]);
|
|
13
|
+
if (__getOwnPropSymbols)
|
|
14
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
15
|
+
if (__propIsEnum.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
}
|
|
18
|
+
return a;
|
|
19
|
+
};
|
|
20
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
|
+
var __objRest = (source, exclude) => {
|
|
22
|
+
var target = {};
|
|
23
|
+
for (var prop in source)
|
|
24
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
25
|
+
target[prop] = source[prop];
|
|
26
|
+
if (source != null && __getOwnPropSymbols)
|
|
27
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
28
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
29
|
+
target[prop] = source[prop];
|
|
30
|
+
}
|
|
31
|
+
return target;
|
|
32
|
+
};
|
|
33
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
34
|
+
const React = require("react");
|
|
35
|
+
const material = require("@mui/material");
|
|
36
|
+
const styles = require("@mui/material/styles");
|
|
37
|
+
const reactHookForm = require("react-hook-form");
|
|
38
|
+
const formField_sx = require("./formField.sx-DEDuTUQS.cjs");
|
|
39
|
+
const tokens = require("./tokens-B5kmy5Gy.cjs");
|
|
40
|
+
const resolvePreset = require("./resolvePreset-CxTI6_Ln.cjs");
|
|
41
|
+
const ClearIcon = require("@mui/icons-material/Clear");
|
|
42
|
+
const buildAutocompleteOptions = (borderRadius, labelPosition) => ({
|
|
43
|
+
borderRadius,
|
|
44
|
+
labelPosition,
|
|
45
|
+
extraOutsideSx: {
|
|
46
|
+
// El Autocomplete es el único campo cuyo padding lo pinta MUI con
|
|
47
|
+
// selectores calificados por tamaño (`.MuiOutlinedInput-root.MuiInputBase-sizeSmall`
|
|
48
|
+
// y su descendiente `.MuiAutocomplete-input`). Un selector de menos clases
|
|
49
|
+
// pierde por especificidad — por eso hay que repetir el calificador acá, o
|
|
50
|
+
// el Autocomplete queda ~5px más bajo que Input/Select/pickers.
|
|
51
|
+
"& .MuiOutlinedInput-root, & .MuiOutlinedInput-root.MuiInputBase-sizeSmall": {
|
|
52
|
+
paddingTop: 0,
|
|
53
|
+
paddingBottom: 0
|
|
54
|
+
},
|
|
55
|
+
// La altura la fija el input interno, con el mismo token que el resto.
|
|
56
|
+
"& .MuiOutlinedInput-root .MuiAutocomplete-input, & .MuiOutlinedInput-root.MuiInputBase-sizeSmall .MuiAutocomplete-input": {
|
|
57
|
+
paddingTop: tokens.FIELD_INPUT_PADDING_Y,
|
|
58
|
+
paddingBottom: tokens.FIELD_INPUT_PADDING_Y
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
const buildAutocompleteSx = (borderRadius, labelPosition) => formField_sx.buildFormFieldSx(buildAutocompleteOptions(borderRadius, labelPosition));
|
|
63
|
+
const resolveSingleValue = (options, value, getKey) => {
|
|
64
|
+
var _a;
|
|
65
|
+
if (value === null || value === void 0) return null;
|
|
66
|
+
const key = getKey(value);
|
|
67
|
+
return (_a = options.find((o) => getKey(o.value) === key)) != null ? _a : null;
|
|
68
|
+
};
|
|
69
|
+
const resolveMultipleValue = (options, value, getKey) => {
|
|
70
|
+
if (!Array.isArray(value)) return [];
|
|
71
|
+
const keys = new Set(value.map(getKey));
|
|
72
|
+
return options.filter((o) => keys.has(getKey(o.value)));
|
|
73
|
+
};
|
|
74
|
+
const areOptionsShallowEqual = (a, b, getKey) => {
|
|
75
|
+
const keysA = Object.keys(a);
|
|
76
|
+
const keysB = Object.keys(b);
|
|
77
|
+
if (keysA.length !== keysB.length) return false;
|
|
78
|
+
return keysA.every((k) => {
|
|
79
|
+
if (k === "value") return getKey(a.value) === getKey(b.value);
|
|
80
|
+
return a[k] === b[k];
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
const areResolvedValuesEqual = (prev, next, multiple, getKey) => {
|
|
84
|
+
if (multiple) {
|
|
85
|
+
if (!Array.isArray(prev) || !Array.isArray(next)) return false;
|
|
86
|
+
if (prev.length !== next.length) return false;
|
|
87
|
+
return prev.every((o, i) => {
|
|
88
|
+
const n2 = next[i];
|
|
89
|
+
return !!n2 && areOptionsShallowEqual(o, n2, getKey);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
const p = prev;
|
|
93
|
+
const n = next;
|
|
94
|
+
if (p === n) return true;
|
|
95
|
+
if (!p || !n) return false;
|
|
96
|
+
return areOptionsShallowEqual(p, n, getKey);
|
|
97
|
+
};
|
|
98
|
+
const isResolvedValueEmpty = (resolvedValue, multiple) => {
|
|
99
|
+
if (multiple) {
|
|
100
|
+
return !Array.isArray(resolvedValue) || resolvedValue.length === 0;
|
|
101
|
+
}
|
|
102
|
+
return !resolvedValue;
|
|
103
|
+
};
|
|
104
|
+
const AutocompleteOption = ({
|
|
105
|
+
liProps,
|
|
106
|
+
option,
|
|
107
|
+
customRender
|
|
108
|
+
}) => {
|
|
109
|
+
return /* @__PURE__ */ jsxRuntime.jsx("li", __spreadProps(__spreadValues({}, liProps), { children: customRender ? customRender(option) : option.label }));
|
|
110
|
+
};
|
|
111
|
+
const AutocompleteChips = ({
|
|
112
|
+
value,
|
|
113
|
+
getTagProps,
|
|
114
|
+
size,
|
|
115
|
+
maxChipsToShow,
|
|
116
|
+
renderChipLabel,
|
|
117
|
+
getKey
|
|
118
|
+
}) => {
|
|
119
|
+
const displayed = value.slice(0, maxChipsToShow);
|
|
120
|
+
const hidden = value.length - maxChipsToShow;
|
|
121
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
122
|
+
displayed.map((option, index) => {
|
|
123
|
+
const _a = getTagProps({ index }), { key: _ignored } = _a, tagProps = __objRest(_a, ["key"]);
|
|
124
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
125
|
+
material.Chip,
|
|
126
|
+
__spreadProps(__spreadValues({}, tagProps), {
|
|
127
|
+
size,
|
|
128
|
+
label: renderChipLabel ? renderChipLabel(option) : option.label,
|
|
129
|
+
avatar: option.img ? /* @__PURE__ */ jsxRuntime.jsx(material.Avatar, { src: option.img }) : void 0,
|
|
130
|
+
deleteIcon: /* @__PURE__ */ jsxRuntime.jsx(ClearIcon, {})
|
|
131
|
+
}),
|
|
132
|
+
getKey(option.value)
|
|
133
|
+
);
|
|
134
|
+
}),
|
|
135
|
+
hidden > 0 && /* @__PURE__ */ jsxRuntime.jsx(material.Chip, { size, label: `+${hidden} más` })
|
|
136
|
+
] });
|
|
137
|
+
};
|
|
138
|
+
const AutocompleteLoader = ({
|
|
139
|
+
text = "Cargando..."
|
|
140
|
+
}) => /* @__PURE__ */ jsxRuntime.jsxs(material.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
141
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.CircularProgress, { size: 16 }),
|
|
142
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "body2", children: text })
|
|
143
|
+
] });
|
|
144
|
+
function Autocomplete(props) {
|
|
145
|
+
const {
|
|
146
|
+
label,
|
|
147
|
+
options,
|
|
148
|
+
placeholder,
|
|
149
|
+
multiple = false,
|
|
150
|
+
disabled = false,
|
|
151
|
+
readOnly = false,
|
|
152
|
+
loading = false,
|
|
153
|
+
error: errorProp = false,
|
|
154
|
+
helperText,
|
|
155
|
+
maxChipsToShow = 3,
|
|
156
|
+
renderOptionItem,
|
|
157
|
+
renderChipLabel,
|
|
158
|
+
renderSingleValue,
|
|
159
|
+
getOptionKey,
|
|
160
|
+
borderRadius = tokens.FIELD_BORDER_RADIUS,
|
|
161
|
+
labelPosition = "outside",
|
|
162
|
+
size = "small",
|
|
163
|
+
noOptionsText = "No hay opciones",
|
|
164
|
+
loadingText,
|
|
165
|
+
sx,
|
|
166
|
+
preset,
|
|
167
|
+
textFieldProps,
|
|
168
|
+
onInputChange,
|
|
169
|
+
inputValue,
|
|
170
|
+
filterOptions,
|
|
171
|
+
freeSolo,
|
|
172
|
+
open,
|
|
173
|
+
onOpen,
|
|
174
|
+
onClose
|
|
175
|
+
} = props;
|
|
176
|
+
const getKey = getOptionKey != null ? getOptionKey : ((v) => v);
|
|
177
|
+
const [isFocused, setIsFocused] = React.useState(false);
|
|
178
|
+
const seenOptionsRef = React.useRef(/* @__PURE__ */ new Map());
|
|
179
|
+
for (const opt of options) {
|
|
180
|
+
seenOptionsRef.current.set(getKey(opt.value), opt);
|
|
181
|
+
}
|
|
182
|
+
const resolvePool = React.useMemo(() => {
|
|
183
|
+
const merged = new Map(seenOptionsRef.current);
|
|
184
|
+
for (const opt of options) merged.set(getKey(opt.value), opt);
|
|
185
|
+
return Array.from(merged.values());
|
|
186
|
+
}, [options]);
|
|
187
|
+
const prevResolvedRef = React.useRef(multiple ? [] : null);
|
|
188
|
+
const stabilizeResolved = (newVal) => {
|
|
189
|
+
if (areResolvedValuesEqual(prevResolvedRef.current, newVal, multiple, getKey)) {
|
|
190
|
+
return prevResolvedRef.current;
|
|
191
|
+
}
|
|
192
|
+
prevResolvedRef.current = newVal;
|
|
193
|
+
return newVal;
|
|
194
|
+
};
|
|
195
|
+
const theme = styles.useTheme();
|
|
196
|
+
const presetSx = resolvePreset.resolvePreset("Autocomplete", preset, theme);
|
|
197
|
+
const mergedSx = [
|
|
198
|
+
buildAutocompleteSx(borderRadius, labelPosition),
|
|
199
|
+
...presetSx ? [presetSx] : [],
|
|
200
|
+
...Array.isArray(sx) ? sx : sx ? [sx] : []
|
|
201
|
+
];
|
|
202
|
+
const renderAutocomplete = (resolvedValue2, handleChange, onBlur, inputRef, rhfError, rhfHelperText) => {
|
|
203
|
+
const finalError = !!rhfError || !!errorProp;
|
|
204
|
+
const finalHelperText = rhfHelperText || helperText;
|
|
205
|
+
const isEmpty = isResolvedValueEmpty(resolvedValue2, multiple);
|
|
206
|
+
const showPlaceholder = isEmpty && isFocused && !!placeholder;
|
|
207
|
+
const singleAdornment = !multiple && resolvedValue2 && renderSingleValue ? renderSingleValue(resolvedValue2) : null;
|
|
208
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
209
|
+
material.Autocomplete,
|
|
210
|
+
{
|
|
211
|
+
multiple,
|
|
212
|
+
options,
|
|
213
|
+
value: resolvedValue2,
|
|
214
|
+
disabled,
|
|
215
|
+
readOnly,
|
|
216
|
+
loading,
|
|
217
|
+
sx: mergedSx,
|
|
218
|
+
freeSolo,
|
|
219
|
+
open,
|
|
220
|
+
onOpen,
|
|
221
|
+
onClose,
|
|
222
|
+
inputValue,
|
|
223
|
+
onInputChange,
|
|
224
|
+
filterOptions,
|
|
225
|
+
getOptionLabel: (opt) => {
|
|
226
|
+
var _a;
|
|
227
|
+
return typeof opt === "string" ? opt : (_a = opt == null ? void 0 : opt.label) != null ? _a : "";
|
|
228
|
+
},
|
|
229
|
+
isOptionEqualToValue: (a, b) => {
|
|
230
|
+
if (typeof a === "string" || typeof b === "string") return a === b;
|
|
231
|
+
if (!a || !b) return a === b;
|
|
232
|
+
return getKey(a.value) === getKey(b.value);
|
|
233
|
+
},
|
|
234
|
+
getOptionDisabled: (opt) => typeof opt === "string" ? false : !!(opt == null ? void 0 : opt.disabled),
|
|
235
|
+
onChange: handleChange,
|
|
236
|
+
onFocus: () => setIsFocused(true),
|
|
237
|
+
onBlur: () => {
|
|
238
|
+
setIsFocused(false);
|
|
239
|
+
onBlur == null ? void 0 : onBlur();
|
|
240
|
+
},
|
|
241
|
+
renderOption: (liProps, option) => {
|
|
242
|
+
const _a = liProps, { key: _muiKey } = _a, liRest = __objRest(_a, ["key"]);
|
|
243
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
244
|
+
AutocompleteOption,
|
|
245
|
+
{
|
|
246
|
+
liProps: liRest,
|
|
247
|
+
option,
|
|
248
|
+
customRender: renderOptionItem
|
|
249
|
+
},
|
|
250
|
+
getKey(option.value)
|
|
251
|
+
);
|
|
252
|
+
},
|
|
253
|
+
renderValue: multiple ? (value, getItemProps) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
254
|
+
AutocompleteChips,
|
|
255
|
+
{
|
|
256
|
+
value,
|
|
257
|
+
getTagProps: getItemProps,
|
|
258
|
+
size,
|
|
259
|
+
maxChipsToShow,
|
|
260
|
+
renderChipLabel,
|
|
261
|
+
getKey
|
|
262
|
+
}
|
|
263
|
+
) : void 0,
|
|
264
|
+
noOptionsText,
|
|
265
|
+
loadingText: loadingText != null ? loadingText : /* @__PURE__ */ jsxRuntime.jsx(AutocompleteLoader, {}),
|
|
266
|
+
renderInput: (params) => {
|
|
267
|
+
var _a, _b, _c, _d;
|
|
268
|
+
const paramsInputLabel = params.InputLabelProps;
|
|
269
|
+
const consumerInputLabel = (_b = (_a = textFieldProps == null ? void 0 : textFieldProps.slotProps) == null ? void 0 : _a.inputLabel) != null ? _b : textFieldProps == null ? void 0 : textFieldProps.InputLabelProps;
|
|
270
|
+
const muiInputProps = params.InputProps;
|
|
271
|
+
const consumerInputProps = (_d = (_c = textFieldProps == null ? void 0 : textFieldProps.slotProps) == null ? void 0 : _c.input) != null ? _d : textFieldProps == null ? void 0 : textFieldProps.InputProps;
|
|
272
|
+
const inputSlot = singleAdornment ? __spreadProps(__spreadValues(__spreadValues({}, muiInputProps), consumerInputProps), {
|
|
273
|
+
startAdornment: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
274
|
+
singleAdornment,
|
|
275
|
+
consumerInputProps == null ? void 0 : consumerInputProps.startAdornment,
|
|
276
|
+
muiInputProps == null ? void 0 : muiInputProps.startAdornment
|
|
277
|
+
] })
|
|
278
|
+
}) : void 0;
|
|
279
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
280
|
+
material.TextField,
|
|
281
|
+
__spreadProps(__spreadValues(__spreadProps(__spreadValues({}, params), {
|
|
282
|
+
label,
|
|
283
|
+
size,
|
|
284
|
+
variant: "outlined",
|
|
285
|
+
placeholder: showPlaceholder ? placeholder : void 0,
|
|
286
|
+
error: finalError,
|
|
287
|
+
helperText: finalHelperText,
|
|
288
|
+
inputRef
|
|
289
|
+
}), textFieldProps), {
|
|
290
|
+
slotProps: __spreadProps(__spreadValues(__spreadValues({}, textFieldProps == null ? void 0 : textFieldProps.slotProps), inputSlot ? { input: inputSlot } : {}), {
|
|
291
|
+
inputLabel: __spreadProps(__spreadValues(__spreadValues({}, paramsInputLabel), consumerInputLabel), {
|
|
292
|
+
shrink: labelPosition === "outside" ? !isEmpty || isFocused : paramsInputLabel == null ? void 0 : paramsInputLabel.shrink
|
|
293
|
+
})
|
|
294
|
+
})
|
|
295
|
+
})
|
|
296
|
+
);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
);
|
|
300
|
+
};
|
|
301
|
+
const extractValue = (opt) => {
|
|
302
|
+
var _a;
|
|
303
|
+
if (opt === null || opt === void 0) return null;
|
|
304
|
+
if (typeof opt === "string") return opt;
|
|
305
|
+
return (_a = opt == null ? void 0 : opt.value) != null ? _a : null;
|
|
306
|
+
};
|
|
307
|
+
const handleControlledChange = (_event, newValue) => {
|
|
308
|
+
const onChange = props.onChange;
|
|
309
|
+
if (multiple) {
|
|
310
|
+
const values = (newValue != null ? newValue : []).map((opt) => extractValue(opt)).filter((v) => v !== null);
|
|
311
|
+
onChange(values);
|
|
312
|
+
} else {
|
|
313
|
+
onChange(extractValue(newValue));
|
|
314
|
+
}
|
|
315
|
+
};
|
|
316
|
+
if ("control" in props && props.control) {
|
|
317
|
+
const { name, control, validation, onValueChange } = props;
|
|
318
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
319
|
+
reactHookForm.Controller,
|
|
320
|
+
{
|
|
321
|
+
name,
|
|
322
|
+
control,
|
|
323
|
+
rules: validation,
|
|
324
|
+
render: ({ field, fieldState: { error: fieldError } }) => {
|
|
325
|
+
const resolvedValue2 = stabilizeResolved(
|
|
326
|
+
multiple ? resolveMultipleValue(resolvePool, field.value, getKey) : resolveSingleValue(resolvePool, field.value, getKey)
|
|
327
|
+
);
|
|
328
|
+
const handleChange = (_event, newValue) => {
|
|
329
|
+
if (multiple) {
|
|
330
|
+
const next = (newValue != null ? newValue : []).map((opt) => extractValue(opt)).filter((v) => v !== null);
|
|
331
|
+
field.onChange(next);
|
|
332
|
+
onValueChange == null ? void 0 : onValueChange(next);
|
|
333
|
+
} else {
|
|
334
|
+
const next = extractValue(newValue);
|
|
335
|
+
field.onChange(next);
|
|
336
|
+
onValueChange == null ? void 0 : onValueChange(next);
|
|
337
|
+
}
|
|
338
|
+
};
|
|
339
|
+
return renderAutocomplete(
|
|
340
|
+
resolvedValue2,
|
|
341
|
+
handleChange,
|
|
342
|
+
field.onBlur,
|
|
343
|
+
field.ref,
|
|
344
|
+
!!fieldError,
|
|
345
|
+
fieldError == null ? void 0 : fieldError.message
|
|
346
|
+
);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
);
|
|
350
|
+
}
|
|
351
|
+
const controlledValue = props.value;
|
|
352
|
+
const resolvedValue = stabilizeResolved(
|
|
353
|
+
multiple ? resolveMultipleValue(resolvePool, controlledValue, getKey) : resolveSingleValue(resolvePool, controlledValue, getKey)
|
|
354
|
+
);
|
|
355
|
+
return renderAutocomplete(resolvedValue, handleControlledChange);
|
|
356
|
+
}
|
|
357
|
+
const AutocompleteSelect = Autocomplete;
|
|
358
|
+
exports.Autocomplete = Autocomplete;
|
|
359
|
+
exports.AutocompleteSelect = AutocompleteSelect;
|
|
360
|
+
//# sourceMappingURL=Autocomplete-CxZhdrSA.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Autocomplete-CxZhdrSA.cjs","sources":["../../src/components/Autocomplete/Autocomplete.sx.ts","../../src/components/Autocomplete/Autocomplete.helpers.ts","../../src/components/Autocomplete/_parts/AutocompleteOption.tsx","../../src/components/Autocomplete/_parts/AutocompleteChips.tsx","../../src/components/Autocomplete/_parts/AutocompleteLoader.tsx","../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import type { CSSObject, SxProps, Theme } from '@mui/material/styles';\n\nimport { buildFormFieldSx, buildFormFieldStyles } from '../_shared/formField.sx';\nimport { FIELD_INPUT_PADDING_Y } from '../../theme/tokens';\nimport type { LabelPosition } from './Autocomplete';\n\nconst buildAutocompleteOptions = (\n borderRadius: number | string,\n labelPosition: LabelPosition,\n) =>\n ({\n borderRadius,\n labelPosition,\n extraOutsideSx: {\n // El Autocomplete es el único campo cuyo padding lo pinta MUI con\n // selectores calificados por tamaño (`.MuiOutlinedInput-root.MuiInputBase-sizeSmall`\n // y su descendiente `.MuiAutocomplete-input`). Un selector de menos clases\n // pierde por especificidad — por eso hay que repetir el calificador acá, o\n // el Autocomplete queda ~5px más bajo que Input/Select/pickers.\n '& .MuiOutlinedInput-root, & .MuiOutlinedInput-root.MuiInputBase-sizeSmall': {\n paddingTop: 0,\n paddingBottom: 0,\n },\n\n // La altura la fija el input interno, con el mismo token que el resto.\n '& .MuiOutlinedInput-root .MuiAutocomplete-input, & .MuiOutlinedInput-root.MuiInputBase-sizeSmall .MuiAutocomplete-input':\n {\n paddingTop: FIELD_INPUT_PADDING_Y,\n paddingBottom: FIELD_INPUT_PADDING_Y,\n },\n },\n }) as const;\n\n/** Estilo de fábrica del Autocomplete, en CSS real (para `styled()`). */\nexport const buildAutocompleteStyles = (\n theme: Theme,\n borderRadius: number | string,\n labelPosition: LabelPosition,\n): CSSObject =>\n buildFormFieldStyles(theme, buildAutocompleteOptions(borderRadius, labelPosition));\n\n/**\n * Builder del sx del Autocomplete — **en uso**. A diferencia del resto de los\n * campos, este componente no se migró a `styled()`: su root es el\n * `MuiAutocomplete` genérico y envolverlo obliga a castear a `any`, lo que\n * tira abajo la inferencia de todos sus callbacks de render. Ver la nota en\n * `Autocomplete.tsx`.\n */\nexport const buildAutocompleteSx = (\n borderRadius: number | string,\n labelPosition: LabelPosition,\n): SxProps<Theme> =>\n buildFormFieldSx(buildAutocompleteOptions(borderRadius, labelPosition));\n","import type { SxProps, Theme } from '@mui/material/styles';\nimport type { AutocompleteValueKey, SelectOption } from './Autocomplete';\n\n/** Resuelve un value único a su SelectOption dentro del pool. */\nexport const resolveSingleValue = <TValue,>(\n options: SelectOption<TValue>[],\n value: TValue | null | undefined,\n getKey: (v: TValue) => AutocompleteValueKey,\n): SelectOption<TValue> | null => {\n if (value === null || value === undefined) return null;\n const key = getKey(value);\n return options.find((o) => getKey(o.value) === key) ?? null;\n};\n\n/** Resuelve un array de values a sus SelectOption dentro del pool. */\nexport const resolveMultipleValue = <TValue,>(\n options: SelectOption<TValue>[],\n value: TValue[] | null | undefined,\n getKey: (v: TValue) => AutocompleteValueKey,\n): SelectOption<TValue>[] => {\n if (!Array.isArray(value)) return [];\n const keys = new Set(value.map(getKey));\n return options.filter((o) => keys.has(getKey(o.value)));\n};\n\n/** Merge de sx base + extra del consumer, respetando el contrato de MUI. */\nexport const mergeSx = (\n base: SxProps<Theme>,\n extra?: SxProps<Theme>,\n): SxProps<Theme> => {\n if (!extra) return base;\n return [base, ...(Array.isArray(extra) ? extra : [extra])] as SxProps<Theme>;\n};\n\n/**\n * Compara dos SelectOption por todas sus props (shallow). Se usa para detectar\n * cambios de metadata (p.ej. `label`, `img`) cuando `value` no cambió, para\n * que la estabilización no tape datos frescos del server. Para `value` se\n * compara vía `getKey` (no por `===`), de modo que values objeto con misma\n * identidad lógica pero referencia distinta no rompan la estabilización.\n */\nconst areOptionsShallowEqual = <TValue,>(\n a: SelectOption<TValue>,\n b: SelectOption<TValue>,\n getKey: (v: TValue) => AutocompleteValueKey,\n): boolean => {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n return keysA.every((k) => {\n if (k === 'value') return getKey(a.value) === getKey(b.value);\n return a[k] === b[k];\n });\n};\n\n/**\n * Compara dos valores resueltos (single o multiple) estructuralmente para\n * decidir si se puede reusar la referencia previa. Se usa para estabilizar la\n * referencia que se pasa a MUI Autocomplete (MUI compara value por referencia\n * con `!==`, y una nueva referencia — aunque el contenido sea igual — dispara\n * `resetInputValue` y borra el texto mientras el usuario tipea).\n *\n * Comparamos todas las props del SelectOption, no solo `value`, para que un\n * refresh de metadata (label/img/etc.) invalide la referencia estabilizada\n * y la UI muestre los datos actualizados.\n */\nexport const areResolvedValuesEqual = <TValue,>(\n prev: SelectOption<TValue> | SelectOption<TValue>[] | null,\n next: SelectOption<TValue> | SelectOption<TValue>[] | null,\n multiple: boolean,\n getKey: (v: TValue) => AutocompleteValueKey,\n): boolean => {\n if (multiple) {\n if (!Array.isArray(prev) || !Array.isArray(next)) return false;\n if (prev.length !== next.length) return false;\n return prev.every((o, i) => {\n const n = next[i];\n return !!n && areOptionsShallowEqual(o, n, getKey);\n });\n }\n const p = prev as SelectOption<TValue> | null;\n const n = next as SelectOption<TValue> | null;\n if (p === n) return true;\n if (!p || !n) return false;\n return areOptionsShallowEqual(p, n, getKey);\n};\n\n/** Determina si un valor resuelto está vacío (para placeholder/shrink). */\nexport const isResolvedValueEmpty = (\n resolvedValue: unknown,\n multiple: boolean,\n): boolean => {\n if (multiple) {\n return !Array.isArray(resolvedValue) || resolvedValue.length === 0;\n }\n return !resolvedValue;\n};\n","import React from 'react';\nimport type {\n AutocompleteValueKey,\n SelectOption,\n RenderOptionItem,\n} from '../Autocomplete';\n\ninterface AutocompleteOptionProps<TValue = AutocompleteValueKey> {\n liProps: React.HTMLAttributes<HTMLLIElement>;\n option: SelectOption<TValue>;\n customRender?: RenderOptionItem<TValue>;\n}\n\n/**\n * Render por defecto de un `<li>` del dropdown del Autocomplete.\n * MUI lo invoca desde `renderOption={(props, option) => ...}` en el padre.\n *\n * La `key` la maneja el padre (`renderOption` en Autocomplete.tsx). Este\n * componente solo recibe los props restantes del `<li>` para spread.\n */\nexport const AutocompleteOption = <TValue,>({\n liProps,\n option,\n customRender,\n}: AutocompleteOptionProps<TValue>) => {\n return (\n <li {...liProps}>\n {customRender ? customRender(option) : option.label}\n </li>\n );\n};\n\nexport default AutocompleteOption;\n","import { Avatar, Chip } from '@mui/material';\nimport ClearIcon from '@mui/icons-material/Clear';\n\nimport type {\n AutocompleteValueKey,\n SelectOption,\n RenderChipLabel,\n AutocompleteSize,\n} from '../Autocomplete';\n\ninterface AutocompleteChipsProps<TValue = AutocompleteValueKey> {\n value: SelectOption<TValue>[];\n getTagProps: (args: { index: number }) => Record<string, any>;\n size: AutocompleteSize;\n maxChipsToShow: number;\n renderChipLabel?: RenderChipLabel<TValue>;\n /** Key estable del value: React key del chip. Ver `getOptionKey`. */\n getKey: (value: TValue) => AutocompleteValueKey;\n}\n\n/**\n * Render de los chips del Autocomplete en modo multiple.\n * Trunca después de `maxChipsToShow` con un chip \"+N más\".\n * El `getTagProps({ index })` viene de MUI y contiene el handler de delete,\n * la key, etc. — se spreadea tal cual al Chip.\n */\nexport const AutocompleteChips = <TValue,>({\n value,\n getTagProps,\n size,\n maxChipsToShow,\n renderChipLabel,\n getKey,\n}: AutocompleteChipsProps<TValue>) => {\n const displayed = value.slice(0, maxChipsToShow);\n const hidden = value.length - maxChipsToShow;\n\n return (\n <>\n {displayed.map((option, index) => {\n const { key: _ignored, ...tagProps } = getTagProps({ index });\n return (\n <Chip\n key={getKey(option.value)}\n {...tagProps}\n size={size}\n label={renderChipLabel ? renderChipLabel(option) : option.label}\n avatar={option.img ? <Avatar src={option.img} /> : undefined}\n deleteIcon={<ClearIcon />}\n />\n );\n })}\n {hidden > 0 && <Chip size={size} label={`+${hidden} más`} />}\n </>\n );\n};\n\nexport default AutocompleteChips;\n","import React from 'react';\nimport { Box, CircularProgress, Typography } from '@mui/material';\n\n/**\n * Loader por defecto para el `loadingText` del Autocomplete.\n * El consumer puede sobrescribirlo pasando `loadingText` al componente padre.\n */\nexport const AutocompleteLoader: React.FC<{ text?: string }> = ({\n text = 'Cargando...',\n}) => (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <CircularProgress size={16} />\n <Typography variant=\"body2\">{text}</Typography>\n </Box>\n);\n\nexport default AutocompleteLoader;\n","import React, {\n useMemo,\n useRef,\n useState,\n type ReactNode,\n type SyntheticEvent,\n} from 'react';\nimport {\n Autocomplete as MuiAutocomplete,\n TextField,\n type TextFieldProps,\n} from '@mui/material';\nimport { useTheme, type SxProps, type Theme } from '@mui/material/styles';\nimport { Controller, type RegisterOptions } from 'react-hook-form';\n\nimport { buildAutocompleteSx } from './Autocomplete.sx';\nimport { FIELD_BORDER_RADIUS } from '../../theme/tokens';\nimport {\n areResolvedValuesEqual,\n isResolvedValueEmpty,\n resolveMultipleValue,\n resolveSingleValue,\n} from './Autocomplete.helpers';\nimport { resolvePreset } from '../_shared/resolvePreset';\nimport { AutocompleteOption } from './_parts/AutocompleteOption';\nimport { AutocompleteChips } from './_parts/AutocompleteChips';\nimport { AutocompleteLoader } from './_parts/AutocompleteLoader';\n\n// ── Tipos de dominio ─────────────────────────────────────────────────────\n/** Key estable usada para comparar values, indexar caches y como React key. */\nexport type AutocompleteValueKey = string | number;\n\nexport interface SelectOption<TValue = AutocompleteValueKey> {\n value: TValue;\n label: string;\n img?: string;\n disabled?: boolean;\n group?: string;\n [key: string]: any; //campos extras que puede tener la opcion\n}\n\nexport type LabelPosition = 'outside' | 'floating';\nexport type AutocompleteSize = 'small' | 'medium';\n\n// ── Render slots ─────────────────────────────────────────────────────────\nexport type RenderOptionItem<TValue = AutocompleteValueKey> = (\n item: SelectOption<TValue>,\n) => ReactNode;\nexport type RenderChipLabel<TValue = AutocompleteValueKey> = (\n item: SelectOption<TValue>,\n) => ReactNode;\nexport type RenderSingleValue<TValue = AutocompleteValueKey> = (\n item: SelectOption<TValue>,\n) => ReactNode;\n\n// ── Props base ───────────────────────────────────────────────────────────\nexport type BaseAutocompleteProps<TValue = AutocompleteValueKey> = {\n label?: string;\n options: SelectOption<TValue>[];\n placeholder?: string;\n multiple?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n loading?: boolean;\n error?: boolean;\n helperText?: string;\n maxChipsToShow?: number;\n renderOptionItem?: RenderOptionItem<TValue>;\n renderChipLabel?: RenderChipLabel<TValue>;\n /**\n * Renderiza JSX custom como `startAdornment` del input en single mode.\n * Recibe la `SelectOption` seleccionada. Útil para mostrar avatars, iconos,\n * etc. junto al texto del label. En `multiple` no aplica (se usa `renderChipLabel`).\n */\n renderSingleValue?: RenderSingleValue<TValue>;\n /**\n * Extrae una key estable (string | number) desde el `value`. Obligatorio\n * cuando `TValue` es un objeto: se usa para comparar values (`isOptionEqualToValue`,\n * resolución desde el value del form), indexar el cache interno de opciones\n * vistas y como React key en chips/options del dropdown. Para primitivos se\n * puede omitir (default: identidad, o sea `===`).\n */\n getOptionKey?: (value: TValue) => AutocompleteValueKey;\n /** Border radius del input. Default: 10. */\n borderRadius?: number | string;\n /** \"outside\" (default) = label arriba del input; \"floating\" = comportamiento nativo MUI. */\n labelPosition?: LabelPosition;\n /** Tamaño del TextField. Default: 'small'. */\n size?: AutocompleteSize;\n /** Texto cuando no hay coincidencias. */\n noOptionsText?: ReactNode;\n /** Texto cuando está cargando. */\n loadingText?: ReactNode;\n sx?: SxProps<Theme>;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.Autocomplete`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n * - Cualquier otro string = mergea el preset encima del estilo built-in.\n */\n preset?: string;\n /** Props para el TextField subyacente. */\n textFieldProps?: Partial<TextFieldProps>;\n\n // ── Búsqueda asíncrona / remota ──────────────────────────────────────\n /** Se dispara cada vez que el usuario escribe. Útil para llamadas a servicios\n * (debounce recomendado en el consumer). */\n onInputChange?: (\n event: SyntheticEvent,\n value: string,\n reason: 'input' | 'reset' | 'clear' | 'blur' | 'selectOption' | 'removeOption',\n ) => void;\n /** Valor controlado del texto de búsqueda. */\n inputValue?: string;\n /** Filtro custom. Para búsqueda remota pasar `(x) => x` y confiar sólo en el servicio. */\n filterOptions?: (\n options: SelectOption<TValue>[],\n state: any,\n ) => SelectOption<TValue>[];\n /** Permite valores arbitrarios (no solo de la lista). */\n freeSolo?: boolean;\n open?: boolean;\n onOpen?: (event: SyntheticEvent) => void;\n onClose?: (event: SyntheticEvent, reason: string) => void;\n};\n\n// ── Variantes discriminadas (RHF vs controlado) ──────────────────────────\nexport interface ControlledAutocompleteProps<TValue = AutocompleteValueKey>\n extends BaseAutocompleteProps<TValue> {\n value: TValue | TValue[] | null;\n onChange: (val: TValue | TValue[] | null) => void;\n name?: string;\n control?: never;\n validation?: never;\n}\n\nexport interface RHFAutocompleteProps<TValue = AutocompleteValueKey>\n extends BaseAutocompleteProps<TValue> {\n name: string;\n // `any` plano (no `Control<any>`): RHF tipa `Control<T>` con generics en\n // posiciones tanto contravariantes como covariantes (ej. `_subjects.state`).\n // Cuando el componente o su uso involucra generics adicionales, TS se\n // confunde narroweando el discriminated union y `Control<any>` no logra\n // absorber `Control<MyForm>` en la comparación estructural profunda. El\n // `any` plano elimina ese ruido. RHF adentro sigue teniendo sus tipos\n // fuertes — solo degradamos la superficie del prop del componente.\n control: any;\n validation?: RegisterOptions;\n /**\n * Side-effect que corre después de que RHF actualiza el form state.\n * Útil para cascadas entre campos. NO reemplaza al handler de RHF.\n */\n onValueChange?: (val: TValue | TValue[] | null) => void;\n value?: never;\n onChange?: never;\n}\n\n// ── API pública final ────────────────────────────────────────────────────\nexport type AutocompleteProps<TValue = AutocompleteValueKey> =\n | ControlledAutocompleteProps<TValue>\n | RHFAutocompleteProps<TValue>;\n\n// ── Por qué el Autocomplete NO está migrado a `styled` ───────────────────\n// Su root ES `MuiAutocomplete`, que es un componente genérico. `styled()` no\n// preserva esos generics: al envolverlo hay que castear a `any`, y con eso se\n// cae la inferencia de TODOS los callbacks de render del componente\n// (`renderOption`, `renderTags`, `renderInput`, `isOptionEqualToValue`…), que\n// pasan a `any` implícito. Cambiar tipado real por tematización no vale.\n//\n// El Select sí se pudo migrar porque su root es un `FormControl` (no genérico)\n// y el `MuiSelect` genérico queda adentro.\n//\n// Alternativa si algún día se necesita: exponer los estilos vía\n// `theme.components.MuiAutocomplete`, que ya es nativo de MUI.\n\nexport function Autocomplete<TValue = AutocompleteValueKey>(\n props: AutocompleteProps<TValue>,\n) {\n const {\n label,\n options,\n placeholder,\n multiple = false,\n disabled = false,\n readOnly = false,\n loading = false,\n error: errorProp = false,\n helperText,\n maxChipsToShow = 3,\n renderOptionItem,\n renderChipLabel,\n renderSingleValue,\n getOptionKey,\n borderRadius = FIELD_BORDER_RADIUS,\n labelPosition = 'outside',\n size = 'small',\n noOptionsText = 'No hay opciones',\n loadingText,\n sx,\n preset,\n textFieldProps,\n onInputChange,\n inputValue,\n filterOptions,\n freeSolo,\n open,\n onOpen,\n onClose,\n } = props as BaseAutocompleteProps<TValue>;\n\n // Default identidad: para primitivos (string|number) funciona como `===`.\n // Para values objeto, el consumer DEBE pasar `getOptionKey` o la igualdad\n // caerá a referencia (Map/Set agruparían por identidad).\n const getKey = (getOptionKey ??\n ((v: TValue) => v as unknown as AutocompleteValueKey)) as (\n v: TValue,\n ) => AutocompleteValueKey;\n\n // Focus tracking para mostrar placeholder solo cuando el label sube.\n const [isFocused, setIsFocused] = useState(false);\n\n // Cache interno de opciones vistas (indexado por key estable). Crítico para\n // async multiple: cuando `options` cambian por un nuevo search, los items\n // ya seleccionados no desaparecen de los chips porque los recordamos acá.\n //\n // Se escribe DURANTE el render a propósito, y `react-hooks/refs` lo marca.\n // Acá la regla no aplica: la advertencia existe porque un render descartado\n // (StrictMode, render concurrente) puede dejar la ref en un estado que no\n // corresponde al DOM. Esta caché es idempotente y monótona — sólo hace\n // `set` de pares que ya vinieron en `options`, nunca borra —, así que un\n // render descartado no la puede corromper: a lo sumo recuerda una opción que\n // efectivamente existió.\n //\n // Moverlo a un effect REINTRODUCE el bug que la caché evita: el pool no\n // tendría las opciones de este render hasta después del commit, y los chips\n // seleccionados parpadearían vacíos en cada búsqueda async.\n /* eslint-disable react-hooks/refs */\n const seenOptionsRef = useRef<\n Map<AutocompleteValueKey, SelectOption<TValue>>\n >(new Map());\n for (const opt of options) {\n seenOptionsRef.current.set(getKey(opt.value), opt);\n }\n\n // Pool de opciones para resolver values (merge de options + vistas).\n const resolvePool = useMemo<SelectOption<TValue>[]>(() => {\n const merged = new Map(seenOptionsRef.current);\n for (const opt of options) merged.set(getKey(opt.value), opt);\n return Array.from(merged.values());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options]);\n\n // Estabiliza la referencia del resolvedValue que pasamos a MUI Autocomplete.\n // MUI compara value con `!==`: una referencia nueva con mismo contenido\n // dispara resetInputValue() y borra el texto que el usuario está escribiendo.\n const prevResolvedRef = useRef<\n SelectOption<TValue>[] | SelectOption<TValue> | null\n >(multiple ? [] : null);\n\n const stabilizeResolved = (\n newVal: SelectOption<TValue>[] | SelectOption<TValue> | null,\n ): SelectOption<TValue>[] | SelectOption<TValue> | null => {\n if (\n areResolvedValuesEqual(prevResolvedRef.current, newVal, multiple, getKey)\n ) {\n return prevResolvedRef.current;\n }\n prevResolvedRef.current = newVal;\n return newVal;\n };\n // `prevResolvedRef` es el mismo caso: memoiza la IDENTIDAD del value\n // resuelto porque MUI compara con `!==` y una referencia nueva con el mismo\n // contenido le borra al usuario el texto que está tipeando. También es\n // idempotente respecto del contenido.\n /* eslint-enable react-hooks/refs */\n\n const theme = useTheme();\n const presetSx = resolvePreset('Autocomplete', preset, theme);\n\n // Built-in primero, preset encima (ver Input). Este componente sigue en el\n // camino de `sx` a propósito — ver la nota de arriba.\n const mergedSx = [\n buildAutocompleteSx(borderRadius, labelPosition),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n const renderAutocomplete = (\n resolvedValue: any,\n handleChange: (event: any, newValue: any) => void,\n onBlur?: () => void,\n inputRef?: React.Ref<any>,\n rhfError?: boolean,\n rhfHelperText?: string,\n ) => {\n const finalError = !!rhfError || !!errorProp;\n const finalHelperText = rhfHelperText || helperText;\n\n const isEmpty = isResolvedValueEmpty(resolvedValue, multiple);\n const showPlaceholder = isEmpty && isFocused && !!placeholder;\n const singleAdornment =\n !multiple && resolvedValue && renderSingleValue\n ? renderSingleValue(resolvedValue as SelectOption<TValue>)\n : null;\n\n return (\n <MuiAutocomplete\n multiple={multiple}\n options={options}\n value={resolvedValue}\n disabled={disabled}\n readOnly={readOnly}\n loading={loading}\n sx={mergedSx}\n freeSolo={freeSolo as any}\n open={open}\n onOpen={onOpen}\n onClose={onClose}\n inputValue={inputValue}\n onInputChange={onInputChange}\n filterOptions={filterOptions as any}\n getOptionLabel={(opt) =>\n typeof opt === 'string' ? opt : (opt?.label ?? '')\n }\n isOptionEqualToValue={(a, b) => {\n if (typeof a === 'string' || typeof b === 'string') return a === b;\n if (!a || !b) return a === b;\n return getKey(a.value) === getKey(b.value);\n }}\n getOptionDisabled={(opt) =>\n typeof opt === 'string' ? false : !!opt?.disabled\n }\n onChange={handleChange}\n onFocus={() => setIsFocused(true)}\n onBlur={() => {\n setIsFocused(false);\n onBlur?.();\n }}\n renderOption={(liProps, option) => {\n // MUI inyecta la `key` dentro de `liProps`. React necesita la key\n // en el elemento más externo que devuelve `renderOption` (acá el\n // wrapper), no en el `<li>` interno. El resto de `liProps` viaja\n // al `<li>`. La key auto-generada por MUI cae a `getOptionLabel`,\n // que colisiona si hay opciones con label duplicado. Usamos la key\n // estable del value para garantizar uniqueness aunque haya labels\n // repetidos.\n const { key: _muiKey, ...liRest } = liProps as React.HTMLAttributes<HTMLLIElement> & {\n key?: React.Key;\n };\n return (\n <AutocompleteOption<TValue>\n key={getKey(option.value)}\n liProps={liRest}\n option={option}\n customRender={renderOptionItem}\n />\n );\n }}\n renderValue={\n multiple\n ? (value, getItemProps) => (\n <AutocompleteChips<TValue>\n value={value as SelectOption<TValue>[]}\n getTagProps={getItemProps}\n size={size}\n maxChipsToShow={maxChipsToShow}\n renderChipLabel={renderChipLabel}\n getKey={getKey}\n />\n )\n : undefined\n }\n noOptionsText={noOptionsText}\n loadingText={loadingText ?? <AutocompleteLoader />}\n renderInput={(params) => {\n const paramsInputLabel = (params as any).InputLabelProps as\n | Record<string, any>\n | undefined;\n const consumerInputLabel =\n (textFieldProps?.slotProps as any)?.inputLabel ??\n (textFieldProps as any)?.InputLabelProps;\n // Para inyectar `singleAdornment` necesitamos pasar `slotProps.input`\n // a TextField, pero `slotProps.input` gana sobre `params.InputProps`\n // (que trae endAdornment con chevron + clear). Por eso, cuando hay\n // adornment custom, mergeamos params.InputProps + lo que el consumer\n // haya pasado por textFieldProps + nuestro startAdornment. Si no hay\n // adornment, no tocamos `slotProps.input` y se preserva el flujo legacy.\n const muiInputProps = (params as any).InputProps as\n | Record<string, any>\n | undefined;\n const consumerInputProps =\n (textFieldProps?.slotProps as any)?.input ??\n (textFieldProps as any)?.InputProps;\n const inputSlot = singleAdornment\n ? {\n ...muiInputProps,\n ...consumerInputProps,\n startAdornment: (\n <>\n {singleAdornment}\n {consumerInputProps?.startAdornment}\n {muiInputProps?.startAdornment}\n </>\n ),\n }\n : undefined;\n\n return (\n <TextField\n {...params}\n label={label}\n size={size}\n variant=\"outlined\"\n placeholder={showPlaceholder ? placeholder : undefined}\n error={finalError}\n helperText={finalHelperText}\n inputRef={inputRef}\n {...textFieldProps}\n slotProps={{\n ...textFieldProps?.slotProps,\n ...(inputSlot ? { input: inputSlot } : {}),\n inputLabel: {\n ...paramsInputLabel,\n ...consumerInputLabel,\n shrink:\n labelPosition === 'outside'\n ? !isEmpty || isFocused\n : paramsInputLabel?.shrink,\n },\n }}\n />\n );\n }}\n />\n );\n };\n\n //obtiene el primitivo (o el objeto) value desde la opción seleccionada\n const extractValue = (opt: any): TValue | null => {\n if (opt === null || opt === undefined) return null;\n if (typeof opt === 'string') return opt as unknown as TValue;\n return (opt?.value ?? null) as TValue | null;\n };\n\n const handleControlledChange = (_event: any, newValue: any) => {\n const onChange = (props as ControlledAutocompleteProps<TValue>).onChange;\n if (multiple) {\n const values = (newValue ?? [])\n .map((opt: SelectOption<TValue> | string) => extractValue(opt))\n .filter((v: TValue | null): v is TValue => v !== null);\n onChange(values);\n } else {\n onChange(extractValue(newValue));\n }\n };\n\n // --- RHF mode ---\n if ('control' in props && props.control) {\n const { name, control, validation, onValueChange } =\n props as RHFAutocompleteProps<TValue>;\n return (\n <Controller\n name={name}\n control={control}\n rules={validation}\n render={({ field, fieldState: { error: fieldError } }) => {\n // eslint-disable-next-line react-hooks/refs -- ver la nota de `prevResolvedRef`\n const resolvedValue = stabilizeResolved(\n multiple\n ? resolveMultipleValue(resolvePool, field.value, getKey)\n : resolveSingleValue(resolvePool, field.value, getKey),\n );\n\n const handleChange = (_event: any, newValue: any) => {\n if (multiple) {\n const next = (newValue ?? [])\n .map((opt: SelectOption<TValue> | string) => extractValue(opt))\n .filter((v: TValue | null): v is TValue => v !== null);\n field.onChange(next);\n onValueChange?.(next);\n } else {\n const next = extractValue(newValue);\n field.onChange(next);\n onValueChange?.(next);\n }\n };\n\n return renderAutocomplete(\n resolvedValue,\n handleChange,\n field.onBlur,\n field.ref,\n !!fieldError,\n fieldError?.message,\n );\n }}\n />\n );\n }\n\n // --- Controlled mode ---\n const controlledValue = (props as ControlledAutocompleteProps<TValue>).value;\n // eslint-disable-next-line react-hooks/refs -- ver la nota de `prevResolvedRef`\n const resolvedValue = stabilizeResolved(\n multiple\n ? resolveMultipleValue(resolvePool, controlledValue as TValue[], getKey)\n : resolveSingleValue(resolvePool, controlledValue as TValue, getKey),\n );\n\n return renderAutocomplete(resolvedValue, handleControlledChange);\n}\n\n/** Alias de `Autocomplete`. Ambos nombres son equivalentes. */\nexport const AutocompleteSelect = Autocomplete;\n\nexport default Autocomplete;\n"],"names":["FIELD_INPUT_PADDING_Y","buildFormFieldSx","n","jsx","jsxs","Fragment","Chip","Avatar","Box","CircularProgress","Typography","FIELD_BORDER_RADIUS","useState","useRef","useMemo","useTheme","resolvePreset","resolvedValue","MuiAutocomplete","TextField","Controller"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM,2BAA2B,CAC/B,cACA,mBAEC;AAAA,EACC;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMd,6EAA6E;AAAA,MAC3E,YAAY;AAAA,MACZ,eAAe;AAAA,IAAA;AAAA;AAAA,IAIjB,2HACE;AAAA,MACE,YAAYA,OAAAA;AAAAA,MACZ,eAAeA,OAAAA;AAAAA,IAAA;AAAA,EACjB;AAEN;AAiBK,MAAM,sBAAsB,CACjC,cACA,kBAEAC,aAAAA,iBAAiB,yBAAyB,cAAc,aAAa,CAAC;AChDjE,MAAM,qBAAqB,CAChC,SACA,OACA,WACgC;;AAChC,MAAI,UAAU,QAAQ,UAAU,OAAW,QAAO;AAClD,QAAM,MAAM,OAAO,KAAK;AACxB,UAAO,aAAQ,KAAK,CAAC,MAAM,OAAO,EAAE,KAAK,MAAM,GAAG,MAA3C,YAAgD;AACzD;AAGO,MAAM,uBAAuB,CAClC,SACA,OACA,WAC2B;AAC3B,MAAI,CAAC,MAAM,QAAQ,KAAK,UAAU,CAAA;AAClC,QAAM,OAAO,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC;AACtC,SAAO,QAAQ,OAAO,CAAC,MAAM,KAAK,IAAI,OAAO,EAAE,KAAK,CAAC,CAAC;AACxD;AAkBA,MAAM,yBAAyB,CAC7B,GACA,GACA,WACY;AACZ,QAAM,QAAQ,OAAO,KAAK,CAAC;AAC3B,QAAM,QAAQ,OAAO,KAAK,CAAC;AAC3B,MAAI,MAAM,WAAW,MAAM,OAAQ,QAAO;AAC1C,SAAO,MAAM,MAAM,CAAC,MAAM;AACxB,QAAI,MAAM,QAAS,QAAO,OAAO,EAAE,KAAK,MAAM,OAAO,EAAE,KAAK;AAC5D,WAAO,EAAE,CAAC,MAAM,EAAE,CAAC;AAAA,EACrB,CAAC;AACH;AAaO,MAAM,yBAAyB,CACpC,MACA,MACA,UACA,WACY;AACZ,MAAI,UAAU;AACZ,QAAI,CAAC,MAAM,QAAQ,IAAI,KAAK,CAAC,MAAM,QAAQ,IAAI,EAAG,QAAO;AACzD,QAAI,KAAK,WAAW,KAAK,OAAQ,QAAO;AACxC,WAAO,KAAK,MAAM,CAAC,GAAG,MAAM;AAC1B,YAAMC,KAAI,KAAK,CAAC;AAChB,aAAO,CAAC,CAACA,MAAK,uBAAuB,GAAGA,IAAG,MAAM;AAAA,IACnD,CAAC;AAAA,EACH;AACA,QAAM,IAAI;AACV,QAAM,IAAI;AACV,MAAI,MAAM,EAAG,QAAO;AACpB,MAAI,CAAC,KAAK,CAAC,EAAG,QAAO;AACrB,SAAO,uBAAuB,GAAG,GAAG,MAAM;AAC5C;AAGO,MAAM,uBAAuB,CAClC,eACA,aACY;AACZ,MAAI,UAAU;AACZ,WAAO,CAAC,MAAM,QAAQ,aAAa,KAAK,cAAc,WAAW;AAAA,EACnE;AACA,SAAO,CAAC;AACV;AC5EO,MAAM,qBAAqB,CAAU;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AACF,MAAuC;AACrC,SACEC,+BAAC,uCAAO,YACL,yBAAe,aAAa,MAAM,IAAI,OAAO,MAAA,EAChD;AAEJ;ACJO,MAAM,oBAAoB,CAAU;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAsC;AACpC,QAAM,YAAY,MAAM,MAAM,GAAG,cAAc;AAC/C,QAAM,SAAS,MAAM,SAAS;AAE9B,SACEC,2BAAAA,KAAAC,qBAAA,EACG,UAAA;AAAA,IAAA,UAAU,IAAI,CAAC,QAAQ,UAAU;AAChC,YAAuC,iBAAY,EAAE,OAAO,GAApD,OAAK,aAA0B,IAAb,qBAAa,IAAb,CAAlB;AACR,aACEF,2BAAAA;AAAAA,QAACG,SAAAA;AAAAA,QAAA,iCAEK,WAFL;AAAA,UAGC;AAAA,UACA,OAAO,kBAAkB,gBAAgB,MAAM,IAAI,OAAO;AAAA,UAC1D,QAAQ,OAAO,MAAMH,+BAACI,SAAAA,UAAO,KAAK,OAAO,KAAK,IAAK;AAAA,UACnD,2CAAa,WAAA,CAAA,CAAU;AAAA,QAAA;AAAA,QALlB,OAAO,OAAO,KAAK;AAAA,MAAA;AAAA,IAQ9B,CAAC;AAAA,IACA,SAAS,KAAKJ,+BAACG,SAAAA,MAAA,EAAK,MAAY,OAAO,IAAI,MAAM,OAAA,CAAQ;AAAA,EAAA,GAC5D;AAEJ;AChDO,MAAM,qBAAkD,CAAC;AAAA,EAC9D,OAAO;AACT,MACEF,gCAACI,SAAAA,KAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,EAAA,GACrD,UAAA;AAAA,EAAAL,2BAAAA,IAACM,SAAAA,kBAAA,EAAiB,MAAM,GAAA,CAAI;AAAA,EAC5BN,2BAAAA,IAACO,SAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,KAAA,CAAK;AAAA,GACpC;ACiKK,SAAS,aACd,OACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO,YAAY;AAAA,IACnB;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAeC,OAAAA;AAAAA,IACf,gBAAgB;AAAA,IAChB,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE;AAKJ,QAAM,SAAU,uCACb,CAAC,MAAc;AAKlB,QAAM,CAAC,WAAW,YAAY,IAAIC,MAAAA,SAAS,KAAK;AAkBhD,QAAM,iBAAiBC,MAAAA,OAErB,oBAAI,KAAK;AACX,aAAW,OAAO,SAAS;AACzB,mBAAe,QAAQ,IAAI,OAAO,IAAI,KAAK,GAAG,GAAG;AAAA,EACnD;AAGA,QAAM,cAAcC,MAAAA,QAAgC,MAAM;AACxD,UAAM,SAAS,IAAI,IAAI,eAAe,OAAO;AAC7C,eAAW,OAAO,QAAS,QAAO,IAAI,OAAO,IAAI,KAAK,GAAG,GAAG;AAC5D,WAAO,MAAM,KAAK,OAAO,OAAA,CAAQ;AAAA,EAEnC,GAAG,CAAC,OAAO,CAAC;AAKZ,QAAM,kBAAkBD,MAAAA,OAEtB,WAAW,CAAA,IAAK,IAAI;AAEtB,QAAM,oBAAoB,CACxB,WACyD;AACzD,QACE,uBAAuB,gBAAgB,SAAS,QAAQ,UAAU,MAAM,GACxE;AACA,aAAO,gBAAgB;AAAA,IACzB;AACA,oBAAgB,UAAU;AAC1B,WAAO;AAAA,EACT;AAOA,QAAM,QAAQE,OAAAA,SAAA;AACd,QAAM,WAAWC,cAAAA,cAAc,gBAAgB,QAAQ,KAAK;AAI5D,QAAM,WAAW;AAAA,IACf,oBAAoB,cAAc,aAAa;AAAA,IAC/C,GAAI,WAAW,CAAC,QAAQ,IAAI,CAAA;AAAA,IAC5B,GAAI,MAAM,QAAQ,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE,IAAI,CAAA;AAAA,EAAC;AAG5C,QAAM,qBAAqB,CACzBC,gBACA,cACA,QACA,UACA,UACA,kBACG;AACH,UAAM,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC;AACnC,UAAM,kBAAkB,iBAAiB;AAEzC,UAAM,UAAU,qBAAqBA,gBAAe,QAAQ;AAC5D,UAAM,kBAAkB,WAAW,aAAa,CAAC,CAAC;AAClD,UAAM,kBACJ,CAAC,YAAYA,kBAAiB,oBAC1B,kBAAkBA,cAAqC,IACvD;AAEN,WACEd,2BAAAA;AAAAA,MAACe,SAAAA;AAAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,OAAOD;AAAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA,IAAI;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,gBAAgB,CAAC,QAAA;;AACf,wBAAO,QAAQ,WAAW,OAAO,gCAAK,UAAL,YAAc;AAAA;AAAA,QAEjD,sBAAsB,CAAC,GAAG,MAAM;AAC9B,cAAI,OAAO,MAAM,YAAY,OAAO,MAAM,iBAAiB,MAAM;AACjE,cAAI,CAAC,KAAK,CAAC,UAAU,MAAM;AAC3B,iBAAO,OAAO,EAAE,KAAK,MAAM,OAAO,EAAE,KAAK;AAAA,QAC3C;AAAA,QACA,mBAAmB,CAAC,QAClB,OAAO,QAAQ,WAAW,QAAQ,CAAC,EAAC,2BAAK;AAAA,QAE3C,UAAU;AAAA,QACV,SAAS,MAAM,aAAa,IAAI;AAAA,QAChC,QAAQ,MAAM;AACZ,uBAAa,KAAK;AAClB;AAAA,QACF;AAAA,QACA,cAAc,CAAC,SAAS,WAAW;AAQjC,gBAAoC,cAA5B,OAAK,YAAuB,IAAX,mBAAW,IAAX,CAAjB;AAGR,iBACEd,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cAEC,SAAS;AAAA,cACT;AAAA,cACA,cAAc;AAAA,YAAA;AAAA,YAHT,OAAO,OAAO,KAAK;AAAA,UAAA;AAAA,QAM9B;AAAA,QACA,aACE,WACI,CAAC,OAAO,iBACRA,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA,aAAa;AAAA,YACb;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,QAAA,IAGF;AAAA,QAEN;AAAA,QACA,aAAa,oCAAeA,+BAAC,oBAAA,CAAA,CAAmB;AAAA,QAChD,aAAa,CAAC,WAAW;;AACvB,gBAAM,mBAAoB,OAAe;AAGzC,gBAAM,sBACH,4DAAgB,cAAhB,mBAAmC,eAAnC,YACA,iDAAwB;AAO3B,gBAAM,gBAAiB,OAAe;AAGtC,gBAAM,sBACH,4DAAgB,cAAhB,mBAAmC,UAAnC,YACA,iDAAwB;AAC3B,gBAAM,YAAY,kBACd,gDACG,gBACA,qBAFH;AAAA,YAGA,gBACEC,2BAAAA,KAAAC,qBAAA,EACG,UAAA;AAAA,cAAA;AAAA,cACA,yDAAoB;AAAA,cACpB,+CAAe;AAAA,YAAA,EAAA,CAClB;AAAA,UAAA,KAGF;AAEJ,iBACEF,2BAAAA;AAAAA,YAACgB,SAAAA;AAAAA,YAAA,8DACK,SADL;AAAA,cAEC;AAAA,cACA;AAAA,cACA,SAAQ;AAAA,cACR,aAAa,kBAAkB,cAAc;AAAA,cAC7C,OAAO;AAAA,cACP,YAAY;AAAA,cACZ;AAAA,gBACI,iBATL;AAAA,cAUC,WAAW,gDACN,iDAAgB,YACf,YAAY,EAAE,OAAO,UAAA,IAAc,CAAA,IAF9B;AAAA,gBAGT,YAAY,gDACP,mBACA,qBAFO;AAAA,kBAGV,QACE,kBAAkB,YACd,CAAC,WAAW,YACZ,qDAAkB;AAAA,gBAAA;AAAA,cAC1B;AAAA,YACF;AAAA,UAAA;AAAA,QAGN;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AAGA,QAAM,eAAe,CAAC,QAA4B;;AAChD,QAAI,QAAQ,QAAQ,QAAQ,OAAW,QAAO;AAC9C,QAAI,OAAO,QAAQ,SAAU,QAAO;AACpC,YAAQ,gCAAK,UAAL,YAAc;AAAA,EACxB;AAEA,QAAM,yBAAyB,CAAC,QAAa,aAAkB;AAC7D,UAAM,WAAY,MAA8C;AAChE,QAAI,UAAU;AACZ,YAAM,UAAU,8BAAY,CAAA,GACzB,IAAI,CAAC,QAAuC,aAAa,GAAG,CAAC,EAC7D,OAAO,CAAC,MAAkC,MAAM,IAAI;AACvD,eAAS,MAAM;AAAA,IACjB,OAAO;AACL,eAAS,aAAa,QAAQ,CAAC;AAAA,IACjC;AAAA,EACF;AAGA,MAAI,aAAa,SAAS,MAAM,SAAS;AACvC,UAAM,EAAE,MAAM,SAAS,YAAY,kBACjC;AACF,WACEhB,2BAAAA;AAAAA,MAACiB,cAAAA;AAAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP,QAAQ,CAAC,EAAE,OAAO,YAAY,EAAE,OAAO,WAAA,QAAmB;AAExD,gBAAMH,iBAAgB;AAAA,YACpB,WACI,qBAAqB,aAAa,MAAM,OAAO,MAAM,IACrD,mBAAmB,aAAa,MAAM,OAAO,MAAM;AAAA,UAAA;AAGzD,gBAAM,eAAe,CAAC,QAAa,aAAkB;AACnD,gBAAI,UAAU;AACZ,oBAAM,QAAQ,8BAAY,CAAA,GACvB,IAAI,CAAC,QAAuC,aAAa,GAAG,CAAC,EAC7D,OAAO,CAAC,MAAkC,MAAM,IAAI;AACvD,oBAAM,SAAS,IAAI;AACnB,6DAAgB;AAAA,YAClB,OAAO;AACL,oBAAM,OAAO,aAAa,QAAQ;AAClC,oBAAM,SAAS,IAAI;AACnB,6DAAgB;AAAA,YAClB;AAAA,UACF;AAEA,iBAAO;AAAA,YACLA;AAAAA,YACA;AAAA,YACA,MAAM;AAAA,YACN,MAAM;AAAA,YACN,CAAC,CAAC;AAAA,YACF,yCAAY;AAAA,UAAA;AAAA,QAEhB;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AAGA,QAAM,kBAAmB,MAA8C;AAEvE,QAAM,gBAAgB;AAAA,IACpB,WACI,qBAAqB,aAAa,iBAA6B,MAAM,IACrE,mBAAmB,aAAa,iBAA2B,MAAM;AAAA,EAAA;AAGvE,SAAO,mBAAmB,eAAe,sBAAsB;AACjE;AAGO,MAAM,qBAAqB;;;"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
var __objRest = (source, exclude) => {
|
|
21
|
+
var target = {};
|
|
22
|
+
for (var prop in source)
|
|
23
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
24
|
+
target[prop] = source[prop];
|
|
25
|
+
if (source != null && __getOwnPropSymbols)
|
|
26
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
27
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
28
|
+
target[prop] = source[prop];
|
|
29
|
+
}
|
|
30
|
+
return target;
|
|
31
|
+
};
|
|
32
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
33
|
+
import React__default, { forwardRef, useState } from "react";
|
|
34
|
+
import { Box, Typography, Avatar as Avatar$1, Tooltip } from "@mui/material";
|
|
35
|
+
import AccountCircleIcon from "@mui/icons-material/AccountCircle";
|
|
36
|
+
import { m as mergeSx } from "./mergeSx-BXoNZjB_.mjs";
|
|
37
|
+
const sizeMap = {
|
|
38
|
+
sm: { px: 32, border: 2, font: 14, overlap: 8 },
|
|
39
|
+
md: { px: 40, border: 2, font: 16, overlap: 10 },
|
|
40
|
+
lg: { px: 56, border: 3, font: 22, overlap: 14 },
|
|
41
|
+
xl: { px: 96, border: 4, font: 36, overlap: 20 }
|
|
42
|
+
};
|
|
43
|
+
const resolveSize = (size) => {
|
|
44
|
+
if (typeof size === "number") {
|
|
45
|
+
return {
|
|
46
|
+
px: size,
|
|
47
|
+
border: Math.max(2, Math.round(size * 0.05)),
|
|
48
|
+
font: Math.round(size * 0.4),
|
|
49
|
+
overlap: Math.round(size * 0.25)
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return sizeMap[size];
|
|
53
|
+
};
|
|
54
|
+
const Avatar = forwardRef(function Avatar2(_a, ref) {
|
|
55
|
+
var _b = _a, {
|
|
56
|
+
items,
|
|
57
|
+
src,
|
|
58
|
+
alt,
|
|
59
|
+
fallback,
|
|
60
|
+
type,
|
|
61
|
+
displayedAvatars = 4,
|
|
62
|
+
size = "sm",
|
|
63
|
+
showText = true,
|
|
64
|
+
showTooltip = false,
|
|
65
|
+
sx,
|
|
66
|
+
avatarSx,
|
|
67
|
+
overlap
|
|
68
|
+
} = _b, rest = __objRest(_b, [
|
|
69
|
+
"items",
|
|
70
|
+
"src",
|
|
71
|
+
"alt",
|
|
72
|
+
"fallback",
|
|
73
|
+
"type",
|
|
74
|
+
"displayedAvatars",
|
|
75
|
+
"size",
|
|
76
|
+
"showText",
|
|
77
|
+
"showTooltip",
|
|
78
|
+
"sx",
|
|
79
|
+
"avatarSx",
|
|
80
|
+
"overlap"
|
|
81
|
+
]);
|
|
82
|
+
var _a2;
|
|
83
|
+
const resolvedItems = items && items.length > 0 ? items : src || fallback ? [{ imageUrl: src, text: alt, content: fallback }] : [];
|
|
84
|
+
const showCaption = items && items.length > 0 ? showText : false;
|
|
85
|
+
const [failedUrls, setFailedUrls] = useState(/* @__PURE__ */ new Set());
|
|
86
|
+
const handleImageError = (url) => {
|
|
87
|
+
setFailedUrls((prev) => {
|
|
88
|
+
if (prev.has(url)) return prev;
|
|
89
|
+
const next = new Set(prev);
|
|
90
|
+
next.add(url);
|
|
91
|
+
return next;
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
if (resolvedItems.length === 0) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
const s = resolveSize(size);
|
|
98
|
+
const effectiveOverlap = overlap != null ? overlap : s.overlap;
|
|
99
|
+
const visibleItems = resolvedItems.slice(0, displayedAvatars);
|
|
100
|
+
const baseAvatarSx = {
|
|
101
|
+
width: s.px,
|
|
102
|
+
height: s.px,
|
|
103
|
+
fontSize: s.font,
|
|
104
|
+
border: (theme) => `${s.border}px solid ${theme.palette.background.paper}`,
|
|
105
|
+
boxSizing: "content-box"
|
|
106
|
+
};
|
|
107
|
+
const renderSingleAvatar = (item, i) => {
|
|
108
|
+
var _a3, _b2, _c;
|
|
109
|
+
const hasImage = !!item.imageUrl && !failedUrls.has(item.imageUrl);
|
|
110
|
+
const showBadgeFallback = !!item.badge;
|
|
111
|
+
const itemKey = (_c = item.imageUrl) != null ? _c : `${(_a3 = item.text) != null ? _a3 : ""}-${(_b2 = item.badge) != null ? _b2 : ""}-${i}`;
|
|
112
|
+
const itemSx = __spreadProps(__spreadValues(__spreadValues(__spreadValues({}, item.backgroundColor ? { bgcolor: item.backgroundColor } : {}), item.color ? { color: item.color } : {}), i > 0 && { marginLeft: `-${effectiveOverlap}px` }), {
|
|
113
|
+
zIndex: visibleItems.length - i
|
|
114
|
+
});
|
|
115
|
+
const finalSx = mergeSx(mergeSx(baseAvatarSx, itemSx), avatarSx);
|
|
116
|
+
const avatarEl = /* @__PURE__ */ jsx(
|
|
117
|
+
Avatar$1,
|
|
118
|
+
{
|
|
119
|
+
alt: item.text || "User avatar",
|
|
120
|
+
src: hasImage ? item.imageUrl : void 0,
|
|
121
|
+
imgProps: {
|
|
122
|
+
onError: () => {
|
|
123
|
+
if (item.imageUrl) handleImageError(item.imageUrl);
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
sx: finalSx,
|
|
127
|
+
children: !hasImage && item.content != null ? item.content : !hasImage && showBadgeFallback ? /* @__PURE__ */ jsx("span", { "aria-label": item.text, children: item.badge }) : !hasImage ? /* @__PURE__ */ jsx(
|
|
128
|
+
AccountCircleIcon,
|
|
129
|
+
{
|
|
130
|
+
"aria-label": item.text,
|
|
131
|
+
sx: { width: "100%", height: "100%" }
|
|
132
|
+
}
|
|
133
|
+
) : null
|
|
134
|
+
}
|
|
135
|
+
);
|
|
136
|
+
if (showTooltip && item.text) {
|
|
137
|
+
return /* @__PURE__ */ jsx(Tooltip, { title: item.text, children: avatarEl }, itemKey);
|
|
138
|
+
}
|
|
139
|
+
return /* @__PURE__ */ jsx(React__default.Fragment, { children: avatarEl }, itemKey);
|
|
140
|
+
};
|
|
141
|
+
return /* @__PURE__ */ jsxs(
|
|
142
|
+
Box,
|
|
143
|
+
__spreadProps(__spreadValues({
|
|
144
|
+
ref
|
|
145
|
+
}, rest), {
|
|
146
|
+
sx: mergeSx(
|
|
147
|
+
{
|
|
148
|
+
display: "flex",
|
|
149
|
+
alignItems: "center",
|
|
150
|
+
lineHeight: 1,
|
|
151
|
+
width: "fit-content"
|
|
152
|
+
},
|
|
153
|
+
sx
|
|
154
|
+
),
|
|
155
|
+
children: [
|
|
156
|
+
/* @__PURE__ */ jsx(Box, { sx: { display: "flex", alignItems: "center" }, children: visibleItems.map((item, i) => renderSingleAvatar(item, i)) }),
|
|
157
|
+
showCaption && ((_a2 = resolvedItems[0]) == null ? void 0 : _a2.text) && /* @__PURE__ */ jsxs(
|
|
158
|
+
Typography,
|
|
159
|
+
{
|
|
160
|
+
variant: "caption",
|
|
161
|
+
sx: {
|
|
162
|
+
ml: 1,
|
|
163
|
+
fontSize: "0.75rem",
|
|
164
|
+
fontWeight: 400,
|
|
165
|
+
color: "text.primary"
|
|
166
|
+
},
|
|
167
|
+
children: [
|
|
168
|
+
type && resolvedItems.length === 1 && /* @__PURE__ */ jsxs(Box, { component: "span", sx: { mr: 0.5 }, children: [
|
|
169
|
+
type,
|
|
170
|
+
":"
|
|
171
|
+
] }),
|
|
172
|
+
resolvedItems[0].text,
|
|
173
|
+
resolvedItems.length > 1 && ` +${resolvedItems.length - 1}`
|
|
174
|
+
]
|
|
175
|
+
}
|
|
176
|
+
)
|
|
177
|
+
]
|
|
178
|
+
})
|
|
179
|
+
);
|
|
180
|
+
});
|
|
181
|
+
export {
|
|
182
|
+
Avatar as A
|
|
183
|
+
};
|
|
184
|
+
//# sourceMappingURL=Avatar-BTEyuYXI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar-BTEyuYXI.mjs","sources":["../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import React, { forwardRef, useState } from 'react';\nimport {\n Avatar as MuiAvatar,\n Box,\n Tooltip,\n Typography,\n type BoxProps,\n type SxProps,\n type Theme,\n} from '@mui/material';\nimport AccountCircleIcon from '@mui/icons-material/AccountCircle';\n\nimport { mergeSx } from '../_shared/mergeSx';\n\nexport interface AvatarItem {\n text?: string;\n imageUrl?: string;\n badge?: string;\n color?: string;\n backgroundColor?: string;\n /** Contenido a renderizar como fallback cuando no hay imagen (ej. iniciales). */\n content?: React.ReactNode;\n}\n\nexport type AvatarSize = 'sm' | 'md' | 'lg' | 'xl' | number;\n\nexport interface AvatarProps extends Omit<BoxProps, 'children' | 'color'> {\n type?: string;\n /**\n * Lista de avatares (grupo apilado). Para un solo avatar puedes usar\n * `src`/`alt` en su lugar.\n */\n items?: AvatarItem[];\n /**\n * Atajo para un único avatar por URL de imagen. Equivale a\n * `items={[{ imageUrl: src, text: alt }]}`. Ignorado si `items` tiene elementos.\n */\n src?: string;\n /** Texto alternativo de la imagen cuando se usa `src` (modo single). */\n alt?: string;\n /** Fallback (ej. iniciales) cuando no hay imagen, en modo single (`src`). */\n fallback?: React.ReactNode;\n displayedAvatars?: number;\n size?: AvatarSize;\n showText?: boolean;\n showTooltip?: boolean;\n /**\n * sx aplicado al contenedor raíz.\n */\n sx?: SxProps<Theme>;\n /**\n * sx aplicado a cada MuiAvatar individual (se mergea sobre los defaults).\n */\n avatarSx?: SxProps<Theme>;\n className?: string;\n /**\n * Overlap (px) entre avatares cuando hay varios. Default depende del tamaño.\n */\n overlap?: number;\n}\n\n// Escala alineada con la escala de MUI (sm=32, md=40, lg=56, xl=96) con borde\n// proporcional para el efecto stacked.\nconst sizeMap: Record<\n Exclude<AvatarSize, number>,\n { px: number; border: number; font: number; overlap: number }\n> = {\n sm: { px: 32, border: 2, font: 14, overlap: 8 },\n md: { px: 40, border: 2, font: 16, overlap: 10 },\n lg: { px: 56, border: 3, font: 22, overlap: 14 },\n xl: { px: 96, border: 4, font: 36, overlap: 20 },\n};\n\nconst resolveSize = (size: AvatarSize) => {\n if (typeof size === 'number') {\n return {\n px: size,\n border: Math.max(2, Math.round(size * 0.05)),\n font: Math.round(size * 0.4),\n overlap: Math.round(size * 0.25),\n };\n }\n return sizeMap[size];\n};\n\nexport const Avatar = forwardRef<HTMLDivElement, AvatarProps>(function Avatar(\n {\n items,\n src,\n alt,\n fallback,\n type,\n displayedAvatars = 4,\n size = 'sm',\n showText = true,\n showTooltip = false,\n sx,\n avatarSx,\n overlap,\n ...rest\n },\n ref,\n) {\n // Modo single (`src`) vs grupo (`items`). En single no mostramos caption.\n const resolvedItems: AvatarItem[] =\n items && items.length > 0\n ? items\n : src || fallback\n ? [{ imageUrl: src, text: alt, content: fallback }]\n : [];\n const showCaption = items && items.length > 0 ? showText : false;\n // Indexamos por URL (no por posición) para que cambios en `items` — reorder,\n // filtrado, paginación — no hagan que un avatar válido \"herede\" el estado de\n // imagen rota de un item anterior que estaba en la misma posición.\n const [failedUrls, setFailedUrls] = useState<Set<string>>(new Set());\n\n const handleImageError = (url: string) => {\n setFailedUrls((prev) => {\n if (prev.has(url)) return prev;\n const next = new Set(prev);\n next.add(url);\n return next;\n });\n };\n\n if (resolvedItems.length === 0) {\n return null;\n }\n\n const s = resolveSize(size);\n const effectiveOverlap = overlap ?? s.overlap;\n const visibleItems = resolvedItems.slice(0, displayedAvatars);\n\n // Solo geometría: el tamaño y el borde de stacking son del componente. El peso\n // de la inicial es tipografía y lo decide el theme del consumidor.\n const baseAvatarSx: SxProps<Theme> = {\n width: s.px,\n height: s.px,\n fontSize: s.font,\n border: (theme) => `${s.border}px solid ${theme.palette.background.paper}`,\n boxSizing: 'content-box',\n };\n\n const renderSingleAvatar = (item: AvatarItem, i: number) => {\n const hasImage = !!item.imageUrl && !failedUrls.has(item.imageUrl);\n const showBadgeFallback = !!item.badge;\n const itemKey = item.imageUrl ?? `${item.text ?? ''}-${item.badge ?? ''}-${i}`;\n\n // Color SOLO si el caller lo pide. Poner un default acá lo mete en `sx`, que\n // le gana al `MuiAvatar` del theme del consumidor y deja el avatar fuera del\n // sistema visual del proyecto. Sin override, manda el theme.\n const itemSx: SxProps<Theme> = {\n ...(item.backgroundColor ? { bgcolor: item.backgroundColor } : {}),\n ...(item.color ? { color: item.color } : {}),\n // Stacking manual: margen negativo al segundo avatar en adelante.\n ...(i > 0 && { marginLeft: `-${effectiveOverlap}px` }),\n zIndex: visibleItems.length - i,\n };\n\n const finalSx = mergeSx(mergeSx(baseAvatarSx, itemSx), avatarSx);\n\n const avatarEl = (\n <MuiAvatar\n alt={item.text || 'User avatar'}\n src={hasImage ? item.imageUrl : undefined}\n imgProps={{\n onError: () => {\n if (item.imageUrl) handleImageError(item.imageUrl);\n },\n }}\n sx={finalSx}\n >\n {!hasImage && item.content != null ? (\n item.content\n ) : !hasImage && showBadgeFallback ? (\n <span aria-label={item.text}>{item.badge}</span>\n ) : !hasImage ? (\n <AccountCircleIcon\n aria-label={item.text}\n sx={{ width: '100%', height: '100%' }}\n />\n ) : null}\n </MuiAvatar>\n );\n\n if (showTooltip && item.text) {\n return (\n <Tooltip key={itemKey} title={item.text}>\n {avatarEl}\n </Tooltip>\n );\n }\n return <React.Fragment key={itemKey}>{avatarEl}</React.Fragment>;\n };\n\n return (\n <Box\n ref={ref}\n {...rest}\n sx={mergeSx(\n {\n display: 'flex',\n alignItems: 'center',\n lineHeight: 1,\n width: 'fit-content',\n },\n sx,\n )}\n >\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n {visibleItems.map((item, i) => renderSingleAvatar(item, i))}\n </Box>\n\n {showCaption && resolvedItems[0]?.text && (\n <Typography\n variant=\"caption\"\n sx={{\n ml: 1,\n fontSize: '0.75rem',\n fontWeight: 400,\n color: 'text.primary',\n }}\n >\n {type && resolvedItems.length === 1 && (\n <Box component=\"span\" sx={{ mr: 0.5 }}>\n {type}:\n </Box>\n )}\n {resolvedItems[0].text}\n {resolvedItems.length > 1 && ` +${resolvedItems.length - 1}`}\n </Typography>\n )}\n </Box>\n );\n});\n\nexport default Avatar;\n"],"names":["Avatar","_a","_b","MuiAvatar","React"],"mappings":"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"}
|