@persona/design-system 0.1.8 → 0.2.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 +33 -0
- package/README.md +20 -1
- package/dist/{Action-CVtzREhU.d.mts → Action-B25g4O9p.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-DortWowZ.mjs → Badge-Bd_k492g.mjs} +2 -2
- package/dist/{Badge-DortWowZ.mjs.map → Badge-Bd_k492g.mjs.map} +1 -1
- package/dist/Banner.d.mts +1 -1
- package/dist/BooleanValueControl.d.mts +1 -1
- package/dist/{Breadcrumb-lziQ1FX9.d.mts → Breadcrumb-DEwZFJHF.d.mts} +10 -2
- package/dist/Breadcrumb.d.mts +1 -1
- package/dist/{Breadcrumbs-DJ5qqqRD.d.mts → Breadcrumbs-0e_3v9FF.d.mts} +2 -2
- package/dist/{Breadcrumbs-CDZ_Mrcg.mjs → Breadcrumbs-C9udlH48.mjs} +44 -27
- package/dist/Breadcrumbs-C9udlH48.mjs.map +1 -0
- package/dist/Breadcrumbs.d.mts +1 -1
- package/dist/{Button-9p469xA1.d.mts → Button-KCl4uRtU.d.mts} +6 -6
- package/dist/Button.d.mts +1 -1
- package/dist/ButtonGroup.d.mts +1 -1
- package/dist/Calendar.d.mts +1 -1
- package/dist/CalendarBase.d.mts +1 -1
- package/dist/{Card-CqnG--CU.d.mts → Card-8DuhHQIk.d.mts} +4 -4
- package/dist/{Card-BMCB9eFC.mjs → Card-CLTkZLKr.mjs} +4 -4
- package/dist/{Card-BMCB9eFC.mjs.map → Card-CLTkZLKr.mjs.map} +1 -1
- package/dist/Card.d.mts +1 -1
- package/dist/Card2.d.mts +2 -2
- package/dist/{CardV2-C9z0Hr-c.mjs → CardV2-_GfXFd3d.mjs} +16 -16
- package/dist/{CardV2-C9z0Hr-c.mjs.map → CardV2-_GfXFd3d.mjs.map} +1 -1
- package/dist/{Checkbox-Bm8exUfH.d.mts → Checkbox-Bmm-r5ei.d.mts} +1 -1
- package/dist/{Checkbox-B0bjZbji.mjs → Checkbox-D77Rg7La.mjs} +7 -7
- package/dist/{Checkbox-B0bjZbji.mjs.map → Checkbox-D77Rg7La.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-BdqU5WLG.mjs → Combobox-BzqlrMK0.mjs} +62 -32
- package/dist/Combobox-BzqlrMK0.mjs.map +1 -0
- package/dist/{Combobox-C99xluaM.d.mts → Combobox-DVI8PoKx.d.mts} +3 -3
- package/dist/Combobox.d.mts +2 -2
- package/dist/{ComboboxBase-BsY7CYoB.d.mts → ComboboxBase-B8evOZpf.d.mts} +13 -8
- package/dist/ComboboxBase.d.mts +1 -1
- package/dist/{ComboboxMultiSelect-dNuETspL.d.mts → ComboboxMultiSelect-KJarhRm4.d.mts} +2 -2
- package/dist/ComboboxMultiSelect.d.mts +1 -1
- package/dist/{ComboboxSingleSelect-C8KvIJ43.d.mts → ComboboxSingleSelect-CcIGaphR.d.mts} +4 -4
- package/dist/ComboboxSingleSelect.d.mts +1 -1
- package/dist/{CompactBar-CXqlVKy7.d.mts → CompactBar-DfP7Wu1l.d.mts} +3 -3
- package/dist/CompactBar.d.mts +1 -1
- package/dist/{ConfigFormGroup-yhb2jldT.mjs → ConfigFormGroup-D1Qma23p.mjs} +2 -2
- package/dist/{ConfigFormGroup-yhb2jldT.mjs.map → ConfigFormGroup-D1Qma23p.mjs.map} +1 -1
- package/dist/{ControlBar-tOCQnbAl.d.mts → ControlBar-DYrjBDzu.d.mts} +2 -2
- package/dist/ControlBar.d.mts +1 -1
- package/dist/DataTable.d.mts +13 -4
- package/dist/DateField.d.mts +1 -1
- package/dist/{DatePicker-DY1YA_Fu.mjs → DatePicker-CK2D9jvG.mjs} +24 -24
- package/dist/DatePicker-CK2D9jvG.mjs.map +1 -0
- package/dist/DatePicker.d.mts +1 -1
- package/dist/DateRangePicker.d.mts +2 -1
- package/dist/DateValueControl.d.mts +1 -1
- package/dist/{DropdownButton-DKLjJylQ.mjs → DropdownButton-CaM0itat.mjs} +3 -3
- package/dist/{DropdownButton-DKLjJylQ.mjs.map → DropdownButton-CaM0itat.mjs.map} +1 -1
- package/dist/DropdownButton.d.mts +2 -2
- package/dist/{DropdownMenu-DGYexb7s.mjs → DropdownMenu-B4f3LNoW.mjs} +3 -3
- package/dist/{DropdownMenu-DGYexb7s.mjs.map → DropdownMenu-B4f3LNoW.mjs.map} +1 -1
- package/dist/{DropdownMenu-CVPanvKA.d.mts → DropdownMenu-Bgho2AsJ.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-OX60T3hr.d.cts → FieldRegistry-COyIA4VU.d.mts} +2 -2
- package/dist/FieldRegistry.d.mts +1 -1
- package/dist/{FilterBar-D3LiIy1-.d.mts → FilterBar-CS2YjiTr.d.mts} +8 -5
- 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 +13 -3
- package/dist/FloatValueControl.d.mts +1 -1
- package/dist/{FormControl-B28qa7aQ.mjs → FormControl-CFYlkv7E.mjs} +3 -3
- package/dist/{FormControl-B28qa7aQ.mjs.map → FormControl-CFYlkv7E.mjs.map} +1 -1
- package/dist/{FormControl-DH3bgqaB.d.mts → FormControl-iPeOOlFb.d.mts} +4 -4
- package/dist/FormControl.d.mts +1 -1
- package/dist/FormControlLabel.d.mts +2 -2
- package/dist/{FormField-PeYYRO4s.mjs → FormField-Bol8gzNt.mjs} +25 -22
- package/dist/FormField-Bol8gzNt.mjs.map +1 -0
- package/dist/{FormField-BugkBvN4.d.mts → FormField-BruK7Des.d.mts} +2 -2
- package/dist/FormField.d.mts +1 -1
- package/dist/{Header-CDTYK1XJ.d.mts → Header-BxTdWg0Q.d.mts} +2 -2
- package/dist/Header.d.mts +1 -1
- package/dist/{HelperTooltip-B7Ysh8B3.d.mts → HelperTooltip-Z5NdrLCT.d.mts} +3 -3
- package/dist/HelperTooltip.d.mts +1 -1
- package/dist/{HoverCopyableField-ClXBg_ld.mjs → HoverCopyableField-C8AdtVrT.mjs} +7 -7
- package/dist/{HoverCopyableField-ClXBg_ld.mjs.map → HoverCopyableField-C8AdtVrT.mjs.map} +1 -1
- package/dist/HoverCopyableField.d.mts +1 -1
- package/dist/{IconButton-CIWiEsS-.mjs → IconButton-Bi4kdsbV.mjs} +9 -9
- package/dist/{IconButton-CIWiEsS-.mjs.map → IconButton-Bi4kdsbV.mjs.map} +1 -1
- package/dist/{IconButton-BSES_-6g.d.mts → IconButton-BycIGS3p.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-BM0DzWEf.d.cts → Input-CEcoDtTu.d.mts} +5 -5
- package/dist/{Input-BFI_e7aU.mjs → Input-CSOxMzlt.mjs} +4 -4
- package/dist/Input-CSOxMzlt.mjs.map +1 -0
- package/dist/Input.d.mts +1 -1
- package/dist/{InputProps-CoVNpQSj.d.cts → InputProps-Buxtnz77.d.mts} +2 -2
- package/dist/InputProps.d.mts +1 -1
- package/dist/IntegerValueControl.d.mts +1 -1
- package/dist/LayoutLoadingShimmer.d.mts +1 -1
- package/dist/Link.d.mts +1 -1
- package/dist/{ListBox-BwID8jpk.mjs → ListBox-CSMVAgHm.mjs} +20 -14
- package/dist/ListBox-CSMVAgHm.mjs.map +1 -0
- package/dist/{ListBox-_fcSPynx.d.mts → ListBox-CajNIX9P.d.mts} +10 -5
- package/dist/ListBox.d.mts +1 -1
- package/dist/ListBoxField.d.mts +3 -3
- package/dist/LoadingShimmer.d.mts +2 -2
- package/dist/{LogicRow-BtCKGX_j.d.mts → LogicRow-DK1NcP2a.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-CUp_9HgC.d.mts → Menu-BLtjpLst.d.mts} +4 -4
- package/dist/{Menu-CPYXo61N.mjs → Menu-DDXR9uHy.mjs} +6 -6
- package/dist/{Menu-CPYXo61N.mjs.map → Menu-DDXR9uHy.mjs.map} +1 -1
- package/dist/Menu.d.mts +1 -1
- package/dist/{MiddleTruncatedText-GXI-CPvs.mjs → MiddleTruncatedText-DjsUk8HM.mjs} +4 -4
- package/dist/{MiddleTruncatedText-GXI-CPvs.mjs.map → MiddleTruncatedText-DjsUk8HM.mjs.map} +1 -1
- package/dist/Modal.d.mts +3 -3
- package/dist/{PageHeader-D-6W61E_.mjs → PageHeader-BI2gxol5.mjs} +6 -5
- package/dist/PageHeader-BI2gxol5.mjs.map +1 -0
- package/dist/PageHeader.d.mts +9 -4
- package/dist/PageLayout.d.mts +16 -0
- 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-ztqhywAP.mjs → Pagination-DiaJX5Da.mjs} +8 -8
- package/dist/{Pagination-ztqhywAP.mjs.map → Pagination-DiaJX5Da.mjs.map} +1 -1
- package/dist/Pagination.d.mts +1 -1
- package/dist/{Pii-DrrtEz7U.mjs → Pii-CSBV5Is7.mjs} +2 -2
- package/dist/{Pii-DrrtEz7U.mjs.map → Pii-CSBV5Is7.mjs.map} +1 -1
- package/dist/Pii.d.mts +1 -1
- package/dist/PillShell.d.mts +1 -1
- package/dist/{Popover-BkDpDdaO.mjs → Popover-5y0p85Sw.mjs} +6 -6
- package/dist/{Popover-BkDpDdaO.mjs.map → Popover-5y0p85Sw.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-C5jpj6Rp.d.cts → PseudoClassProps-CcSlKNev.d.mts} +1 -1
- package/dist/PseudoClassProps.d.mts +1 -1
- package/dist/{Radio-CSX2eO-O.mjs → Radio-aMjdUp4K.mjs} +3 -3
- package/dist/{Radio-CSX2eO-O.mjs.map → Radio-aMjdUp4K.mjs.map} +1 -1
- package/dist/{RadioGroup-CnK0opBd.mjs → RadioGroup-BpoKyoi3.mjs} +3 -3
- package/dist/{RadioGroup-CnK0opBd.mjs.map → RadioGroup-BpoKyoi3.mjs.map} +1 -1
- package/dist/{RadioGroup-DKqbSfju.d.mts → RadioGroup-Xn46ovrV.d.mts} +1 -1
- package/dist/RadioGroup.d.mts +1 -1
- package/dist/RangeCalendar.d.mts +3 -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-Bp2yjaE1.d.mts → SearchInput-Try11aJD.d.mts} +10 -3
- package/dist/SearchInput.d.mts +1 -1
- package/dist/Section.d.mts +1 -1
- package/dist/{SectionHeading-C6hjGdK-.d.cts → SectionHeading-BxKNuU2m.d.mts} +2 -2
- package/dist/SectionHeading.d.mts +1 -1
- package/dist/{SegmentedControl-CgDQIVll.mjs → SegmentedControl-Cgs6qlhN.mjs} +3 -3
- package/dist/{SegmentedControl-CgDQIVll.mjs.map → SegmentedControl-Cgs6qlhN.mjs.map} +1 -1
- package/dist/{SegmentedControl-DrjdUOU9.d.mts → SegmentedControl-DckAdhcD.d.mts} +2 -2
- package/dist/SegmentedControl.d.mts +1 -1
- package/dist/{Select-BH3hXMxp.d.cts → Select-COT4bkPb.d.mts} +5 -5
- package/dist/{Select-cPEORy70.mjs → Select-CmJEiYXU.mjs} +11 -11
- package/dist/{Select-cPEORy70.mjs.map → Select-CmJEiYXU.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-Ln3KChb5.mjs} +1 -1
- package/dist/{Spacer-CJp0lwkL.mjs.map → Spacer-Ln3KChb5.mjs.map} +1 -1
- package/dist/{Spinner-BEPF42RW.mjs → Spinner-BXfYWjC_.mjs} +2 -2
- package/dist/{Spinner-BEPF42RW.mjs.map → Spinner-BXfYWjC_.mjs.map} +1 -1
- package/dist/{Stack-CkV7k7TE.d.mts → Stack-DHaK1-dw.d.mts} +2 -2
- package/dist/{Stack-Bl54WmhY.mjs → Stack-ckRN7LrP.mjs} +1 -1
- package/dist/{Stack-Bl54WmhY.mjs.map → Stack-ckRN7LrP.mjs.map} +1 -1
- package/dist/Stack.d.mts +1 -1
- package/dist/StatusIndicator.d.mts +1 -1
- package/dist/{Sticker-DbqKLe33.mjs → Sticker-BOlAy2TE.mjs} +5 -5
- package/dist/{Sticker-DbqKLe33.mjs.map → Sticker-BOlAy2TE.mjs.map} +1 -1
- package/dist/{Sticker-Bs25ISz7.d.mts → Sticker-C8rvpu7M.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 +15 -6
- package/dist/{TabBar-zSA8kyE6.mjs → TabBar-DX1Spi6D.mjs} +18 -12
- package/dist/TabBar-DX1Spi6D.mjs.map +1 -0
- package/dist/TabBarIconButton.d.mts +2 -2
- package/dist/{Table-DXqyNohc.d.cts → Table-8jXlKYLy.d.mts} +1 -1
- package/dist/{Table-D8IcpACv.mjs → Table-BnYZVCLj.mjs} +12 -10
- package/dist/{Table-D8IcpACv.mjs.map → Table-BnYZVCLj.mjs.map} +1 -1
- package/dist/Table.d.mts +1 -1
- package/dist/{TableBody-CrDNMyT8.d.mts → TableBody-ByEcFueE.d.mts} +1 -1
- package/dist/TableBody.d.mts +1 -1
- package/dist/{TableBox-luasMC73.mjs → TableBox-BC5l3UMT.mjs} +145 -84
- package/dist/TableBox-BC5l3UMT.mjs.map +1 -0
- package/dist/TableBox.d.mts +2 -2
- package/dist/{TableBoxCell-By1xE6_Q.d.mts → TableBoxCell-CWh_riC8.d.mts} +25 -11
- package/dist/TableBoxCell.d.mts +1 -1
- package/dist/TableBoxField.d.mts +8 -5
- package/dist/{TableBoxRow-CsRPRPQ-.d.mts → TableBoxRow-JnJXVqMr.d.mts} +4 -4
- package/dist/TableBoxRow.d.mts +1 -1
- package/dist/{TableBoxRowActions-DMYOI8Do.d.mts → TableBoxRowActions-CfEE1r4C.d.mts} +2 -2
- package/dist/TableBoxRowActions.d.mts +1 -1
- package/dist/TableCell.d.mts +1 -1
- package/dist/{TableControls-DHMs7o58.mjs → TableControls-51NYgFvI.mjs} +133 -61
- package/dist/TableControls-51NYgFvI.mjs.map +1 -0
- package/dist/{TableControls-BehR7CKS.d.mts → TableControls-DscP6fyt.d.mts} +4 -4
- package/dist/TableControls.d.mts +1 -1
- package/dist/{TableControlsContext-DAZx6Rrj.d.cts → TableControlsContext-BeJ7GHPN.d.mts} +2 -2
- package/dist/TableControlsContext.d.mts +1 -1
- package/dist/{TableHead-Ch4Ho3LW.d.cts → TableHead-g3afLl5B.d.mts} +1 -1
- package/dist/TableHead.d.mts +1 -1
- package/dist/{TableHeaderCell-Crsa2R2g.d.cts → TableHeaderCell-CWTMf2Fe.d.mts} +1 -1
- package/dist/TableHeaderCell.d.mts +1 -1
- package/dist/{TableLayout-nwy094C_.d.mts → TableLayout-hPlVO3dD.d.mts} +7 -1
- package/dist/TableLayout.d.mts +1 -1
- package/dist/{TableRow-BvS4yjo6.d.mts → TableRow-lvjbVccA.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-Ccxtk5dA.d.mts} +2 -2
- package/dist/TableViewConfigurationDropdown.d.mts +1 -1
- package/dist/{components/TechnicalSticker/index.cjs → TechnicalSticker-D7viw4H5.mjs} +95 -68
- package/dist/TechnicalSticker-D7viw4H5.mjs.map +1 -0
- package/dist/TechnicalSticker.d.mts +7 -1
- package/dist/{Text-DNPbAuUG.d.mts → Text-CEisq2at.d.mts} +4 -4
- package/dist/{Text-RcEfNFLx.mjs → Text-hEoPeOc9.mjs} +1 -1
- package/dist/{Text-RcEfNFLx.mjs.map → Text-hEoPeOc9.mjs.map} +1 -1
- package/dist/Text.d.mts +1 -1
- package/dist/{TextArea-B89wtTsF.d.mts → TextArea-DiKEhpfD.d.mts} +2 -2
- package/dist/{TextArea-NCLsW-03.mjs → TextArea-DjmlpCdJ.mjs} +2 -2
- package/dist/{TextArea-NCLsW-03.mjs.map → TextArea-DjmlpCdJ.mjs.map} +1 -1
- package/dist/TextArea.d.mts +1 -1
- package/dist/{TextUnderlineTooltip-5-0D8s4z.d.mts → TextUnderlineTooltip-BKE4peKI.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-Bie9zCem.mjs → Toggle-D1rEjYoN.mjs} +5 -5
- package/dist/{Toggle-Bie9zCem.mjs.map → Toggle-D1rEjYoN.mjs.map} +1 -1
- package/dist/{Toggle-DzYLgxGk.d.mts → Toggle-oukvAn6V.d.mts} +1 -1
- package/dist/Toggle.d.mts +1 -1
- package/dist/{Tooltip-C6AR1xT-.mjs → Tooltip-B-DDlRMw.mjs} +4 -4
- package/dist/{Tooltip-C6AR1xT-.mjs.map → Tooltip-B-DDlRMw.mjs.map} +1 -1
- package/dist/{Tooltip-CUC-JuRL.d.mts → Tooltip-DZVPqxai.d.mts} +3 -3
- 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 +2 -2
- 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/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 +1 -1
- 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 +28 -26
- package/dist/components/DataTable/index.mjs.map +1 -1
- package/dist/components/DataTable/types.d.mts +2 -2
- 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/FormControl/index.d.mts +2 -2
- package/dist/components/FormControl/index.mjs +1 -1
- package/dist/components/FormField/index.d.mts +3 -3
- package/dist/components/FormField/index.mjs +2 -2
- package/dist/components/HoverCopyableField/index.mjs +1 -1
- package/dist/components/ImageTile/index.mjs +8 -8
- package/dist/components/Input/index.d.mts +1 -1
- package/dist/components/Input/index.mjs +1 -1
- package/dist/components/Link/index.mjs +3 -3
- package/dist/components/ListBox/index.d.mts +3 -3
- package/dist/components/ListBox/index.mjs +1 -1
- package/dist/components/MaskedInput/index.mjs +2 -2
- package/dist/components/Menu/index.d.mts +1 -1
- package/dist/components/Menu/index.mjs +1 -1
- package/dist/components/Modal/index.mjs +7 -7
- 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 -1
- package/dist/components/ProgressIndicator/index.mjs +1 -1
- 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 +3 -3
- 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 +1 -1
- 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 +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 -231
- 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 +4 -4
- package/dist/components/Toast/index.mjs +4 -4
- 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-B6c8S033.d.cts → constants-bA9kCzRQ.d.mts} +1 -1
- package/dist/constants.d.mts +1 -1
- package/dist/containers.d.mts +1 -1
- package/dist/display.d.mts +1 -1
- package/dist/fieldPickerOptions.d.mts +2 -2
- package/dist/{filter-size-context-Blw6Sd69.d.mts → filter-size-context-C1TvrE_O.d.mts} +2 -2
- package/dist/filter-size-context.d.mts +1 -1
- package/dist/helpers.d.mts +1 -1
- package/dist/{index-4_B2yRzD.d.mts → index-BC4edEsD.d.mts} +2 -2
- package/dist/{index-IlwGkCAe2.d.mts → index-DLV1eMsr.d.mts} +6 -5
- package/dist/{index-DDbjWdk0.d.mts → index-Doptc4HI.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-Bv5fKt5J.d.mts → input-D3Qd6dI8.d.mts} +3 -3
- package/dist/inputFields.d.mts +11 -11
- package/dist/lib/MiddleTruncatedText.mjs +1 -1
- package/dist/lib/PDSProvider.d.mts +1 -1
- package/dist/lib/TruncatedText.d.mts +1 -1
- package/dist/lib/TruncatedText.mjs +1 -1
- package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
- package/dist/lib/TruncatedTextWithTooltip.mjs +2 -2
- package/dist/lib/message.d.mts +1 -1
- package/dist/lib/pseudoClass.d.mts +1 -1
- package/dist/lib/useScrollOverflow.d.mts +7 -0
- package/dist/lib/useScrollOverflow.mjs +22 -1
- package/dist/lib/useScrollOverflow.mjs.map +1 -1
- package/dist/{message-BEgtEjQC.d.cts → message-CsK3sIq0.d.mts} +1 -1
- package/dist/mixins/focus.d.mts +1 -1
- package/dist/mixins/hoverable.d.mts +2 -2
- package/dist/mixins/hoverable.mjs +1 -1
- package/dist/mixins/input.d.mts +1 -1
- package/dist/mixins/input.mjs +1 -1
- package/dist/mixins/menuItem.d.mts +2 -2
- package/dist/mixins/text.d.mts +1 -1
- package/dist/{operators-1qE2GpC7.d.cts → operators-C_xPzItk.d.mts} +2 -2
- package/dist/operators.d.mts +1 -1
- package/dist/{layouts → patterns}/LayoutLoadingShimmer/index.mjs +6 -6
- package/dist/patterns/LayoutLoadingShimmer/index.mjs.map +1 -0
- package/dist/patterns/PageLayout/index.d.mts +2 -0
- package/dist/patterns/PageLayout/index.mjs +35 -0
- package/dist/patterns/PageLayout/index.mjs.map +1 -0
- package/dist/{text-B21s9mRZ.d.mts → text-BaQdW8qa.d.mts} +1 -1
- package/dist/{theme-BzBpJXhO.d.mts → theme-D9Y6NOzb.d.mts} +1 -1
- package/dist/theme.d.mts +1 -1
- package/dist/{types-CCvc590y.d.cts → types-BKEwt0uq.d.mts} +2 -2
- package/dist/{types-DEh_pXgS.d.mts → types-CjHuZoVJ.d.mts} +1 -1
- package/dist/{types-CkiXVJeR.d.cts → types-DVsBRqjZ.d.mts} +1 -1
- package/dist/{types-B_HHNlia.d.cts → types-mb3woqzE.d.mts} +6 -7
- 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-DCQghouq.d.mts → useFilterStateV2-CGzRyv0i.d.mts} +3 -3
- package/dist/useFilterStateV2.d.mts +1 -1
- package/dist/{useFormField-D8mLsiQc.d.mts → useFormField-DhwEi45-.d.mts} +2 -2
- package/dist/useFormField.d.mts +1 -1
- package/dist/{useTableBoxDragAndDrop-DnbUToce.d.cts → useTableBoxDragAndDrop-CsnN52lx.d.mts} +1 -1
- package/dist/useTableBoxDragAndDrop.d.mts +1 -1
- package/dist/{useToggle-Bo3yd14Y.mjs → useToggle-3k3EkV8V.mjs} +1 -1
- package/dist/{useToggle-Bo3yd14Y.mjs.map → useToggle-3k3EkV8V.mjs.map} +1 -1
- package/dist/useTruncation.d.mts +1 -1
- package/dist/{utilities-mSlaTrjB.d.cts → utilities-DnSIlR1i.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/{validation-CJymv6JE.d.cts → validation-BdP2vajF.d.mts} +3 -3
- package/dist/validation.d.mts +1 -1
- package/dist/{value-control-resolver-CE-bqdAl.d.mts → value-control-resolver-CiGEHQAc.d.mts} +2 -2
- package/dist/value-control-resolver.d.mts +1 -1
- package/llms.txt +43 -0
- package/package.json +206 -747
- package/skills/ui-authoring/COMPONENTS.md +331 -0
- package/skills/ui-authoring/EXAMPLES.md +370 -0
- package/skills/ui-authoring/REFERENCE.md +293 -0
- package/skills/ui-authoring/SKILL.md +263 -0
- package/dist/Action-E90Wvqmc.d.cts +0 -35
- package/dist/Action.d.cts +0 -2
- package/dist/Attribute.d.cts +0 -107
- package/dist/AttributeGrid.d.cts +0 -40
- package/dist/Badge-ADPloFsd.cjs +0 -38
- package/dist/Badge-ADPloFsd.cjs.map +0 -1
- package/dist/Badge.d.cts +0 -25
- package/dist/Banner.d.cts +0 -48
- package/dist/Breadcrumb-VH-Mwo-M.d.cts +0 -44
- package/dist/Breadcrumb.d.cts +0 -2
- package/dist/Breadcrumbs-BBREROrw.d.cts +0 -26
- package/dist/Breadcrumbs-CDZ_Mrcg.mjs.map +0 -1
- package/dist/Breadcrumbs-tR49JqAS.cjs +0 -295
- package/dist/Breadcrumbs-tR49JqAS.cjs.map +0 -1
- package/dist/Breadcrumbs.d.cts +0 -2
- package/dist/Button-C_3p5Xfi.d.cts +0 -101
- package/dist/Button.d.cts +0 -2
- package/dist/ButtonGroup.d.cts +0 -20
- package/dist/Calendar.d.cts +0 -11
- package/dist/Card-CJPEmUvg.d.cts +0 -52
- package/dist/Card-Csz-PxX0.cjs +0 -248
- package/dist/Card-Csz-PxX0.cjs.map +0 -1
- package/dist/Card.d.cts +0 -2
- package/dist/Card2.d.cts +0 -95
- package/dist/CardV2-DJXgFomd.cjs +0 -419
- package/dist/CardV2-DJXgFomd.cjs.map +0 -1
- package/dist/Checkbox-CmCujC1W.cjs +0 -183
- package/dist/Checkbox-CmCujC1W.cjs.map +0 -1
- package/dist/Checkbox-Cr8ifm10.d.cts +0 -46
- package/dist/Checkbox.d.cts +0 -2
- package/dist/CheckboxGroupField.d.cts +0 -24
- package/dist/Combobox-BdqU5WLG.mjs.map +0 -1
- package/dist/Combobox-COXvmxlM.cjs +0 -1877
- package/dist/Combobox-COXvmxlM.cjs.map +0 -1
- package/dist/Combobox-DBWMHwUt.d.cts +0 -11
- package/dist/Combobox.d.cts +0 -3
- package/dist/ComboboxBase-zZ3tE-dH.d.cts +0 -361
- package/dist/ComboboxBase.d.cts +0 -2
- package/dist/ComboboxMultiSelect-ioB4Jx7_.d.cts +0 -47
- package/dist/ComboboxMultiSelect.d.cts +0 -2
- package/dist/ComboboxSingleSelect-Fn80tdhz.d.cts +0 -35
- package/dist/ComboboxSingleSelect.d.cts +0 -2
- package/dist/CompactBar-BEAK55kh.d.cts +0 -21
- package/dist/CompactBar.d.cts +0 -2
- package/dist/ConfigFormGroup-m5YdVa9n.cjs +0 -35
- package/dist/ConfigFormGroup-m5YdVa9n.cjs.map +0 -1
- package/dist/ConfigFormGroup.d.cts +0 -7
- package/dist/ControlBar-D8CirAyZ.d.cts +0 -151
- package/dist/ControlBar.d.cts +0 -2
- package/dist/DataTable.d.cts +0 -372
- package/dist/DateField.d.cts +0 -23
- package/dist/DatePicker-BlCgFb7g.cjs +0 -948
- package/dist/DatePicker-BlCgFb7g.cjs.map +0 -1
- package/dist/DatePicker-DY1YA_Fu.mjs.map +0 -1
- package/dist/DatePicker.d.cts +0 -19
- package/dist/DateRangePicker.d.cts +0 -52
- package/dist/DropdownButton-Dl7IEzAc.cjs +0 -32
- package/dist/DropdownButton-Dl7IEzAc.cjs.map +0 -1
- package/dist/DropdownButton.d.cts +0 -26
- package/dist/DropdownMenu-DnlQqTjs.cjs +0 -74
- package/dist/DropdownMenu-DnlQqTjs.cjs.map +0 -1
- package/dist/DropdownMenu-FkiManPP.d.cts +0 -75
- package/dist/DropdownMenu.d.cts +0 -2
- package/dist/ErrorProps-Dxqb4gw_.d.cts +0 -8
- package/dist/ErrorProps.d.cts +0 -2
- package/dist/FieldRegistry-rqSkjchY.d.mts +0 -122
- package/dist/FieldRegistry.d.cts +0 -2
- package/dist/FilterBar-YzOh02f9.d.cts +0 -103
- package/dist/FilterBar.d.cts +0 -2
- package/dist/FloatingActionBar.d.cts +0 -40
- package/dist/FormControl-DFp_qcW1.d.cts +0 -60
- package/dist/FormControl-MkBXuUF6.cjs +0 -212
- package/dist/FormControl-MkBXuUF6.cjs.map +0 -1
- package/dist/FormControl.d.cts +0 -2
- package/dist/FormField-D3XhxTMg.cjs +0 -550
- package/dist/FormField-D3XhxTMg.cjs.map +0 -1
- package/dist/FormField-PeYYRO4s.mjs.map +0 -1
- package/dist/FormField-idNLw5PW.d.cts +0 -69
- package/dist/FormField.d.cts +0 -2
- package/dist/Header-C-WhPOin.d.cts +0 -35
- package/dist/Header.d.cts +0 -2
- package/dist/HelperTooltip-T-sTGGLD.d.cts +0 -20
- package/dist/HelperTooltip.d.cts +0 -2
- package/dist/HoverCopyableField-CRkM7o4B.cjs +0 -110
- package/dist/HoverCopyableField-CRkM7o4B.cjs.map +0 -1
- package/dist/HoverCopyableField.d.cts +0 -16
- package/dist/IconButton-ZcyTFjPn.d.cts +0 -24
- package/dist/IconButton-nlgjJQCS.cjs +0 -372
- package/dist/IconButton-nlgjJQCS.cjs.map +0 -1
- package/dist/IconButton.d.cts +0 -2
- package/dist/ImageTile.d.cts +0 -60
- package/dist/Input-BFI_e7aU.mjs.map +0 -1
- package/dist/Input-BPClVzwD.d.mts +0 -65
- package/dist/Input-OJPQ07TW.cjs +0 -209
- package/dist/Input-OJPQ07TW.cjs.map +0 -1
- package/dist/Input.d.cts +0 -2
- package/dist/InputProps-BnjxrdWQ.d.mts +0 -16
- package/dist/InputProps.d.cts +0 -2
- package/dist/Inserter.d.cts +0 -12
- package/dist/LayoutLoadingShimmer.d.cts +0 -20
- package/dist/Link.d.cts +0 -43
- package/dist/ListBox-BP1eaG7L.cjs +0 -448
- package/dist/ListBox-BP1eaG7L.cjs.map +0 -1
- package/dist/ListBox-BwID8jpk.mjs.map +0 -1
- package/dist/ListBox-QaeRQBSC.d.cts +0 -138
- package/dist/ListBox.d.cts +0 -2
- package/dist/ListBoxField.d.cts +0 -46
- package/dist/LoadingShimmer-Dx6ncVUV.cjs +0 -92
- package/dist/LoadingShimmer-Dx6ncVUV.cjs.map +0 -1
- package/dist/LoadingShimmer.d.cts +0 -38
- package/dist/LogicRow-C6lrFIq0.d.cts +0 -40
- package/dist/LogicRow.d.cts +0 -2
- package/dist/MaskedInput.d.cts +0 -10
- package/dist/MatchHighlight.d.cts +0 -11
- package/dist/Menu-fUnbIYr5.d.cts +0 -70
- package/dist/Menu-t2q8NrV0.cjs +0 -217
- package/dist/Menu-t2q8NrV0.cjs.map +0 -1
- package/dist/Menu.d.cts +0 -2
- package/dist/MiddleTruncatedText-CO76xIqP.cjs +0 -178
- package/dist/MiddleTruncatedText-CO76xIqP.cjs.map +0 -1
- package/dist/Modal.d.cts +0 -146
- package/dist/PageHeader-CUDnarkt.cjs +0 -77
- package/dist/PageHeader-CUDnarkt.cjs.map +0 -1
- package/dist/PageHeader-D-6W61E_.mjs.map +0 -1
- package/dist/PageHeader.d.cts +0 -35
- package/dist/PageSelector-CNnVp3Al.d.cts +0 -30
- package/dist/PageSelector.d.cts +0 -2
- package/dist/Pagination-2Yo1vRJZ.cjs +0 -236
- package/dist/Pagination-2Yo1vRJZ.cjs.map +0 -1
- package/dist/Pagination-D04tn-tf.d.cts +0 -39
- package/dist/Pagination.d.cts +0 -2
- package/dist/Pii-DHTb3ewO.cjs +0 -25
- package/dist/Pii-DHTb3ewO.cjs.map +0 -1
- package/dist/Pii.d.cts +0 -16
- package/dist/Popover-BzgMAhsX.cjs +0 -168
- package/dist/Popover-BzgMAhsX.cjs.map +0 -1
- package/dist/Popover.d.cts +0 -90
- package/dist/ProgressBar.d.cts +0 -83
- package/dist/ProgressIndicator.d.cts +0 -64
- package/dist/PseudoClassProps-DLxPxo7T.d.mts +0 -12
- package/dist/PseudoClassProps.d.cts +0 -2
- package/dist/Radio-BrTzy7-C.cjs +0 -154
- package/dist/Radio-BrTzy7-C.cjs.map +0 -1
- package/dist/Radio.d.cts +0 -21
- package/dist/RadioGroup-CriF2InQ.cjs +0 -57
- package/dist/RadioGroup-CriF2InQ.cjs.map +0 -1
- package/dist/RadioGroup-XYWjprsv.d.cts +0 -21
- package/dist/RadioGroup.d.cts +0 -2
- package/dist/SearchInput-CTI59-NW.d.cts +0 -46
- package/dist/SearchInput.d.cts +0 -2
- package/dist/SectionHeading-Q-rx2LEd.d.mts +0 -71
- package/dist/SectionHeading.d.cts +0 -2
- package/dist/SegmentedControl-C2XZF0ys.cjs +0 -125
- package/dist/SegmentedControl-C2XZF0ys.cjs.map +0 -1
- package/dist/SegmentedControl-nHIK1ZvR.d.cts +0 -59
- package/dist/SegmentedControl.d.cts +0 -2
- package/dist/Select-2KbtKawr.d.mts +0 -83
- package/dist/Select-BurtT6bN.cjs +0 -265
- package/dist/Select-BurtT6bN.cjs.map +0 -1
- package/dist/Select.d.cts +0 -2
- package/dist/Slider.d.cts +0 -51
- package/dist/SliderRHF.d.cts +0 -18
- package/dist/Spacer-B2CerL6e.cjs +0 -20
- package/dist/Spacer-B2CerL6e.cjs.map +0 -1
- package/dist/Spacer.d.cts +0 -17
- package/dist/Spinner-B6bx70yR.cjs +0 -48
- package/dist/Spinner-B6bx70yR.cjs.map +0 -1
- package/dist/Spinner.d.cts +0 -26
- package/dist/Stack-BzVkf3cz.d.cts +0 -47
- package/dist/Stack-UeifHn3c.cjs +0 -53
- package/dist/Stack-UeifHn3c.cjs.map +0 -1
- package/dist/Stack.d.cts +0 -2
- package/dist/StatusIndicator.d.cts +0 -82
- package/dist/Sticker-CI-XxUmM.d.cts +0 -68
- package/dist/Sticker-CIoseh9f.cjs +0 -244
- package/dist/Sticker-CIoseh9f.cjs.map +0 -1
- package/dist/Sticker.d.cts +0 -2
- package/dist/SwatchPicker.d.cts +0 -18
- package/dist/Tab.d.cts +0 -26
- package/dist/TabBar-PFaDNRw0.cjs +0 -298
- package/dist/TabBar-PFaDNRw0.cjs.map +0 -1
- package/dist/TabBar-zSA8kyE6.mjs.map +0 -1
- package/dist/TabBar.d.cts +0 -33
- package/dist/TabBarIconButton.d.cts +0 -10
- package/dist/Table-BNScLj9g.d.mts +0 -13
- package/dist/Table-DxLvJYWK.cjs +0 -478
- package/dist/Table-DxLvJYWK.cjs.map +0 -1
- package/dist/Table.d.cts +0 -2
- package/dist/TableBody-CxwHmdNb.d.cts +0 -9
- package/dist/TableBody.d.cts +0 -2
- package/dist/TableBox-CiuXCXyv.cjs +0 -1370
- package/dist/TableBox-CiuXCXyv.cjs.map +0 -1
- package/dist/TableBox-luasMC73.mjs.map +0 -1
- package/dist/TableBox.d.cts +0 -3
- package/dist/TableBoxCell-DIMenSwX.d.cts +0 -259
- package/dist/TableBoxCell.d.cts +0 -2
- package/dist/TableBoxField.d.cts +0 -99
- package/dist/TableBoxRow-RNQ6wJLh.d.cts +0 -86
- package/dist/TableBoxRow.d.cts +0 -2
- package/dist/TableBoxRowActions-CYpoPhYZ.d.cts +0 -57
- package/dist/TableBoxRowActions.d.cts +0 -2
- package/dist/TableCell.d.cts +0 -2
- package/dist/TableControls-BtXK7Ils.cjs +0 -3995
- package/dist/TableControls-BtXK7Ils.cjs.map +0 -1
- package/dist/TableControls-CLNF0AJG.d.cts +0 -70
- package/dist/TableControls-DHMs7o58.mjs.map +0 -1
- package/dist/TableControls.d.cts +0 -2
- package/dist/TableControlsContext-D_SBFZN1.d.mts +0 -21
- package/dist/TableControlsContext.d.cts +0 -2
- package/dist/TableHead-LxvG0e9k.d.mts +0 -12
- package/dist/TableHead.d.cts +0 -2
- package/dist/TableHeaderCell-Br8ZE3Xe.d.mts +0 -17
- package/dist/TableHeaderCell.d.cts +0 -2
- package/dist/TableLayout-Ct0kepcA.d.cts +0 -19
- package/dist/TableLayout.d.cts +0 -2
- package/dist/TableRow-DVTPqT4w.d.cts +0 -13
- package/dist/TableRow.d.cts +0 -2
- package/dist/TableTH.d.cts +0 -2
- package/dist/TableViewConfigurationDropdown-CaiOGyrU.d.cts +0 -32
- package/dist/TableViewConfigurationDropdown.d.cts +0 -2
- package/dist/TechnicalSticker.d.cts +0 -51
- package/dist/Text-CrGiWG2E.d.cts +0 -42
- package/dist/Text-G9QmYf0P.cjs +0 -95
- package/dist/Text-G9QmYf0P.cjs.map +0 -1
- package/dist/Text.d.cts +0 -2
- package/dist/TextArea-BNiipQDb.cjs +0 -40
- package/dist/TextArea-BNiipQDb.cjs.map +0 -1
- package/dist/TextArea-CHW9FKM4.d.cts +0 -10
- package/dist/TextArea.d.cts +0 -2
- package/dist/TextUnderlineTooltip-DMEyOu8C.d.cts +0 -18
- package/dist/TextUnderlineTooltip.d.cts +0 -2
- package/dist/Tile.d.cts +0 -63
- package/dist/Toast.d.cts +0 -23
- package/dist/Toggle-Ce-rF8Xp.cjs +0 -174
- package/dist/Toggle-Ce-rF8Xp.cjs.map +0 -1
- package/dist/Toggle-tbIebQWC.d.cts +0 -54
- package/dist/Toggle.d.cts +0 -2
- package/dist/Tooltip--eDrrk2r.d.cts +0 -100
- package/dist/Tooltip-olP3rdUO.cjs +0 -152
- package/dist/Tooltip-olP3rdUO.cjs.map +0 -1
- package/dist/Tooltip.d.cts +0 -2
- package/dist/TruncatedText-Dit2NJI6.d.cts +0 -18
- package/dist/chunk-CKQMccvm.cjs +0 -28
- package/dist/components/Attribute/index.cjs +0 -210
- package/dist/components/Attribute/index.cjs.map +0 -1
- package/dist/components/Attribute/index.d.cts +0 -3
- package/dist/components/Badge/index.cjs +0 -7
- package/dist/components/Badge/index.d.cts +0 -2
- package/dist/components/Banner/index.cjs +0 -99
- package/dist/components/Banner/index.cjs.map +0 -1
- package/dist/components/Banner/index.d.cts +0 -2
- package/dist/components/Breadcrumbs/index.cjs +0 -7
- package/dist/components/Breadcrumbs/index.d.cts +0 -2
- package/dist/components/Button/index.cjs +0 -11
- package/dist/components/Button/index.d.cts +0 -3
- package/dist/components/ButtonGroup/index.cjs +0 -112
- package/dist/components/ButtonGroup/index.cjs.map +0 -1
- package/dist/components/ButtonGroup/index.d.cts +0 -2
- package/dist/components/Card/index.cjs +0 -12
- package/dist/components/Card/index.d.cts +0 -3
- package/dist/components/CardV2/index.cjs +0 -7
- package/dist/components/CardV2/index.d.cts +0 -3
- package/dist/components/Checkbox/index.cjs +0 -7
- package/dist/components/Checkbox/index.d.cts +0 -2
- package/dist/components/Combobox/index.cjs +0 -9
- package/dist/components/Combobox/index.d.cts +0 -3
- package/dist/components/ConfigFormGroup/index.cjs +0 -10
- package/dist/components/ConfigFormGroup/index.d.cts +0 -3
- package/dist/components/DataTable/TableControls/index.cjs +0 -27
- package/dist/components/DataTable/TableControls/index.d.cts +0 -16
- package/dist/components/DataTable/index.cjs +0 -1434
- package/dist/components/DataTable/index.cjs.map +0 -1
- package/dist/components/DataTable/index.d.cts +0 -8
- package/dist/components/DataTable/types.cjs +0 -0
- package/dist/components/DataTable/types.d.cts +0 -159
- package/dist/components/DatePicker/index.cjs +0 -10
- package/dist/components/DatePicker/index.d.cts +0 -5
- package/dist/components/DropdownButton/index.cjs +0 -7
- package/dist/components/DropdownButton/index.d.cts +0 -2
- package/dist/components/DropdownMenu/index.cjs +0 -7
- package/dist/components/DropdownMenu/index.d.cts +0 -2
- package/dist/components/FormControl/index.cjs +0 -15
- package/dist/components/FormControl/index.d.cts +0 -3
- package/dist/components/FormField/index.cjs +0 -19
- package/dist/components/FormField/index.d.cts +0 -6
- package/dist/components/HoverCopyableField/index.cjs +0 -2
- package/dist/components/HoverCopyableField/index.d.cts +0 -2
- package/dist/components/ImageTile/index.cjs +0 -225
- package/dist/components/ImageTile/index.cjs.map +0 -1
- package/dist/components/ImageTile/index.d.cts +0 -2
- package/dist/components/Input/index.cjs +0 -14
- package/dist/components/Input/index.cjs.map +0 -1
- package/dist/components/Input/index.d.cts +0 -2
- package/dist/components/Link/index.cjs +0 -87
- package/dist/components/Link/index.cjs.map +0 -1
- package/dist/components/Link/index.d.cts +0 -2
- package/dist/components/ListBox/index.cjs +0 -8
- package/dist/components/ListBox/index.d.cts +0 -4
- package/dist/components/LoadingShimmer/index.cjs +0 -6
- package/dist/components/LoadingShimmer/index.d.cts +0 -2
- package/dist/components/MaskedInput/index.cjs +0 -29
- package/dist/components/MaskedInput/index.cjs.map +0 -1
- package/dist/components/MaskedInput/index.d.cts +0 -2
- package/dist/components/MatchHighlight/index.cjs +0 -31
- package/dist/components/MatchHighlight/index.cjs.map +0 -1
- package/dist/components/MatchHighlight/index.d.cts +0 -2
- package/dist/components/Menu/index.cjs +0 -14
- package/dist/components/Menu/index.d.cts +0 -2
- package/dist/components/Modal/index.cjs +0 -290
- package/dist/components/Modal/index.cjs.map +0 -1
- package/dist/components/Modal/index.d.cts +0 -2
- package/dist/components/PageHeader/index.cjs +0 -7
- package/dist/components/PageHeader/index.d.cts +0 -2
- package/dist/components/Pagination/index.cjs +0 -10
- package/dist/components/Pagination/index.d.cts +0 -4
- package/dist/components/Pii/index.cjs +0 -2
- package/dist/components/Pii/index.d.cts +0 -2
- package/dist/components/Popover/index.cjs +0 -12
- package/dist/components/Popover/index.d.cts +0 -2
- package/dist/components/ProgressBar/index.cjs +0 -177
- package/dist/components/ProgressBar/index.cjs.map +0 -1
- package/dist/components/ProgressBar/index.d.cts +0 -2
- package/dist/components/ProgressIndicator/index.cjs +0 -185
- package/dist/components/ProgressIndicator/index.cjs.map +0 -1
- package/dist/components/ProgressIndicator/index.d.cts +0 -2
- package/dist/components/Radio/index.cjs +0 -7
- package/dist/components/Radio/index.d.cts +0 -2
- package/dist/components/RadioGroup/index.cjs +0 -7
- package/dist/components/RadioGroup/index.d.cts +0 -2
- package/dist/components/SegmentedControl/index.cjs +0 -8
- package/dist/components/SegmentedControl/index.d.cts +0 -2
- package/dist/components/Select/index.cjs +0 -9
- package/dist/components/Select/index.d.cts +0 -2
- package/dist/components/Slider/index.cjs +0 -245
- package/dist/components/Slider/index.cjs.map +0 -1
- package/dist/components/Slider/index.d.cts +0 -3
- package/dist/components/Spacer/index.cjs +0 -2
- package/dist/components/Spacer/index.d.cts +0 -2
- package/dist/components/Spinner/index.cjs +0 -7
- package/dist/components/Spinner/index.d.cts +0 -2
- package/dist/components/Stack/index.cjs +0 -8
- package/dist/components/Stack/index.d.cts +0 -2
- package/dist/components/StatusIndicator/index.cjs +0 -224
- package/dist/components/StatusIndicator/index.cjs.map +0 -1
- package/dist/components/StatusIndicator/index.d.cts +0 -2
- package/dist/components/Sticker/index.cjs +0 -11
- package/dist/components/Sticker/index.d.cts +0 -2
- package/dist/components/SwatchPicker/index.cjs +0 -63
- package/dist/components/SwatchPicker/index.cjs.map +0 -1
- package/dist/components/SwatchPicker/index.d.cts +0 -2
- package/dist/components/TabBar/index.cjs +0 -11
- package/dist/components/TabBar/index.d.cts +0 -4
- package/dist/components/Table/index.cjs +0 -21
- package/dist/components/Table/index.d.cts +0 -8
- package/dist/components/TableBox/index.cjs +0 -7
- package/dist/components/TableBox/index.d.cts +0 -3
- package/dist/components/TechnicalSticker/index.cjs.map +0 -1
- package/dist/components/TechnicalSticker/index.d.cts +0 -2
- package/dist/components/TechnicalSticker/index.mjs.map +0 -1
- package/dist/components/Text/index.cjs +0 -8
- package/dist/components/Text/index.d.cts +0 -2
- package/dist/components/TextArea/index.cjs +0 -7
- package/dist/components/TextArea/index.d.cts +0 -2
- package/dist/components/Tile/index.cjs +0 -102
- package/dist/components/Tile/index.cjs.map +0 -1
- package/dist/components/Tile/index.d.cts +0 -2
- package/dist/components/Toast/index.cjs +0 -134
- package/dist/components/Toast/index.cjs.map +0 -1
- package/dist/components/Toast/index.d.cts +0 -2
- package/dist/components/Toggle/index.cjs +0 -7
- package/dist/components/Toggle/index.d.cts +0 -2
- package/dist/components/Tooltip/index.cjs +0 -11
- package/dist/components/Tooltip/index.d.cts +0 -4
- package/dist/constants-BASogfT_.d.mts +0 -6
- package/dist/constants.d.cts +0 -2
- package/dist/constants2.d.cts +0 -10
- package/dist/filter-size-context-CIw0Zi6r.d.cts +0 -52
- package/dist/filter-size-context.d.cts +0 -2
- package/dist/helpers.d.cts +0 -76
- package/dist/index-Bw8QVu_o.d.cts +0 -75
- package/dist/index-C9EIpBh8.d.cts +0 -7
- package/dist/index-CzItj62a.d.mts +0 -1
- package/dist/index-D-BciAtf.d.cts +0 -1
- package/dist/index-D34XP8vp.d.cts +0 -54
- package/dist/index-D4DUvwPf.d.mts +0 -1
- package/dist/index-D5tSVhTd.d.mts +0 -1
- package/dist/index-D6CnpA_r.d.cts +0 -1
- package/dist/index-D9IqtUDs.d.cts +0 -1
- package/dist/index-DFKoAoY2.d.cts +0 -1
- package/dist/index-DGsJdI5l.d.mts +0 -1
- package/dist/index-DM6vVDZD.d.mts +0 -1
- package/dist/index-DWfPppPU.d.mts +0 -1
- package/dist/index-DXJd7-2Z.d.mts +0 -1
- package/dist/index-DkrC-i1D.d.mts +0 -1
- package/dist/index-DpEKQcoR.d.cts +0 -1
- package/dist/index-DvuJXuAN.d.mts +0 -1
- package/dist/index-Iujpc9_6.d.mts +0 -1
- package/dist/index-PWQavSPf.d.mts +0 -1
- package/dist/index-_wQ5ClJU.d.cts +0 -1
- package/dist/index-dC-i2r_u.d.cts +0 -1
- package/dist/index-e6k85DKM.d.mts +0 -1
- package/dist/index-lIMqGGJz.d.mts +0 -1
- package/dist/index-sQecLSpR.d.cts +0 -1
- package/dist/index-sViox9YW.d.mts +0 -1
- package/dist/index.cjs +0 -0
- package/dist/index.d.cts +0 -2
- package/dist/index2.d.cts +0 -2
- package/dist/index3.d.cts +0 -4
- package/dist/index4.d.cts +0 -11
- package/dist/index5.d.cts +0 -1
- package/dist/input-DPB0cX2m.d.cts +0 -17
- package/dist/inputFields.d.cts +0 -83
- package/dist/intersperse-_0nQM5Rb.cjs +0 -26
- package/dist/intersperse-_0nQM5Rb.cjs.map +0 -1
- package/dist/layouts/LayoutLoadingShimmer/index.cjs +0 -139
- package/dist/layouts/LayoutLoadingShimmer/index.cjs.map +0 -1
- package/dist/layouts/LayoutLoadingShimmer/index.d.cts +0 -2
- package/dist/layouts/LayoutLoadingShimmer/index.mjs.map +0 -1
- package/dist/lib/ConfigContext.cjs +0 -15
- package/dist/lib/ConfigContext.cjs.map +0 -1
- package/dist/lib/ConfigContext.d.cts +0 -16
- package/dist/lib/GlobalStyles.cjs +0 -57
- package/dist/lib/GlobalStyles.cjs.map +0 -1
- package/dist/lib/GlobalStyles.d.cts +0 -8
- package/dist/lib/HeadlessAriaButton.cjs +0 -33
- package/dist/lib/HeadlessAriaButton.cjs.map +0 -1
- package/dist/lib/HeadlessAriaButton.d.cts +0 -12
- package/dist/lib/MiddleTruncatedText.cjs +0 -7
- package/dist/lib/MiddleTruncatedText.d.cts +0 -14
- package/dist/lib/PDSProvider.cjs +0 -13
- package/dist/lib/PDSProvider.cjs.map +0 -1
- package/dist/lib/PDSProvider.d.cts +0 -10
- package/dist/lib/TruncatedText.cjs +0 -39
- package/dist/lib/TruncatedText.cjs.map +0 -1
- package/dist/lib/TruncatedText.d.cts +0 -2
- package/dist/lib/TruncatedTextWithTooltip.cjs +0 -34
- package/dist/lib/TruncatedTextWithTooltip.cjs.map +0 -1
- package/dist/lib/TruncatedTextWithTooltip.d.cts +0 -15
- package/dist/lib/comboboxHelper.cjs +0 -46
- package/dist/lib/comboboxHelper.cjs.map +0 -1
- package/dist/lib/comboboxHelper.d.cts +0 -24
- package/dist/lib/copyTextToClipboard.cjs +0 -33
- package/dist/lib/copyTextToClipboard.cjs.map +0 -1
- package/dist/lib/copyTextToClipboard.d.cts +0 -4
- package/dist/lib/datePickerHelper.cjs +0 -36
- package/dist/lib/datePickerHelper.cjs.map +0 -1
- package/dist/lib/datePickerHelper.d.cts +0 -19
- package/dist/lib/message.cjs +0 -12
- package/dist/lib/message.cjs.map +0 -1
- package/dist/lib/message.d.cts +0 -2
- package/dist/lib/pseudoClass.cjs +0 -31
- package/dist/lib/pseudoClass.cjs.map +0 -1
- package/dist/lib/pseudoClass.d.cts +0 -45
- package/dist/lib/reorderItems.cjs +0 -38
- package/dist/lib/reorderItems.cjs.map +0 -1
- package/dist/lib/reorderItems.d.cts +0 -26
- package/dist/lib/selectHelper.cjs +0 -22
- package/dist/lib/selectHelper.cjs.map +0 -1
- package/dist/lib/selectHelper.d.cts +0 -14
- package/dist/lib/useControlled.cjs +0 -20
- package/dist/lib/useControlled.cjs.map +0 -1
- package/dist/lib/useControlled.d.cts +0 -16
- package/dist/lib/useIsOverflow.cjs +0 -58
- package/dist/lib/useIsOverflow.cjs.map +0 -1
- package/dist/lib/useIsOverflow.d.cts +0 -11
- package/dist/lib/useOutsideClick.cjs +0 -19
- package/dist/lib/useOutsideClick.cjs.map +0 -1
- package/dist/lib/useOutsideClick.d.cts +0 -13
- package/dist/lib/useScrollOverflow.cjs +0 -61
- package/dist/lib/useScrollOverflow.cjs.map +0 -1
- package/dist/lib/useScrollOverflow.d.cts +0 -36
- package/dist/lib/zindex.cjs +0 -26
- package/dist/lib/zindex.cjs.map +0 -1
- package/dist/lib/zindex.d.cts +0 -25
- package/dist/message-CMHvlPGn.d.mts +0 -9
- package/dist/mixins/focus.cjs +0 -39
- package/dist/mixins/focus.cjs.map +0 -1
- package/dist/mixins/focus.d.cts +0 -11
- package/dist/mixins/hoverable.cjs +0 -38
- package/dist/mixins/hoverable.cjs.map +0 -1
- package/dist/mixins/hoverable.d.cts +0 -16
- package/dist/mixins/input.cjs +0 -95
- package/dist/mixins/input.cjs.map +0 -1
- package/dist/mixins/input.d.cts +0 -2
- package/dist/mixins/menuItem.cjs +0 -110
- package/dist/mixins/menuItem.cjs.map +0 -1
- package/dist/mixins/menuItem.d.cts +0 -30
- package/dist/mixins/print/index.cjs +0 -25
- package/dist/mixins/print/index.cjs.map +0 -1
- package/dist/mixins/print/index.d.cts +0 -11
- package/dist/mixins/text.cjs +0 -93
- package/dist/mixins/text.cjs.map +0 -1
- package/dist/mixins/text.d.cts +0 -2
- package/dist/operators-Bo31xlc2.d.mts +0 -43
- package/dist/operators.d.cts +0 -2
- package/dist/text-PmH5oc61.d.cts +0 -14
- package/dist/theme-Cadb1xzQ.d.cts +0 -154
- package/dist/theme.cjs +0 -353
- package/dist/theme.cjs.map +0 -1
- package/dist/theme.d.cts +0 -2
- package/dist/types-D58IoRx6.d.mts +0 -158
- package/dist/types-D7ppqnNj.d.mts +0 -45
- package/dist/types-SYSKcZKW.d.cts +0 -25
- package/dist/types-TV9nVfSe.d.mts +0 -10
- package/dist/types.d.cts +0 -2
- package/dist/types2.d.cts +0 -2
- package/dist/types3.d.cts +0 -2
- package/dist/types4.d.cts +0 -2
- package/dist/useFilterStateV2-DbPwX5N1.d.cts +0 -93
- package/dist/useFilterStateV2.d.cts +0 -2
- package/dist/useFormField--Q8ZdpW5.d.cts +0 -30
- package/dist/useFormField-BZlArnsI.cjs +0 -37
- package/dist/useFormField-BZlArnsI.cjs.map +0 -1
- package/dist/useFormField.d.cts +0 -2
- package/dist/useFormGroup-Bmnzgq0S.cjs +0 -26
- package/dist/useFormGroup-Bmnzgq0S.cjs.map +0 -1
- package/dist/useFormGroup.d.cts +0 -18
- package/dist/useTableBoxDragAndDrop-BMo-iaUF.d.mts +0 -69
- package/dist/useTableBoxDragAndDrop.d.cts +0 -2
- package/dist/useTableColumns.d.cts +0 -72
- package/dist/useToggle-DARO917w.cjs +0 -27
- package/dist/useToggle-DARO917w.cjs.map +0 -1
- package/dist/utilities-BO_95qFA.d.mts +0 -9
- package/dist/utilities.d.cts +0 -2
- package/dist/utils/storybook.cjs +0 -12
- package/dist/utils/storybook.cjs.map +0 -1
- package/dist/utils/testing.cjs +0 -50
- package/dist/utils/testing.cjs.map +0 -1
- package/dist/utils/testing.d.cts +0 -18
- package/dist/validation-vLh3t2dk.d.mts +0 -51
- package/dist/validation.d.cts +0 -2
- package/dist/value-control-resolver-B9p25q3G.d.cts +0 -46
- package/dist/value-control-resolver.d.cts +0 -2
- package/dist/variables/color.cjs +0 -22
- package/dist/variables/color.cjs.map +0 -1
- package/dist/variables/color.d.cts +0 -19
- package/dist/variables/effect.cjs +0 -27
- package/dist/variables/effect.cjs.map +0 -1
- package/dist/variables/effect.d.cts +0 -21
- package/dist/variables/keyframes.cjs +0 -22
- package/dist/variables/keyframes.cjs.map +0 -1
- package/dist/variables/keyframes.d.cts +0 -8
- package/dist/variables/spacing.cjs +0 -10
- package/dist/variables/spacing.cjs.map +0 -1
- package/dist/variables/spacing.d.cts +0 -8
- package/dist/variables/text.cjs +0 -13
- package/dist/variables/text.cjs.map +0 -1
- package/dist/variables/text.d.cts +0 -10
- package/dist/variables/transitions.cjs +0 -24
- package/dist/variables/transitions.cjs.map +0 -1
- package/dist/variables/transitions.d.cts +0 -19
- /package/dist/{index--p6oQT9I.d.mts → index-0-W_aPej.d.mts} +0 -0
- /package/dist/{index-BIAn8oQh.d.cts → index-7in8TPrM.d.mts} +0 -0
- /package/dist/{index-BL32-cvv.d.cts → index-7rWKHdox.d.mts} +0 -0
- /package/dist/{index-BPSCxsMC.d.cts → index-B4woaFSm.d.mts} +0 -0
- /package/dist/{index-BR1oNnaF.d.cts → index-BINnViIh.d.mts} +0 -0
- /package/dist/{index-BXpMZvwA.d.cts → index-BNRXMhlr.d.mts} +0 -0
- /package/dist/{index-BYd3Btr1.d.mts → index-BO_854F2.d.mts} +0 -0
- /package/dist/{index-BhY1qu3m.d.cts → index-BOn0AAue.d.mts} +0 -0
- /package/dist/{index-BlwcRiXv.d.cts → index-CCt0lwyI.d.mts} +0 -0
- /package/dist/{index-C0NRIDsj2.d.cts → index-CREkvfw9.d.mts} +0 -0
- /package/dist/{index-C1ihAKnV.d.cts → index-CRo77wc3.d.mts} +0 -0
- /package/dist/{index-CDAfh8Ew.d.cts → index-Ci-uuV07.d.mts} +0 -0
- /package/dist/{index-CDGG7lCB.d.mts → index-CsuikFeJ.d.mts} +0 -0
- /package/dist/{index-CFG0_wK4.d.cts → index-CzUpNo0e.d.mts} +0 -0
- /package/dist/{index-CMuRFTR3.d.mts → index-DDdPqD_H.d.mts} +0 -0
- /package/dist/{index-CNxS4Tlu.d.mts → index-DeVKzGce.d.mts} +0 -0
- /package/dist/{index-CQ25UCod.d.cts → index-Es5nKSSL.d.mts} +0 -0
- /package/dist/{index-CWB6exYm.d.mts → index-FtE8MXJ_.d.mts} +0 -0
- /package/dist/{index-Cv0jeUQf2.d.cts → index-ehD5GjMH.d.mts} +0 -0
- /package/dist/{index-CwSIy_W-.d.cts → index-uMNhmxEh.d.mts} +0 -0
- /package/dist/{layouts → patterns}/LayoutLoadingShimmer/index.d.mts +0 -0
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
# Component Patterns & Props Reference
|
|
2
|
+
|
|
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
|
+
|
|
211
|
+
## Testing
|
|
212
|
+
|
|
213
|
+
```tsx
|
|
214
|
+
import { render as dsRender, screen } from '@persona/design-system/utils/testing';
|
|
215
|
+
import userEvent from '@testing-library/user-event';
|
|
216
|
+
import { waitFor } from '@testing-library/react';
|
|
217
|
+
|
|
218
|
+
it('handles input', async () => {
|
|
219
|
+
dsRender(<MyComponent />);
|
|
220
|
+
await userEvent.type(screen.getByLabelText('Name'), 'Test');
|
|
221
|
+
expect(screen.getByLabelText('Name')).toHaveValue('Test');
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
it('shows validation errors', async () => {
|
|
225
|
+
dsRender(<MyComponent />);
|
|
226
|
+
await userEvent.click(screen.getByRole('button', { name: /save/i }));
|
|
227
|
+
await waitFor(() => expect(screen.getByText('Required')).toBeInTheDocument());
|
|
228
|
+
});
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
- Use `dsRender` (wraps with ThemeProvider)
|
|
232
|
+
- Prefer `userEvent.type()` over `fireEvent.change()`
|
|
233
|
+
- Use `waitFor()` for async state updates
|
|
234
|
+
- 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/`
|
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
# PDS UI Examples
|
|
2
|
+
|
|
3
|
+
Common patterns for building UI with the Persona design system.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Buttons](#buttons)
|
|
8
|
+
- [Forms](#forms)
|
|
9
|
+
- [Modals](#modals)
|
|
10
|
+
- [Data Tables](#data-tables)
|
|
11
|
+
- [Status Indicators](#status-indicators)
|
|
12
|
+
- [Layout](#layout)
|
|
13
|
+
- [Navigation — Tabs](#navigation--tabs)
|
|
14
|
+
- [Text Components](#text-components)
|
|
15
|
+
- [Feedback Components](#feedback-components)
|
|
16
|
+
- [Empty States](#empty-states)
|
|
17
|
+
|
|
18
|
+
## Buttons
|
|
19
|
+
|
|
20
|
+
```tsx
|
|
21
|
+
import Button from '@persona/design-system/components/Button';
|
|
22
|
+
import { PlusIcon, ArrowRightIcon } from '@persona/icons';
|
|
23
|
+
|
|
24
|
+
// Variants
|
|
25
|
+
<Button variant="primary" size="md">Save Changes</Button>
|
|
26
|
+
<Button variant="basic" size="md">Cancel</Button>
|
|
27
|
+
<Button variant="danger" size="md">Delete Account</Button>
|
|
28
|
+
<Button variant="outline" size="md">Learn More</Button>
|
|
29
|
+
<Button variant="text" size="md">Skip</Button>
|
|
30
|
+
|
|
31
|
+
// States
|
|
32
|
+
<Button variant="primary" disabled>Submit</Button>
|
|
33
|
+
<Button variant="primary" isPending>Saving...</Button>
|
|
34
|
+
|
|
35
|
+
// With icons
|
|
36
|
+
<Button variant="primary" prefixIcon={<PlusIcon />}>Add Item</Button>
|
|
37
|
+
<Button variant="basic" suffixIcon={<ArrowRightIcon />}>Next</Button>
|
|
38
|
+
|
|
39
|
+
// Icon-only (must include aria-label)
|
|
40
|
+
<Button variant="basic" width="icon" aria-label="Add"><PlusIcon /></Button>
|
|
41
|
+
|
|
42
|
+
// Widths
|
|
43
|
+
<Button variant="primary" width="full">Full Width</Button>
|
|
44
|
+
<Button variant="primary" width="auto">Auto Width</Button>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Forms
|
|
48
|
+
|
|
49
|
+
**Always use `ConfigFormGroup` + `TextField`/`TextAreaField` — never hand-roll `styled.input` or `styled.label`.**
|
|
50
|
+
|
|
51
|
+
### Basic form
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
import ConfigFormGroup from '@persona/design-system/components/ConfigFormGroup';
|
|
55
|
+
import { TextField, TextAreaField } from '@persona/design-system/components/FormField';
|
|
56
|
+
import { Select } from '@persona/design-system/components/Select';
|
|
57
|
+
import { TextUnderlineTooltip } from '@persona/design-system/components/Tooltip';
|
|
58
|
+
import { Label } from '@persona/design-system/components/Text';
|
|
59
|
+
import Stack from '@persona/design-system/components/Stack';
|
|
60
|
+
import { Spacing } from '@persona/design-tokens';
|
|
61
|
+
|
|
62
|
+
<ConfigFormGroup>
|
|
63
|
+
{/* Field with tooltip: use TextUnderlineTooltip, never an info icon */}
|
|
64
|
+
<TextUnderlineTooltip tooltip="Must be unique." side="right">
|
|
65
|
+
<TextField
|
|
66
|
+
label="Name"
|
|
67
|
+
value={config.name}
|
|
68
|
+
onChange={(e) => setConfig({ ...config, name: e.target.value })}
|
|
69
|
+
configField={true}
|
|
70
|
+
errorText={errors.name}
|
|
71
|
+
/>
|
|
72
|
+
</TextUnderlineTooltip>
|
|
73
|
+
|
|
74
|
+
<TextAreaField
|
|
75
|
+
label="Description"
|
|
76
|
+
value={config.description}
|
|
77
|
+
onChange={(e) => setConfig({ ...config, description: e.target.value })}
|
|
78
|
+
configField={true}
|
|
79
|
+
helperText="Short summary shown in listings."
|
|
80
|
+
/>
|
|
81
|
+
|
|
82
|
+
{/* Dropdown */}
|
|
83
|
+
<Stack spacing={Spacing[2]}>
|
|
84
|
+
<Label size="sm" color="secondary">Enforcement</Label>
|
|
85
|
+
<Select
|
|
86
|
+
value={config.enforcement}
|
|
87
|
+
onChange={(val) => setConfig({ ...config, enforcement: val })}
|
|
88
|
+
options={[
|
|
89
|
+
{ label: 'Strict', value: 'strict' },
|
|
90
|
+
{ label: 'Lenient', value: 'lenient' },
|
|
91
|
+
{ label: 'Disabled', value: 'disabled' },
|
|
92
|
+
]}
|
|
93
|
+
/>
|
|
94
|
+
</Stack>
|
|
95
|
+
</ConfigFormGroup>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Form state hook
|
|
99
|
+
|
|
100
|
+
```tsx
|
|
101
|
+
const useFormState = (initialConfig) => {
|
|
102
|
+
const [config, setConfig] = useState(initialConfig);
|
|
103
|
+
const [errors, setErrors] = useState({});
|
|
104
|
+
|
|
105
|
+
const updateField = useCallback((field, value) => {
|
|
106
|
+
setConfig(prev => ({ ...prev, [field]: value }));
|
|
107
|
+
setErrors(prev => { const next = { ...prev }; delete next[field]; return next; });
|
|
108
|
+
}, []);
|
|
109
|
+
|
|
110
|
+
const validate = useCallback(() => {
|
|
111
|
+
const newErrors = {};
|
|
112
|
+
if (!config.name) newErrors.name = 'Required';
|
|
113
|
+
setErrors(newErrors);
|
|
114
|
+
return Object.keys(newErrors).length === 0;
|
|
115
|
+
}, [config]);
|
|
116
|
+
|
|
117
|
+
return { config, errors, updateField, validate };
|
|
118
|
+
};
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Form with footer buttons
|
|
122
|
+
|
|
123
|
+
```tsx
|
|
124
|
+
import Stack from '@persona/design-system/components/Stack';
|
|
125
|
+
import { HStack } from '@persona/design-system/components/Stack';
|
|
126
|
+
|
|
127
|
+
<Stack spacing={Spacing[5]}>
|
|
128
|
+
<ConfigFormGroup>
|
|
129
|
+
<TextField label="Name" value={config.name} onChange={...} />
|
|
130
|
+
<TextAreaField label="Description" value={config.description} onChange={...} />
|
|
131
|
+
</ConfigFormGroup>
|
|
132
|
+
<HStack spacing={Spacing[3]} justify="flex-end">
|
|
133
|
+
<Button variant="basic" onClick={onCancel}>Cancel</Button>
|
|
134
|
+
<Button variant="primary" onClick={handleSave} isPending={isSaving}>Save</Button>
|
|
135
|
+
</HStack>
|
|
136
|
+
</Stack>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Modals
|
|
140
|
+
|
|
141
|
+
**Always use the `Modal` component — never hand-roll `ModalOverlay`/`ModalContainer` styled divs.**
|
|
142
|
+
|
|
143
|
+
```tsx
|
|
144
|
+
import { Modal } from '@persona/design-system/components/Modal';
|
|
145
|
+
|
|
146
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
147
|
+
|
|
148
|
+
<Modal
|
|
149
|
+
isOpen={isOpen}
|
|
150
|
+
onClose={() => setIsOpen(false)}
|
|
151
|
+
title="Confirm Delete"
|
|
152
|
+
footer={
|
|
153
|
+
<>
|
|
154
|
+
<Button variant="basic" onClick={() => setIsOpen(false)}>Cancel</Button>
|
|
155
|
+
<Button variant="danger" onClick={handleDelete} isPending={isDeleting}>Delete</Button>
|
|
156
|
+
</>
|
|
157
|
+
}
|
|
158
|
+
>
|
|
159
|
+
<Paragraph>Are you sure you want to delete this rule? This action cannot be undone.</Paragraph>
|
|
160
|
+
</Modal>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Data Tables
|
|
164
|
+
|
|
165
|
+
Use **`DataTable`** for data views (pagination, sorting, server-side data). For small, form-adjacent editable tables, use **`TableBox`** — see [COMPONENTS.md — Editable Table (TableBox)](COMPONENTS.md#editable-table-tablebox). Never hand-roll `<table>`.
|
|
166
|
+
|
|
167
|
+
```tsx
|
|
168
|
+
import DataTable from '@persona/design-system/components/DataTable';
|
|
169
|
+
|
|
170
|
+
const columns = [
|
|
171
|
+
'name',
|
|
172
|
+
{
|
|
173
|
+
accessor: 'enforcement',
|
|
174
|
+
header: 'Enforcement',
|
|
175
|
+
format: {
|
|
176
|
+
type: 'sticker',
|
|
177
|
+
config: { colors: { strict: 'danger', lenient: 'caution', disabled: 'basic' } },
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
{ accessor: 'lastModified', header: 'Last Modified', format: { type: 'datetime' } },
|
|
181
|
+
];
|
|
182
|
+
|
|
183
|
+
<DataTable
|
|
184
|
+
columns={columns}
|
|
185
|
+
data={rules}
|
|
186
|
+
rowActions={[
|
|
187
|
+
{ label: 'Edit', onClick: (rowId) => handleEdit(rowId) },
|
|
188
|
+
{ label: 'Delete', onClick: (rowId) => setDeleteTarget(rowId) },
|
|
189
|
+
]}
|
|
190
|
+
pagination={{ clientPagination: true, pageSize: 10, pageSizeOptions: [10, 25, 50] }}
|
|
191
|
+
/>
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Status Indicators
|
|
195
|
+
|
|
196
|
+
### Sticker (Status Labels)
|
|
197
|
+
|
|
198
|
+
```tsx
|
|
199
|
+
import Sticker from '@persona/design-system/components/Sticker';
|
|
200
|
+
import { CheckCircleIcon } from '@persona/icons/12px'; // 12px for sticker icons
|
|
201
|
+
|
|
202
|
+
// Semantic variants — match business status to variant:
|
|
203
|
+
// approved/active/verified → success
|
|
204
|
+
// declined/failed/error → danger
|
|
205
|
+
// pending/in-review/flagged → caution
|
|
206
|
+
// inactive/archived → basic
|
|
207
|
+
<Sticker variant="success">Approved</Sticker>
|
|
208
|
+
<Sticker variant="danger">Failed</Sticker>
|
|
209
|
+
<Sticker variant="caution">Pending</Sticker>
|
|
210
|
+
<Sticker variant="basic">Inactive</Sticker>
|
|
211
|
+
|
|
212
|
+
// Color variants for categorization
|
|
213
|
+
<Sticker variant="purple">New</Sticker>
|
|
214
|
+
<Sticker variant="blue">In Progress</Sticker>
|
|
215
|
+
|
|
216
|
+
// With icon (use 12px icons)
|
|
217
|
+
<Sticker variant="success" icon={<CheckCircleIcon />}>Verified</Sticker>
|
|
218
|
+
|
|
219
|
+
// Dismissible
|
|
220
|
+
<Sticker variant="purple" onDismiss={() => handleRemove()}>Removable Tag</Sticker>
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Banner (Alert / Notification)
|
|
224
|
+
|
|
225
|
+
```tsx
|
|
226
|
+
import Banner from '@persona/design-system/components/Banner';
|
|
227
|
+
import { CircleInfoIcon, CheckCircleIcon, AlertTriangleIcon, XCircleIcon } from '@persona/icons';
|
|
228
|
+
|
|
229
|
+
<Banner variant="informational"><CircleInfoIcon />This is an informational message.</Banner>
|
|
230
|
+
<Banner variant="success"><CheckCircleIcon />Changes saved successfully!</Banner>
|
|
231
|
+
<Banner variant="warning"><AlertTriangleIcon />Please review before submitting.</Banner>
|
|
232
|
+
<Banner variant="alert"><XCircleIcon />There was an error processing your request.</Banner>
|
|
233
|
+
|
|
234
|
+
// With dismiss
|
|
235
|
+
<Banner variant="informational" onClose={() => setShowBanner(false)}>
|
|
236
|
+
<CircleInfoIcon />You can dismiss this message.
|
|
237
|
+
</Banner>
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## Layout
|
|
241
|
+
|
|
242
|
+
### Stack / HStack
|
|
243
|
+
|
|
244
|
+
```tsx
|
|
245
|
+
import Stack from '@persona/design-system/components/Stack';
|
|
246
|
+
import { HStack } from '@persona/design-system/components/Stack';
|
|
247
|
+
|
|
248
|
+
// Vertical layout
|
|
249
|
+
<Stack spacing={Spacing[4]}>
|
|
250
|
+
<Heading size="sm">Section Title</Heading>
|
|
251
|
+
<Paragraph>Content...</Paragraph>
|
|
252
|
+
</Stack>
|
|
253
|
+
|
|
254
|
+
// Horizontal layout
|
|
255
|
+
<HStack spacing={Spacing[3]} justify="flex-end">
|
|
256
|
+
<Button variant="basic">Cancel</Button>
|
|
257
|
+
<Button variant="primary">Save</Button>
|
|
258
|
+
</HStack>
|
|
259
|
+
|
|
260
|
+
// Space between header + action
|
|
261
|
+
<HStack spacing={Spacing[4]} justify="space-between" align="center">
|
|
262
|
+
<Heading size="sm">Policy Rules</Heading>
|
|
263
|
+
<Button variant="primary" size="sm" prefixIcon={<PlusIcon />}>Add Rule</Button>
|
|
264
|
+
</HStack>
|
|
265
|
+
|
|
266
|
+
// Wrapping tags/stickers
|
|
267
|
+
<HStack spacing={Spacing[2]} wrap>
|
|
268
|
+
<Sticker variant="purple">Tag 1</Sticker>
|
|
269
|
+
<Sticker variant="blue">Tag 2</Sticker>
|
|
270
|
+
</HStack>
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Card with collapsible sections
|
|
274
|
+
|
|
275
|
+
```tsx
|
|
276
|
+
import { Card } from '@persona/design-system/components/CardV2';
|
|
277
|
+
|
|
278
|
+
<Card>
|
|
279
|
+
<Card.Section header="Basic Settings" collapsible={true} defaultCollapsed={false}>
|
|
280
|
+
<ConfigFormGroup>
|
|
281
|
+
<TextField label="Name" value={...} onChange={...} />
|
|
282
|
+
</ConfigFormGroup>
|
|
283
|
+
</Card.Section>
|
|
284
|
+
<Card.Section header="Advanced" collapsible={true}>
|
|
285
|
+
{/* Advanced fields */}
|
|
286
|
+
</Card.Section>
|
|
287
|
+
</Card>
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
## Navigation — Tabs
|
|
291
|
+
|
|
292
|
+
```tsx
|
|
293
|
+
import TabBar, { Tab } from '@persona/design-system/components/TabBar';
|
|
294
|
+
import Badge from '@persona/design-system/components/Badge';
|
|
295
|
+
import { useState } from 'react';
|
|
296
|
+
|
|
297
|
+
const [selectedTab, setSelectedTab] = useState(0);
|
|
298
|
+
|
|
299
|
+
<TabBar aria-label="Policy tabs" title="Policy Configuration">
|
|
300
|
+
<Tab selected={selectedTab === 0} onClick={() => setSelectedTab(0)}>Overview</Tab>
|
|
301
|
+
<Tab selected={selectedTab === 1} onClick={() => setSelectedTab(1)} badge={<Badge variant="active">5</Badge>}>
|
|
302
|
+
Pending
|
|
303
|
+
</Tab>
|
|
304
|
+
<Tab selected={selectedTab === 2} onClick={() => setSelectedTab(2)} badge={<Badge variant="alert">2</Badge>}>
|
|
305
|
+
Alerts
|
|
306
|
+
</Tab>
|
|
307
|
+
</TabBar>
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
## Text Components
|
|
311
|
+
|
|
312
|
+
```tsx
|
|
313
|
+
import { Heading, Paragraph, Label } from '@persona/design-system/components/Text';
|
|
314
|
+
|
|
315
|
+
// Headings
|
|
316
|
+
<Heading size="lg" color="primary">Page Title</Heading>
|
|
317
|
+
<Heading size="md" color="primary">Section Title</Heading>
|
|
318
|
+
<Heading size="sm" color="primary">Subsection</Heading>
|
|
319
|
+
|
|
320
|
+
// Body text — defaults to color="secondary" (grey); use color="primary" for black
|
|
321
|
+
<Paragraph size="md" color="primary">Black body text</Paragraph>
|
|
322
|
+
<Paragraph size="md">Secondary (grey) body text</Paragraph>
|
|
323
|
+
<Paragraph size="sm" color="tertiary">Helper / caption text</Paragraph>
|
|
324
|
+
|
|
325
|
+
// Form labels
|
|
326
|
+
<Label size="sm" color="secondary">Field Name</Label>
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
## Feedback Components
|
|
330
|
+
|
|
331
|
+
### Spinner
|
|
332
|
+
|
|
333
|
+
```tsx
|
|
334
|
+
import Spinner from '@persona/design-system/components/Spinner';
|
|
335
|
+
|
|
336
|
+
// Centered loading state
|
|
337
|
+
<Stack align="center" spacing={Spacing[3]}>
|
|
338
|
+
<Spinner size="md" srText="Loading policies..." />
|
|
339
|
+
</Stack>
|
|
340
|
+
|
|
341
|
+
// Inline in button (use isPending prop on Button instead when possible)
|
|
342
|
+
<Button variant="primary" isPending>Saving...</Button>
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### Tooltip (standalone, no label)
|
|
346
|
+
|
|
347
|
+
```tsx
|
|
348
|
+
import Tooltip from '@persona/design-system/components/Tooltip';
|
|
349
|
+
import { HelpCircleIcon } from '@persona/icons';
|
|
350
|
+
|
|
351
|
+
// Standalone icon trigger (only when there's no adjacent label)
|
|
352
|
+
<Tooltip iconTrigger={<HelpCircleIcon />} side="right">
|
|
353
|
+
Additional help text appears here.
|
|
354
|
+
</Tooltip>
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
## Empty States
|
|
358
|
+
|
|
359
|
+
For tables/lists when there is no data to show:
|
|
360
|
+
|
|
361
|
+
```tsx
|
|
362
|
+
// Inside a Card section or table container
|
|
363
|
+
<Stack align="center" spacing={Spacing[3]} style={{ padding: Spacing[6] }}>
|
|
364
|
+
<Paragraph color="secondary">No policy rules yet.</Paragraph>
|
|
365
|
+
<Button variant="primary" size="sm" prefixIcon={<PlusIcon />}>Add Rule</Button>
|
|
366
|
+
</Stack>
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
For `ListBox`, pass `emptyText="No items"` prop directly.
|
|
370
|
+
For `Card.Section`, pass `empty={true}` to show the built-in empty state.
|