@persona/design-system 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/README.md +9 -9
- package/dist/Accordion.d.mts +38 -0
- package/dist/AccordionItem.d.mts +31 -0
- package/dist/{Action-C7INft7X.d.mts → Action-B-AiHknZ.d.mts} +3 -3
- package/dist/Action.d.mts +1 -1
- package/dist/AdvancedFilterRuleRow.d.mts +2 -2
- package/dist/AdvancedFilterRulesPopover.d.mts +2 -2
- package/dist/ArrayValueControl.d.mts +1 -1
- package/dist/Attribute.d.mts +3 -3
- package/dist/{Badge-BD0Ut46g.mjs → Badge-COqUjFQu.mjs} +2 -2
- package/dist/{Badge-BD0Ut46g.mjs.map → Badge-COqUjFQu.mjs.map} +1 -1
- package/dist/BooleanValueControl.d.mts +1 -1
- package/dist/{Breadcrumb-DtW1R9xW.d.mts → Breadcrumb-DRFY46ZW.d.mts} +1 -1
- package/dist/Breadcrumb.d.mts +1 -1
- package/dist/{Breadcrumbs-B6JyoS8n.d.mts → Breadcrumbs-DUSbT1I7.d.mts} +2 -2
- package/dist/{Breadcrumbs-CrXfUK1V.mjs → Breadcrumbs-DXS7rU7_.mjs} +5 -5
- package/dist/{Breadcrumbs-CrXfUK1V.mjs.map → Breadcrumbs-DXS7rU7_.mjs.map} +1 -1
- package/dist/Breadcrumbs.d.mts +1 -1
- package/dist/{Button-HodDf_bB.d.mts → Button-xZ6DC5XC.d.mts} +4 -4
- package/dist/Button.d.mts +1 -1
- package/dist/{Calendar-DrdTvzAa.d.mts → Calendar-dPmo2dkj.d.mts} +1 -1
- package/dist/Calendar.d.mts +1 -1
- package/dist/CalendarBase.d.mts +1 -1
- package/dist/{Card-CpDwATnX.d.mts → Card-CUeM8Lh8.d.mts} +3 -3
- package/dist/Card.d.mts +1 -1
- package/dist/{CardV2-M3o4BELp.mjs → CardV2-D9p7D7jX.mjs} +9 -7
- package/dist/{CardV2-M3o4BELp.mjs.map → CardV2-D9p7D7jX.mjs.map} +1 -1
- package/dist/{Checkbox-CyWXhuby.mjs → Checkbox-DQynkc_I.mjs} +3 -3
- package/dist/{Checkbox-CyWXhuby.mjs.map → Checkbox-DQynkc_I.mjs.map} +1 -1
- package/dist/{Checkbox-C-hMfItK.d.mts → Checkbox-DoJpxPEz.d.mts} +1 -1
- package/dist/Checkbox.d.mts +1 -1
- package/dist/CheckboxGroupField.d.mts +1 -1
- package/dist/ChoicesValueControl.d.mts +1 -1
- package/dist/{Combobox-1M6EwVmq.mjs → Combobox-C_kCY3P3.mjs} +28 -12
- package/dist/Combobox-C_kCY3P3.mjs.map +1 -0
- package/dist/{Combobox-DyNllwt8.d.mts → Combobox-D7hyf-jA.d.mts} +3 -3
- package/dist/Combobox.d.mts +2 -2
- package/dist/{ComboboxBase-B3YqkjQp.d.mts → ComboboxBase-BMCY6O7Y.d.mts} +10 -5
- package/dist/ComboboxBase.d.mts +1 -1
- package/dist/{ComboboxMultiSelect-BuwVssvZ.d.mts → ComboboxMultiSelect-L0KYMkmm.d.mts} +2 -2
- package/dist/ComboboxMultiSelect.d.mts +1 -1
- package/dist/{ComboboxSingleSelect-gJC4v7ER.d.mts → ComboboxSingleSelect-v5oNrJ7M.d.mts} +4 -4
- package/dist/ComboboxSingleSelect.d.mts +1 -1
- package/dist/{CompactBar-DhHh7Roq.d.mts → CompactBar-DjFaUAsN.d.mts} +4 -4
- package/dist/CompactBar.d.mts +1 -1
- package/dist/{ConfigFormGroup-Cz7GeTYd.mjs → ConfigFormGroup-DLOZOuLf.mjs} +2 -2
- package/dist/{ConfigFormGroup-Cz7GeTYd.mjs.map → ConfigFormGroup-DLOZOuLf.mjs.map} +1 -1
- package/dist/{ControlBar-C8kagIck.d.mts → ControlBar-Cegjxa6-.d.mts} +7 -2
- package/dist/ControlBar.d.mts +1 -1
- package/dist/DataTable.d.mts +4 -3
- package/dist/{DateField-2aigfD4u.d.mts → DateField-Dk5ykLdr.d.mts} +2 -2
- package/dist/DateField.d.mts +1 -1
- package/dist/{DatePicker-D9JurBBj.mjs → DatePicker-C7z1yodK.mjs} +77 -42
- package/dist/DatePicker-C7z1yodK.mjs.map +1 -0
- package/dist/{DatePicker-DC_RKjdM.d.mts → DatePicker-Dtvv0V45.d.mts} +2 -2
- package/dist/DatePicker.d.mts +1 -1
- package/dist/{DateRangePicker-ByD6IsLB.d.mts → DateRangePicker-HPYsa4wC.d.mts} +3 -3
- package/dist/DateRangePicker.d.mts +1 -1
- package/dist/DateRangeValueControl.d.mts +5 -3
- package/dist/DateValueControl.d.mts +8 -5
- package/dist/{DropdownButton-BWiXLMfD.mjs → DropdownButton-CQrFHOIW.mjs} +3 -3
- package/dist/{DropdownButton-BWiXLMfD.mjs.map → DropdownButton-CQrFHOIW.mjs.map} +1 -1
- package/dist/DropdownButton.d.mts +2 -2
- package/dist/{DropdownMenu-Xl1BYXsY.d.mts → DropdownMenu-D1qvgGTZ.d.mts} +2 -2
- package/dist/{DropdownMenu-CuKSNxc9.mjs → DropdownMenu-rm9Nnxn7.mjs} +7 -2
- package/dist/DropdownMenu-rm9Nnxn7.mjs.map +1 -0
- package/dist/DropdownMenu.d.mts +1 -1
- package/dist/{ErrorProps-Dgu98PkH.d.mts → ErrorProps-B8-Mqf1W.d.mts} +1 -1
- package/dist/ErrorProps.d.mts +1 -1
- package/dist/{FieldRegistry-BdtxI1N2.d.mts → FieldRegistry-0LmSQ-jc.d.mts} +2 -2
- package/dist/FieldRegistry.d.mts +1 -1
- package/dist/{FilterBar-jYjPeD7F.d.mts → FilterBar-BMM4Swbt.d.mts} +11 -4
- package/dist/FilterBar.d.mts +1 -1
- package/dist/FilterPickerMenu.d.mts +2 -2
- package/dist/FilterPill.d.mts +1 -1
- package/dist/FilterPopover.d.mts +1 -1
- package/dist/FloatValueControl.d.mts +1 -1
- package/dist/{FormControl-BEk4F1EV.mjs → FormControl-DXrxoJLl.mjs} +26 -11
- package/dist/FormControl-DXrxoJLl.mjs.map +1 -0
- package/dist/{FormControl-CJfYdgZF.d.mts → FormControl-Dg8doZq2.d.mts} +6 -2
- package/dist/FormControl.d.mts +1 -1
- package/dist/FormControlLabel.d.mts +1 -1
- package/dist/{FormField-CK8o1sMB.d.mts → FormField-BeLigf9j.d.mts} +4 -2
- package/dist/{FormField-ByT0avVx.mjs → FormField-Crp3F-hv.mjs} +31 -21
- package/dist/FormField-Crp3F-hv.mjs.map +1 -0
- package/dist/FormField.d.mts +1 -1
- package/dist/Grid-eMLuyRzV.mjs +92 -0
- package/dist/Grid-eMLuyRzV.mjs.map +1 -0
- package/dist/Grid.d.mts +4 -1
- package/dist/{Header-ZnHGm8fs.d.mts → Header-DxJ6TfPw.d.mts} +1 -1
- package/dist/Header.d.mts +1 -1
- package/dist/{HelperTooltip-CQpPO16Q.d.mts → HelperTooltip-DcyrpEZI.d.mts} +2 -2
- package/dist/HelperTooltip.d.mts +1 -1
- package/dist/{HoverCopyableField-CN3gl0ny.mjs → HoverCopyableField-12bBuG-d.mjs} +3 -3
- package/dist/{HoverCopyableField-CN3gl0ny.mjs.map → HoverCopyableField-12bBuG-d.mjs.map} +1 -1
- package/dist/{IconButton-zu-VNp1h.d.mts → IconButton-BUMMN-gH.d.mts} +2 -2
- package/dist/{IconButton-CqTPMhjV.mjs → IconButton-CCLMYWVN.mjs} +1 -1
- package/dist/{IconButton-CqTPMhjV.mjs.map → IconButton-CCLMYWVN.mjs.map} +1 -1
- package/dist/IconButton.d.mts +1 -1
- package/dist/ImageTile.d.mts +1 -1
- package/dist/InlineCombobox.d.mts +1 -1
- package/dist/InlineInput.d.mts +1 -1
- package/dist/{Input-Ce8FvSYf.d.mts → Input-2N2e5JCf.d.mts} +3 -3
- package/dist/{Input-Bc2yWH3j.mjs → Input-Cl4o41k4.mjs} +7 -3
- package/dist/Input-Cl4o41k4.mjs.map +1 -0
- package/dist/Input.d.mts +1 -1
- package/dist/{InputProps-B1Xod4wm.d.mts → InputProps-TWzig3QO.d.mts} +2 -2
- package/dist/InputProps.d.mts +1 -1
- package/dist/IntegerValueControl.d.mts +1 -1
- package/dist/Link-I9Bklen-.mjs +79 -0
- package/dist/Link-I9Bklen-.mjs.map +1 -0
- package/dist/Link.d.mts +1 -1
- package/dist/{ListBox-D-8iwYVj.d.mts → ListBox-BcoXOt73.d.mts} +3 -3
- package/dist/{ListBox-CFBhILRy.mjs → ListBox-sqeLBiKS.mjs} +33 -16
- package/dist/ListBox-sqeLBiKS.mjs.map +1 -0
- package/dist/ListBox.d.mts +1 -1
- package/dist/ListBoxField.d.mts +3 -2
- package/dist/{LoadingShimmer-Dizk2sZu.mjs → LoadingShimmer-dRSkdlqD.mjs} +13 -8
- package/dist/LoadingShimmer-dRSkdlqD.mjs.map +1 -0
- package/dist/LoadingShimmer.d.mts +1 -1
- package/dist/{LogicRow-CgPds2tq.d.mts → LogicRow-DXywXdYt.d.mts} +3 -3
- package/dist/LogicRow.d.mts +1 -1
- package/dist/MaskedInput.d.mts +2 -2
- package/dist/{Menu-CSwzFqdv.d.mts → Menu-BekLwm8w.d.mts} +3 -3
- package/dist/{Menu-Cd6oxjAe.mjs → Menu-CwlI7BMN.mjs} +1 -1
- package/dist/{Menu-Cd6oxjAe.mjs.map → Menu-CwlI7BMN.mjs.map} +1 -1
- package/dist/Menu.d.mts +1 -1
- package/dist/Modal-CMiFcXC9.mjs +260 -0
- package/dist/Modal-CMiFcXC9.mjs.map +1 -0
- package/dist/Modal-ymxlGYKt.d.mts +145 -0
- package/dist/Modal.d.mts +2 -145
- package/dist/{PageHeader-DJOlcAiW.mjs → PageHeader-D_0p7UK_.mjs} +2 -2
- package/dist/{PageHeader-DJOlcAiW.mjs.map → PageHeader-D_0p7UK_.mjs.map} +1 -1
- package/dist/PageHeader.d.mts +1 -1
- package/dist/PageLayoutFrame.d.mts +28 -0
- package/dist/{PageSelector-BMz2Q4P6.d.mts → PageSelector-Bxulu6vU.d.mts} +3 -3
- package/dist/PageSelector.d.mts +1 -1
- package/dist/{Pagination-B1u203DE.mjs → Pagination-Co9CfyFQ.mjs} +5 -5
- package/dist/{Pagination-B1u203DE.mjs.map → Pagination-Co9CfyFQ.mjs.map} +1 -1
- package/dist/{Pagination-ne9hnVoe.d.mts → Pagination-Dg-4O7F7.d.mts} +2 -2
- package/dist/Pagination.d.mts +1 -1
- package/dist/{Pii-Dz4woKd8.mjs → Pii-JGV9gP95.mjs} +2 -2
- package/dist/{Pii-Dz4woKd8.mjs.map → Pii-JGV9gP95.mjs.map} +1 -1
- package/dist/{PillShell-ChTB_koa.d.mts → PillShell-BA7KK1zS.d.mts} +2 -2
- package/dist/PillShell.d.mts +1 -1
- package/dist/{Popover-opVa9Xhc.mjs → Popover-ZAj03lws.mjs} +15 -2
- package/dist/Popover-ZAj03lws.mjs.map +1 -0
- package/dist/ProgressIndicator-CQg08vuA.mjs +188 -0
- package/dist/ProgressIndicator-CQg08vuA.mjs.map +1 -0
- package/dist/ProgressIndicator-D85HQGSx.d.mts +66 -0
- package/dist/ProgressIndicator.d.mts +2 -66
- package/dist/{PseudoClassProps-CdRF3QNn.d.mts → PseudoClassProps-BHs8TX_3.d.mts} +1 -1
- package/dist/PseudoClassProps.d.mts +1 -1
- package/dist/{Radio-Ds1pODKw.mjs → Radio-CYV290JI.mjs} +2 -2
- package/dist/{Radio-Ds1pODKw.mjs.map → Radio-CYV290JI.mjs.map} +1 -1
- package/dist/{RadioGroup-CxL6LW4q.d.mts → RadioGroup-Cq3KV1TN.d.mts} +1 -1
- package/dist/{RadioGroup-HIC9V2hO.mjs → RadioGroup-lWMMtu9V.mjs} +2 -2
- package/dist/{RadioGroup-HIC9V2hO.mjs.map → RadioGroup-lWMMtu9V.mjs.map} +1 -1
- package/dist/RadioGroup.d.mts +1 -1
- package/dist/{RangeCalendar-B7TwRJbg.d.mts → RangeCalendar-Mh7h74Tp.d.mts} +2 -2
- package/dist/RangeCalendar.d.mts +1 -1
- package/dist/RangeCalendarPresets.d.mts +1 -1
- package/dist/{RouterContext-B7N12wkK.d.mts → RouterContext-B3IU1jb0.d.mts} +2 -2
- package/dist/RouterContext.d.mts +1 -1
- package/dist/{RouterLink-Bq36EGjc.d.mts → RouterLink-CwAqTLC2.d.mts} +2 -2
- package/dist/RouterLink.d.mts +1 -1
- package/dist/RuleEditorFields.d.mts +2 -2
- package/dist/RulesPill.d.mts +1 -1
- package/dist/{SearchInput-D69WxMNq.d.mts → SearchInput-BGyUUcoz.d.mts} +2 -2
- package/dist/SearchInput.d.mts +1 -1
- package/dist/SectionHeading.d.mts +1 -1
- package/dist/{SegmentedControl-OHrfJiw0.mjs → SegmentedControl-BEbIcV3g.mjs} +13 -6
- package/dist/SegmentedControl-BEbIcV3g.mjs.map +1 -0
- package/dist/{SegmentedControl-vCnGsdXo.d.mts → SegmentedControl-DgDabSgr.d.mts} +2 -1
- package/dist/SegmentedControl.d.mts +1 -1
- package/dist/{Select-sQb4dQwT.d.mts → Select-wqTtGyga.d.mts} +3 -3
- package/dist/{Select-DE7uv9C8.mjs → Select-yC2t_gZb.mjs} +10 -8
- package/dist/Select-yC2t_gZb.mjs.map +1 -0
- package/dist/Select.d.mts +1 -1
- package/dist/SingleColumnLayout.d.mts +16 -0
- package/dist/{Spinner-DplDSBqf.mjs → Spinner-BlAg8_OX.mjs} +1 -1
- package/dist/{Spinner-DplDSBqf.mjs.map → Spinner-BlAg8_OX.mjs.map} +1 -1
- package/dist/SplitColumnLayout.d.mts +19 -0
- package/dist/{Stack-ChsImaEY.mjs → Stack-Bkn0TUDe.mjs} +1 -1
- package/dist/{Stack-ChsImaEY.mjs.map → Stack-Bkn0TUDe.mjs.map} +1 -1
- package/dist/{Stack-8KGPQp0u.d.mts → Stack-CYqjBXe8.d.mts} +1 -1
- package/dist/Stack.d.mts +1 -1
- package/dist/StatusIndicator-DT2zNbkp.mjs +315 -0
- package/dist/StatusIndicator-DT2zNbkp.mjs.map +1 -0
- package/dist/{Sticker-C3Eb13OQ.mjs → Sticker-BLbgJxcH.mjs} +5 -8
- package/dist/Sticker-BLbgJxcH.mjs.map +1 -0
- package/dist/{Sticker-Bf9rhSkv.d.mts → Sticker-BmyKaxwx.d.mts} +4 -4
- package/dist/Sticker.d.mts +1 -1
- package/dist/StringValueControl.d.mts +1 -1
- package/dist/Tab.d.mts +1 -1
- package/dist/{TabBar-BepWbJHz.mjs → TabBar-Bj84q1Mr.mjs} +4 -7
- package/dist/{TabBar-BepWbJHz.mjs.map → TabBar-Bj84q1Mr.mjs.map} +1 -1
- package/dist/{Table-BefytM6w.d.mts → Table-DhdHUQ8V.d.mts} +1 -1
- package/dist/{Table-B1gRr2XT.mjs → Table-WqNfjasd.mjs} +22 -3
- package/dist/Table-WqNfjasd.mjs.map +1 -0
- package/dist/Table.d.mts +1 -1
- package/dist/{TableBody-BZ34-_wV.d.mts → TableBody-qoSvQDds.d.mts} +1 -1
- package/dist/TableBody.d.mts +1 -1
- package/dist/{TableBox-NP6bhtKb.mjs → TableBox-obl64W5Y.mjs} +22 -17
- package/dist/TableBox-obl64W5Y.mjs.map +1 -0
- package/dist/TableBox.d.mts +2 -2
- package/dist/{TableBoxCell-CHGw9HVj.d.mts → TableBoxCell-DzYMx4Ju.d.mts} +6 -6
- package/dist/TableBoxCell.d.mts +1 -1
- package/dist/TableBoxField.d.mts +4 -3
- package/dist/{TableBoxRow-BljsXKrL.d.mts → TableBoxRow-B4rFCvWK.d.mts} +3 -3
- package/dist/TableBoxRow.d.mts +1 -1
- package/dist/{TableBoxRowActions-h6HNEv9F.d.mts → TableBoxRowActions-qMKcVuTL.d.mts} +2 -2
- package/dist/TableBoxRowActions.d.mts +1 -1
- package/dist/{TableCell-DorRxyke.d.mts → TableCell-CGPQRc5g.d.mts} +2 -2
- package/dist/TableCell.d.mts +1 -1
- package/dist/{TableControls-CYTpBlQN.mjs → TableControls-RS_ozBsI.mjs} +219 -70
- package/dist/TableControls-RS_ozBsI.mjs.map +1 -0
- package/dist/{TableControls-BtGFiZeD.d.mts → TableControls-WP78qtET.d.mts} +4 -3
- package/dist/TableControls.d.mts +1 -1
- package/dist/{TableControlsContext-C3DYeUmB.d.mts → TableControlsContext-DZIZSyfX.d.mts} +2 -2
- package/dist/TableControlsContext.d.mts +1 -1
- package/dist/{TableHead-B0Fdldgw.d.mts → TableHead-36j-_oyn.d.mts} +1 -1
- package/dist/TableHead.d.mts +1 -1
- package/dist/{TableHeaderCell-C_7X8QAT.d.mts → TableHeaderCell-C7gp9j1X.d.mts} +1 -1
- package/dist/TableHeaderCell.d.mts +1 -1
- package/dist/{TableLayout-CXVVzq0e.d.mts → TableLayout-CQqIV0vj.d.mts} +1 -1
- package/dist/TableLayout.d.mts +1 -1
- package/dist/{TableRow-Dr61XJNw.d.mts → TableRow-BJZM8I8i.d.mts} +2 -2
- package/dist/TableRow.d.mts +1 -1
- package/dist/TableTH.d.mts +1 -1
- package/dist/{TableViewConfigurationDropdown-CCtwcB3I.d.mts → TableViewConfigurationDropdown-Dwy_9FBz.d.mts} +2 -2
- package/dist/TableViewConfigurationDropdown.d.mts +1 -1
- package/dist/{TechnicalSticker-_LtE-PRY.mjs → TechnicalSticker-CL0zkOAj.mjs} +1 -1
- package/dist/{TechnicalSticker-_LtE-PRY.mjs.map → TechnicalSticker-CL0zkOAj.mjs.map} +1 -1
- package/dist/{Text-DD_W_ixb.d.mts → Text-DbtTa83E.d.mts} +3 -3
- package/dist/Text.d.mts +1 -1
- package/dist/{TextArea-DOofaXJi.d.mts → TextArea-CbxF6u7z.d.mts} +2 -2
- package/dist/{TextArea-8TuVvmvj.mjs → TextArea-CfZr5Sk4.mjs} +2 -2
- package/dist/{TextArea-8TuVvmvj.mjs.map → TextArea-CfZr5Sk4.mjs.map} +1 -1
- package/dist/TextArea.d.mts +1 -1
- package/dist/{TextUnderlineTooltip-BPLKU9wu.d.mts → TextUnderlineTooltip-BgLQuK38.d.mts} +2 -2
- package/dist/TextUnderlineTooltip.d.mts +1 -1
- package/dist/Tile.d.mts +1 -1
- package/dist/Toast.d.mts +1 -1
- package/dist/{Toggle-2nrUX591.d.mts → Toggle-BYMLrPXk.d.mts} +3 -1
- package/dist/{Toggle-Dcn2Rqgm.mjs → Toggle-D4ZaUcVt.mjs} +11 -5
- package/dist/Toggle-D4ZaUcVt.mjs.map +1 -0
- package/dist/Toggle.d.mts +1 -1
- package/dist/{Tooltip-Cnqf1-tx.d.mts → Tooltip-4pshzB_i.d.mts} +2 -2
- package/dist/Tooltip.d.mts +1 -1
- package/dist/{TruncatedText-g2T5HlqX.d.mts → TruncatedText-O7hE3w0O.d.mts} +1 -1
- package/dist/VersionHistory.d.mts +23 -0
- package/dist/VersionHistoryItem-CIcEgl0K.d.mts +54 -0
- package/dist/VersionHistoryItem.d.mts +2 -0
- package/dist/WizardModal.d.mts +41 -0
- package/dist/accordionTitleTypography-CNB1w3kn.d.mts +17 -0
- package/dist/accordionTitleTypography.d.mts +2 -0
- package/dist/assertNever.d.mts +5 -0
- package/dist/{codec-CoX6LfOY.d.mts → codec-BXVBsB8Y.d.mts} +2 -2
- package/dist/codec.d.mts +1 -1
- package/dist/{color-Bt0Lv1e3.d.mts → color-3UO63ocQ.d.mts} +9 -4
- package/dist/components/Accordion/index.d.mts +4 -0
- package/dist/components/Accordion/index.mjs +330 -0
- package/dist/components/Accordion/index.mjs.map +1 -0
- package/dist/components/Attribute/index.mjs +2 -2
- package/dist/components/Badge/index.mjs +1 -1
- package/dist/components/Banner/index.mjs +1 -1
- package/dist/components/BottomPanel/index.mjs +5 -3
- package/dist/components/BottomPanel/index.mjs.map +1 -1
- package/dist/components/Breadcrumbs/index.d.mts +1 -1
- package/dist/components/Breadcrumbs/index.mjs +1 -1
- package/dist/components/Button/index.d.mts +2 -2
- package/dist/components/Button/index.mjs +1 -1
- package/dist/components/ButtonGroup/index.mjs +2 -2
- package/dist/components/Card/index.d.mts +2 -2
- package/dist/components/CardV2/index.d.mts +1 -1
- package/dist/components/CardV2/index.mjs +1 -1
- package/dist/components/Checkbox/index.d.mts +1 -1
- package/dist/components/Checkbox/index.mjs +1 -1
- package/dist/components/CodeHighlight/index.mjs +3 -1
- package/dist/components/CodeHighlight/index.mjs.map +1 -1
- package/dist/components/Combobox/index.d.mts +2 -2
- package/dist/components/Combobox/index.mjs +1 -1
- package/dist/components/ConfigFormGroup/index.mjs +2 -2
- package/dist/components/DataTable/TableControls/index.d.mts +19 -19
- package/dist/components/DataTable/TableControls/index.mjs +1 -1
- package/dist/components/DataTable/index.mjs +27 -16
- package/dist/components/DataTable/index.mjs.map +1 -1
- package/dist/components/DataTable/types.d.mts +2 -2
- package/dist/components/DatePicker/index.d.mts +5 -5
- package/dist/components/DatePicker/index.mjs +1 -1
- package/dist/components/DropdownButton/index.mjs +1 -1
- package/dist/components/DropdownMenu/index.d.mts +1 -1
- package/dist/components/DropdownMenu/index.mjs +1 -1
- package/dist/components/FloatingPanel/index.mjs +10 -7
- package/dist/components/FloatingPanel/index.mjs.map +1 -1
- package/dist/components/FormControl/index.d.mts +2 -2
- package/dist/components/FormControl/index.mjs +2 -2
- package/dist/components/FormField/index.d.mts +1 -1
- package/dist/components/FormField/index.mjs +1 -1
- package/dist/components/Grid/index.d.mts +2 -2
- package/dist/components/Grid/index.mjs +2 -85
- package/dist/components/HoverCopyableField/index.mjs +1 -1
- package/dist/components/ImageTile/index.mjs +13 -9
- package/dist/components/ImageTile/index.mjs.map +1 -1
- package/dist/components/Input/index.d.mts +1 -1
- package/dist/components/Input/index.mjs +1 -1
- package/dist/components/Link/index.mjs +1 -78
- package/dist/components/ListBox/index.d.mts +3 -3
- package/dist/components/ListBox/index.mjs +1 -1
- package/dist/components/LoadingShimmer/index.mjs +1 -1
- package/dist/components/MaskedInput/index.mjs +1 -1
- package/dist/components/Menu/index.d.mts +1 -1
- package/dist/components/Menu/index.mjs +1 -1
- package/dist/components/Modal/index.d.mts +1 -1
- package/dist/components/Modal/index.mjs +1 -257
- package/dist/components/PageHeader/index.mjs +1 -1
- package/dist/components/Pagination/index.d.mts +3 -3
- package/dist/components/Pagination/index.mjs +1 -1
- package/dist/components/Pii/index.mjs +1 -1
- package/dist/components/Popover/index.mjs +1 -1
- package/dist/components/ProgressBar/index.mjs +1 -2
- package/dist/components/ProgressBar/index.mjs.map +1 -1
- package/dist/components/ProgressIndicator/index.d.mts +2 -2
- package/dist/components/ProgressIndicator/index.mjs +1 -187
- package/dist/components/Radio/index.mjs +1 -1
- package/dist/components/RadioGroup/index.d.mts +1 -1
- package/dist/components/RadioGroup/index.mjs +1 -1
- package/dist/components/RightPanel/index.mjs +10 -7
- package/dist/components/RightPanel/index.mjs.map +1 -1
- package/dist/components/SegmentedControl/index.d.mts +1 -1
- package/dist/components/SegmentedControl/index.mjs +1 -1
- package/dist/components/Select/index.d.mts +1 -1
- package/dist/components/Select/index.mjs +1 -1
- package/dist/components/Slider/index.mjs +1 -1
- package/dist/components/Slider/index.mjs.map +1 -1
- package/dist/components/SmartTextInput/parser/method-chain/types.d.mts +2 -105
- package/dist/components/SmartTextInput/parser/smart-text/types.d.mts +1 -1
- package/dist/components/Spinner/index.mjs +1 -1
- package/dist/components/Stack/index.d.mts +1 -1
- package/dist/components/Stack/index.mjs +1 -1
- package/dist/components/StatusIndicator/index.mjs +1 -314
- package/dist/components/Sticker/index.d.mts +1 -1
- package/dist/components/Sticker/index.mjs +1 -1
- package/dist/components/TabBar/index.mjs +1 -1
- package/dist/components/Table/index.d.mts +8 -8
- package/dist/components/Table/index.mjs +1 -1
- package/dist/components/TableBox/index.d.mts +2 -2
- package/dist/components/TableBox/index.mjs +1 -1
- package/dist/components/TechnicalSticker/index.mjs +1 -1
- package/dist/components/Text/index.d.mts +1 -1
- package/dist/components/TextArea/index.d.mts +1 -1
- package/dist/components/TextArea/index.mjs +1 -1
- package/dist/components/Tile/index.mjs +2 -2
- package/dist/components/Toast/index.mjs +2 -2
- package/dist/components/Toast/index.mjs.map +1 -1
- package/dist/components/Toggle/index.d.mts +1 -1
- package/dist/components/Toggle/index.mjs +1 -1
- package/dist/components/Tooltip/index.d.mts +3 -3
- package/dist/components/VersionHistory/index.d.mts +3 -0
- package/dist/components/VersionHistory/index.mjs +389 -0
- package/dist/components/VersionHistory/index.mjs.map +1 -0
- package/dist/components/WizardModal/index.d.mts +2 -0
- package/dist/components/WizardModal/index.mjs +106 -0
- package/dist/components/WizardModal/index.mjs.map +1 -0
- package/dist/compound-expression.d.mts +1 -1
- package/dist/{constants-D8bzZ-7B.d.mts → constants-BOxzLX-O.d.mts} +1 -1
- package/dist/constants.d.mts +1 -1
- package/dist/{createPath-BDYRvl57.d.mts → createPath-OeTC9kvS.d.mts} +2 -2
- package/dist/createPath.d.mts +1 -1
- package/dist/{date-filter-CZeChs9T.mjs → date-filter-BnzR6NxT.mjs} +1 -1
- package/dist/{date-filter-CZeChs9T.mjs.map → date-filter-BnzR6NxT.mjs.map} +1 -1
- package/dist/{date-range-rule-value-jZAHuxZJ.d.mts → date-range-rule-value-BRp5Bi7R.d.mts} +2 -2
- package/dist/date-range-rule-value.d.mts +1 -1
- package/dist/{date-rule-intent-CC1LdkE7.d.mts → date-rule-intent-CDBtV0ET.d.mts} +3 -3
- package/dist/date-rule-intent.d.mts +1 -1
- package/dist/display.d.mts +2 -2
- package/dist/fieldPickerOptions.d.mts +2 -2
- package/dist/{filter-size-context-BGczB5R9.d.mts → filter-size-context-CqvQ190x.d.mts} +2 -2
- package/dist/filter-size-context.d.mts +1 -1
- package/dist/format-date-value.d.mts +5 -0
- package/dist/helpers.d.mts +1 -1
- package/dist/{index-DalP_w0c.d.mts → index-BXSe73Xn.d.mts} +2 -2
- package/dist/{index-BRKXhLGa.d.mts → index-CyAok7As.d.mts} +2 -2
- package/dist/index-gVcIuWLd.d.mts +1 -0
- package/dist/{index-BZmGEbsA.d.mts → index-wKK9f9La.d.mts} +3 -3
- package/dist/index-zeAhjge4.d.mts +1 -0
- package/dist/index.d.mts +1 -1
- package/dist/index2.d.mts +1 -1
- package/dist/index3.d.mts +3 -3
- package/dist/index4.d.mts +1 -1
- package/dist/index5.d.mts +14 -14
- package/dist/{input-DCJivcWf.d.mts → input-C6cyiqm2.d.mts} +3 -3
- package/dist/inputFields.d.mts +14 -12
- package/dist/{intersperse-Bxcrxj2Q.mjs → intersperse-Df9zw7Bk.mjs} +1 -1
- package/dist/{intersperse-Bxcrxj2Q.mjs.map → intersperse-Df9zw7Bk.mjs.map} +1 -1
- package/dist/{jsonSchema-c_EfAj8y.d.mts → jsonSchema-CfGi1bzI.d.mts} +67 -11
- package/dist/lib/PDSProvider.d.mts +2 -2
- package/dist/lib/TruncatedText.d.mts +1 -1
- package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
- package/dist/lib/chainTypes.d.mts +17 -0
- package/dist/lib/chainTypes.mjs +0 -0
- package/dist/lib/color.d.mts +2 -2
- package/dist/lib/color.mjs +18 -11
- package/dist/lib/color.mjs.map +1 -1
- package/dist/lib/customFunctionSchema.d.mts +49 -0
- package/dist/lib/customFunctionSchema.mjs +299 -0
- package/dist/lib/customFunctionSchema.mjs.map +1 -0
- package/dist/lib/date-filter/index.d.mts +2 -2
- package/dist/lib/date-filter/index.mjs +1 -1
- package/dist/lib/jsonSchema.d.mts +2 -2
- package/dist/lib/jsonSchema.mjs +36 -11
- package/dist/lib/jsonSchema.mjs.map +1 -1
- package/dist/lib/jsonSchemaType.d.mts +7 -0
- package/dist/lib/jsonSchemaType.mjs +31 -0
- package/dist/lib/jsonSchemaType.mjs.map +1 -0
- package/dist/lib/letPointerDownReachDocument.d.mts +22 -0
- package/dist/lib/letPointerDownReachDocument.mjs +25 -0
- package/dist/lib/letPointerDownReachDocument.mjs.map +1 -0
- package/dist/lib/message.d.mts +1 -1
- package/dist/lib/methodChain.d.mts +3 -66
- package/dist/lib/methodChain.mjs +1 -237
- package/dist/lib/methodChainNormalize.d.mts +2 -2
- package/dist/lib/methodChainTypes.d.mts +2 -23
- package/dist/lib/objectSchemaTypes.d.mts +1 -1
- package/dist/lib/platformObject.d.mts +38 -0
- package/dist/lib/platformObject.mjs +79 -0
- package/dist/lib/platformObject.mjs.map +1 -0
- package/dist/lib/pseudoClass.d.mts +1 -1
- package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
- package/dist/lib/router/adapters/tanstack.d.mts +1 -1
- package/dist/lib/router/index.d.mts +5 -5
- package/dist/lib/schemaOptions.d.mts +173 -0
- package/dist/lib/schemaOptions.mjs +481 -0
- package/dist/lib/schemaOptions.mjs.map +1 -0
- package/dist/lib/semanticColor.d.mts +1 -1
- package/dist/lib/snakifyPath.d.mts +5 -0
- package/dist/lib/snakifyPath.mjs +11 -0
- package/dist/lib/snakifyPath.mjs.map +1 -0
- package/dist/{message-CjIHdhX1.d.mts → message-CblP0EjG.d.mts} +1 -1
- package/dist/methodChain-DAQxLgxt.mjs +241 -0
- package/dist/methodChain-DAQxLgxt.mjs.map +1 -0
- package/dist/methodChain-Pk1C3i_E.d.mts +66 -0
- package/dist/methodChainTypes-CqWzfx0M.d.mts +23 -0
- package/dist/mixins/focus.d.mts +1 -1
- package/dist/mixins/hoverable.d.mts +2 -2
- package/dist/mixins/input.d.mts +1 -1
- package/dist/mixins/input.mjs +6 -14
- package/dist/mixins/input.mjs.map +1 -1
- package/dist/mixins/menuItem.d.mts +2 -2
- package/dist/mixins/scrollbar.d.mts +10 -0
- package/dist/mixins/scrollbar.mjs +31 -0
- package/dist/mixins/scrollbar.mjs.map +1 -0
- package/dist/mixins/text.d.mts +1 -1
- package/dist/{operators-x_ZENhrT.d.mts → operators-CoXL5Hv6.d.mts} +2 -2
- package/dist/operators.d.mts +1 -1
- package/dist/{palette-qgPRWgUN.d.mts → palette-CxXUs1Fu.d.mts} +3 -3
- package/dist/palette.d.mts +1 -1
- package/dist/patterns/LayoutLoadingShimmer/index.mjs +5 -5
- package/dist/patterns/PageLayout/index.d.mts +4 -1
- package/dist/patterns/PageLayout/index.mjs +99 -2
- package/dist/patterns/PageLayout/index.mjs.map +1 -1
- package/dist/reactRouterFallback.d.mts +1 -1
- package/dist/relative-date-label.d.mts +1 -1
- package/dist/scrollExpandedItemIntoView.d.mts +12 -0
- package/dist/{semantic-DUctmpu_.d.mts → semantic-CFMBsuiJ.d.mts} +2 -2
- package/dist/{semanticColor-IAhXS17y.d.mts → semanticColor-DuJCmDrH.d.mts} +3 -3
- package/dist/{text-DjTGRUM1.d.mts → text-D8HPjiEX.d.mts} +1 -1
- package/dist/{theme-DKiszVRN.d.mts → theme-BcaR-Au5.d.mts} +3 -3
- package/dist/theme.d.mts +1 -1
- package/dist/time-range.d.mts +7 -0
- package/dist/tone.d.mts +3 -3
- package/dist/{types-CcZbBH0e.d.mts → types-BCiq4hGv.d.mts} +1 -1
- package/dist/types-BGMmkUpy.d.mts +105 -0
- package/dist/{types-N8PYonjD.d.mts → types-C4WUSW3e.d.mts} +7 -2
- package/dist/{types-CuQSgl1F.d.mts → types-CkpixGWr.d.mts} +1 -1
- package/dist/{types-D8rWSj3z.d.mts → types-Cl-w8tYc.d.mts} +1 -1
- package/dist/{types-gnF3MPfk2.d.mts → types-CoVZwrMW.d.mts} +2 -2
- package/dist/{types-RWjW1d9I.d.mts → types-DgyGecdM.d.mts} +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types2.d.mts +1 -1
- package/dist/types3.d.mts +1 -1
- package/dist/types4.d.mts +1 -1
- package/dist/types5.d.mts +1 -1
- package/dist/types6.d.mts +1 -1
- package/dist/{url-state-C2gl07_y.d.mts → url-state-8j_ef8Uf.d.mts} +2 -2
- package/dist/url-state.d.mts +1 -1
- package/dist/useComboboxFooterAction.d.mts +1 -1
- package/dist/{useFilterStateV2-BQYcAdKR.d.mts → useFilterStateV2-CW6eght1.d.mts} +3 -3
- package/dist/useFilterStateV2.d.mts +1 -1
- package/dist/{useFormField-DDbo-ExT.d.mts → useFormField-CLRZkUZt.d.mts} +4 -2
- package/dist/{useFormField-DsvC5dOb.mjs → useFormField-XezSxho_.mjs} +3 -2
- package/dist/useFormField-XezSxho_.mjs.map +1 -0
- package/dist/useFormField.d.mts +1 -1
- package/dist/{useFormGroup-CH3kiXoa.mjs → useFormGroup-C7Cax8zO.mjs} +1 -1
- package/dist/{useFormGroup-CH3kiXoa.mjs.map → useFormGroup-C7Cax8zO.mjs.map} +1 -1
- package/dist/{useLocationPathname-K2N4fw8j.d.mts → useLocationPathname-DH5Tdq5X.d.mts} +1 -1
- package/dist/useLocationPathname.d.mts +1 -1
- package/dist/{useTableBoxDragAndDrop-CbbH3pMK.d.mts → useTableBoxDragAndDrop-Da4TiYBT.d.mts} +1 -1
- package/dist/useTableBoxDragAndDrop.d.mts +1 -1
- package/dist/useTruncation.d.mts +1 -1
- package/dist/{utilities-D0EhDri-.d.mts → utilities-DcsbI71T.d.mts} +1 -1
- package/dist/utilities.d.mts +1 -1
- package/dist/utils/storybook.mjs +1 -1
- package/dist/utils/testing.d.mts +1 -1
- package/dist/utils/testing.mjs.map +1 -1
- package/dist/utils.d.mts +1 -1
- package/dist/{validation-CMtfUd-R.d.mts → validation-BgwNghi2.d.mts} +3 -3
- package/dist/validation.d.mts +1 -1
- package/dist/{value-control-resolver-Au9JNS5z.d.mts → value-control-resolver-B0HDRxRN.d.mts} +3 -2
- package/dist/value-control-resolver.d.mts +1 -1
- package/dist/variables/effect.d.mts +1 -1
- package/dist/variables/semantic.d.mts +1 -1
- package/dist/variables/semantic.mjs +15 -18
- package/dist/variables/semantic.mjs.map +1 -1
- package/llms.txt +10 -1
- package/package.json +27 -6
- package/skills/ui-authoring/COMPONENTS.md +6 -1
- package/skills/ui-authoring/PATTERNS.md +74 -115
- package/dist/Combobox-1M6EwVmq.mjs.map +0 -1
- package/dist/DatePicker-D9JurBBj.mjs.map +0 -1
- package/dist/DropdownMenu-CuKSNxc9.mjs.map +0 -1
- package/dist/FormControl-BEk4F1EV.mjs.map +0 -1
- package/dist/FormField-ByT0avVx.mjs.map +0 -1
- package/dist/Input-Bc2yWH3j.mjs.map +0 -1
- package/dist/ListBox-CFBhILRy.mjs.map +0 -1
- package/dist/LoadingShimmer-Dizk2sZu.mjs.map +0 -1
- package/dist/Popover-opVa9Xhc.mjs.map +0 -1
- package/dist/SegmentedControl-OHrfJiw0.mjs.map +0 -1
- package/dist/Select-DE7uv9C8.mjs.map +0 -1
- package/dist/Sticker-C3Eb13OQ.mjs.map +0 -1
- package/dist/Table-B1gRr2XT.mjs.map +0 -1
- package/dist/TableBox-NP6bhtKb.mjs.map +0 -1
- package/dist/TableControls-CYTpBlQN.mjs.map +0 -1
- package/dist/Toggle-Dcn2Rqgm.mjs.map +0 -1
- package/dist/components/Grid/index.mjs.map +0 -1
- package/dist/components/Link/index.mjs.map +0 -1
- package/dist/components/Modal/index.mjs.map +0 -1
- package/dist/components/ProgressIndicator/index.mjs.map +0 -1
- package/dist/components/StatusIndicator/index.mjs.map +0 -1
- package/dist/fieldSchemaTypes-BVYSm74B.d.mts +0 -39
- package/dist/lib/fieldSchemaTypes.d.mts +0 -2
- package/dist/lib/fieldSchemaTypes.mjs +0 -41
- package/dist/lib/fieldSchemaTypes.mjs.map +0 -1
- package/dist/lib/methodChain.mjs.map +0 -1
- package/dist/useFormField-DsvC5dOb.mjs.map +0 -1
- /package/dist/{index--p6oQT9I.d.mts → index-B24gUwOx.d.mts} +0 -0
- /package/dist/{index-B33elXxm.d.mts → index-BFnNtGdX.d.mts} +0 -0
- /package/dist/{index-BO_854F2.d.mts → index-BNRXMhlr.d.mts} +0 -0
- /package/dist/{index-BrGZHEgX.d.mts → index-BPiqSRRl.d.mts} +0 -0
- /package/dist/{index-BwAfCVZH2.d.mts → index-BYd3Btr1.d.mts} +0 -0
- /package/dist/{index-CRo77wc3.d.mts → index-Bt4QNofW.d.mts} +0 -0
- /package/dist/{index-CX869wwk.d.mts → index-CEqOS-7M.d.mts} +0 -0
- /package/dist/{index-CsuikFeJ.d.mts → index-CIABef8t.d.mts} +0 -0
- /package/dist/{index-CuYZJcK3.d.mts → index-CTHojwxd.d.mts} +0 -0
- /package/dist/{index-CzItj62a.d.mts → index-Cm-1i165.d.mts} +0 -0
- /package/dist/{index-D13oYj4_.d.mts → index-DB7t8whN.d.mts} +0 -0
- /package/dist/{index-D4DUvwPf.d.mts → index-DBGd4WeR.d.mts} +0 -0
- /package/dist/{index-DMRtRo7y.d.mts → index-DGsJdI5l.d.mts} +0 -0
- /package/dist/{index-DXJd7-2Z.d.mts → index-DWfPppPU.d.mts} +0 -0
- /package/dist/{index-DZlqSwCF.d.mts → index-DedbSZMv.d.mts} +0 -0
- /package/dist/{index-Dflz2i1X.d.mts → index-Jh0C5PIG.d.mts} +0 -0
- /package/dist/{index-DkrC-i1D.d.mts → index-NKYLt_R9.d.mts} +0 -0
- /package/dist/{index-DztUdPP_.d.mts → index-Qwqzz3XM.d.mts} +0 -0
- /package/dist/{index-Rvd9MEUQ.d.mts → index-VWno75SQ.d.mts} +0 -0
- /package/dist/{index-bHnO4ZKt.d.mts → index-fxXoW-qc.d.mts} +0 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { a as styled, o as useTheme, r as css } from "./styledComponentsInterop-NxwFjeA4.mjs";
|
|
2
|
+
import { semanticColor, semanticTokens } from "./lib/semanticColor.mjs";
|
|
3
|
+
import { paragraphMixins } from "./mixins/text.mjs";
|
|
4
|
+
import { withAlpha } from "./lib/color.mjs";
|
|
5
|
+
import { focusOutline } from "./mixins/focus.mjs";
|
|
6
|
+
import { BorderRadius, Color, Spacing } from "@persona/design-tokens";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { CircleCheckFillIcon, CircleFillIcon, CircleNullIcon, CircleWarningFillIcon, WarningFillIcon } from "@persona/icons";
|
|
9
|
+
//#region components/ProgressIndicator/ProgressIndicator.tsx
|
|
10
|
+
/**
|
|
11
|
+
* Completed, warning, and error steps can be navigated back to.
|
|
12
|
+
* The current step (first uncompleted or error) is also clickable so the user can
|
|
13
|
+
* return to it after navigating back to an earlier step.
|
|
14
|
+
* Active and upcoming steps (beyond the current) are not clickable.
|
|
15
|
+
*/
|
|
16
|
+
function resolveClickable(status, isActive, isDisabled, isCurrent) {
|
|
17
|
+
if (isDisabled || isActive) return false;
|
|
18
|
+
return status === "completed" || status === "warning" || status === "error" || isCurrent;
|
|
19
|
+
}
|
|
20
|
+
function resolveIcon(status, isCurrent) {
|
|
21
|
+
if (status === "completed") return CircleCheckFillIcon;
|
|
22
|
+
if (status === "warning") return WarningFillIcon;
|
|
23
|
+
if (status === "error") return CircleWarningFillIcon;
|
|
24
|
+
if (isCurrent) return CircleFillIcon;
|
|
25
|
+
return CircleNullIcon;
|
|
26
|
+
}
|
|
27
|
+
function resolveIconColor(theme, status, isActive, isDisabled) {
|
|
28
|
+
if (isDisabled) return semanticColor(theme, "FgDisabled", Color.BorderIconDisabled);
|
|
29
|
+
if (status === "completed") return semanticColor(theme, "StatusSuccess3", Color.BorderIconSuccess);
|
|
30
|
+
if (status === "warning") return semanticColor(theme, "FgWarning1", Color.BorderIconWarning);
|
|
31
|
+
if (status === "error") return semanticColor(theme, "StatusDanger4", Color.BorderIconDanger);
|
|
32
|
+
return isActive ? semanticColor(theme, "FgAccent", Color.BorderIconActive) : semanticColor(theme, "FgSecondary", Color.BorderIconSecondary);
|
|
33
|
+
}
|
|
34
|
+
function resolveTextColor(theme, status, isActive, isDisabled) {
|
|
35
|
+
if (isDisabled) return semanticColor(theme, "FgDisabled", Color.TextDisabled);
|
|
36
|
+
if (isActive) return semanticColor(theme, "FgAccent", Color.TextActive);
|
|
37
|
+
if (status === "uncompleted") return semanticColor(theme, "FgSecondary", Color.TextSecondary);
|
|
38
|
+
return semanticColor(theme, "FgPrimary", Color.TextPrimary);
|
|
39
|
+
}
|
|
40
|
+
const StepList = styled.ol`
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-direction: ${({ $layout }) => $layout === "horizontal" ? "row" : "column"};
|
|
43
|
+
gap: ${({ $layout }) => $layout === "horizontal" ? Spacing[2] : "0px"};
|
|
44
|
+
list-style: none;
|
|
45
|
+
margin: 0;
|
|
46
|
+
padding: 0;
|
|
47
|
+
`;
|
|
48
|
+
const StepItem = styled.li`
|
|
49
|
+
display: flex;
|
|
50
|
+
align-items: center;
|
|
51
|
+
|
|
52
|
+
${({ $layout }) => $layout === "horizontal" && css`
|
|
53
|
+
width: fit-content;
|
|
54
|
+
white-space: nowrap;
|
|
55
|
+
`}
|
|
56
|
+
`;
|
|
57
|
+
const StepContent = styled.button`
|
|
58
|
+
display: flex;
|
|
59
|
+
align-items: center;
|
|
60
|
+
gap: ${Spacing[2]};
|
|
61
|
+
width: 100%;
|
|
62
|
+
padding: ${Spacing[2]};
|
|
63
|
+
border-radius: ${BorderRadius.Md};
|
|
64
|
+
border: none;
|
|
65
|
+
margin: 0;
|
|
66
|
+
font: inherit;
|
|
67
|
+
color: inherit;
|
|
68
|
+
text-align: left;
|
|
69
|
+
outline: none;
|
|
70
|
+
cursor: ${({ $isClickable, $interactive }) => $interactive && $isClickable ? "pointer" : "default"};
|
|
71
|
+
|
|
72
|
+
${({ theme, $isActive, $isClickable, $interactive }) => {
|
|
73
|
+
const tokens = semanticTokens(theme);
|
|
74
|
+
if ($isActive) return css`
|
|
75
|
+
background-color: ${tokens ? withAlpha(tokens.SurfaceAccent, tokens.Opacity25) : Color.BackgroundInteractiveActive};
|
|
76
|
+
`;
|
|
77
|
+
if ($interactive && $isClickable) return css`
|
|
78
|
+
background-color: ${tokens ? "transparent" : Color.BackgroundInteractiveDefault};
|
|
79
|
+
&:hover {
|
|
80
|
+
background-color: ${semanticColor(theme, "SurfaceSecondary", Color.BackgroundInteractiveHover)};
|
|
81
|
+
}
|
|
82
|
+
`;
|
|
83
|
+
return css`
|
|
84
|
+
background-color: transparent;
|
|
85
|
+
`;
|
|
86
|
+
}}
|
|
87
|
+
|
|
88
|
+
${focusOutline}
|
|
89
|
+
|
|
90
|
+
&:focus-visible {
|
|
91
|
+
position: relative;
|
|
92
|
+
z-index: 1;
|
|
93
|
+
}
|
|
94
|
+
`;
|
|
95
|
+
const IconWrapper = styled.span`
|
|
96
|
+
display: inline-flex;
|
|
97
|
+
flex-shrink: 0;
|
|
98
|
+
width: 16px;
|
|
99
|
+
height: 16px;
|
|
100
|
+
color: ${({ $color }) => $color};
|
|
101
|
+
line-height: 0;
|
|
102
|
+
`;
|
|
103
|
+
const StepLabel = styled.span`
|
|
104
|
+
${({ $isActive }) => $isActive ? paragraphMixins.mdBold : paragraphMixins.md};
|
|
105
|
+
color: ${({ $color }) => $color};
|
|
106
|
+
`;
|
|
107
|
+
const Step = ({ step, isActive, isCurrent, layout, onStepClick }) => {
|
|
108
|
+
const { id, label, status = "uncompleted", disabled = false } = step;
|
|
109
|
+
const interactive = Boolean(onStepClick);
|
|
110
|
+
const isClickable = resolveClickable(status, isActive, disabled, isCurrent);
|
|
111
|
+
const isInteractionDisabled = disabled || !isActive && !isCurrent && status === "uncompleted";
|
|
112
|
+
const theme = useTheme();
|
|
113
|
+
const iconColor = resolveIconColor(theme, status, isActive, disabled);
|
|
114
|
+
const textColor = resolveTextColor(theme, status, isActive, disabled);
|
|
115
|
+
const Icon = resolveIcon(status, isCurrent);
|
|
116
|
+
return /* @__PURE__ */ jsx(StepItem, {
|
|
117
|
+
$layout: layout,
|
|
118
|
+
"aria-current": !interactive && isActive ? "step" : void 0,
|
|
119
|
+
"aria-disabled": !interactive && isInteractionDisabled ? true : void 0,
|
|
120
|
+
children: /* @__PURE__ */ jsxs(StepContent, {
|
|
121
|
+
...interactive && isClickable ? {
|
|
122
|
+
type: "button",
|
|
123
|
+
onClick: () => onStepClick?.(id)
|
|
124
|
+
} : { as: "div" },
|
|
125
|
+
"aria-current": interactive && isActive ? "step" : void 0,
|
|
126
|
+
"aria-disabled": interactive && isInteractionDisabled ? true : void 0,
|
|
127
|
+
$isActive: isActive,
|
|
128
|
+
$isClickable: isClickable,
|
|
129
|
+
$interactive: interactive,
|
|
130
|
+
children: [/* @__PURE__ */ jsx(IconWrapper, {
|
|
131
|
+
$color: iconColor,
|
|
132
|
+
"aria-hidden": "true",
|
|
133
|
+
children: /* @__PURE__ */ jsx(Icon, {})
|
|
134
|
+
}), /* @__PURE__ */ jsx(StepLabel, {
|
|
135
|
+
$isActive: isActive,
|
|
136
|
+
$color: textColor,
|
|
137
|
+
children: label
|
|
138
|
+
})]
|
|
139
|
+
})
|
|
140
|
+
});
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* ProgressIndicator guides users through a sequence of steps.
|
|
144
|
+
*
|
|
145
|
+
* Interaction rules:
|
|
146
|
+
* - **Completed / warning / error** steps are clickable — navigate back to review or fix.
|
|
147
|
+
* - **Warning** does not block forward progression; later uncompleted steps remain reachable.
|
|
148
|
+
* - **Error** blocks forward progression — treat it as the terminal step in the sequence.
|
|
149
|
+
* - **Active** step is not clickable — the user is already there.
|
|
150
|
+
* - **Upcoming (uncompleted)** steps are not clickable — sequential progression required.
|
|
151
|
+
*
|
|
152
|
+
* Navigation does not clear later steps. If a change on an earlier step
|
|
153
|
+
* invalidates later data, the affected steps should be flagged and require
|
|
154
|
+
* re-confirmation before submission — this logic lives in the consuming component.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```tsx
|
|
158
|
+
* <ProgressIndicator
|
|
159
|
+
* steps={[
|
|
160
|
+
* { id: 'identity', label: 'Identity', status: 'completed' },
|
|
161
|
+
* { id: 'address', label: 'Address', status: 'uncompleted' },
|
|
162
|
+
* { id: 'review', label: 'Review', status: 'uncompleted' },
|
|
163
|
+
* ]}
|
|
164
|
+
* activeStepId="address"
|
|
165
|
+
* onStepClick={(id) => navigate(id)}
|
|
166
|
+
* />
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
const ProgressIndicator = ({ steps, activeStepId, layout = "vertical", onStepClick, "aria-label": ariaLabel = "Progress", ...rest }) => {
|
|
170
|
+
const currentStepId = steps.find(({ status = "uncompleted" }) => status === "uncompleted" || status === "error")?.id;
|
|
171
|
+
return /* @__PURE__ */ jsx(StepList, {
|
|
172
|
+
$layout: layout,
|
|
173
|
+
role: "list",
|
|
174
|
+
"aria-label": ariaLabel,
|
|
175
|
+
...rest,
|
|
176
|
+
children: steps.map((step) => /* @__PURE__ */ jsx(Step, {
|
|
177
|
+
step,
|
|
178
|
+
isActive: step.id === activeStepId,
|
|
179
|
+
isCurrent: step.id === currentStepId,
|
|
180
|
+
layout,
|
|
181
|
+
onStepClick
|
|
182
|
+
}, step.id))
|
|
183
|
+
});
|
|
184
|
+
};
|
|
185
|
+
//#endregion
|
|
186
|
+
export { ProgressIndicator as t };
|
|
187
|
+
|
|
188
|
+
//# sourceMappingURL=ProgressIndicator-CQg08vuA.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressIndicator-CQg08vuA.mjs","names":[],"sources":["../components/ProgressIndicator/ProgressIndicator.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react';\nimport styled, { css, useTheme } from 'styled-components';\n\nimport { focusOutline } from '@persona/design-system/mixins/focus';\nimport { paragraphMixins } from '@persona/design-system/mixins/text';\nimport { BorderRadius, Color, Spacing } from '@persona/design-tokens';\nimport {\n CircleCheckFillIcon,\n CircleFillIcon,\n CircleNullIcon,\n CircleWarningFillIcon,\n WarningFillIcon,\n} from '@persona/icons';\nimport type { PDSIconComponent } from '@persona/icons/types';\nimport { withAlpha } from 'design-system/lib/color';\nimport {\n type MaybeSemanticTheme,\n semanticColor,\n semanticTokens,\n} from 'design-system/lib/semanticColor';\n\nexport type StepStatus = 'uncompleted' | 'completed' | 'warning' | 'error';\n\nexport interface ProgressIndicatorStep {\n id: string;\n label: string;\n /** @default 'uncompleted' */\n status?: StepStatus;\n disabled?: boolean;\n}\n\nexport interface ProgressIndicatorProps extends ComponentPropsWithoutRef<'ol'> {\n steps: ProgressIndicatorStep[];\n /** id of the step that should receive the active visual state */\n activeStepId?: string;\n /** @default 'vertical' */\n layout?: 'vertical' | 'horizontal';\n /**\n * Called when a clickable step is activated via click or keyboard.\n *\n * Clickability rules:\n * - `completed`, `warning`, and `error` steps are clickable (navigate back to review/edit)\n * - The active step is not clickable (user is already there)\n * - Upcoming `uncompleted` steps are not clickable (sequential progression required)\n */\n onStepClick?: (stepId: string) => void;\n}\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/**\n * Completed, warning, and error steps can be navigated back to.\n * The current step (first uncompleted or error) is also clickable so the user can\n * return to it after navigating back to an earlier step.\n * Active and upcoming steps (beyond the current) are not clickable.\n */\nfunction resolveClickable(\n status: StepStatus,\n isActive: boolean,\n isDisabled: boolean,\n isCurrent: boolean,\n): boolean {\n if (isDisabled || isActive) {\n return false;\n }\n return status === 'completed' || status === 'warning' || status === 'error' || isCurrent;\n}\n\nfunction resolveIcon(status: StepStatus, isCurrent: boolean): PDSIconComponent {\n if (status === 'completed') {\n return CircleCheckFillIcon;\n }\n if (status === 'warning') {\n return WarningFillIcon;\n }\n if (status === 'error') {\n return CircleWarningFillIcon;\n }\n if (isCurrent) {\n return CircleFillIcon;\n }\n return CircleNullIcon;\n}\n\nfunction resolveIconColor(\n theme: MaybeSemanticTheme,\n status: StepStatus,\n isActive: boolean,\n isDisabled: boolean,\n) {\n if (isDisabled) {\n return semanticColor(theme, 'FgDisabled', Color.BorderIconDisabled);\n }\n if (status === 'completed') {\n return semanticColor(theme, 'StatusSuccess3', Color.BorderIconSuccess);\n }\n if (status === 'warning') {\n return semanticColor(theme, 'FgWarning1', Color.BorderIconWarning);\n }\n if (status === 'error') {\n return semanticColor(theme, 'StatusDanger4', Color.BorderIconDanger);\n }\n return isActive\n ? semanticColor(theme, 'FgAccent', Color.BorderIconActive)\n : semanticColor(theme, 'FgSecondary', Color.BorderIconSecondary);\n}\n\nfunction resolveTextColor(\n theme: MaybeSemanticTheme,\n status: StepStatus,\n isActive: boolean,\n isDisabled: boolean,\n) {\n if (isDisabled) {\n return semanticColor(theme, 'FgDisabled', Color.TextDisabled);\n }\n if (isActive) {\n return semanticColor(theme, 'FgAccent', Color.TextActive);\n }\n if (status === 'uncompleted') {\n return semanticColor(theme, 'FgSecondary', Color.TextSecondary);\n }\n return semanticColor(theme, 'FgPrimary', Color.TextPrimary);\n}\n\n// ─── Styled components ────────────────────────────────────────────────────────\n\nconst StepList = styled.ol<{ $layout: 'vertical' | 'horizontal' }>`\n display: flex;\n flex-direction: ${({ $layout }) => ($layout === 'horizontal' ? 'row' : 'column')};\n gap: ${({ $layout }) => ($layout === 'horizontal' ? Spacing[2] : '0px')};\n list-style: none;\n margin: 0;\n padding: 0;\n`;\n\nconst StepItem = styled.li<{ $layout: 'vertical' | 'horizontal' }>`\n display: flex;\n align-items: center;\n\n ${({ $layout }) =>\n $layout === 'horizontal' &&\n css`\n width: fit-content;\n white-space: nowrap;\n `}\n`;\n\nconst StepContent = styled.button<{\n $isActive: boolean;\n $isClickable: boolean;\n $interactive: boolean;\n}>`\n display: flex;\n align-items: center;\n gap: ${Spacing[2]};\n width: 100%;\n padding: ${Spacing[2]};\n border-radius: ${BorderRadius.Md};\n border: none;\n margin: 0;\n font: inherit;\n color: inherit;\n text-align: left;\n outline: none;\n cursor: ${({ $isClickable, $interactive }) => ($interactive && $isClickable ? 'pointer' : 'default')};\n\n ${({ theme, $isActive, $isClickable, $interactive }) => {\n const tokens = semanticTokens(theme);\n if ($isActive) {\n return css`\n background-color: ${\n tokens\n ? withAlpha(tokens.SurfaceAccent, tokens.Opacity25)\n : Color.BackgroundInteractiveActive\n };\n `;\n }\n if ($interactive && $isClickable) {\n return css`\n background-color: ${tokens ? 'transparent' : Color.BackgroundInteractiveDefault};\n &:hover {\n background-color: ${semanticColor(theme, 'SurfaceSecondary', Color.BackgroundInteractiveHover)};\n }\n `;\n }\n return css`\n background-color: transparent;\n `;\n }}\n\n ${focusOutline}\n\n &:focus-visible {\n position: relative;\n z-index: 1;\n }\n`;\n\nconst IconWrapper = styled.span<{ $color: string }>`\n display: inline-flex;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n color: ${({ $color }) => $color};\n line-height: 0;\n`;\n\nconst StepLabel = styled.span<{ $isActive: boolean; $color: string }>`\n ${({ $isActive }) => ($isActive ? paragraphMixins.mdBold : paragraphMixins.md)};\n color: ${({ $color }) => $color};\n`;\n\n// ─── Step ─────────────────────────────────────────────────────────────────────\n\ninterface StepProps {\n step: ProgressIndicatorStep;\n isActive: boolean;\n isCurrent: boolean;\n layout: 'vertical' | 'horizontal';\n onStepClick?: (stepId: string) => void;\n}\n\nconst Step = ({ step, isActive, isCurrent, layout, onStepClick }: StepProps) => {\n const { id, label, status = 'uncompleted', disabled = false } = step;\n\n const interactive = Boolean(onStepClick);\n const isClickable = resolveClickable(status, isActive, disabled, isCurrent);\n const isInteractionDisabled = disabled || (!isActive && !isCurrent && status === 'uncompleted');\n const theme = useTheme();\n const iconColor = resolveIconColor(theme, status, isActive, disabled);\n const textColor = resolveTextColor(theme, status, isActive, disabled);\n\n const Icon = resolveIcon(status, isCurrent);\n\n return (\n <StepItem\n $layout={layout}\n aria-current={!interactive && isActive ? 'step' : undefined}\n aria-disabled={!interactive && isInteractionDisabled ? true : undefined}\n >\n <StepContent\n {...(interactive && isClickable\n ? { type: 'button' as const, onClick: () => onStepClick?.(id) }\n : { as: 'div' as const })}\n aria-current={interactive && isActive ? 'step' : undefined}\n aria-disabled={interactive && isInteractionDisabled ? true : undefined}\n $isActive={isActive}\n $isClickable={isClickable}\n $interactive={interactive}\n >\n <IconWrapper $color={iconColor} aria-hidden='true'>\n <Icon />\n </IconWrapper>\n <StepLabel $isActive={isActive} $color={textColor}>\n {label}\n </StepLabel>\n </StepContent>\n </StepItem>\n );\n};\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * ProgressIndicator guides users through a sequence of steps.\n *\n * Interaction rules:\n * - **Completed / warning / error** steps are clickable — navigate back to review or fix.\n * - **Warning** does not block forward progression; later uncompleted steps remain reachable.\n * - **Error** blocks forward progression — treat it as the terminal step in the sequence.\n * - **Active** step is not clickable — the user is already there.\n * - **Upcoming (uncompleted)** steps are not clickable — sequential progression required.\n *\n * Navigation does not clear later steps. If a change on an earlier step\n * invalidates later data, the affected steps should be flagged and require\n * re-confirmation before submission — this logic lives in the consuming component.\n *\n * @example\n * ```tsx\n * <ProgressIndicator\n * steps={[\n * { id: 'identity', label: 'Identity', status: 'completed' },\n * { id: 'address', label: 'Address', status: 'uncompleted' },\n * { id: 'review', label: 'Review', status: 'uncompleted' },\n * ]}\n * activeStepId=\"address\"\n * onStepClick={(id) => navigate(id)}\n * />\n * ```\n */\nexport const ProgressIndicator = ({\n steps,\n activeStepId,\n layout = 'vertical',\n onStepClick,\n 'aria-label': ariaLabel = 'Progress',\n ...rest\n}: ProgressIndicatorProps) => {\n // The \"current\" step is the first uncompleted or error step — where the user should work next.\n // Warning steps are skipped so forward progression is not blocked.\n // This is independent of activeStepId, which only controls the visual highlight.\n const currentStepId = steps.find(\n ({ status = 'uncompleted' }) => status === 'uncompleted' || status === 'error',\n )?.id;\n\n return (\n <StepList $layout={layout} role='list' aria-label={ariaLabel} {...rest}>\n {steps.map((step) => (\n <Step\n key={step.id}\n step={step}\n isActive={step.id === activeStepId}\n isCurrent={step.id === currentStepId}\n layout={layout}\n onStepClick={onStepClick}\n />\n ))}\n </StepList>\n );\n};\n\nexport default ProgressIndicator;\n"],"mappings":";;;;;;;;;;;;;;;AAwDA,SAAS,iBACP,QACA,UACA,YACA,WACS;AACT,KAAI,cAAc,SAChB,QAAO;AAET,QAAO,WAAW,eAAe,WAAW,aAAa,WAAW,WAAW;;AAGjF,SAAS,YAAY,QAAoB,WAAsC;AAC7E,KAAI,WAAW,YACb,QAAO;AAET,KAAI,WAAW,UACb,QAAO;AAET,KAAI,WAAW,QACb,QAAO;AAET,KAAI,UACF,QAAO;AAET,QAAO;;AAGT,SAAS,iBACP,OACA,QACA,UACA,YACA;AACA,KAAI,WACF,QAAO,cAAc,OAAO,cAAc,MAAM,mBAAmB;AAErE,KAAI,WAAW,YACb,QAAO,cAAc,OAAO,kBAAkB,MAAM,kBAAkB;AAExE,KAAI,WAAW,UACb,QAAO,cAAc,OAAO,cAAc,MAAM,kBAAkB;AAEpE,KAAI,WAAW,QACb,QAAO,cAAc,OAAO,iBAAiB,MAAM,iBAAiB;AAEtE,QAAO,WACH,cAAc,OAAO,YAAY,MAAM,iBAAiB,GACxD,cAAc,OAAO,eAAe,MAAM,oBAAoB;;AAGpE,SAAS,iBACP,OACA,QACA,UACA,YACA;AACA,KAAI,WACF,QAAO,cAAc,OAAO,cAAc,MAAM,aAAa;AAE/D,KAAI,SACF,QAAO,cAAc,OAAO,YAAY,MAAM,WAAW;AAE3D,KAAI,WAAW,cACb,QAAO,cAAc,OAAO,eAAe,MAAM,cAAc;AAEjE,QAAO,cAAc,OAAO,aAAa,MAAM,YAAY;;AAK7D,MAAM,WAAW,OAAO,EAA0C;;qBAE7C,EAAE,cAAe,YAAY,eAAe,QAAQ,SAAU;UACzE,EAAE,cAAe,YAAY,eAAe,QAAQ,KAAK,MAAO;;;;;AAM1E,MAAM,WAAW,OAAO,EAA0C;;;;KAI7D,EAAE,cACH,YAAY,gBACZ,GAAG;;;MAGD;;AAGN,MAAM,cAAc,OAAO,MAIzB;;;SAGO,QAAQ,GAAG;;aAEP,QAAQ,GAAG;mBACL,aAAa,GAAG;;;;;;;aAOtB,EAAE,cAAc,mBAAoB,gBAAgB,eAAe,YAAY,UAAW;;KAElG,EAAE,OAAO,WAAW,cAAc,mBAAmB;CACtD,MAAM,SAAS,eAAe,MAAM;AACpC,KAAI,UACF,QAAO,GAAG;4BAEN,SACI,UAAU,OAAO,eAAe,OAAO,UAAU,GACjD,MAAM,4BACX;;AAGL,KAAI,gBAAgB,aAClB,QAAO,GAAG;4BACY,SAAS,gBAAgB,MAAM,6BAA6B;;8BAE1D,cAAc,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;;;AAIrG,QAAO,GAAG;;;EAGV;;IAEA,aAAa;;;;;;;AAQjB,MAAM,cAAc,OAAO,IAAwB;;;;;YAKvC,EAAE,aAAa,OAAO;;;AAIlC,MAAM,YAAY,OAAO,IAA4C;KAChE,EAAE,gBAAiB,YAAY,gBAAgB,SAAS,gBAAgB,GAAI;YACrE,EAAE,aAAa,OAAO;;AAalC,MAAM,QAAQ,EAAE,MAAM,UAAU,WAAW,QAAQ,kBAA6B;CAC9E,MAAM,EAAE,IAAI,OAAO,SAAS,eAAe,WAAW,UAAU;CAEhE,MAAM,cAAc,QAAQ,YAAY;CACxC,MAAM,cAAc,iBAAiB,QAAQ,UAAU,UAAU,UAAU;CAC3E,MAAM,wBAAwB,YAAa,CAAC,YAAY,CAAC,aAAa,WAAW;CACjF,MAAM,QAAQ,UAAU;CACxB,MAAM,YAAY,iBAAiB,OAAO,QAAQ,UAAU,SAAS;CACrE,MAAM,YAAY,iBAAiB,OAAO,QAAQ,UAAU,SAAS;CAErE,MAAM,OAAO,YAAY,QAAQ,UAAU;AAE3C,QACE,oBAAC,UAAD;EACE,SAAS;EACT,gBAAc,CAAC,eAAe,WAAW,SAAS,KAAA;EAClD,iBAAe,CAAC,eAAe,wBAAwB,OAAO,KAAA;YAE9D,qBAAC,aAAD;GACE,GAAK,eAAe,cAChB;IAAE,MAAM;IAAmB,eAAe,cAAc,GAAG;IAAE,GAC7D,EAAE,IAAI,OAAgB;GAC1B,gBAAc,eAAe,WAAW,SAAS,KAAA;GACjD,iBAAe,eAAe,wBAAwB,OAAO,KAAA;GAC7D,WAAW;GACX,cAAc;GACd,cAAc;aARhB,CAUE,oBAAC,aAAD;IAAa,QAAQ;IAAW,eAAY;cAC1C,oBAAC,MAAD,EAAQ,CAAA;IACI,CAAA,EACd,oBAAC,WAAD;IAAW,WAAW;IAAU,QAAQ;cACrC;IACS,CAAA,CACA;;EACL,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCf,MAAa,qBAAqB,EAChC,OACA,cACA,SAAS,YACT,aACA,cAAc,YAAY,YAC1B,GAAG,WACyB;CAI5B,MAAM,gBAAgB,MAAM,MACzB,EAAE,SAAS,oBAAoB,WAAW,iBAAiB,WAAW,QACxE,EAAE;AAEH,QACE,oBAAC,UAAD;EAAU,SAAS;EAAQ,MAAK;EAAO,cAAY;EAAW,GAAI;YAC/D,MAAM,KAAK,SACV,oBAAC,MAAD;GAEQ;GACN,UAAU,KAAK,OAAO;GACtB,WAAW,KAAK,OAAO;GACf;GACK;GACb,EANK,KAAK,GAMV,CACF;EACO,CAAA"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef } from "react";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region components/ProgressIndicator/ProgressIndicator.d.ts
|
|
5
|
+
type StepStatus = 'uncompleted' | 'completed' | 'warning' | 'error';
|
|
6
|
+
interface ProgressIndicatorStep {
|
|
7
|
+
id: string;
|
|
8
|
+
label: string;
|
|
9
|
+
/** @default 'uncompleted' */
|
|
10
|
+
status?: StepStatus;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
interface ProgressIndicatorProps extends ComponentPropsWithoutRef<'ol'> {
|
|
14
|
+
steps: ProgressIndicatorStep[];
|
|
15
|
+
/** id of the step that should receive the active visual state */
|
|
16
|
+
activeStepId?: string;
|
|
17
|
+
/** @default 'vertical' */
|
|
18
|
+
layout?: 'vertical' | 'horizontal';
|
|
19
|
+
/**
|
|
20
|
+
* Called when a clickable step is activated via click or keyboard.
|
|
21
|
+
*
|
|
22
|
+
* Clickability rules:
|
|
23
|
+
* - `completed`, `warning`, and `error` steps are clickable (navigate back to review/edit)
|
|
24
|
+
* - The active step is not clickable (user is already there)
|
|
25
|
+
* - Upcoming `uncompleted` steps are not clickable (sequential progression required)
|
|
26
|
+
*/
|
|
27
|
+
onStepClick?: (stepId: string) => void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* ProgressIndicator guides users through a sequence of steps.
|
|
31
|
+
*
|
|
32
|
+
* Interaction rules:
|
|
33
|
+
* - **Completed / warning / error** steps are clickable — navigate back to review or fix.
|
|
34
|
+
* - **Warning** does not block forward progression; later uncompleted steps remain reachable.
|
|
35
|
+
* - **Error** blocks forward progression — treat it as the terminal step in the sequence.
|
|
36
|
+
* - **Active** step is not clickable — the user is already there.
|
|
37
|
+
* - **Upcoming (uncompleted)** steps are not clickable — sequential progression required.
|
|
38
|
+
*
|
|
39
|
+
* Navigation does not clear later steps. If a change on an earlier step
|
|
40
|
+
* invalidates later data, the affected steps should be flagged and require
|
|
41
|
+
* re-confirmation before submission — this logic lives in the consuming component.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```tsx
|
|
45
|
+
* <ProgressIndicator
|
|
46
|
+
* steps={[
|
|
47
|
+
* { id: 'identity', label: 'Identity', status: 'completed' },
|
|
48
|
+
* { id: 'address', label: 'Address', status: 'uncompleted' },
|
|
49
|
+
* { id: 'review', label: 'Review', status: 'uncompleted' },
|
|
50
|
+
* ]}
|
|
51
|
+
* activeStepId="address"
|
|
52
|
+
* onStepClick={(id) => navigate(id)}
|
|
53
|
+
* />
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
declare const ProgressIndicator: ({
|
|
57
|
+
steps,
|
|
58
|
+
activeStepId,
|
|
59
|
+
layout,
|
|
60
|
+
onStepClick,
|
|
61
|
+
"aria-label": ariaLabel,
|
|
62
|
+
...rest
|
|
63
|
+
}: ProgressIndicatorProps) => _$react_jsx_runtime0.JSX.Element;
|
|
64
|
+
//#endregion
|
|
65
|
+
export { StepStatus as i, ProgressIndicatorProps as n, ProgressIndicatorStep as r, ProgressIndicator as t };
|
|
66
|
+
//# sourceMappingURL=ProgressIndicator-D85HQGSx.d.mts.map
|
|
@@ -1,66 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
//#region components/ProgressIndicator/ProgressIndicator.d.ts
|
|
5
|
-
type StepStatus = 'uncompleted' | 'completed' | 'warning' | 'error';
|
|
6
|
-
interface ProgressIndicatorStep {
|
|
7
|
-
id: string;
|
|
8
|
-
label: string;
|
|
9
|
-
/** @default 'uncompleted' */
|
|
10
|
-
status?: StepStatus;
|
|
11
|
-
disabled?: boolean;
|
|
12
|
-
}
|
|
13
|
-
interface ProgressIndicatorProps extends ComponentPropsWithoutRef<'ol'> {
|
|
14
|
-
steps: ProgressIndicatorStep[];
|
|
15
|
-
/** id of the step that should receive the active visual state */
|
|
16
|
-
activeStepId?: string;
|
|
17
|
-
/** @default 'vertical' */
|
|
18
|
-
layout?: 'vertical' | 'horizontal';
|
|
19
|
-
/**
|
|
20
|
-
* Called when a clickable step is activated via click or keyboard.
|
|
21
|
-
*
|
|
22
|
-
* Clickability rules:
|
|
23
|
-
* - `completed`, `warning`, and `error` steps are clickable (navigate back to review/edit)
|
|
24
|
-
* - The active step is not clickable (user is already there)
|
|
25
|
-
* - Upcoming `uncompleted` steps are not clickable (sequential progression required)
|
|
26
|
-
*/
|
|
27
|
-
onStepClick?: (stepId: string) => void;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* ProgressIndicator guides users through a sequence of steps.
|
|
31
|
-
*
|
|
32
|
-
* Interaction rules:
|
|
33
|
-
* - **Completed / warning / error** steps are clickable — navigate back to review or fix.
|
|
34
|
-
* - **Warning** does not block forward progression; later uncompleted steps remain reachable.
|
|
35
|
-
* - **Error** blocks forward progression — treat it as the terminal step in the sequence.
|
|
36
|
-
* - **Active** step is not clickable — the user is already there.
|
|
37
|
-
* - **Upcoming (uncompleted)** steps are not clickable — sequential progression required.
|
|
38
|
-
*
|
|
39
|
-
* Navigation does not clear later steps. If a change on an earlier step
|
|
40
|
-
* invalidates later data, the affected steps should be flagged and require
|
|
41
|
-
* re-confirmation before submission — this logic lives in the consuming component.
|
|
42
|
-
*
|
|
43
|
-
* @example
|
|
44
|
-
* ```tsx
|
|
45
|
-
* <ProgressIndicator
|
|
46
|
-
* steps={[
|
|
47
|
-
* { id: 'identity', label: 'Identity', status: 'completed' },
|
|
48
|
-
* { id: 'address', label: 'Address', status: 'uncompleted' },
|
|
49
|
-
* { id: 'review', label: 'Review', status: 'uncompleted' },
|
|
50
|
-
* ]}
|
|
51
|
-
* activeStepId="address"
|
|
52
|
-
* onStepClick={(id) => navigate(id)}
|
|
53
|
-
* />
|
|
54
|
-
* ```
|
|
55
|
-
*/
|
|
56
|
-
declare const ProgressIndicator: ({
|
|
57
|
-
steps,
|
|
58
|
-
activeStepId,
|
|
59
|
-
layout,
|
|
60
|
-
onStepClick,
|
|
61
|
-
"aria-label": ariaLabel,
|
|
62
|
-
...rest
|
|
63
|
-
}: ProgressIndicatorProps) => _$react_jsx_runtime0.JSX.Element;
|
|
64
|
-
//#endregion
|
|
65
|
-
export { ProgressIndicator, ProgressIndicator as default, ProgressIndicatorProps, ProgressIndicatorStep, StepStatus };
|
|
66
|
-
//# sourceMappingURL=ProgressIndicator.d.mts.map
|
|
1
|
+
import { i as StepStatus, n as ProgressIndicatorProps, r as ProgressIndicatorStep, t as ProgressIndicator } from "./ProgressIndicator-D85HQGSx.mjs";
|
|
2
|
+
export { ProgressIndicator, ProgressIndicator as default, ProgressIndicatorProps, ProgressIndicatorStep, StepStatus };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PseudoClassProps } from "./PseudoClassProps-
|
|
1
|
+
import { t as PseudoClassProps } from "./PseudoClassProps-BHs8TX_3.mjs";
|
|
2
2
|
export { PseudoClassProps as default };
|
|
@@ -4,7 +4,7 @@ import "./variables/transitions.mjs";
|
|
|
4
4
|
import { opacityOf } from "./lib/color.mjs";
|
|
5
5
|
import { isChecked, isDisabled, isFocusedVisible, isHovered, isNotDisabled } from "./lib/pseudoClass.mjs";
|
|
6
6
|
import { focusStyle } from "./mixins/focus.mjs";
|
|
7
|
-
import { n as useFormField } from "./useFormField-
|
|
7
|
+
import { n as useFormField } from "./useFormField-XezSxho_.mjs";
|
|
8
8
|
import { Color, Spacing, Typography } from "@persona/design-tokens";
|
|
9
9
|
import { forwardRef, useMemo } from "react";
|
|
10
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -148,4 +148,4 @@ const Radio = forwardRef(function Radio({ id, label, className, value, disabled,
|
|
|
148
148
|
//#endregion
|
|
149
149
|
export { Radio as t };
|
|
150
150
|
|
|
151
|
-
//# sourceMappingURL=Radio-
|
|
151
|
+
//# sourceMappingURL=Radio-CYV290JI.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radio-
|
|
1
|
+
{"version":3,"file":"Radio-CYV290JI.mjs","names":[],"sources":["../components/Radio/Radio.tsx"],"sourcesContent":["import { uniqueId } from 'lodash-es';\nimport {\n type ChangeEvent,\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n useMemo,\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Color, Spacing, Typography } from '@persona/design-tokens';\nimport useFormField from 'design-system/components/FormControl/useFormField';\nimport { opacityOf } from 'design-system/lib/color';\nimport {\n isChecked,\n isDisabled,\n isFocusedVisible,\n isHovered,\n isNotDisabled,\n} from 'design-system/lib/pseudoClass';\nimport { semanticColor, semanticOnly } from 'design-system/lib/semanticColor';\nimport { focusStyle } from 'design-system/mixins/focus';\nimport { TransitionDuration } from 'design-system/variables/transitions';\n\nconst Container = styled.div<{ size: 'md' | 'sm'; disabled?: boolean }>`\n cursor: pointer;\n display: flex;\n align-items: flex-start;\n flex-wrap: nowrap;\n position: relative;\n\n ${({ size }) =>\n size === 'sm' &&\n css`\n align-items: center;\n height: 16px;\n `}\n\n &${isDisabled} {\n cursor: default;\n }\n`;\n\nconst Label = styled.label<{ disabled: boolean; size: 'md' | 'sm' }>`\n cursor: inherit;\n padding: 0 ${Spacing[2]};\n color: ${({ theme }) => semanticColor(theme, 'FgSecondary', Color.TextSecondary)};\n\n ${({ size }) =>\n size === 'sm'\n ? css`\n ${Typography.TextSmall};\n line-height: 16px;\n `\n : css`\n ${Typography.TextMedium};\n `}\n\n ${({ theme, disabled }) =>\n disabled &&\n css`\n cursor: default;\n color: ${semanticColor(theme, 'FgDisabled', theme.color.text.disabled)};\n `}\n`;\n\nconst RadioCircle = styled.div<{ size: 'md' | 'sm' }>`\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: box-shadow ${TransitionDuration.Fast};\n border-radius: 100%;\n height: ${Spacing[4]};\n width: ${Spacing[4]};\n flex: 0 0 16px;\n box-sizing: border-box;\n margin-top: ${({ size }) => (size === 'sm' ? 0 : '2px')};\n border: 1px solid ${({ theme }) => semanticColor(theme, 'InputBorderStrong', Color.BorderInputCheckbox)};\n background: ${({ theme }) => semanticColor(theme, 'InputSurfaceDefault', Color.PrimaryWhite)};\n`;\n\nconst RadioInput = styled.input<{ $size: 'md' | 'sm' }>`\n cursor: inherit;\n height: ${Spacing[4]};\n width: ${Spacing[4]};\n margin: 0;\n border: 0;\n opacity: 0;\n overflow: hidden;\n position: absolute;\n top: ${({ $size }) => ($size === 'sm' ? 0 : '2px')};\n border-radius: 100%;\n z-index: 10; // this needs to be above the dot in the checked input\n\n &${isHovered}${isNotDisabled} ~ ${RadioCircle} {\n border-color: ${({ theme }) =>\n semanticColor(theme, 'InputBorderHoverStrong', Color.BorderInputCheckboxHover)};\n ${semanticOnly((tokens) => `background: ${tokens.InputSurfaceHover};`)}\n }\n\n &${isChecked}, &:checked {\n &${isHovered}${isNotDisabled} ~ ${RadioCircle} {\n background: ${({ theme }) => semanticColor(theme, 'InputSurfaceAccentHover', Color.BackgroundInputActiveHover)};\n border-color: ${({ theme }) => semanticColor(theme, 'InputSurfaceAccentHover', Color.BackgroundInputActiveHover)};\n }\n }\n\n &${isFocusedVisible}${isNotDisabled} ~ ${RadioCircle} {\n ${focusStyle}\n }\n\n // RadioCircle state styles; Uses pure CSS\n &${isDisabled} + ${RadioCircle} {\n cursor: default;\n background: ${({ theme }) =>\n semanticColor(theme, 'InputSurfaceDisabled', Color.BackgroundInputDisabled)};\n border-color: ${({ theme }) =>\n semanticColor(theme, 'InputBorderDisabled', Color.BorderInputDisabled)};\n ${semanticOnly((tokens) => `opacity: ${opacityOf(tokens.Opacity65)};`)}\n }\n\n &:checked + ${RadioCircle}, &${isChecked} + ${RadioCircle} {\n border-color: ${({ theme }) => semanticColor(theme, 'InputBorderAccent', Color.BackgroundInputActive)};\n background: ${({ theme }) => semanticColor(theme, 'InputSurfaceAccent', Color.BackgroundInputActive)};\n\n &::after {\n background: ${({ theme }) => semanticColor(theme, 'FgInverseStatic', Color.BackgroundInputDefault)};\n height: 6px;\n width: 6px;\n border-radius: 100%;\n content: '';\n position: absolute;\n }\n }\n\n &:checked${isDisabled} + ${RadioCircle}, &${isChecked}${isDisabled} + ${RadioCircle} {\n border-color: ${({ theme }) => semanticColor(theme, 'InputSurfaceAccentDisabled', Color.BackgroundInputActiveDisabled)};\n background: ${({ theme }) => semanticColor(theme, 'InputSurfaceAccentDisabled', Color.BackgroundInputActiveDisabled)};\n }\n`;\n\nexport interface RadioProps extends Omit<ComponentPropsWithoutRef<'input'>, 'size'> {\n /**\n * If not provided, a unique ID will be generated.\n */\n id?: string;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n label?: ReactNode;\n disabled?: boolean;\n checked?: boolean;\n value: string;\n 'data-test'?: string;\n size?: 'md' | 'sm';\n}\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(function Radio(\n {\n id,\n label,\n className,\n value,\n disabled,\n checked,\n defaultChecked,\n onChange,\n 'data-test': dataTest,\n size = 'md',\n ...elemProps\n },\n ref,\n) {\n const field = useFormField({ disabled });\n const generatedId = useMemo(() => uniqueId('pds_radio__'), []);\n\n return (\n <Container className={className} disabled={disabled} data-test={dataTest} size={size}>\n <RadioInput\n id={id || generatedId}\n disabled={field.disabled}\n onChange={onChange}\n type='radio'\n value={value}\n checked={checked}\n defaultChecked={defaultChecked}\n ref={ref}\n $size={size}\n {...elemProps}\n />\n <RadioCircle size={size} />\n {label && (\n <Label htmlFor={id || generatedId} disabled={disabled ?? false} size={size}>\n {label}\n </Label>\n )}\n </Container>\n );\n});\n\nexport default Radio;\n"],"mappings":";;;;;;;;;;;;AAwBA,MAAM,YAAY,OAAO,GAA8C;;;;;;;KAOlE,EAAE,WACH,SAAS,QACT,GAAG;;;MAGD;;KAED,WAAW;;;;AAKhB,MAAM,QAAQ,OAAO,KAA+C;;eAErD,QAAQ,GAAG;YACd,EAAE,YAAY,cAAc,OAAO,eAAe,MAAM,cAAc,CAAC;;KAE9E,EAAE,WACH,SAAS,OACL,GAAG;YACC,WAAW,UAAU;;YAGzB,GAAG;YACC,WAAW,WAAW;UACxB;;KAEL,EAAE,OAAO,eACV,YACA,GAAG;;eAEQ,cAAc,OAAO,cAAc,MAAM,MAAM,KAAK,SAAS,CAAC;MACvE;;AAGN,MAAM,cAAc,OAAO,GAA0B;;;;;mCAKF;;YAEvC,QAAQ,GAAG;WACZ,QAAQ,GAAG;;;iBAGL,EAAE,WAAY,SAAS,OAAO,IAAI,MAAO;uBACnC,EAAE,YAAY,cAAc,OAAO,qBAAqB,MAAM,oBAAoB,CAAC;iBACzF,EAAE,YAAY,cAAc,OAAO,uBAAuB,MAAM,aAAa,CAAC;;AAG/F,MAAM,aAAa,OAAO,KAA6B;;YAE3C,QAAQ,GAAG;WACZ,QAAQ,GAAG;;;;;;UAMZ,EAAE,YAAa,UAAU,OAAO,IAAI,MAAO;;;;KAIhD,YAAY,cAAc,KAAK,YAAY;qBAC3B,EAAE,YACjB,cAAc,OAAO,0BAA0B,MAAM,yBAAyB,CAAC;MAC/E,cAAc,WAAW,eAAe,OAAO,kBAAkB,GAAG,CAAC;;;KAGtE,UAAU;OACR,YAAY,cAAc,KAAK,YAAY;qBAC7B,EAAE,YAAY,cAAc,OAAO,2BAA2B,MAAM,2BAA2B,CAAC;uBAC9F,EAAE,YAAY,cAAc,OAAO,2BAA2B,MAAM,2BAA2B,CAAC;;;;KAIlH,mBAAmB,cAAc,KAAK,YAAY;MACjD,WAAW;;;;KAIZ,WAAW,KAAK,YAAY;;mBAEd,EAAE,YACf,cAAc,OAAO,wBAAwB,MAAM,wBAAwB,CAAC;qBAC7D,EAAE,YACjB,cAAc,OAAO,uBAAuB,MAAM,oBAAoB,CAAC;MACvE,cAAc,WAAW,YAAY,UAAU,OAAO,UAAU,CAAC,GAAG,CAAC;;;gBAG3D,YAAY,KAAK,UAAU,KAAK,YAAY;qBACvC,EAAE,YAAY,cAAc,OAAO,qBAAqB,MAAM,sBAAsB,CAAC;mBACvF,EAAE,YAAY,cAAc,OAAO,sBAAsB,MAAM,sBAAsB,CAAC;;;qBAGpF,EAAE,YAAY,cAAc,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;;;;;;;;;aAS5F,WAAW,KAAK,YAAY,KAAK,YAAY,WAAW,KAAK,YAAY;qBACjE,EAAE,YAAY,cAAc,OAAO,8BAA8B,MAAM,8BAA8B,CAAC;mBACxG,EAAE,YAAY,cAAc,OAAO,8BAA8B,MAAM,8BAA8B,CAAC;;;AAkBzH,MAAa,QAAQ,WAAyC,SAAS,MACrE,EACE,IACA,OACA,WACA,OACA,UACA,SACA,gBACA,UACA,aAAa,UACb,OAAO,MACP,GAAG,aAEL,KACA;CACA,MAAM,QAAQ,aAAa,EAAE,UAAU,CAAC;CACxC,MAAM,cAAc,cAAc,SAAS,cAAc,EAAE,EAAE,CAAC;AAE9D,QACE,qBAAC,WAAD;EAAsB;EAAqB;EAAU,aAAW;EAAgB;YAAhF;GACE,oBAAC,YAAD;IACE,IAAI,MAAM;IACV,UAAU,MAAM;IACN;IACV,MAAK;IACE;IACE;IACO;IACX;IACL,OAAO;IACP,GAAI;IACJ,CAAA;GACF,oBAAC,aAAD,EAAmB,MAAQ,CAAA;GAC1B,SACC,oBAAC,OAAD;IAAO,SAAS,MAAM;IAAa,UAAU,YAAY;IAAa;cACnE;IACK,CAAA;GAEA;;EAEd"}
|
|
@@ -18,4 +18,4 @@ interface RadioGroupProps extends ComponentPropsWithoutRef<'div'> {
|
|
|
18
18
|
declare const RadioGroup: VFC<RadioGroupProps>;
|
|
19
19
|
//#endregion
|
|
20
20
|
export { RadioGroupProps as n, RadioGroup as t };
|
|
21
|
-
//# sourceMappingURL=RadioGroup-
|
|
21
|
+
//# sourceMappingURL=RadioGroup-Cq3KV1TN.d.mts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as styled, r as css } from "./styledComponentsInterop-NxwFjeA4.mjs";
|
|
2
2
|
import useControlled from "./lib/useControlled.mjs";
|
|
3
|
-
import { t as Radio } from "./Radio-
|
|
3
|
+
import { t as Radio } from "./Radio-CYV290JI.mjs";
|
|
4
4
|
import { Spacing } from "@persona/design-tokens";
|
|
5
5
|
import { Children, cloneElement } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -47,4 +47,4 @@ const RadioGroup = ({ children, defaultValue, name, value: valueProp, onChange,
|
|
|
47
47
|
//#endregion
|
|
48
48
|
export { RadioGroup as t };
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=RadioGroup-
|
|
50
|
+
//# sourceMappingURL=RadioGroup-lWMMtu9V.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroup-
|
|
1
|
+
{"version":3,"file":"RadioGroup-lWMMtu9V.mjs","names":[],"sources":["../components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import {\n type ChangeEvent,\n Children,\n cloneElement,\n type ComponentPropsWithoutRef,\n type ReactElement,\n type VFC,\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport Radio, { type RadioProps } from 'design-system/components/Radio';\nimport useControlled from 'design-system/lib/useControlled';\n\nconst Container = styled.div<{ size: 'md' | 'sm'; horizontal?: boolean }>`\n & > div {\n margin-bottom: ${Spacing[2]};\n }\n\n ${({ horizontal }) =>\n horizontal &&\n css`\n display: flex;\n align-items: center;\n & > div {\n margin-right: ${Spacing[2]};\n }\n `}\n`;\n\nexport interface RadioGroupProps extends ComponentPropsWithoutRef<'div'> {\n defaultValue?: any;\n name?: string;\n value?: any;\n onChange?: (value: any) => void;\n /**\n * Direction of radio group\n */\n horizontal?: boolean;\n /**\n * Size of radio buttons within the group\n */\n size?: 'md' | 'sm';\n}\n\nexport const RadioGroup: VFC<RadioGroupProps> = ({\n children,\n defaultValue,\n name,\n value: valueProp,\n onChange,\n horizontal = false,\n size = 'md',\n ...elemProps\n}) => {\n const [value, setValue] = useControlled({\n controlledValue: valueProp,\n default: defaultValue,\n });\n\n return (\n <Container role='radiogroup' horizontal={horizontal} size={size} {...elemProps}>\n {/* @ts-expect-error [strict-migration] The following line is not strict; please fix! */}\n {Children.map(children, (child: ReactElement<RadioProps>) => {\n if (child?.type === Radio && (typeof valueProp !== 'undefined' || onChange)) {\n return cloneElement(child, {\n name,\n size,\n checked: child.props.value === value,\n onChange: (e: ChangeEvent<HTMLInputElement>) => {\n const newVal = e.target.value;\n if (typeof valueProp !== 'undefined' && onChange) {\n onChange(newVal);\n } else {\n setValue(newVal);\n }\n },\n });\n }\n\n if (name) {\n return cloneElement(child, { name });\n }\n\n return child;\n })}\n </Container>\n );\n};\n\nexport default RadioGroup;\n"],"mappings":";;;;;;;AAcA,MAAM,YAAY,OAAO,GAAgD;;qBAEpD,QAAQ,GAAG;;;KAG3B,EAAE,iBACH,cACA,GAAG;;;;wBAIiB,QAAQ,GAAG;;MAE7B;;AAkBN,MAAa,cAAoC,EAC/C,UACA,cACA,MACA,OAAO,WACP,UACA,aAAa,OACb,OAAO,MACP,GAAG,gBACC;CACJ,MAAM,CAAC,OAAO,YAAY,cAAc;EACtC,iBAAiB;EACjB,SAAS;EACV,CAAC;AAEF,QACE,oBAAC,WAAD;EAAW,MAAK;EAAyB;EAAkB;EAAM,GAAI;YAElE,SAAS,IAAI,WAAW,UAAoC;AAC3D,OAAI,OAAO,SAAS,UAAU,OAAO,cAAc,eAAe,UAChE,QAAO,aAAa,OAAO;IACzB;IACA;IACA,SAAS,MAAM,MAAM,UAAU;IAC/B,WAAW,MAAqC;KAC9C,MAAM,SAAS,EAAE,OAAO;AACxB,SAAI,OAAO,cAAc,eAAe,SACtC,UAAS,OAAO;SAEhB,UAAS,OAAO;;IAGrB,CAAC;AAGJ,OAAI,KACF,QAAO,aAAa,OAAO,EAAE,MAAM,CAAC;AAGtC,UAAO;IACP;EACQ,CAAA"}
|
package/dist/RadioGroup.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as RadioGroupProps, t as RadioGroup } from "./RadioGroup-
|
|
1
|
+
import { n as RadioGroupProps, t as RadioGroup } from "./RadioGroup-Cq3KV1TN.mjs";
|
|
2
2
|
export { RadioGroup, RadioGroup as default, RadioGroupProps };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as DateFilterPreset } from "./types-
|
|
1
|
+
import { a as DateFilterPreset } from "./types-Cl-w8tYc.mjs";
|
|
2
2
|
import { Ref } from "react";
|
|
3
3
|
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
4
|
import { DateRange, RangeCalendarProps } from "react-aria";
|
|
@@ -37,4 +37,4 @@ declare const RangeCalendar: ({
|
|
|
37
37
|
}: RangeCalendarProps$1) => _$react_jsx_runtime0.JSX.Element;
|
|
38
38
|
//#endregion
|
|
39
39
|
export { RangeCalendarProps$1 as n, RangeCalendar as t };
|
|
40
|
-
//# sourceMappingURL=RangeCalendar-
|
|
40
|
+
//# sourceMappingURL=RangeCalendar-Mh7h74Tp.d.mts.map
|
package/dist/RangeCalendar.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as RangeCalendarProps, t as RangeCalendar } from "./RangeCalendar-
|
|
1
|
+
import { n as RangeCalendarProps, t as RangeCalendar } from "./RangeCalendar-Mh7h74Tp.mjs";
|
|
2
2
|
export { RangeCalendarProps, RangeCalendar as default };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as DateFilterPreset } from "./types-
|
|
1
|
+
import { a as DateFilterPreset } from "./types-Cl-w8tYc.mjs";
|
|
2
2
|
import * as _$react from "react";
|
|
3
3
|
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
4
|
import { RangeCalendarState } from "react-stately";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as RouterAdapter } from "./types-
|
|
1
|
+
import { n as RouterAdapter } from "./types-CkpixGWr.mjs";
|
|
2
2
|
import * as _$react from "react";
|
|
3
3
|
import { FC, PropsWithChildren } from "react";
|
|
4
4
|
|
|
@@ -8,4 +8,4 @@ declare const RouterProvider: FC<PropsWithChildren<RouterAdapter>>;
|
|
|
8
8
|
declare const useRouter: () => RouterAdapter | null;
|
|
9
9
|
//#endregion
|
|
10
10
|
export { RouterProvider as n, useRouter as r, RouterContext as t };
|
|
11
|
-
//# sourceMappingURL=RouterContext-
|
|
11
|
+
//# sourceMappingURL=RouterContext-B3IU1jb0.d.mts.map
|
package/dist/RouterContext.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as RouterProvider, r as useRouter, t as RouterContext } from "./RouterContext-
|
|
1
|
+
import { n as RouterProvider, r as useRouter, t as RouterContext } from "./RouterContext-B3IU1jb0.mjs";
|
|
2
2
|
export { RouterContext, RouterProvider, useRouter };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { r as RouterLinkComponentProps } from "./types-
|
|
1
|
+
import { r as RouterLinkComponentProps } from "./types-CkpixGWr.mjs";
|
|
2
2
|
import * as _$react from "react";
|
|
3
3
|
|
|
4
4
|
//#region lib/router/RouterLink.d.ts
|
|
5
5
|
declare const RouterLink: _$react.ForwardRefExoticComponent<Omit<RouterLinkComponentProps, "ref"> & _$react.RefAttributes<HTMLAnchorElement>>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { RouterLink as t };
|
|
8
|
-
//# sourceMappingURL=RouterLink-
|
|
8
|
+
//# sourceMappingURL=RouterLink-CwAqTLC2.d.mts.map
|
package/dist/RouterLink.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as RouterLink } from "./RouterLink-
|
|
1
|
+
import { t as RouterLink } from "./RouterLink-CwAqTLC2.mjs";
|
|
2
2
|
export { RouterLink as default };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as FilterField, c as FilterOperator, d as FilterRuleValueChange, f as FilterSize, l as FilterRule, u as FilterRuleValue } from "./types-
|
|
2
|
-
import { t as FieldRegistry } from "./FieldRegistry-
|
|
1
|
+
import { a as FilterField, c as FilterOperator, d as FilterRuleValueChange, f as FilterSize, l as FilterRule, u as FilterRuleValue } from "./types-C4WUSW3e.mjs";
|
|
2
|
+
import { t as FieldRegistry } from "./FieldRegistry-0LmSQ-jc.mjs";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
4
|
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
5
5
|
|
package/dist/RulesPill.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as InputSizes } from "./input-
|
|
1
|
+
import { n as InputSizes } from "./input-C6cyiqm2.mjs";
|
|
2
2
|
import { FocusEventHandler, ReactNode } from "react";
|
|
3
3
|
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
4
|
|
|
@@ -50,4 +50,4 @@ declare const SearchInput: ({
|
|
|
50
50
|
}: OmniSearchProps) => _$react_jsx_runtime0.JSX.Element;
|
|
51
51
|
//#endregion
|
|
52
52
|
export { SearchInput as n, OmniSearchProps as t };
|
|
53
|
-
//# sourceMappingURL=SearchInput-
|
|
53
|
+
//# sourceMappingURL=SearchInput-BGyUUcoz.d.mts.map
|
package/dist/SearchInput.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as SearchInput, t as OmniSearchProps } from "./SearchInput-
|
|
1
|
+
import { n as SearchInput, t as OmniSearchProps } from "./SearchInput-BGyUUcoz.mjs";
|
|
2
2
|
export { OmniSearchProps, SearchInput as default };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as TextAction, n as IconAction, r as MenuAction } from "./Action-
|
|
1
|
+
import { i as TextAction, n as IconAction, r as MenuAction } from "./Action-B-AiHknZ.mjs";
|
|
2
2
|
import { ComponentPropsWithoutRef, FC, ReactElement, ReactNode } from "react";
|
|
3
3
|
|
|
4
4
|
//#region components/CardV2/SectionHeading.d.ts
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { a as styled } from "./styledComponentsInterop-NxwFjeA4.mjs";
|
|
2
2
|
import { semanticColor } from "./lib/semanticColor.mjs";
|
|
3
3
|
import { paragraphMixins } from "./mixins/text.mjs";
|
|
4
|
-
import { n as useFormField } from "./useFormField-
|
|
4
|
+
import { n as useFormField } from "./useFormField-XezSxho_.mjs";
|
|
5
5
|
import { BorderRadius, Spacing } from "@persona/design-tokens";
|
|
6
|
-
import { createContext, forwardRef, useContext } from "react";
|
|
6
|
+
import { createContext, forwardRef, useContext, useEffect, useImperativeHandle, useRef } from "react";
|
|
7
7
|
import { ToggleButton, ToggleButtonGroup } from "react-aria-components";
|
|
8
8
|
import { jsx } from "react/jsx-runtime";
|
|
9
9
|
//#region components/SegmentedControl/SegmentedControl.tsx
|
|
10
10
|
const SegmentedControlSizeContext = createContext("md");
|
|
11
11
|
const StyledSegmentedControl = styled(ToggleButtonGroup)`
|
|
12
12
|
display: inline-flex;
|
|
13
|
-
background-color: ${({ theme }) => semanticColor(theme, "
|
|
13
|
+
background-color: ${({ theme }) => semanticColor(theme, "ActionNeutral", theme.color.variants.basic.default)};
|
|
14
14
|
border-radius: 5px;
|
|
15
15
|
padding: 1px;
|
|
16
16
|
width: ${({ $fullWidth }) => $fullWidth ? "100%" : "auto"};
|
|
@@ -20,15 +20,22 @@ const StyledSegmentedControl = styled(ToggleButtonGroup)`
|
|
|
20
20
|
* A segmented control component that allows users to select between multiple options.
|
|
21
21
|
* Built with React Aria for accessibility and keyboard navigation.
|
|
22
22
|
*/
|
|
23
|
-
const SegmentedControl = forwardRef(function SegmentedControl({ id, selectedKey, defaultSelectedKey, onSelectionChange, disabled, fullWidth = false, size = "md", className, "aria-label": ariaLabel, children, ...props }, ref) {
|
|
23
|
+
const SegmentedControl = forwardRef(function SegmentedControl({ id, selectedKey, defaultSelectedKey, onSelectionChange, disabled, fullWidth = false, size = "md", className, "aria-label": ariaLabel, "aria-required": ariaRequired, children, ...props }, ref) {
|
|
24
24
|
const field = useFormField({
|
|
25
25
|
inputId: id,
|
|
26
26
|
disabled
|
|
27
27
|
});
|
|
28
|
+
const segmentedControlRef = useRef(null);
|
|
29
|
+
const isRequired = ariaRequired;
|
|
30
|
+
useImperativeHandle(ref, () => segmentedControlRef.current, []);
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (isRequired) segmentedControlRef.current?.setAttribute("aria-required", "true");
|
|
33
|
+
else segmentedControlRef.current?.removeAttribute("aria-required");
|
|
34
|
+
}, [isRequired]);
|
|
28
35
|
return /* @__PURE__ */ jsx(SegmentedControlSizeContext.Provider, {
|
|
29
36
|
value: size,
|
|
30
37
|
children: /* @__PURE__ */ jsx(StyledSegmentedControl, {
|
|
31
|
-
ref,
|
|
38
|
+
ref: segmentedControlRef,
|
|
32
39
|
className,
|
|
33
40
|
selectionMode: "single",
|
|
34
41
|
selectedKeys: selectedKey ? [selectedKey] : void 0,
|
|
@@ -110,4 +117,4 @@ const SegmentedControlItem = forwardRef(function SegmentedControlItem({ disabled
|
|
|
110
117
|
//#endregion
|
|
111
118
|
export { SegmentedControlItem as n, SegmentedControl as t };
|
|
112
119
|
|
|
113
|
-
//# sourceMappingURL=SegmentedControl-
|
|
120
|
+
//# sourceMappingURL=SegmentedControl-BEbIcV3g.mjs.map
|