@persona/design-system 0.3.0 → 0.3.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/CHANGELOG.md +9 -0
- package/README.md +3 -3
- package/dist/{Action-CnNf5T-l.d.mts → Action-DL3kHI9Z.d.mts} +3 -3
- package/dist/Action.d.mts +1 -1
- package/dist/AdvancedFilterRuleRow.d.mts +3 -3
- package/dist/AdvancedFilterRulesPopover.d.mts +3 -3
- package/dist/ArrayValueControl.d.mts +1 -1
- package/dist/Attribute.d.mts +5 -5
- package/dist/AttributeGrid.d.mts +1 -1
- package/dist/{Badge-BqS6Nk4J.mjs → Badge-BL0J5oMa.mjs} +3 -3
- package/dist/{Badge-BqS6Nk4J.mjs.map → Badge-BL0J5oMa.mjs.map} +1 -1
- package/dist/Banner.d.mts +1 -1
- package/dist/BooleanValueControl.d.mts +1 -1
- package/dist/{Breadcrumb-DEwZFJHF.d.mts → Breadcrumb-Czgdi0xf.d.mts} +1 -1
- package/dist/Breadcrumb.d.mts +1 -1
- package/dist/{Breadcrumbs-CqKtnZqu.mjs → Breadcrumbs-ed4wRDS7.mjs} +12 -12
- package/dist/{Breadcrumbs-CqKtnZqu.mjs.map → Breadcrumbs-ed4wRDS7.mjs.map} +1 -1
- package/dist/{Breadcrumbs-0e_3v9FF.d.mts → Breadcrumbs-zei-cpdU.d.mts} +2 -2
- package/dist/Breadcrumbs.d.mts +1 -1
- package/dist/{Button-C0F0F2IL.d.mts → Button-CKzNTpPL.d.mts} +4 -4
- package/dist/Button.d.mts +1 -1
- package/dist/ButtonGroup.d.mts +1 -1
- package/dist/{Calendar-BvLNcHQM.d.mts → Calendar-CcxN7y3e.d.mts} +2 -2
- package/dist/Calendar.d.mts +1 -1
- package/dist/CalendarBase.d.mts +1 -1
- package/dist/{Card-BMCB9eFC.mjs → Card-CKrJtn1f.mjs} +4 -4
- package/dist/{Card-BMCB9eFC.mjs.map → Card-CKrJtn1f.mjs.map} +1 -1
- package/dist/{Card-BxNoIQWw.d.mts → Card-pr4FQWjn.d.mts} +4 -4
- package/dist/Card.d.mts +1 -1
- package/dist/Card2.d.mts +3 -3
- package/dist/{CardV2-B0ZweQYk.mjs → CardV2-D3m5EKlp.mjs} +19 -19
- package/dist/{CardV2-B0ZweQYk.mjs.map → CardV2-D3m5EKlp.mjs.map} +1 -1
- package/dist/{Checkbox-Bm8exUfH.d.mts → Checkbox-Bmm-r5ei.d.mts} +1 -1
- package/dist/{Checkbox-DAvbgZgO.mjs → Checkbox-Ccuicmlo.mjs} +8 -8
- package/dist/{Checkbox-DAvbgZgO.mjs.map → Checkbox-Ccuicmlo.mjs.map} +1 -1
- package/dist/Checkbox.d.mts +1 -1
- package/dist/CheckboxGroupField.d.mts +2 -2
- package/dist/ChoicesValueControl.d.mts +1 -1
- package/dist/{Combobox-xBrxiUAu.mjs → Combobox-BGRyr_-L.mjs} +22 -22
- package/dist/Combobox-BGRyr_-L.mjs.map +1 -0
- package/dist/{Combobox-C8ue0cBP.d.mts → Combobox-Bf_Xe1BG.d.mts} +3 -3
- package/dist/Combobox.d.mts +2 -2
- package/dist/{ComboboxBase-DJGTMf1_.d.mts → ComboboxBase-CWzN8GML.d.mts} +8 -8
- package/dist/ComboboxBase.d.mts +1 -1
- package/dist/{ComboboxMultiSelect-D7A2bbWU.d.mts → ComboboxMultiSelect-iSuvyOx2.d.mts} +2 -2
- package/dist/ComboboxMultiSelect.d.mts +1 -1
- package/dist/{ComboboxSingleSelect-D1uzEyKj.d.mts → ComboboxSingleSelect-DVRFKPi1.d.mts} +4 -4
- package/dist/ComboboxSingleSelect.d.mts +1 -1
- package/dist/{CompactBar-DMuvqaV5.d.mts → CompactBar-C_61pgp7.d.mts} +3 -3
- package/dist/CompactBar.d.mts +1 -1
- package/dist/{ConfigFormGroup-D2_sajXe.mjs → ConfigFormGroup-DGCTW3by.mjs} +4 -4
- package/dist/{ConfigFormGroup-D2_sajXe.mjs.map → ConfigFormGroup-DGCTW3by.mjs.map} +1 -1
- package/dist/{ControlBar-Dg8JeU8f.d.mts → ControlBar-0XwbM4yC.d.mts} +2 -2
- package/dist/ControlBar.d.mts +1 -1
- package/dist/DataTable.d.mts +4 -4
- package/dist/{DateField-Com9f2-j.d.mts → DateField-CKeSIhGy.d.mts} +2 -2
- package/dist/DateField.d.mts +1 -1
- package/dist/{DatePicker-BGO6doLx.d.mts → DatePicker-B1iWrqR5.d.mts} +2 -2
- package/dist/{DatePicker-BlnE2MBD.mjs → DatePicker-BNnZ6L1y.mjs} +29 -12
- package/dist/DatePicker-BNnZ6L1y.mjs.map +1 -0
- package/dist/DatePicker.d.mts +1 -1
- package/dist/{DateRangePicker-DfRBm9z4.d.mts → DateRangePicker-BmF9eH9R.d.mts} +2 -2
- package/dist/DateRangePicker.d.mts +1 -1
- package/dist/DateRangeValueControl.d.mts +2 -2
- package/dist/DateValueControl.d.mts +1 -1
- package/dist/{DropdownButton-CpWNRUma.mjs → DropdownButton-BlVeFbJ0.mjs} +3 -3
- package/dist/{DropdownButton-CpWNRUma.mjs.map → DropdownButton-BlVeFbJ0.mjs.map} +1 -1
- package/dist/DropdownButton.d.mts +2 -2
- package/dist/{DropdownMenu-BCyV8nC0.mjs → DropdownMenu-82xH1AZr.mjs} +4 -4
- package/dist/{DropdownMenu-BCyV8nC0.mjs.map → DropdownMenu-82xH1AZr.mjs.map} +1 -1
- package/dist/{DropdownMenu-CnaK78rP.d.mts → DropdownMenu-DuTnq9j7.d.mts} +3 -3
- package/dist/DropdownMenu.d.mts +1 -1
- package/dist/{ErrorProps-CN2XjaOX.d.mts → ErrorProps-DX50vo-U.d.mts} +1 -1
- package/dist/ErrorProps.d.mts +1 -1
- package/dist/{FieldRegistry-DdA63Vnh.d.mts → FieldRegistry-D1vghSC_.d.mts} +2 -2
- package/dist/FieldRegistry.d.mts +1 -1
- package/dist/{FilterBar-CxNsBVrn.d.mts → FilterBar-Ck085Dic.d.mts} +4 -4
- package/dist/FilterBar.d.mts +1 -1
- package/dist/FilterPickerMenu.d.mts +3 -3
- package/dist/FilterPill.d.mts +1 -1
- package/dist/FilterPopover.d.mts +2 -2
- package/dist/FloatValueControl.d.mts +1 -1
- package/dist/FloatingPanel.d.mts +1 -1
- package/dist/FloatingPanelContext.d.mts +1 -1
- package/dist/{FormControl-Doj2gvF0.d.mts → FormControl-CfpwZGlD.d.mts} +4 -4
- package/dist/{FormControl-HVzZEqJH.mjs → FormControl-D1HIqDKm.mjs} +6 -6
- package/dist/{FormControl-HVzZEqJH.mjs.map → FormControl-D1HIqDKm.mjs.map} +1 -1
- package/dist/FormControl.d.mts +1 -1
- package/dist/FormControlLabel.d.mts +2 -2
- package/dist/{FormField-D8dHbqZZ.d.mts → FormField-0p4y0sS5.d.mts} +2 -2
- package/dist/{FormField-B9P3BWvS.mjs → FormField-CVnbsNvU.mjs} +22 -22
- package/dist/FormField-CVnbsNvU.mjs.map +1 -0
- package/dist/FormField.d.mts +1 -1
- package/dist/{Header-CBlB65NY.d.mts → Header-gDUTQgWj.d.mts} +2 -2
- package/dist/Header.d.mts +1 -1
- package/dist/{HelperTooltip-C28h1zFl.d.mts → HelperTooltip-CqhiRb5g.d.mts} +3 -3
- package/dist/HelperTooltip.d.mts +1 -1
- package/dist/{HoverCopyableField-0Bzygbp9.mjs → HoverCopyableField-HWshrU_1.mjs} +31 -20
- package/dist/HoverCopyableField-HWshrU_1.mjs.map +1 -0
- package/dist/HoverCopyableField.d.mts +15 -4
- package/dist/{IconButton-BfDlic2K.mjs → IconButton-BgL3QUVO.mjs} +9 -9
- package/dist/{IconButton-BfDlic2K.mjs.map → IconButton-BgL3QUVO.mjs.map} +1 -1
- package/dist/{IconButton-CBcW7ZU8.d.mts → IconButton-CLsHdYm7.d.mts} +2 -2
- package/dist/IconButton.d.mts +1 -1
- package/dist/ImageTile.d.mts +2 -2
- package/dist/InlineCombobox.d.mts +2 -2
- package/dist/InlineInput.d.mts +1 -1
- package/dist/{Input-CVdjkX88.d.mts → Input-BHHWpSKN.d.mts} +6 -6
- package/dist/{Input-Bimw8KFj.mjs → Input-DoB8YswA.mjs} +6 -6
- package/dist/{Input-Bimw8KFj.mjs.map → Input-DoB8YswA.mjs.map} +1 -1
- package/dist/Input.d.mts +1 -1
- package/dist/{InputProps-BwKkmImn.d.mts → InputProps-sHxlDiss.d.mts} +2 -2
- package/dist/InputProps.d.mts +1 -1
- package/dist/IntegerValueControl.d.mts +1 -1
- package/dist/LayoutLoadingSpinner.d.mts +11 -0
- package/dist/Link.d.mts +3 -3
- package/dist/{ListBox-DKZpGYjo.mjs → ListBox-B9uuMt2R.mjs} +15 -15
- package/dist/{ListBox-DKZpGYjo.mjs.map → ListBox-B9uuMt2R.mjs.map} +1 -1
- package/dist/{ListBox-CDl5oZPX.d.mts → ListBox-BrY1bQ5-.d.mts} +5 -5
- package/dist/ListBox.d.mts +1 -1
- package/dist/ListBoxField.d.mts +3 -3
- package/dist/{LoadingShimmer-DC2vqicd.mjs → LoadingShimmer-dsBWRdTU.mjs} +2 -2
- package/dist/{LoadingShimmer-DC2vqicd.mjs.map → LoadingShimmer-dsBWRdTU.mjs.map} +1 -1
- package/dist/LoadingShimmer.d.mts +2 -2
- package/dist/{LogicRow-CkbyvrUw.d.mts → LogicRow-9a_klV2v.d.mts} +4 -4
- package/dist/LogicRow.d.mts +1 -1
- package/dist/MaskedInput.d.mts +2 -2
- package/dist/MatchHighlight.d.mts +1 -1
- package/dist/{Menu-Dir03WA9.mjs → Menu-CHbUf9PQ.mjs} +6 -6
- package/dist/{Menu-Dir03WA9.mjs.map → Menu-CHbUf9PQ.mjs.map} +1 -1
- package/dist/{Menu-CYRdEnfo.d.mts → Menu-D4Y_J-QI.d.mts} +4 -4
- package/dist/Menu.d.mts +1 -1
- package/dist/{MiddleTruncatedText-GXI-CPvs.mjs → MiddleTruncatedText-DnF7F_1D.mjs} +4 -4
- package/dist/{MiddleTruncatedText-GXI-CPvs.mjs.map → MiddleTruncatedText-DnF7F_1D.mjs.map} +1 -1
- package/dist/Modal.d.mts +4 -5
- package/dist/{PageHeader-C2IUKhCg.mjs → PageHeader-XxGsFLHb.mjs} +4 -4
- package/dist/{PageHeader-C2IUKhCg.mjs.map → PageHeader-XxGsFLHb.mjs.map} +1 -1
- package/dist/PageHeader.d.mts +2 -2
- package/dist/PageLayout.d.mts +1 -1
- package/dist/{PageSelector-vay4jpMp.d.mts → PageSelector-BDo3ge1E.d.mts} +3 -3
- package/dist/PageSelector.d.mts +1 -1
- package/dist/{Pagination-ygLutOst.d.mts → Pagination-Dcmv7bVe.d.mts} +2 -2
- package/dist/{Pagination-0VhVdXv0.mjs → Pagination-DvVKQLdC.mjs} +8 -8
- package/dist/{Pagination-0VhVdXv0.mjs.map → Pagination-DvVKQLdC.mjs.map} +1 -1
- package/dist/Pagination.d.mts +1 -1
- package/dist/{Pii-C7pA72Bh.mjs → Pii-BD48BtZ0.mjs} +2 -2
- package/dist/{Pii-C7pA72Bh.mjs.map → Pii-BD48BtZ0.mjs.map} +1 -1
- package/dist/Pii.d.mts +1 -1
- package/dist/PillShell.d.mts +1 -1
- package/dist/{Popover-BkDpDdaO.mjs → Popover-DNH8Jx1-.mjs} +6 -6
- package/dist/{Popover-BkDpDdaO.mjs.map → Popover-DNH8Jx1-.mjs.map} +1 -1
- package/dist/Popover.d.mts +1 -1
- package/dist/ProgressBar.d.mts +1 -1
- package/dist/ProgressIndicator.d.mts +1 -1
- package/dist/{PseudoClassProps-CcSlKNev.d.mts → PseudoClassProps-DgT5G_z5.d.mts} +1 -1
- package/dist/PseudoClassProps.d.mts +1 -1
- package/dist/{Radio-BaFutxgV.mjs → Radio-DSMPX5_2.mjs} +5 -5
- package/dist/{Radio-BaFutxgV.mjs.map → Radio-DSMPX5_2.mjs.map} +1 -1
- package/dist/{RadioGroup-ClMzOZl0.mjs → RadioGroup-D5IITQLz.mjs} +4 -4
- package/dist/{RadioGroup-ClMzOZl0.mjs.map → RadioGroup-D5IITQLz.mjs.map} +1 -1
- package/dist/{RadioGroup-BuJaitgG.d.mts → RadioGroup-Jl1yAvGu.d.mts} +1 -1
- package/dist/RadioGroup.d.mts +1 -1
- package/dist/RangeCalendar.d.mts +1 -1
- package/dist/RangeCalendarPresets.d.mts +1 -1
- package/dist/RuleEditorFields.d.mts +3 -3
- package/dist/RulesPill.d.mts +1 -1
- package/dist/{SearchInput-Ca3_np5e.d.mts → SearchInput-CaKHRC_s.d.mts} +3 -3
- package/dist/SearchInput.d.mts +1 -1
- package/dist/SectionHeading.d.mts +1 -1
- package/dist/{SegmentedControl-DgyJL4uN.mjs → SegmentedControl-JUgRw_M-.mjs} +5 -5
- package/dist/{SegmentedControl-DgyJL4uN.mjs.map → SegmentedControl-JUgRw_M-.mjs.map} +1 -1
- package/dist/{SegmentedControl-_I4sWeD7.d.mts → SegmentedControl-e6xDtoHC.d.mts} +2 -2
- package/dist/SegmentedControl.d.mts +1 -1
- package/dist/{Select-vwXGlHuW.d.mts → Select-CPYztD4m.d.mts} +4 -4
- package/dist/{Select-D6MqSYVa.mjs → Select-DX3toj6M.mjs} +12 -12
- package/dist/{Select-D6MqSYVa.mjs.map → Select-DX3toj6M.mjs.map} +1 -1
- package/dist/Select.d.mts +1 -1
- package/dist/Slider.d.mts +1 -1
- package/dist/SliderRHF.d.mts +1 -1
- package/dist/SliderThumb.d.mts +1 -1
- package/dist/{Spacer-CJp0lwkL.mjs → Spacer-BsK8tTwA.mjs} +2 -2
- package/dist/{Spacer-CJp0lwkL.mjs.map → Spacer-BsK8tTwA.mjs.map} +1 -1
- package/dist/{Spinner-BgBCCHGo.mjs → Spinner-D3wXIoXN.mjs} +3 -3
- package/dist/{Spinner-BgBCCHGo.mjs.map → Spinner-D3wXIoXN.mjs.map} +1 -1
- package/dist/{Stack-Bl54WmhY.mjs → Stack-Bre2oiov.mjs} +2 -2
- package/dist/{Stack-Bl54WmhY.mjs.map → Stack-Bre2oiov.mjs.map} +1 -1
- package/dist/{Stack-CkV7k7TE.d.mts → Stack-DHaK1-dw.d.mts} +2 -2
- package/dist/Stack.d.mts +1 -1
- package/dist/StatusIndicator.d.mts +1 -1
- package/dist/{Sticker-xtDMuOoN.mjs → Sticker-CQ6sOKUj.mjs} +6 -6
- package/dist/{Sticker-xtDMuOoN.mjs.map → Sticker-CQ6sOKUj.mjs.map} +1 -1
- package/dist/{Sticker-Dhx2wqTL.d.mts → Sticker-DnSemOcW.d.mts} +6 -6
- package/dist/Sticker.d.mts +1 -1
- package/dist/StringValueControl.d.mts +1 -1
- package/dist/SwatchPicker.d.mts +1 -1
- package/dist/Tab.d.mts +3 -3
- package/dist/{TabBar-D6UocZXi.mjs → TabBar-sYllYizt.mjs} +7 -7
- package/dist/{TabBar-D6UocZXi.mjs.map → TabBar-sYllYizt.mjs.map} +1 -1
- package/dist/TabBarIconButton.d.mts +2 -2
- package/dist/{Table-D1WyUQuv.mjs → Table-C2pkP5Xg.mjs} +8 -8
- package/dist/{Table-D1WyUQuv.mjs.map → Table-C2pkP5Xg.mjs.map} +1 -1
- package/dist/{Table-cO7ZwGPM.d.mts → Table-CFbPINKr.d.mts} +1 -1
- package/dist/Table.d.mts +1 -1
- package/dist/{TableBody-CirMgfAV.d.mts → TableBody-BQsGc4Lw.d.mts} +1 -1
- package/dist/TableBody.d.mts +1 -1
- package/dist/{TableBox-C5qWhr82.mjs → TableBox-CaTHcR4F.mjs} +16 -16
- package/dist/{TableBox-C5qWhr82.mjs.map → TableBox-CaTHcR4F.mjs.map} +1 -1
- package/dist/TableBox.d.mts +2 -2
- package/dist/{TableBoxCell-DmVX_tgn.d.mts → TableBoxCell-52g97gEg.d.mts} +8 -8
- package/dist/TableBoxCell.d.mts +1 -1
- package/dist/TableBoxField.d.mts +4 -4
- package/dist/{TableBoxRow-nwq41Bpi.d.mts → TableBoxRow-DnoumHIE.d.mts} +4 -4
- package/dist/TableBoxRow.d.mts +1 -1
- package/dist/{TableBoxRowActions-B4_ojiQo.d.mts → TableBoxRowActions-CDcREhP4.d.mts} +2 -2
- package/dist/TableBoxRowActions.d.mts +1 -1
- package/dist/TableCell.d.mts +1 -1
- package/dist/{TableControls-CZ9iu3ma.mjs → TableControls-3bXyd8gS.mjs} +104 -79
- package/dist/TableControls-3bXyd8gS.mjs.map +1 -0
- package/dist/{TableControls-RwIPBxyU.d.mts → TableControls-CrGGlkEG.d.mts} +5 -9
- package/dist/TableControls.d.mts +1 -1
- package/dist/{TableControlsContext-D_SBFZN1.d.mts → TableControlsContext-BKZt2Jid.d.mts} +2 -2
- package/dist/TableControlsContext.d.mts +1 -1
- package/dist/{TableHead-DMq_q_W0.d.mts → TableHead-CqVIJfjh.d.mts} +1 -1
- package/dist/TableHead.d.mts +1 -1
- package/dist/{TableHeaderCell-C2pqXBYO.d.mts → TableHeaderCell-DK4R8vdK.d.mts} +1 -1
- package/dist/TableHeaderCell.d.mts +1 -1
- package/dist/{TableLayout-DQKu6Rcj.d.mts → TableLayout-BcIazRB-.d.mts} +1 -1
- package/dist/TableLayout.d.mts +1 -1
- package/dist/{TableRow-CPqZ8DK3.d.mts → TableRow-DdJcjG2b.d.mts} +2 -2
- package/dist/TableRow.d.mts +1 -1
- package/dist/TableTH.d.mts +1 -1
- package/dist/{TableViewConfigurationDropdown-BYPh4dIP.d.mts → TableViewConfigurationDropdown-CHBOjw7O.d.mts} +5 -3
- package/dist/TableViewConfigurationDropdown.d.mts +1 -1
- package/dist/{TechnicalSticker-DTjg6d2F.mjs → TechnicalSticker-D3eeGMDR.mjs} +6 -6
- package/dist/{TechnicalSticker-DTjg6d2F.mjs.map → TechnicalSticker-D3eeGMDR.mjs.map} +1 -1
- package/dist/TechnicalSticker.d.mts +1 -1
- package/dist/{Text-RcEfNFLx.mjs → Text-B0orb-cZ.mjs} +2 -2
- package/dist/{Text-RcEfNFLx.mjs.map → Text-B0orb-cZ.mjs.map} +1 -1
- package/dist/{Text-CfIFUyHt.d.mts → Text-BIgrwIdS.d.mts} +4 -4
- package/dist/Text.d.mts +1 -1
- package/dist/{TextArea-DhPBI_1-.d.mts → TextArea-CiLttt0s.d.mts} +2 -2
- package/dist/{TextArea-ZMgbE_Lh.mjs → TextArea-DWXuV2aZ.mjs} +4 -4
- package/dist/{TextArea-ZMgbE_Lh.mjs.map → TextArea-DWXuV2aZ.mjs.map} +1 -1
- package/dist/TextArea.d.mts +1 -1
- package/dist/{TextUnderlineTooltip-BzmmiJlC.d.mts → TextUnderlineTooltip-_7mIrZ2-.d.mts} +3 -3
- package/dist/TextUnderlineTooltip.d.mts +1 -1
- package/dist/Tile.d.mts +2 -2
- package/dist/Toast.d.mts +1 -1
- package/dist/{Toggle-BGGQ4Ukl.d.mts → Toggle-Cav7bMxg.d.mts} +1 -1
- package/dist/{Toggle-BPgfSjuu.mjs → Toggle-e8DCYa6i.mjs} +7 -7
- package/dist/{Toggle-BPgfSjuu.mjs.map → Toggle-e8DCYa6i.mjs.map} +1 -1
- package/dist/Toggle.d.mts +1 -1
- package/dist/{Tooltip-D_a-RwAN.d.mts → Tooltip-DX-N-szt.d.mts} +3 -3
- package/dist/{Tooltip-BvDbmXak.mjs → Tooltip-iJcfJqxn.mjs} +5 -5
- package/dist/{Tooltip-BvDbmXak.mjs.map → Tooltip-iJcfJqxn.mjs.map} +1 -1
- package/dist/Tooltip.d.mts +1 -1
- package/dist/{TruncatedText-BJnowVTx.d.mts → TruncatedText-D2R7uy_y.d.mts} +2 -2
- package/dist/components/Attribute/index.mjs +7 -7
- package/dist/components/Attribute/index.mjs.map +1 -1
- package/dist/components/Badge/index.mjs +1 -1
- package/dist/components/Banner/index.mjs +3 -3
- 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 +4 -4
- package/dist/components/Card/index.d.mts +2 -2
- package/dist/components/Card/index.mjs +1 -1
- 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/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 +15 -15
- package/dist/components/DataTable/TableControls/index.mjs +1 -1
- package/dist/components/DataTable/index.mjs +25 -25
- 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 +4 -4
- 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 +8 -8
- 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/HoverCopyableField/index.d.mts +2 -2
- package/dist/components/HoverCopyableField/index.mjs +2 -2
- package/dist/components/ImageTile/index.mjs +10 -10
- package/dist/components/Input/index.d.mts +1 -1
- package/dist/components/Input/index.mjs +1 -1
- package/dist/components/Link/index.mjs +4 -4
- package/dist/components/Link/index.mjs.map +1 -1
- 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 +2 -2
- package/dist/components/MatchHighlight/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.mjs +42 -12
- package/dist/components/Modal/index.mjs.map +1 -1
- 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 +2 -2
- package/dist/components/ProgressIndicator/index.mjs +2 -2
- 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/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 +4 -4
- package/dist/components/Spacer/index.mjs +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 +2 -2
- package/dist/components/Sticker/index.d.mts +1 -1
- package/dist/components/Sticker/index.mjs +1 -1
- package/dist/components/SwatchPicker/index.mjs +1 -1
- package/dist/components/TabBar/index.mjs +1 -1
- package/dist/components/Table/index.d.mts +7 -7
- 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/Text/index.mjs +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 +5 -5
- package/dist/components/Toast/index.mjs +5 -5
- 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/Tooltip/index.mjs +1 -1
- package/dist/compound-expression.d.mts +1 -1
- package/dist/{constants-BASogfT_.d.mts → constants-bA9kCzRQ.d.mts} +1 -1
- package/dist/constants.d.mts +1 -1
- package/dist/display.d.mts +1 -1
- package/dist/fieldPickerOptions.d.mts +2 -2
- package/dist/{filter-size-context-Bw5F7082.d.mts → filter-size-context-C7injfBh.d.mts} +2 -2
- package/dist/filter-size-context.d.mts +1 -1
- package/dist/helpers.d.mts +1 -1
- package/dist/{index--5Mfhlkj.d.mts → index-BPfK-u7y.d.mts} +2 -2
- package/dist/{index-DiCnyORA.d.mts → index-BxBsQi2S.d.mts} +5 -5
- package/dist/{index-C1bz13uw.d.mts → index-d_fTFuMM.d.mts} +5 -5
- 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 +10 -10
- package/dist/{input-CzO-6_1V.d.mts → input-D9FuQmlI.d.mts} +3 -3
- package/dist/inputFields.d.mts +11 -11
- package/dist/{intersperse-yd3oMrQl.mjs → intersperse-CLkblj9A.mjs} +1 -1
- package/dist/{intersperse-yd3oMrQl.mjs.map → intersperse-CLkblj9A.mjs.map} +1 -1
- package/dist/lib/GlobalStyles.mjs +1 -1
- package/dist/lib/HeadlessAriaButton.mjs +1 -1
- package/dist/lib/MiddleTruncatedText.mjs +1 -1
- package/dist/lib/PDSProvider.d.mts +1 -1
- package/dist/lib/PDSProvider.mjs +1 -1
- package/dist/lib/TruncatedText.d.mts +1 -1
- package/dist/lib/TruncatedText.mjs +2 -2
- package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
- package/dist/lib/TruncatedTextWithTooltip.mjs +2 -2
- package/dist/lib/embeddedSurfaceProtocol.d.mts +13 -1
- package/dist/lib/embeddedSurfaceProtocol.mjs +32 -5
- package/dist/lib/embeddedSurfaceProtocol.mjs.map +1 -1
- package/dist/lib/message.d.mts +1 -1
- package/dist/lib/pseudoClass.d.mts +8 -8
- package/dist/lib/useEmbeddedSurface.d.mts +31 -3
- package/dist/lib/useEmbeddedSurface.mjs +118 -13
- package/dist/lib/useEmbeddedSurface.mjs.map +1 -1
- package/dist/{message-Cu84fcqB.d.mts → message-CqKB5mko.d.mts} +1 -1
- package/dist/mixins/focus.d.mts +1 -1
- package/dist/mixins/focus.mjs +1 -1
- package/dist/mixins/hoverable.d.mts +2 -2
- package/dist/mixins/hoverable.mjs +2 -2
- package/dist/mixins/input.d.mts +1 -1
- package/dist/mixins/input.mjs +2 -2
- package/dist/mixins/menuItem.d.mts +2 -2
- package/dist/mixins/menuItem.mjs +1 -1
- package/dist/mixins/print/index.mjs +1 -1
- package/dist/mixins/text.d.mts +1 -1
- package/dist/mixins/text.mjs +1 -1
- package/dist/{operators-CmSqHnTH.d.mts → operators-CgcsYzfy.d.mts} +2 -2
- package/dist/operators.d.mts +1 -1
- package/dist/patterns/LayoutLoadingShimmer/index.mjs +6 -6
- package/dist/patterns/LayoutLoadingSpinner/index.d.mts +2 -0
- package/dist/patterns/LayoutLoadingSpinner/index.mjs +56 -0
- package/dist/patterns/LayoutLoadingSpinner/index.mjs.map +1 -0
- package/dist/patterns/PageLayout/index.mjs +1 -1
- package/dist/styledComponentsInterop-8zScIQyC.mjs +33 -0
- package/dist/styledComponentsInterop-8zScIQyC.mjs.map +1 -0
- package/dist/{text-BaQdW8qa.d.mts → text-xwtyWIbE.d.mts} +1 -1
- package/dist/{theme-D9Y6NOzb.d.mts → theme-Ftogn9Wo.d.mts} +1 -1
- package/dist/theme.d.mts +1 -1
- package/dist/{types-DEh_pXgS.d.mts → types-0_9G0kWg.d.mts} +3 -1
- package/dist/{types-NJtAxsU1.d.mts → types-BrNreYUU.d.mts} +2 -2
- package/dist/{types-C-TkDdkG.d.mts → types-D55MZSyx.d.mts} +1 -1
- package/dist/{types-TV9nVfSe.d.mts → types-DVsBRqjZ.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/useComboboxFooterAction.d.mts +1 -1
- package/dist/{useFilterStateV2-C4itmN4S.d.mts → useFilterStateV2-D8Q8QKhS.d.mts} +3 -3
- package/dist/useFilterStateV2.d.mts +1 -1
- package/dist/{useFormField-B2U4GOH4.d.mts → useFormField-BBbq1izo.d.mts} +2 -2
- package/dist/{useFormField-eftOPiXj.mjs → useFormField-Bz2iMPBO.mjs} +2 -2
- package/dist/{useFormField-eftOPiXj.mjs.map → useFormField-Bz2iMPBO.mjs.map} +1 -1
- package/dist/useFormField.d.mts +1 -1
- package/dist/{useFormGroup-BMukAMAd.mjs → useFormGroup-CaTiD_Yt.mjs} +1 -1
- package/dist/{useFormGroup-BMukAMAd.mjs.map → useFormGroup-CaTiD_Yt.mjs.map} +1 -1
- package/dist/{useTableBoxDragAndDrop-CpemHLhL.d.mts → useTableBoxDragAndDrop-Bye8gJTl.d.mts} +1 -1
- package/dist/useTableBoxDragAndDrop.d.mts +1 -1
- package/dist/useTruncation.d.mts +1 -1
- package/dist/{utilities-DnSIlR1i.d.mts → utilities-Bmwk_DRn.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 +1 -1
- package/dist/utils.d.mts +1 -1
- package/dist/utils2.d.mts +12 -1
- package/dist/{validation-B5IXsdkE.d.mts → validation-CAtTuHO9.d.mts} +3 -3
- package/dist/validation.d.mts +1 -1
- package/dist/{value-control-resolver-BPlTeIX7.d.mts → value-control-resolver-DadI8r9a.d.mts} +2 -2
- package/dist/value-control-resolver.d.mts +1 -1
- package/dist/variables/keyframes.mjs +1 -1
- package/llms.txt +4 -4
- package/package.json +4 -2
- package/skills/ui-authoring/COMPONENTS.md +69 -305
- package/skills/ui-authoring/PATTERNS.md +362 -0
- package/skills/ui-authoring/SKILL.md +15 -147
- package/skills/ui-authoring/TOKENS.md +400 -0
- package/dist/Combobox-xBrxiUAu.mjs.map +0 -1
- package/dist/DatePicker-BlnE2MBD.mjs.map +0 -1
- package/dist/FormField-B9P3BWvS.mjs.map +0 -1
- package/dist/HoverCopyableField-0Bzygbp9.mjs.map +0 -1
- package/dist/TableControls-CZ9iu3ma.mjs.map +0 -1
- package/skills/ui-authoring/EXAMPLES.md +0 -370
- package/skills/ui-authoring/REFERENCE.md +0 -293
- /package/dist/{index-7rWKHdox.d.mts → index-0-W_aPej.d.mts} +0 -0
- /package/dist/{index-BMBcfD_R.d.mts → index-7in8TPrM.d.mts} +0 -0
- /package/dist/{index-BOn0AAue.d.mts → index-BINnViIh.d.mts} +0 -0
- /package/dist/{index-BYd3Btr1.d.mts → index-BNRXMhlr.d.mts} +0 -0
- /package/dist/{index-CKKoxA9V.d.mts → index-BO_854F2.d.mts} +0 -0
- /package/dist/{index-CNxS4Tlu.d.mts → index-BSVhZrWN.d.mts} +0 -0
- /package/dist/{index-CRo77wc3.d.mts → index-BrGZHEgX.d.mts} +0 -0
- /package/dist/{index-CWB6exYm.d.mts → index-BwAfCVZH2.d.mts} +0 -0
- /package/dist/{index-CtJuGxUp.d.mts → index-CCt0lwyI.d.mts} +0 -0
- /package/dist/{index-CzItj62a.d.mts → index-CDGG7lCB.d.mts} +0 -0
- /package/dist/{index-D4DUvwPf.d.mts → index-CFhUdAHM.d.mts} +0 -0
- /package/dist/{index-D5tSVhTd.d.mts → index-CREkvfw9.d.mts} +0 -0
- /package/dist/{index-DGsJdI5l.d.mts → index-CROz1VSV.d.mts} +0 -0
- /package/dist/{index-DkrC-i1D.d.mts → index-CzUpNo0e.d.mts} +0 -0
- /package/dist/{index-DztUdPP_.d.mts → index-DA6_cwf8.d.mts} +0 -0
- /package/dist/{index-Es5nKSSL.d.mts → index-DM6vVDZD.d.mts} +0 -0
- /package/dist/{index-FtE8MXJ_.d.mts → index-DeVKzGce.d.mts} +0 -0
- /package/dist/{index-IE5cwTAE2.d.mts → index-Jh0C5PIG.d.mts} +0 -0
- /package/dist/{index-e6k85DKM.d.mts → index-PWQavSPf.d.mts} +0 -0
- /package/dist/{index-ehD5GjMH.d.mts → index-sViox9YW.d.mts} +0 -0
|
@@ -1,212 +1,73 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Components
|
|
2
|
+
|
|
3
|
+
Which PDS component to use, and for what. For usage guidance and additional code examples, see
|
|
4
|
+
that component's `.mdx` beside its source under `front-end/design-system/components/` when one
|
|
5
|
+
exists. If there is no `.mdx`, use the published type declarations
|
|
6
|
+
(`dist/components/<Name>/index.d.mts`).
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
| Component | Use for | Import |
|
|
10
|
+
| --------- | ------- | ------ |
|
|
11
|
+
| `Attribute` | Labeling a data value (`<dl>`/`<dt>`/`<dd>`). Use `AttributeGrid` for a grid of them | `@persona/design-system/components/Attribute` |
|
|
12
|
+
| `Badge` | Count badge — a count or notification number | `@persona/design-system/components/Badge` |
|
|
13
|
+
| `Banner` | Alert / notification — important in-context info, success, warning, or danger. Optionally dismissable | `@persona/design-system/components/Banner` |
|
|
14
|
+
| `Breadcrumbs` | Showing where the user is in a hierarchy and navigating to ancestors | `@persona/design-system/components/Breadcrumbs` |
|
|
15
|
+
| `Button` | Triggering an action. Use `IconButton` when there is no label | `@persona/design-system/components/Button` |
|
|
16
|
+
| `ButtonGroup` | Choosing among related modes in a compact connected button set (often icons, e.g. alignment). Use `Toggle` for a single on/off setting; `RadioGroup` for a visible list of labeled choices | `@persona/design-system/components/ButtonGroup` |
|
|
17
|
+
| `Card` + `Card.Section` | Grouping related content and actions so they're easier to scan. Collapsible sections on long settings pages | `@persona/design-system/components/CardV2` |
|
|
18
|
+
| `Checkbox` | Selecting one or more options from a visible list | `@persona/design-system/components/Checkbox` |
|
|
19
|
+
| `Combobox` | Picking from a long list that needs search (single or multi). Use `RadioGroup` when every choice should stay visible (one); `Checkbox` when every choice should stay visible (several); `Select` for a short closed list with no search | `@persona/design-system/components/Combobox` |
|
|
20
|
+
| `ConfigFormGroup` | Form fields — spacing a group of config fields and setting `configField` via context. Pair with `TextField` / `TextAreaField` | `@persona/design-system/components/ConfigFormGroup` |
|
|
21
|
+
| `Container`, `Section`, `Backdrop` | Page shell | `@persona/design-system/patterns/PageLayout` |
|
|
22
|
+
| `DataTable` | Data table — browsing tabular data with filtering, bulk actions, search, pagination, and sorting | `@persona/design-system/components/DataTable` |
|
|
23
|
+
| `DatePicker` | Picking a date or date range from a calendar | `@persona/design-system/components/DatePicker` |
|
|
24
|
+
| `DropdownButton` | Opening a menu of related actions from a button | `@persona/design-system/components/DropdownButton` |
|
|
25
|
+
| `DropdownMenu` | Showing a temporary action list on a custom trigger | `@persona/design-system/components/DropdownMenu` |
|
|
26
|
+
| `FormControl` | Building a custom labeled field (label + helper/error/warning) when `FormField` is too rigid | `@persona/design-system/components/FormControl` |
|
|
27
|
+
| `FormField` | Giving an input a label, helper, and error/warning. Use this or a `*Field` wrapper (`TextField`, `TextAreaField`) for form fields — unlabeled controls (search, toolbars) can stay as `Input` | `@persona/design-system/components/FormField` |
|
|
28
|
+
| `HoverCopyableField` | Letting the user copy a value on hover. Optional `onCopySuccess` skips Copied so the host owns post-copy UX | `@persona/design-system/components/HoverCopyableField` |
|
|
29
|
+
| `HStack` | Flex row — laying out children horizontally with token spacing | `@persona/design-system/components/Stack` |
|
|
30
|
+
| `ImageTile` | Showing a thumbnail in a gallery or grid | `@persona/design-system/components/ImageTile` |
|
|
31
|
+
| `IconButton` | Icon-only button — triggering an icon-only action | `@persona/design-system/components/Button` |
|
|
32
|
+
| `Input` | Text input — a single line of text without a form label. In forms, use `TextField` | `@persona/design-system/components/Input` |
|
|
33
|
+
| `Link` | Navigating to another page or resource. External links need the external-link icon | `@persona/design-system/components/Link` |
|
|
34
|
+
| `ListBox` | Dynamic list — a visible, always-open list of items (select, add, delete, reorder). Unlike `Combobox`, it is not a collapsed search field — the list stays on the page | `@persona/design-system/components/ListBox` |
|
|
35
|
+
| `LoadingShimmer` | Filling space while content loads | `@persona/design-system/components/LoadingShimmer` |
|
|
36
|
+
| `MaskedInput` | Entering structured text (phone, SSN, etc.) | `@persona/design-system/components/MaskedInput` |
|
|
37
|
+
| `MatchHighlight` | Highlighting how strongly children match | `@persona/design-system/components/MatchHighlight` |
|
|
38
|
+
| `Menu` | Rendering a vertical list of actions (styled only). Use `DropdownMenu` when it needs a trigger | `@persona/design-system/components/Menu` |
|
|
39
|
+
| `Modal` | Focusing the user on a task or confirmation behind a page overlay (e.g. delete confirm, short form submit) | `@persona/design-system/components/Modal` |
|
|
40
|
+
| `PageHeader` | Page title bar — optional subtitle, breadcrumbs, and actions | `@persona/design-system/components/PageHeader` |
|
|
41
|
+
| `Pagination` | Moving between pages and changing page size | `@persona/design-system/components/Pagination` |
|
|
42
|
+
| `Pii` | Showing a value, or a “Redacted” sticker when PII is hidden | `@persona/design-system/components/Pii` |
|
|
43
|
+
| `Popover` | Floating panel — extra content or controls anchored to a trigger, without leaving the page | `@persona/design-system/components/Popover` |
|
|
44
|
+
| `ProgressBar` | Showing linear progress (determinate or indeterminate) | `@persona/design-system/components/ProgressBar` |
|
|
45
|
+
| `ProgressIndicator` | Showing progress through a sequence of steps | `@persona/design-system/components/ProgressIndicator` |
|
|
46
|
+
| `Radio` | Picking one visible option. Prefer `RadioGroup` to manage the set | `@persona/design-system/components/Radio` |
|
|
47
|
+
| `RadioGroup` | Grouping two or more mutually exclusive `Radio`s and owning the selected value | `@persona/design-system/components/RadioGroup` |
|
|
48
|
+
| `SegmentedControl` | Picking one option from a compact set of mutually exclusive choices | `@persona/design-system/components/SegmentedControl` |
|
|
49
|
+
| `Select` | Dropdown — picking one value from a short, known list with no search. Use `Combobox` when the list needs search | `@persona/design-system/components/Select` |
|
|
50
|
+
| `Slider` | Picking a numeric value or range along a scale | `@persona/design-system/components/Slider` |
|
|
51
|
+
| `Spacer` | Prefer `Stack` — leftover gap helper | `@persona/design-system/components/Spacer` |
|
|
52
|
+
| `Spinner` | Showing that something is loading | `@persona/design-system/components/Spinner` |
|
|
53
|
+
| `Stack` | Flex column — laying out children vertically with token spacing | `@persona/design-system/components/Stack` |
|
|
54
|
+
| `StatusIndicator` | Showing a named status (open, pending, completed, failed, …) | `@persona/design-system/components/StatusIndicator` |
|
|
55
|
+
| `Sticker` | Status badge — tagging nearby content with status or label metadata | `@persona/design-system/components/Sticker` |
|
|
56
|
+
| `SwatchPicker` | Picking a color from a swatch list. Wrap with `FormField` | `@persona/design-system/components/SwatchPicker` |
|
|
57
|
+
| `TabBar`, `Tab` | Tabs — switching between related views or content sections | `@persona/design-system/components/TabBar` |
|
|
58
|
+
| `Table` | Displaying rows and columns with sticky headers, sort, and checkbox selection. Use `DataTable` when you need filtering, bulk actions, or search | `@persona/design-system/components/Table` |
|
|
59
|
+
| `TableBox` | Editable / form table — a small form-adjacent table (inline edit, add/delete, reorder) | `@persona/design-system/components/TableBox` |
|
|
60
|
+
| `TableLayout` | Table with loading/empty states; compose rows from `Table` primitives (`TableRow`, `TableCell`, `TableHeaderCell`) | `@persona/design-system/components/Table` |
|
|
61
|
+
| `TechnicalSticker` | Displaying a monospace ID or field key (middle-truncated) | `@persona/design-system/components/TechnicalSticker` |
|
|
62
|
+
| `Heading`, `Paragraph`, `Label` | Heading text, body text, and form labels (`Display`, `Span`, `TabularNumber` too). There is no `<Text>` component | `@persona/design-system/components/Text` |
|
|
63
|
+
| `TextArea` | Text input — multiple lines without a form label. In forms, use `TextAreaField` | `@persona/design-system/components/TextArea` |
|
|
64
|
+
| `TextField` | Entering a labeled single line of text in a form. Prefer over bare `Input` | `@persona/design-system/components/FormField` |
|
|
65
|
+
| `TextUnderlineTooltip` | Tooltip on a label — dashed underline. Never put an info icon next to the label | `@persona/design-system/components/Tooltip` |
|
|
66
|
+
| `Tile` | Showing a labeled metric, with optional sticker and metadata | `@persona/design-system/components/Tile` |
|
|
67
|
+
| `Toast` | Confirming a system event or action result that can auto-dismiss | `@persona/design-system/components/Toast` |
|
|
68
|
+
| `Toggle` | Turning a setting on or off with no extra confirmation | `@persona/design-system/components/Toggle` |
|
|
69
|
+
| `Tooltip` | Standalone tooltip — explaining an icon or control on hover or focus | `@persona/design-system/components/Tooltip` |
|
|
2
70
|
|
|
3
|
-
## Form Configuration
|
|
4
|
-
|
|
5
|
-
```tsx
|
|
6
|
-
import ConfigFormGroup from '@persona/design-system/components/ConfigFormGroup';
|
|
7
|
-
import { TextField, TextAreaField } from '@persona/design-system/components/FormField';
|
|
8
|
-
|
|
9
|
-
const [config, setConfig] = useState({ name: '', description: '', prompt: '' });
|
|
10
|
-
|
|
11
|
-
<ConfigFormGroup>
|
|
12
|
-
<TextField
|
|
13
|
-
label="Name"
|
|
14
|
-
value={config.name}
|
|
15
|
-
onChange={(e) => setConfig({ ...config, name: e.target.value })}
|
|
16
|
-
configField={true} // helperText becomes a tooltip
|
|
17
|
-
helperText="Unique identifier"
|
|
18
|
-
errorText={errors.name}
|
|
19
|
-
rightActions={<Button size="sm" variant="basic">Generate</Button>}
|
|
20
|
-
/>
|
|
21
|
-
<TextAreaField
|
|
22
|
-
label="Prompt"
|
|
23
|
-
value={config.prompt}
|
|
24
|
-
onChange={(e) => setConfig({ ...config, prompt: e.target.value })}
|
|
25
|
-
configField={true}
|
|
26
|
-
warningText={warnings.prompt}
|
|
27
|
-
/>
|
|
28
|
-
</ConfigFormGroup>
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
- `configField={true}` → helper text becomes a tooltip instead of inline text
|
|
32
|
-
- `ConfigFormGroup` provides consistent 20px spacing between fields
|
|
33
|
-
- Use controlled inputs; clear `errorText` on change via `updateField` in form state hook
|
|
34
|
-
|
|
35
|
-
## Form State Hook
|
|
36
|
-
|
|
37
|
-
```tsx
|
|
38
|
-
const useFormState = (initialConfig) => {
|
|
39
|
-
const [config, setConfig] = useState(initialConfig);
|
|
40
|
-
const [errors, setErrors] = useState({});
|
|
41
|
-
|
|
42
|
-
const updateField = useCallback((field, value) => {
|
|
43
|
-
setConfig(prev => ({ ...prev, [field]: value }));
|
|
44
|
-
setErrors(prev => { const next = { ...prev }; delete next[field]; return next; });
|
|
45
|
-
}, []);
|
|
46
|
-
|
|
47
|
-
const validate = useCallback(() => {
|
|
48
|
-
const newErrors = {};
|
|
49
|
-
if (!config.name) newErrors.name = 'Required';
|
|
50
|
-
setErrors(newErrors);
|
|
51
|
-
return Object.keys(newErrors).length === 0;
|
|
52
|
-
}, [config]);
|
|
53
|
-
|
|
54
|
-
return { config, errors, updateField, validate };
|
|
55
|
-
};
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Dynamic List (ListBox)
|
|
59
|
-
|
|
60
|
-
```tsx
|
|
61
|
-
import { ListBox } from '@persona/design-system/components/ListBox';
|
|
62
|
-
|
|
63
|
-
<ListBox
|
|
64
|
-
items={items}
|
|
65
|
-
selectedKeys={selectedKeys}
|
|
66
|
-
onSelectionChange={setSelectedKeys}
|
|
67
|
-
onAdd={() => setItems([...items, { id: uuid(), name: 'New' }])}
|
|
68
|
-
onDelete={(keys) => setItems(items.filter(i => !keys.has(i.id)))}
|
|
69
|
-
selectionMode="multiple"
|
|
70
|
-
emptyText="No items"
|
|
71
|
-
>
|
|
72
|
-
{items.map(item => (
|
|
73
|
-
<ListBox.Item key={item.id}>{item.name}</ListBox.Item>
|
|
74
|
-
))}
|
|
75
|
-
</ListBox>
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Drag-drop reordering: add `reorderConfig={{ onReorder: (items) => void, dragIcon: ReactNode }}`.
|
|
79
|
-
|
|
80
|
-
## Editable Table (TableBox)
|
|
81
|
-
|
|
82
|
-
Use `TableBox` for **small, form-adjacent tables** — config editors, field mappings, inline-editable row lists. Use `DataTable` for **data views** with pagination, sorting, and server-side data.
|
|
83
|
-
|
|
84
|
-
```tsx
|
|
85
|
-
import TableBox from '@persona/design-system/components/TableBox';
|
|
86
|
-
|
|
87
|
-
const columns = [
|
|
88
|
-
{ key: 'name', title: 'Name' },
|
|
89
|
-
{ key: 'type', title: 'Type' },
|
|
90
|
-
];
|
|
91
|
-
|
|
92
|
-
<TableBox columns={columns} aria-label='File list' selectionMode='none'>
|
|
93
|
-
{items.map((item) => (
|
|
94
|
-
<TableBox.Row key={item.id} id={item.id} onDelete={() => removeItem(item.id)}>
|
|
95
|
-
<TableBox.Cell>{item.name}</TableBox.Cell>
|
|
96
|
-
<TableBox.Cell>{item.type}</TableBox.Cell>
|
|
97
|
-
</TableBox.Row>
|
|
98
|
-
))}
|
|
99
|
-
</TableBox>
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
- `aria-label` is **required**
|
|
103
|
-
- Rows are composed via `TableBox.Row` + `TableBox.Cell` children (not an `items` prop)
|
|
104
|
-
- Row actions: pass `actions={[{ label, onClick }]}` or `onDelete` on `TableBox.Row`
|
|
105
|
-
- Drag-drop reordering: `reorderConfig={{ items, itemKeyPath: 'id', onReorder }}`
|
|
106
|
-
- Empty state: `emptyText`; pass `onCreateNewRow` to make the message a clickable "add row" button
|
|
107
|
-
- `onCreateNewRow` also fires after Enter on the **last cell of the last row** (single-line text inline edit only)
|
|
108
|
-
|
|
109
|
-
### Inline editing
|
|
110
|
-
|
|
111
|
-
Declare `inlineEditConfig` on column definitions; pass `columnKey`, `itemId`, and `value` on each cell:
|
|
112
|
-
|
|
113
|
-
```tsx
|
|
114
|
-
const columns = [
|
|
115
|
-
{
|
|
116
|
-
key: 'name',
|
|
117
|
-
title: 'Name',
|
|
118
|
-
inlineEditConfig: { type: 'text', onChange: (id, value) => updateField(id, 'name', value) },
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
key: 'role',
|
|
122
|
-
title: 'Role',
|
|
123
|
-
inlineEditConfig: {
|
|
124
|
-
type: 'combobox',
|
|
125
|
-
options: roleOptions,
|
|
126
|
-
onChange: (id, value) => updateField(id, 'role', value),
|
|
127
|
-
},
|
|
128
|
-
},
|
|
129
|
-
];
|
|
130
|
-
|
|
131
|
-
<TableBox columns={columns} aria-label='Editable users'>
|
|
132
|
-
{users.map((user) => (
|
|
133
|
-
<TableBox.Row key={user.id} id={user.id}>
|
|
134
|
-
<TableBox.Cell columnKey='name' itemId={user.id} value={user.name} errorText={errors[user.id]?.name}>
|
|
135
|
-
{user.name}
|
|
136
|
-
</TableBox.Cell>
|
|
137
|
-
<TableBox.Cell columnKey='role' itemId={user.id} value={user.role}>
|
|
138
|
-
{roleLabel(user.role)}
|
|
139
|
-
</TableBox.Cell>
|
|
140
|
-
</TableBox.Row>
|
|
141
|
-
))}
|
|
142
|
-
</TableBox>
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
- Inline editing forces fixed-width layout (no horizontal scroll) automatically
|
|
146
|
-
- Cell/row validation: pass `errorText` on `TableBox.Cell` or `TableBox.Row`
|
|
147
|
-
- For adding rows from a form field, prefer `TableBoxField` (below) over bare `onCreateNewRow`
|
|
148
|
-
|
|
149
|
-
### Form field wrapper (TableBoxField)
|
|
150
|
-
|
|
151
|
-
Use inside `ConfigFormGroup` when the table needs a label, add/delete toolbar, and row creation:
|
|
152
|
-
|
|
153
|
-
```tsx
|
|
154
|
-
import { TableBoxField } from '@persona/design-system/components/FormField';
|
|
155
|
-
|
|
156
|
-
<TableBoxField
|
|
157
|
-
label='Case actions'
|
|
158
|
-
labelProps={{ size: 'md' }} // defaults to 'sm'; match sibling ControlPanel labels
|
|
159
|
-
columns={columns}
|
|
160
|
-
createNewRow={() => addRow()}
|
|
161
|
-
onDelete={(selectedKey) => removeRow(selectedKey)}
|
|
162
|
-
selectionMode='single'
|
|
163
|
-
>
|
|
164
|
-
{rows.map((row) => (
|
|
165
|
-
<TableBoxField.Row key={row.id} id={row.id}>
|
|
166
|
-
<TableBoxField.Cell columnKey='key' itemId={row.id} value={row.key}>
|
|
167
|
-
{row.key}
|
|
168
|
-
</TableBoxField.Cell>
|
|
169
|
-
</TableBoxField.Row>
|
|
170
|
-
))}
|
|
171
|
-
</TableBoxField>
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
`TableBoxField.Row` and `TableBoxField.Cell` are aliases for `TableBox.Row` / `TableBox.Cell`.
|
|
175
|
-
|
|
176
|
-
## Collapsible Sections (Card)
|
|
177
|
-
|
|
178
|
-
```tsx
|
|
179
|
-
import { Card } from '@persona/design-system/components/CardV2';
|
|
180
|
-
|
|
181
|
-
<Card>
|
|
182
|
-
<Card.Section header="Basic Settings" collapsible={true} defaultCollapsed={false}>
|
|
183
|
-
{/* Content */}
|
|
184
|
-
</Card.Section>
|
|
185
|
-
<Card.Section header="Advanced" collapsible={true}>
|
|
186
|
-
{/* Content */}
|
|
187
|
-
</Card.Section>
|
|
188
|
-
</Card>
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
## Modal
|
|
192
|
-
|
|
193
|
-
```tsx
|
|
194
|
-
import { Modal } from '@persona/design-system/components/Modal';
|
|
195
|
-
|
|
196
|
-
<Modal
|
|
197
|
-
isOpen={isOpen}
|
|
198
|
-
onClose={() => setIsOpen(false)}
|
|
199
|
-
title="Add Tools"
|
|
200
|
-
footer={
|
|
201
|
-
<>
|
|
202
|
-
<Button variant="basic" onClick={() => setIsOpen(false)}>Cancel</Button>
|
|
203
|
-
<Button variant="primary" onClick={handleSave}>Save</Button>
|
|
204
|
-
</>
|
|
205
|
-
}
|
|
206
|
-
>
|
|
207
|
-
{/* Content */}
|
|
208
|
-
</Modal>
|
|
209
|
-
```
|
|
210
71
|
|
|
211
72
|
## Testing
|
|
212
73
|
|
|
@@ -232,100 +93,3 @@ it('shows validation errors', async () => {
|
|
|
232
93
|
- Prefer `userEvent.type()` over `fireEvent.change()`
|
|
233
94
|
- Use `waitFor()` for async state updates
|
|
234
95
|
- Prefer `getByRole`, `getByLabelText`, `getByText` over `getByTestId`
|
|
235
|
-
|
|
236
|
-
## Props Reference
|
|
237
|
-
|
|
238
|
-
### TextField / TextAreaField
|
|
239
|
-
- `label` — field label
|
|
240
|
-
- `value` / `onChange` — controlled input
|
|
241
|
-
- `helperText` — help text (tooltip if `configField={true}`)
|
|
242
|
-
- `errorText` — error message (red)
|
|
243
|
-
- `warningText` — warning message (yellow)
|
|
244
|
-
- `configField` — boolean, renders helper as tooltip
|
|
245
|
-
- `rightActions` — ReactNode for buttons/icons next to label
|
|
246
|
-
- `disabled` — boolean
|
|
247
|
-
|
|
248
|
-
### ListBox
|
|
249
|
-
- `items` — array of items
|
|
250
|
-
- `selectedKeys` / `onSelectionChange` — controlled selection (`Set<string>`)
|
|
251
|
-
- `selectionMode` — `"single"` | `"multiple"` | `"none"`
|
|
252
|
-
- `onAdd` — add button callback
|
|
253
|
-
- `onDelete` — delete callback (receives `Set<string>` of keys)
|
|
254
|
-
- `reorderConfig` — `{ onReorder: (items) => void, dragIcon: ReactNode }`
|
|
255
|
-
- `emptyText` — shown when no items
|
|
256
|
-
|
|
257
|
-
### TableBox
|
|
258
|
-
- `columns` — `{ key, title, inlineEditConfig? }[]` (required)
|
|
259
|
-
- `aria-label` — accessible table name (required)
|
|
260
|
-
- `emptyText` — shown when no rows
|
|
261
|
-
- `selectionMode` — `"single"` | `"none"` (default `"none"`)
|
|
262
|
-
- `selectedKey` / `onSelectionChange` / `defaultSelectedKey` — row selection
|
|
263
|
-
- `onCreateNewRow` — makes empty state clickable; fires after Enter on last cell of last row (single-line text)
|
|
264
|
-
- `newRowId` — auto-opens inline edit on the first column of the new row
|
|
265
|
-
- `disabled` — view-only; blocks edits, delete, and reorder
|
|
266
|
-
- `reorderConfig` — `{ items, itemKeyPath, onReorder }` for drag-drop row reorder
|
|
267
|
-
- `disableHorizontalScroll` — fixed-width/truncating layout (auto when any column has `inlineEditConfig`)
|
|
268
|
-
- `hideHeader` — hide column headers (e.g. single-column tables under a `FormField` label)
|
|
269
|
-
|
|
270
|
-
#### TableBox.Row
|
|
271
|
-
- `id` — row identifier (required)
|
|
272
|
-
- `actions` — `[{ label, onClick }]` dropdown menu items
|
|
273
|
-
- `onDelete` — renders row delete button
|
|
274
|
-
- `errorText` — row-wide validation error (shown in first cell)
|
|
275
|
-
- `dropdownFormFields` / `dropdownContent` / `dropdownHeadingText` / `dropdownFooter` — expandable row popover (requires `selectionMode='single'`; opens when row is selected)
|
|
276
|
-
|
|
277
|
-
#### TableBox.Cell
|
|
278
|
-
- `columnKey` / `itemId` / `value` — required for inline editing
|
|
279
|
-
- `errorText` — cell validation error
|
|
280
|
-
- `inlineEditConfigOverride` — per-cell override of column `inlineEditConfig`
|
|
281
|
-
|
|
282
|
-
#### TableBoxField (extends TableBox + FormField)
|
|
283
|
-
- `label`, `helperText`, `errorText`, `warningText`, `configField` — standard form field props
|
|
284
|
-
- `createNewRow` — returns new row id; wires add button and empty state
|
|
285
|
-
- `onAdd` — alternative add handler (when not using `createNewRow`)
|
|
286
|
-
- `onDelete` — deletes the currently selected row
|
|
287
|
-
- `actions` — toolbar dropdown actions (receives `selectedKey`)
|
|
288
|
-
- `addDropdownConfig` — `{ options, onSelection }` for add-menu instead of direct add
|
|
289
|
-
|
|
290
|
-
### Card / Card.Section
|
|
291
|
-
- `collapsible` — boolean
|
|
292
|
-
- `defaultCollapsed` — boolean
|
|
293
|
-
- `header` — section header text
|
|
294
|
-
- `loading` — boolean
|
|
295
|
-
- `empty` — boolean
|
|
296
|
-
|
|
297
|
-
### Stack / HStack
|
|
298
|
-
- `spacing` — spacing value (default: `Spacing[2]`)
|
|
299
|
-
- `align` — `"start"` | `"center"` | `"end"` | `"stretch"`
|
|
300
|
-
- `justify` — `"start"` | `"center"` | `"end"` | `"space-between"`
|
|
301
|
-
- `wrap` — boolean
|
|
302
|
-
- `fullWidth` — boolean
|
|
303
|
-
|
|
304
|
-
### Modal
|
|
305
|
-
- `isOpen` / `onClose` — controlled open state
|
|
306
|
-
- `title` — modal title
|
|
307
|
-
- `footer` — footer content (ReactNode)
|
|
308
|
-
|
|
309
|
-
### Sticker
|
|
310
|
-
- `variant` — `"blue"` | `"teal"` | `"green"` | `"yellow"` | `"orange"` | `"red"` | `"purple"` | `"darkGrey"` | `"white"` | `"success"` | `"danger"` | `"caution"` | `"basic"` | `"grey"`
|
|
311
|
-
- `icon` — optional icon component (use 12px icons)
|
|
312
|
-
- `onDismiss` — dismiss button callback
|
|
313
|
-
- `required` — boolean, shows asterisk
|
|
314
|
-
|
|
315
|
-
## Key File Paths
|
|
316
|
-
|
|
317
|
-
- `@persona/design-system/components/ConfigFormGroup/ConfigFormGroup.tsx`
|
|
318
|
-
- `@persona/design-system/components/FormField/FormField.tsx`
|
|
319
|
-
- `@persona/design-system/components/Input/Input.tsx`
|
|
320
|
-
- `@persona/design-system/components/TextArea/TextArea.tsx`
|
|
321
|
-
- `@persona/design-system/components/ListBox/ListBox.tsx`
|
|
322
|
-
- `@persona/design-system/components/TableBox/TableBox.tsx`
|
|
323
|
-
- `@persona/design-system/components/FormField/TableBoxField.tsx`
|
|
324
|
-
- `@persona/design-system/components/CardV2/Card.tsx`
|
|
325
|
-
- `@persona/design-system/components/Stack/Stack.tsx`
|
|
326
|
-
- `@persona/design-system/components/Text/` (Heading, Paragraph, Label)
|
|
327
|
-
- `@persona/design-system/components/Sticker/Sticker.tsx`
|
|
328
|
-
- `@persona/design-system/components/Modal/Modal.tsx`
|
|
329
|
-
- `@persona/design-system/components/Popover/Popover.tsx`
|
|
330
|
-
- `@persona/design-system/utils/testing.tsx`
|
|
331
|
-
- `@persona/design-system/components/DataTable/`
|