@persona/design-system 0.7.1 → 0.7.2
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 +17 -0
- package/README.md +9 -9
- package/dist/Accordion.d.mts +38 -0
- package/dist/AccordionItem.d.mts +31 -0
- package/dist/{Action-C7INft7X.d.mts → Action-Cyo6KCsS.d.mts} +3 -3
- package/dist/Action.d.mts +1 -1
- package/dist/AdvancedFilterRuleRow.d.mts +2 -2
- package/dist/AdvancedFilterRulesPopover.d.mts +2 -2
- package/dist/ArrayValueControl.d.mts +1 -1
- package/dist/Attribute.d.mts +3 -3
- package/dist/BooleanValueControl.d.mts +1 -1
- package/dist/{Breadcrumb-DtW1R9xW.d.mts → Breadcrumb-CYXkrKXl.d.mts} +1 -1
- package/dist/Breadcrumb.d.mts +1 -1
- package/dist/{Breadcrumbs-B6JyoS8n.d.mts → Breadcrumbs-CP7eUYUy.d.mts} +2 -2
- package/dist/Breadcrumbs.d.mts +1 -1
- package/dist/{Button-HodDf_bB.d.mts → Button-Dhiund3f.d.mts} +4 -4
- package/dist/Button.d.mts +1 -1
- package/dist/{Calendar-DrdTvzAa.d.mts → Calendar-CMeIZ0BO.d.mts} +1 -1
- package/dist/Calendar.d.mts +1 -1
- package/dist/CalendarBase.d.mts +1 -1
- package/dist/{Card-CpDwATnX.d.mts → Card-DCYB_mtR.d.mts} +3 -3
- package/dist/Card.d.mts +1 -1
- package/dist/{Checkbox-CyWXhuby.mjs → Checkbox-AjL7ucoR.mjs} +2 -2
- package/dist/{Checkbox-CyWXhuby.mjs.map → Checkbox-AjL7ucoR.mjs.map} +1 -1
- package/dist/{Checkbox-C-hMfItK.d.mts → Checkbox-fWj7GkBl.d.mts} +1 -1
- package/dist/Checkbox.d.mts +1 -1
- package/dist/CheckboxGroupField.d.mts +1 -1
- package/dist/ChoicesValueControl.d.mts +1 -1
- package/dist/{Combobox-1M6EwVmq.mjs → Combobox-C2b9u955.mjs} +9 -6
- package/dist/Combobox-C2b9u955.mjs.map +1 -0
- package/dist/{Combobox-DyNllwt8.d.mts → Combobox-CC-Osr57.d.mts} +3 -3
- package/dist/Combobox.d.mts +2 -2
- package/dist/{ComboboxBase-B3YqkjQp.d.mts → ComboboxBase-Evo0FRxP.d.mts} +7 -5
- package/dist/ComboboxBase.d.mts +1 -1
- package/dist/{ComboboxMultiSelect-BuwVssvZ.d.mts → ComboboxMultiSelect-CvAc0FT3.d.mts} +2 -2
- package/dist/ComboboxMultiSelect.d.mts +1 -1
- package/dist/{ComboboxSingleSelect-gJC4v7ER.d.mts → ComboboxSingleSelect-CBm7x0oh.d.mts} +4 -4
- package/dist/ComboboxSingleSelect.d.mts +1 -1
- package/dist/{CompactBar-DhHh7Roq.d.mts → CompactBar-D_2qMK4y.d.mts} +3 -3
- package/dist/CompactBar.d.mts +1 -1
- package/dist/{ControlBar-C8kagIck.d.mts → ControlBar-B7j9sOr9.d.mts} +2 -2
- package/dist/ControlBar.d.mts +1 -1
- package/dist/DataTable.d.mts +3 -3
- package/dist/{DateField-2aigfD4u.d.mts → DateField-BamAk9_w.d.mts} +2 -2
- package/dist/DateField.d.mts +1 -1
- package/dist/{DatePicker-DC_RKjdM.d.mts → DatePicker-C3xNSkPG.d.mts} +2 -2
- package/dist/{DatePicker-D9JurBBj.mjs → DatePicker-IgiUI3Wj.mjs} +3 -3
- package/dist/{DatePicker-D9JurBBj.mjs.map → DatePicker-IgiUI3Wj.mjs.map} +1 -1
- package/dist/DatePicker.d.mts +1 -1
- package/dist/{DateRangePicker-ByD6IsLB.d.mts → DateRangePicker-C4QKMo2a.d.mts} +3 -3
- package/dist/DateRangePicker.d.mts +1 -1
- package/dist/DateRangeValueControl.d.mts +2 -2
- package/dist/DateValueControl.d.mts +1 -1
- package/dist/DropdownButton.d.mts +2 -2
- package/dist/{DropdownMenu-Xl1BYXsY.d.mts → DropdownMenu-DL5ye-0m.d.mts} +2 -2
- package/dist/DropdownMenu.d.mts +1 -1
- package/dist/{ErrorProps-Dgu98PkH.d.mts → ErrorProps-BA0-m_Wp.d.mts} +1 -1
- package/dist/ErrorProps.d.mts +1 -1
- package/dist/{FieldRegistry-BdtxI1N2.d.mts → FieldRegistry-bKxrF1gC.d.mts} +2 -2
- package/dist/FieldRegistry.d.mts +1 -1
- package/dist/{FilterBar-jYjPeD7F.d.mts → FilterBar-DhlBLWxw.d.mts} +4 -4
- package/dist/FilterBar.d.mts +1 -1
- package/dist/FilterPickerMenu.d.mts +2 -2
- package/dist/FilterPill.d.mts +1 -1
- package/dist/FilterPopover.d.mts +1 -1
- package/dist/FloatValueControl.d.mts +1 -1
- package/dist/{FormControl-CJfYdgZF.d.mts → FormControl-D5xyPkST.d.mts} +6 -2
- package/dist/{FormControl-BEk4F1EV.mjs → FormControl-DnfZTli_.mjs} +25 -10
- package/dist/FormControl-DnfZTli_.mjs.map +1 -0
- package/dist/FormControl.d.mts +1 -1
- package/dist/FormControlLabel.d.mts +1 -1
- package/dist/{FormField-ByT0avVx.mjs → FormField-74TPV8-8.mjs} +27 -17
- package/dist/FormField-74TPV8-8.mjs.map +1 -0
- package/dist/{FormField-CK8o1sMB.d.mts → FormField-BJZUj6jg.d.mts} +4 -2
- package/dist/FormField.d.mts +1 -1
- package/dist/Grid-DOyYYsvk.mjs +92 -0
- package/dist/Grid-DOyYYsvk.mjs.map +1 -0
- package/dist/Grid.d.mts +4 -1
- package/dist/{Header-ZnHGm8fs.d.mts → Header-BqEKkEp5.d.mts} +1 -1
- package/dist/Header.d.mts +1 -1
- package/dist/{HelperTooltip-CQpPO16Q.d.mts → HelperTooltip-mOVSuEB8.d.mts} +2 -2
- package/dist/HelperTooltip.d.mts +1 -1
- package/dist/{IconButton-zu-VNp1h.d.mts → IconButton-CjPFhpVG.d.mts} +2 -2
- package/dist/IconButton-CqTPMhjV.mjs.map +1 -1
- package/dist/IconButton.d.mts +1 -1
- package/dist/ImageTile.d.mts +1 -1
- package/dist/InlineCombobox.d.mts +1 -1
- package/dist/InlineInput.d.mts +1 -1
- package/dist/{Input-Ce8FvSYf.d.mts → Input-CZ_6KWDN.d.mts} +3 -3
- package/dist/{Input-Bc2yWH3j.mjs → Input-C_3QwAAt.mjs} +2 -2
- package/dist/{Input-Bc2yWH3j.mjs.map → Input-C_3QwAAt.mjs.map} +1 -1
- package/dist/Input.d.mts +1 -1
- package/dist/{InputProps-B1Xod4wm.d.mts → InputProps-lag6BM5h.d.mts} +2 -2
- package/dist/InputProps.d.mts +1 -1
- package/dist/IntegerValueControl.d.mts +1 -1
- package/dist/Link.d.mts +1 -1
- package/dist/{ListBox-CFBhILRy.mjs → ListBox-D4j4LCT3.mjs} +2 -2
- package/dist/{ListBox-CFBhILRy.mjs.map → ListBox-D4j4LCT3.mjs.map} +1 -1
- package/dist/{ListBox-D-8iwYVj.d.mts → ListBox-nYAdYVQx.d.mts} +3 -3
- package/dist/ListBox.d.mts +1 -1
- package/dist/ListBoxField.d.mts +3 -2
- package/dist/LoadingShimmer.d.mts +1 -1
- package/dist/{LogicRow-CgPds2tq.d.mts → LogicRow-k4ZPtjN0.d.mts} +3 -3
- package/dist/LogicRow.d.mts +1 -1
- package/dist/MaskedInput.d.mts +2 -2
- package/dist/{Menu-CSwzFqdv.d.mts → Menu-Bu7-KBhp.d.mts} +3 -3
- package/dist/Menu.d.mts +1 -1
- package/dist/Modal-BN0K8QXi.mjs +258 -0
- package/dist/Modal-BN0K8QXi.mjs.map +1 -0
- package/dist/Modal-Dwq-QBw_.d.mts +145 -0
- package/dist/Modal.d.mts +2 -145
- package/dist/{PageHeader-DJOlcAiW.mjs → PageHeader-BTtm3hRQ.mjs} +1 -1
- package/dist/{PageHeader-DJOlcAiW.mjs.map → PageHeader-BTtm3hRQ.mjs.map} +1 -1
- package/dist/PageHeader.d.mts +1 -1
- package/dist/PageLayoutFrame.d.mts +28 -0
- package/dist/{PageSelector-BMz2Q4P6.d.mts → PageSelector-CeGC84N1.d.mts} +3 -3
- package/dist/PageSelector.d.mts +1 -1
- package/dist/{Pagination-B1u203DE.mjs → Pagination-CPd4mSnw.mjs} +3 -3
- package/dist/{Pagination-B1u203DE.mjs.map → Pagination-CPd4mSnw.mjs.map} +1 -1
- package/dist/{Pagination-ne9hnVoe.d.mts → Pagination-H-CcXrCD.d.mts} +2 -2
- package/dist/Pagination.d.mts +1 -1
- package/dist/{PillShell-ChTB_koa.d.mts → PillShell-BQC-k7Rl.d.mts} +2 -2
- package/dist/PillShell.d.mts +1 -1
- package/dist/ProgressIndicator-3A4Aqci6.mjs +188 -0
- package/dist/ProgressIndicator-3A4Aqci6.mjs.map +1 -0
- package/dist/ProgressIndicator-DbOLOaxJ.d.mts +66 -0
- package/dist/ProgressIndicator.d.mts +2 -66
- package/dist/{PseudoClassProps-CdRF3QNn.d.mts → PseudoClassProps-CHtBNv8B.d.mts} +1 -1
- package/dist/PseudoClassProps.d.mts +1 -1
- package/dist/{Radio-Ds1pODKw.mjs → Radio-Cxt89w8s.mjs} +2 -2
- package/dist/{Radio-Ds1pODKw.mjs.map → Radio-Cxt89w8s.mjs.map} +1 -1
- package/dist/{RadioGroup-HIC9V2hO.mjs → RadioGroup-B6Cg1kdm.mjs} +2 -2
- package/dist/{RadioGroup-HIC9V2hO.mjs.map → RadioGroup-B6Cg1kdm.mjs.map} +1 -1
- package/dist/{RadioGroup-CxL6LW4q.d.mts → RadioGroup-BjrfVPZQ.d.mts} +1 -1
- package/dist/RadioGroup.d.mts +1 -1
- package/dist/{RangeCalendar-B7TwRJbg.d.mts → RangeCalendar-CPnLaM-J.d.mts} +2 -2
- package/dist/RangeCalendar.d.mts +1 -1
- package/dist/RangeCalendarPresets.d.mts +1 -1
- package/dist/{RouterContext-B7N12wkK.d.mts → RouterContext-CbvHIl4K.d.mts} +2 -2
- package/dist/RouterContext.d.mts +1 -1
- package/dist/{RouterLink-Bq36EGjc.d.mts → RouterLink-v9AG9fYa.d.mts} +2 -2
- package/dist/RouterLink.d.mts +1 -1
- package/dist/RuleEditorFields.d.mts +2 -2
- package/dist/RulesPill.d.mts +1 -1
- package/dist/{SearchInput-D69WxMNq.d.mts → SearchInput-CIjwmT8R.d.mts} +2 -2
- package/dist/SearchInput.d.mts +1 -1
- package/dist/SectionHeading.d.mts +1 -1
- package/dist/{SegmentedControl-OHrfJiw0.mjs → SegmentedControl-BcwfLuHA.mjs} +12 -5
- package/dist/SegmentedControl-BcwfLuHA.mjs.map +1 -0
- package/dist/{SegmentedControl-vCnGsdXo.d.mts → SegmentedControl-Crr_aHAs.d.mts} +2 -1
- package/dist/SegmentedControl.d.mts +1 -1
- package/dist/{Select-DE7uv9C8.mjs → Select-BstCz8P1.mjs} +2 -2
- package/dist/{Select-DE7uv9C8.mjs.map → Select-BstCz8P1.mjs.map} +1 -1
- package/dist/{Select-sQb4dQwT.d.mts → Select-CJQeuCiF.d.mts} +3 -3
- package/dist/Select.d.mts +1 -1
- package/dist/SingleColumnLayout.d.mts +16 -0
- package/dist/SplitColumnLayout.d.mts +19 -0
- package/dist/{Stack-8KGPQp0u.d.mts → Stack-RVptVTVi.d.mts} +1 -1
- package/dist/Stack.d.mts +1 -1
- package/dist/{Sticker-Bf9rhSkv.d.mts → Sticker-BVX38LKi.d.mts} +4 -4
- package/dist/Sticker.d.mts +1 -1
- package/dist/StringValueControl.d.mts +1 -1
- package/dist/Tab.d.mts +1 -1
- package/dist/{Table-BefytM6w.d.mts → Table-DFiSWroB.d.mts} +1 -1
- package/dist/Table.d.mts +1 -1
- package/dist/{TableBody-BZ34-_wV.d.mts → TableBody-Di9JYHDN.d.mts} +1 -1
- package/dist/TableBody.d.mts +1 -1
- package/dist/{TableBox-NP6bhtKb.mjs → TableBox-DAQ3Plqx.mjs} +3 -3
- package/dist/{TableBox-NP6bhtKb.mjs.map → TableBox-DAQ3Plqx.mjs.map} +1 -1
- package/dist/TableBox.d.mts +2 -2
- package/dist/{TableBoxCell-CHGw9HVj.d.mts → TableBoxCell-D6h1X5ph.d.mts} +6 -6
- package/dist/TableBoxCell.d.mts +1 -1
- package/dist/TableBoxField.d.mts +4 -3
- package/dist/{TableBoxRow-BljsXKrL.d.mts → TableBoxRow-C6l6J4mq.d.mts} +3 -3
- package/dist/TableBoxRow.d.mts +1 -1
- package/dist/{TableBoxRowActions-h6HNEv9F.d.mts → TableBoxRowActions-CsLN1b1J.d.mts} +2 -2
- package/dist/TableBoxRowActions.d.mts +1 -1
- package/dist/{TableCell-DorRxyke.d.mts → TableCell-WSDXw79Q.d.mts} +2 -2
- package/dist/TableCell.d.mts +1 -1
- package/dist/{TableControls-CYTpBlQN.mjs → TableControls-BxuPCUQS.mjs} +19 -11
- package/dist/TableControls-BxuPCUQS.mjs.map +1 -0
- package/dist/{TableControls-BtGFiZeD.d.mts → TableControls-cswMgBAr.d.mts} +3 -3
- package/dist/TableControls.d.mts +1 -1
- package/dist/{TableControlsContext-C3DYeUmB.d.mts → TableControlsContext-Cbh8wear.d.mts} +2 -2
- package/dist/TableControlsContext.d.mts +1 -1
- package/dist/{TableHead-B0Fdldgw.d.mts → TableHead-CkL1fEg2.d.mts} +1 -1
- package/dist/TableHead.d.mts +1 -1
- package/dist/{TableHeaderCell-C_7X8QAT.d.mts → TableHeaderCell-K9Ry6YqO.d.mts} +1 -1
- package/dist/TableHeaderCell.d.mts +1 -1
- package/dist/{TableLayout-CXVVzq0e.d.mts → TableLayout-CYRGIFEl.d.mts} +1 -1
- package/dist/TableLayout.d.mts +1 -1
- package/dist/{TableRow-Dr61XJNw.d.mts → TableRow-DMHlo1eg.d.mts} +2 -2
- package/dist/TableRow.d.mts +1 -1
- package/dist/TableTH.d.mts +1 -1
- package/dist/{TableViewConfigurationDropdown-CCtwcB3I.d.mts → TableViewConfigurationDropdown-BRbOcVNc.d.mts} +2 -2
- package/dist/TableViewConfigurationDropdown.d.mts +1 -1
- package/dist/{Text-DD_W_ixb.d.mts → Text-B69gp3X_.d.mts} +3 -3
- package/dist/Text.d.mts +1 -1
- package/dist/{TextArea-8TuVvmvj.mjs → TextArea-CcxltuBh.mjs} +2 -2
- package/dist/{TextArea-8TuVvmvj.mjs.map → TextArea-CcxltuBh.mjs.map} +1 -1
- package/dist/{TextArea-DOofaXJi.d.mts → TextArea-Cjsdl07-.d.mts} +2 -2
- package/dist/TextArea.d.mts +1 -1
- package/dist/{TextUnderlineTooltip-BPLKU9wu.d.mts → TextUnderlineTooltip-DDzKLCeX.d.mts} +2 -2
- package/dist/TextUnderlineTooltip.d.mts +1 -1
- package/dist/Tile.d.mts +1 -1
- package/dist/Toast.d.mts +1 -1
- package/dist/{Toggle-2nrUX591.d.mts → Toggle-B5sSdb_q.d.mts} +3 -1
- package/dist/{Toggle-Dcn2Rqgm.mjs → Toggle-DWbJOwf3.mjs} +4 -3
- package/dist/Toggle-DWbJOwf3.mjs.map +1 -0
- package/dist/Toggle.d.mts +1 -1
- package/dist/{Tooltip-Cnqf1-tx.d.mts → Tooltip-x1pFf-Mj.d.mts} +2 -2
- package/dist/Tooltip.d.mts +1 -1
- package/dist/{TruncatedText-g2T5HlqX.d.mts → TruncatedText-BE8FuEQm.d.mts} +1 -1
- package/dist/WizardModal.d.mts +41 -0
- package/dist/accordionTitleTypography-BYhjSN9t.d.mts +17 -0
- package/dist/accordionTitleTypography.d.mts +2 -0
- package/dist/{codec-CoX6LfOY.d.mts → codec-BcgsGCHE.d.mts} +2 -2
- package/dist/codec.d.mts +1 -1
- package/dist/{color-Bt0Lv1e3.d.mts → color-LH7zKfKo.d.mts} +2 -2
- package/dist/components/Accordion/index.d.mts +4 -0
- package/dist/components/Accordion/index.mjs +330 -0
- package/dist/components/Accordion/index.mjs.map +1 -0
- package/dist/components/Breadcrumbs/index.d.mts +1 -1
- package/dist/components/Button/index.d.mts +2 -2
- package/dist/components/ButtonGroup/index.mjs +1 -1
- package/dist/components/Card/index.d.mts +2 -2
- package/dist/components/CardV2/index.d.mts +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/DataTable/TableControls/index.d.mts +19 -19
- package/dist/components/DataTable/TableControls/index.mjs +1 -1
- package/dist/components/DataTable/index.mjs +3 -3
- package/dist/components/DataTable/index.mjs.map +1 -1
- package/dist/components/DataTable/types.d.mts +2 -2
- package/dist/components/DatePicker/index.d.mts +5 -5
- package/dist/components/DatePicker/index.mjs +1 -1
- package/dist/components/DropdownMenu/index.d.mts +1 -1
- package/dist/components/FormControl/index.d.mts +2 -2
- package/dist/components/FormControl/index.mjs +2 -2
- package/dist/components/FormField/index.d.mts +1 -1
- package/dist/components/FormField/index.mjs +1 -1
- package/dist/components/Grid/index.d.mts +2 -2
- package/dist/components/Grid/index.mjs +2 -85
- package/dist/components/ImageTile/index.mjs +1 -1
- package/dist/components/Input/index.d.mts +1 -1
- package/dist/components/Input/index.mjs +1 -1
- package/dist/components/Link/index.mjs.map +1 -1
- package/dist/components/ListBox/index.d.mts +3 -3
- package/dist/components/ListBox/index.mjs +1 -1
- package/dist/components/MaskedInput/index.mjs +1 -1
- package/dist/components/Menu/index.d.mts +1 -1
- package/dist/components/Modal/index.d.mts +1 -1
- package/dist/components/Modal/index.mjs +1 -257
- package/dist/components/PageHeader/index.mjs +1 -1
- package/dist/components/Pagination/index.d.mts +3 -3
- package/dist/components/Pagination/index.mjs +1 -1
- package/dist/components/ProgressIndicator/index.d.mts +2 -2
- package/dist/components/ProgressIndicator/index.mjs +1 -187
- package/dist/components/Radio/index.mjs +1 -1
- package/dist/components/RadioGroup/index.d.mts +1 -1
- package/dist/components/RadioGroup/index.mjs +1 -1
- package/dist/components/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/Stack/index.d.mts +1 -1
- package/dist/components/Sticker/index.d.mts +1 -1
- package/dist/components/Table/index.d.mts +8 -8
- package/dist/components/TableBox/index.d.mts +2 -2
- package/dist/components/TableBox/index.mjs +1 -1
- package/dist/components/Text/index.d.mts +1 -1
- package/dist/components/TextArea/index.d.mts +1 -1
- package/dist/components/TextArea/index.mjs +1 -1
- package/dist/components/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/WizardModal/index.d.mts +2 -0
- package/dist/components/WizardModal/index.mjs +106 -0
- package/dist/components/WizardModal/index.mjs.map +1 -0
- package/dist/compound-expression.d.mts +1 -1
- package/dist/{constants-D8bzZ-7B.d.mts → constants-BpwnTzcv.d.mts} +1 -1
- package/dist/constants.d.mts +1 -1
- package/dist/{createPath-BDYRvl57.d.mts → createPath-Bst12Uxr.d.mts} +2 -2
- package/dist/createPath.d.mts +1 -1
- package/dist/{date-range-rule-value-jZAHuxZJ.d.mts → date-range-rule-value-C4ir2Y8W.d.mts} +2 -2
- package/dist/date-range-rule-value.d.mts +1 -1
- package/dist/{date-rule-intent-CC1LdkE7.d.mts → date-rule-intent-gKmuxMVA.d.mts} +3 -3
- package/dist/date-rule-intent.d.mts +1 -1
- package/dist/display.d.mts +1 -1
- package/dist/fieldPickerOptions.d.mts +2 -2
- package/dist/{filter-size-context-BGczB5R9.d.mts → filter-size-context-BOpH6pBm.d.mts} +2 -2
- package/dist/filter-size-context.d.mts +1 -1
- package/dist/helpers.d.mts +1 -1
- package/dist/{index-BZmGEbsA.d.mts → index-BXdrzR0c.d.mts} +3 -3
- package/dist/{index-DalP_w0c.d.mts → index-C2-PBfN3.d.mts} +2 -2
- package/dist/{index-BRKXhLGa.d.mts → index-c0aXmZV9.d.mts} +2 -2
- package/dist/index-dhjtMp5F.d.mts +1 -0
- package/dist/index-xmouCHX9.d.mts +1 -0
- package/dist/index.d.mts +1 -1
- package/dist/index2.d.mts +1 -1
- package/dist/index3.d.mts +3 -3
- package/dist/index4.d.mts +1 -1
- package/dist/index5.d.mts +14 -14
- package/dist/{input-DCJivcWf.d.mts → input-DVJhMlxU.d.mts} +3 -3
- package/dist/inputFields.d.mts +14 -12
- package/dist/{jsonSchema-c_EfAj8y.d.mts → jsonSchema-DmdZYC4a.d.mts} +35 -11
- package/dist/lib/PDSProvider.d.mts +2 -2
- package/dist/lib/TruncatedText.d.mts +1 -1
- package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
- package/dist/lib/color.d.mts +1 -1
- package/dist/lib/date-filter/index.d.mts +2 -2
- package/dist/lib/jsonSchema.d.mts +2 -2
- package/dist/lib/jsonSchema.mjs +10 -10
- package/dist/lib/jsonSchema.mjs.map +1 -1
- package/dist/lib/message.d.mts +1 -1
- package/dist/lib/methodChain.d.mts +1 -1
- package/dist/lib/objectSchemaTypes.d.mts +1 -1
- package/dist/lib/pseudoClass.d.mts +1 -1
- package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
- package/dist/lib/router/adapters/tanstack.d.mts +1 -1
- package/dist/lib/router/index.d.mts +5 -5
- package/dist/lib/semanticColor.d.mts +1 -1
- package/dist/{message-CjIHdhX1.d.mts → message-CKSLIKF0.d.mts} +1 -1
- package/dist/mixins/focus.d.mts +1 -1
- package/dist/mixins/hoverable.d.mts +2 -2
- package/dist/mixins/input.d.mts +1 -1
- package/dist/mixins/menuItem.d.mts +2 -2
- package/dist/mixins/text.d.mts +1 -1
- package/dist/{operators-x_ZENhrT.d.mts → operators-1_jTgYRX.d.mts} +2 -2
- package/dist/operators.d.mts +1 -1
- package/dist/{palette-qgPRWgUN.d.mts → palette-CMOEyNPH.d.mts} +3 -3
- package/dist/palette.d.mts +1 -1
- package/dist/patterns/LayoutLoadingShimmer/index.mjs +1 -1
- package/dist/patterns/PageLayout/index.d.mts +4 -1
- package/dist/patterns/PageLayout/index.mjs +99 -2
- package/dist/patterns/PageLayout/index.mjs.map +1 -1
- package/dist/reactRouterFallback.d.mts +1 -1
- package/dist/relative-date-label.d.mts +1 -1
- package/dist/scrollExpandedItemIntoView.d.mts +12 -0
- package/dist/{semantic-DUctmpu_.d.mts → semantic-BXwNUd4a.d.mts} +1 -1
- package/dist/{semanticColor-IAhXS17y.d.mts → semanticColor-Cru2gSys.d.mts} +3 -3
- package/dist/{text-DjTGRUM1.d.mts → text-CxIup7HJ.d.mts} +1 -1
- package/dist/{theme-DKiszVRN.d.mts → theme-CW6qlONZ.d.mts} +3 -3
- package/dist/theme.d.mts +1 -1
- package/dist/tone.d.mts +3 -3
- package/dist/{types-gnF3MPfk2.d.mts → types-3iEDsymE.d.mts} +2 -2
- package/dist/{types-CuQSgl1F.d.mts → types-B-stjYNc.d.mts} +1 -1
- package/dist/{types-N8PYonjD.d.mts → types-BEjWTkZV.d.mts} +2 -2
- package/dist/{types-CcZbBH0e.d.mts → types-ChkiGhjQ.d.mts} +1 -1
- package/dist/{types-D8rWSj3z.d.mts → types-YojUycQK.d.mts} +1 -1
- package/dist/{types-RWjW1d9I.d.mts → types-g-aqbnek.d.mts} +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types2.d.mts +1 -1
- package/dist/types3.d.mts +1 -1
- package/dist/types4.d.mts +1 -1
- package/dist/types5.d.mts +1 -1
- package/dist/types6.d.mts +1 -1
- package/dist/{url-state-C2gl07_y.d.mts → url-state-CHK2N2fA.d.mts} +2 -2
- package/dist/url-state.d.mts +1 -1
- package/dist/useComboboxFooterAction.d.mts +1 -1
- package/dist/{useFilterStateV2-BQYcAdKR.d.mts → useFilterStateV2-B26e5iUx.d.mts} +3 -3
- package/dist/useFilterStateV2.d.mts +1 -1
- package/dist/{useFormField-DsvC5dOb.mjs → useFormField-BzhMbl5P.mjs} +2 -1
- package/dist/useFormField-BzhMbl5P.mjs.map +1 -0
- package/dist/{useFormField-DDbo-ExT.d.mts → useFormField-DPFClB5h.d.mts} +4 -2
- package/dist/useFormField.d.mts +1 -1
- package/dist/{useLocationPathname-K2N4fw8j.d.mts → useLocationPathname-CnRd_Rzn.d.mts} +1 -1
- package/dist/useLocationPathname.d.mts +1 -1
- package/dist/{useTableBoxDragAndDrop-CbbH3pMK.d.mts → useTableBoxDragAndDrop-DWlG5vhl.d.mts} +1 -1
- package/dist/useTableBoxDragAndDrop.d.mts +1 -1
- package/dist/useTruncation.d.mts +1 -1
- package/dist/{utilities-D0EhDri-.d.mts → utilities-BcGuP8Fd.d.mts} +1 -1
- package/dist/utilities.d.mts +1 -1
- package/dist/utils/testing.d.mts +1 -1
- package/dist/utils/testing.mjs.map +1 -1
- package/dist/utils.d.mts +1 -1
- package/dist/{validation-CMtfUd-R.d.mts → validation-B-Om4ANo.d.mts} +3 -3
- package/dist/validation.d.mts +1 -1
- package/dist/{value-control-resolver-Au9JNS5z.d.mts → value-control-resolver-BiyhB8zt.d.mts} +2 -2
- package/dist/value-control-resolver.d.mts +1 -1
- package/dist/variables/effect.d.mts +1 -1
- package/dist/variables/semantic.d.mts +1 -1
- package/llms.txt +10 -1
- package/package.json +5 -3
- package/skills/ui-authoring/COMPONENTS.md +5 -1
- package/skills/ui-authoring/PATTERNS.md +74 -115
- package/dist/Combobox-1M6EwVmq.mjs.map +0 -1
- package/dist/FormControl-BEk4F1EV.mjs.map +0 -1
- package/dist/FormField-ByT0avVx.mjs.map +0 -1
- package/dist/SegmentedControl-OHrfJiw0.mjs.map +0 -1
- package/dist/TableControls-CYTpBlQN.mjs.map +0 -1
- package/dist/Toggle-Dcn2Rqgm.mjs.map +0 -1
- package/dist/components/Grid/index.mjs.map +0 -1
- package/dist/components/Modal/index.mjs.map +0 -1
- package/dist/components/ProgressIndicator/index.mjs.map +0 -1
- package/dist/fieldSchemaTypes-BVYSm74B.d.mts +0 -39
- package/dist/lib/fieldSchemaTypes.d.mts +0 -2
- package/dist/lib/fieldSchemaTypes.mjs +0 -41
- package/dist/lib/fieldSchemaTypes.mjs.map +0 -1
- package/dist/useFormField-DsvC5dOb.mjs.map +0 -1
- /package/dist/{index-B33elXxm.d.mts → index-BCh-G39Y2.d.mts} +0 -0
- /package/dist/{index-B_BBnMou.d.mts → index-BMBcfD_R.d.mts} +0 -0
- /package/dist/{index-BrGZHEgX.d.mts → index-BOn0AAue.d.mts} +0 -0
- /package/dist/{index-BwAfCVZH2.d.mts → index-BcsXXrHq.d.mts} +0 -0
- /package/dist/{index-C6HcjJiY.d.mts → index-BwFl_eS0.d.mts} +0 -0
- /package/dist/{index-CX869wwk.d.mts → index-C-lwXyQ6.d.mts} +0 -0
- /package/dist/{index-CjDodOH2.d.mts → index-C1o2TFfS.d.mts} +0 -0
- /package/dist/{index-CsuikFeJ.d.mts → index-C3kE54DD.d.mts} +0 -0
- /package/dist/{index-CzItj62a.d.mts → index-CREkvfw9.d.mts} +0 -0
- /package/dist/{index-D13oYj4_.d.mts → index-CfCYi7PF.d.mts} +0 -0
- /package/dist/{index-D4DUvwPf.d.mts → index-DCTy4zg0.d.mts} +0 -0
- /package/dist/{index-DMRtRo7y.d.mts → index-DWIh4oP5.d.mts} +0 -0
- /package/dist/{index-DXJd7-2Z.d.mts → index-De7MV8-j.d.mts} +0 -0
- /package/dist/{index-DZlqSwCF.d.mts → index-DgJfEygr.d.mts} +0 -0
- /package/dist/{index-DeVKzGce.d.mts → index-DrK1_jKY.d.mts} +0 -0
- /package/dist/{index-Deol7ZWO.d.mts → index-Es5nKSSL.d.mts} +0 -0
- /package/dist/{index-DztUdPP_.d.mts → index-Qwqzz3XM.d.mts} +0 -0
- /package/dist/{index-Rvd9MEUQ.d.mts → index-Wc1llEvP.d.mts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@persona/design-system",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.2",
|
|
4
4
|
"description": "React components for Persona UI",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tanstack-intent"
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"types": "./dist/index.d.mts",
|
|
19
19
|
"exports": {
|
|
20
20
|
".": "./dist/index.mjs",
|
|
21
|
+
"./components/Accordion": "./dist/components/Accordion/index.mjs",
|
|
21
22
|
"./components/Attribute": "./dist/components/Attribute/index.mjs",
|
|
22
23
|
"./components/Badge": "./dist/components/Badge/index.mjs",
|
|
23
24
|
"./components/Banner": "./dist/components/Banner/index.mjs",
|
|
@@ -85,6 +86,7 @@
|
|
|
85
86
|
"./components/Toast": "./dist/components/Toast/index.mjs",
|
|
86
87
|
"./components/Toggle": "./dist/components/Toggle/index.mjs",
|
|
87
88
|
"./components/Tooltip": "./dist/components/Tooltip/index.mjs",
|
|
89
|
+
"./components/WizardModal": "./dist/components/WizardModal/index.mjs",
|
|
88
90
|
"./lib/color": "./dist/lib/color.mjs",
|
|
89
91
|
"./lib/comboboxHelper": "./dist/lib/comboboxHelper.mjs",
|
|
90
92
|
"./lib/ConfigContext": "./dist/lib/ConfigContext.mjs",
|
|
@@ -94,7 +96,6 @@
|
|
|
94
96
|
"./lib/embeddedSurfaceProtocol": "./dist/lib/embeddedSurfaceProtocol.mjs",
|
|
95
97
|
"./lib/embeddedSurfaceRegistry": "./dist/lib/embeddedSurfaceRegistry.mjs",
|
|
96
98
|
"./lib/errorReporter": "./dist/lib/errorReporter.mjs",
|
|
97
|
-
"./lib/fieldSchemaTypes": "./dist/lib/fieldSchemaTypes.mjs",
|
|
98
99
|
"./lib/GlobalStyles": "./dist/lib/GlobalStyles.mjs",
|
|
99
100
|
"./lib/HeadlessAriaButton": "./dist/lib/HeadlessAriaButton.mjs",
|
|
100
101
|
"./lib/jsonSchema": "./dist/lib/jsonSchema.mjs",
|
|
@@ -259,6 +260,7 @@
|
|
|
259
260
|
"publishConfig": {
|
|
260
261
|
"exports": {
|
|
261
262
|
".": "./dist/index.mjs",
|
|
263
|
+
"./components/Accordion": "./dist/components/Accordion/index.mjs",
|
|
262
264
|
"./components/Attribute": "./dist/components/Attribute/index.mjs",
|
|
263
265
|
"./components/Badge": "./dist/components/Badge/index.mjs",
|
|
264
266
|
"./components/Banner": "./dist/components/Banner/index.mjs",
|
|
@@ -326,6 +328,7 @@
|
|
|
326
328
|
"./components/Toast": "./dist/components/Toast/index.mjs",
|
|
327
329
|
"./components/Toggle": "./dist/components/Toggle/index.mjs",
|
|
328
330
|
"./components/Tooltip": "./dist/components/Tooltip/index.mjs",
|
|
331
|
+
"./components/WizardModal": "./dist/components/WizardModal/index.mjs",
|
|
329
332
|
"./lib/color": "./dist/lib/color.mjs",
|
|
330
333
|
"./lib/comboboxHelper": "./dist/lib/comboboxHelper.mjs",
|
|
331
334
|
"./lib/ConfigContext": "./dist/lib/ConfigContext.mjs",
|
|
@@ -335,7 +338,6 @@
|
|
|
335
338
|
"./lib/embeddedSurfaceProtocol": "./dist/lib/embeddedSurfaceProtocol.mjs",
|
|
336
339
|
"./lib/embeddedSurfaceRegistry": "./dist/lib/embeddedSurfaceRegistry.mjs",
|
|
337
340
|
"./lib/errorReporter": "./dist/lib/errorReporter.mjs",
|
|
338
|
-
"./lib/fieldSchemaTypes": "./dist/lib/fieldSchemaTypes.mjs",
|
|
339
341
|
"./lib/GlobalStyles": "./dist/lib/GlobalStyles.mjs",
|
|
340
342
|
"./lib/HeadlessAriaButton": "./dist/lib/HeadlessAriaButton.mjs",
|
|
341
343
|
"./lib/jsonSchema": "./dist/lib/jsonSchema.mjs",
|
|
@@ -8,6 +8,7 @@ exists. If there is no `.mdx`, use the published type declarations
|
|
|
8
8
|
|
|
9
9
|
| Component | Use for | Import |
|
|
10
10
|
| --------- | ------- | ------ |
|
|
11
|
+
| `Accordion` | An accordion UI component is used to organize and hide large amounts of content in a vertical, expandable stack that reduces scrolling on a webpage or in a container | `@persona/design-system/components/Accordion` |
|
|
11
12
|
| `Attribute` | Labeling a data value (`<dl>`/`<dt>`/`<dd>`). Use `AttributeGrid` for a grid of them | `@persona/design-system/components/Attribute` |
|
|
12
13
|
| `Badge` | Count badge — a count or notification number | `@persona/design-system/components/Badge` |
|
|
13
14
|
| `Banner` | Alert / notification — important in-context info, success, warning, or danger. Optionally dismissable | `@persona/design-system/components/Banner` |
|
|
@@ -19,7 +20,9 @@ exists. If there is no `.mdx`, use the published type declarations
|
|
|
19
20
|
| `Checkbox` | Selecting one or more options from a visible list | `@persona/design-system/components/Checkbox` |
|
|
20
21
|
| `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` |
|
|
21
22
|
| `ConfigFormGroup` | Form fields — spacing a group of config fields and setting `configField` via context. Pair with `TextField` / `TextAreaField` | `@persona/design-system/components/ConfigFormGroup` |
|
|
22
|
-
| `Container`, `Section`, `Backdrop` |
|
|
23
|
+
| `Container`, `Section`, `Backdrop` | Existing page shell. New pages use `SingleColumnLayout` or `SplitColumnLayout` | `@persona/design-system/patterns/PageLayout` |
|
|
24
|
+
| `SingleColumnLayout` | One page column, with optional tabs and a page notice. `width="wide"` uses the fluid grid | `@persona/design-system/patterns/PageLayout` |
|
|
25
|
+
| `SplitColumnLayout` | An 8:4 main and aside page. Same optional regions as `SingleColumnLayout`. Stacks main then aside below 768px | `@persona/design-system/patterns/PageLayout` |
|
|
23
26
|
| `DataTable` | Data table — browsing tabular data with filtering, bulk actions, search, pagination, and sorting | `@persona/design-system/components/DataTable` |
|
|
24
27
|
| `DatePicker` | Picking a date or date range from a calendar | `@persona/design-system/components/DatePicker` |
|
|
25
28
|
| `DropdownButton` | Opening a menu of related actions from a button | `@persona/design-system/components/DropdownButton` |
|
|
@@ -69,6 +72,7 @@ exists. If there is no `.mdx`, use the published type declarations
|
|
|
69
72
|
| `Toast` | Confirming a system event or action result that can auto-dismiss | `@persona/design-system/components/Toast` |
|
|
70
73
|
| `Toggle` | Turning a setting on or off with no extra confirmation | `@persona/design-system/components/Toggle` |
|
|
71
74
|
| `Tooltip` | Standalone tooltip — explaining an icon or control on hover or focus | `@persona/design-system/components/Tooltip` |
|
|
75
|
+
| `WizardModal` | Multi-step task behind a page overlay; Next/Confirm run `onProceed` | `@persona/design-system/components/WizardModal` |
|
|
72
76
|
|
|
73
77
|
|
|
74
78
|
## Testing
|
|
@@ -8,124 +8,102 @@ Which pattern to use, and for what. Patterns with a dedicated doc link to
|
|
|
8
8
|
|
|
9
9
|
| Pattern | Use for |
|
|
10
10
|
| ------- | ------- |
|
|
11
|
-
| Forms |
|
|
11
|
+
| [Forms](../../patterns/Forms/Forms.mdx) | Labeled fields in a `Modal`, `RightPanel`, or page. Unlabeled controls (search, toolbars) stay as `Input` |
|
|
12
12
|
| Stack / HStack | A heading above content, a cancel/save pair, a title next to an add button, or a wrapping row of tags |
|
|
13
13
|
| EmptyStates | A list, table, or card has no items yet and you want to invite adding one |
|
|
14
14
|
| Charting | Use `recharts` for all chart components. Always import colors from `ChartingColors` — never hardcode hex values. |
|
|
15
15
|
| Indicators | A record’s open, pending, completed, or failed state next to other content. An in-page notice the user shouldn’t miss (success, warning, error). Use `Toast` if it can auto-dismiss |
|
|
16
|
-
| PageLayout |
|
|
16
|
+
| [SingleColumnLayout](../../patterns/PageLayout/SingleColumnLayout.mdx) | One page column under `PageHeader`, with optional tabs and a page notice. `width="wide"` uses the fluid grid |
|
|
17
|
+
| [SplitColumnLayout](../../patterns/PageLayout/SplitColumnLayout.mdx) | An 8:4 main and aside page. Same optional regions. Stacks main then aside below 768px |
|
|
17
18
|
| LayoutLoadingSpinner | Centered 120px loading ring that fills its container. Use as the loading state for a page or embedded app when no layout-specific shimmer exists. |
|
|
18
19
|
| LayoutLoadingShimmer | Filling space while content loads |
|
|
19
20
|
| [Panels](../../patterns/Panels/Panels.mdx) | Use `RightPanel` when the page should stay visible. Use `Modal` when the task needs full attention. Never a custom drawer. |
|
|
20
21
|
|
|
21
22
|
|
|
22
|
-
##
|
|
23
|
+
## Page layouts
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
New pages render `PageHeader`, then `SingleColumnLayout` or `SplitColumnLayout`. Do not wrap the
|
|
26
|
+
template in `Container` or `Section`.
|
|
25
27
|
|
|
26
28
|
```tsx
|
|
27
|
-
import
|
|
28
|
-
import {
|
|
29
|
+
import Header from '@persona/design-system/components/PageHeader';
|
|
30
|
+
import { SingleColumnLayout, SplitColumnLayout } from '@persona/design-system/patterns/PageLayout';
|
|
29
31
|
|
|
30
|
-
|
|
32
|
+
<Header title="Home" />
|
|
33
|
+
<SingleColumnLayout main={<PageContent />} />
|
|
31
34
|
|
|
32
|
-
<
|
|
33
|
-
<TextField
|
|
34
|
-
label="Name"
|
|
35
|
-
value={config.name}
|
|
36
|
-
onChange={(e) => setConfig({ ...config, name: e.target.value })}
|
|
37
|
-
configField={true} // helperText becomes a tooltip
|
|
38
|
-
helperText="Unique identifier"
|
|
39
|
-
errorText={errors.name}
|
|
40
|
-
rightActions={<Button size="sm" variant="basic">Generate</Button>}
|
|
41
|
-
/>
|
|
42
|
-
<TextAreaField
|
|
43
|
-
label="Prompt"
|
|
44
|
-
value={config.prompt}
|
|
45
|
-
onChange={(e) => setConfig({ ...config, prompt: e.target.value })}
|
|
46
|
-
configField={true}
|
|
47
|
-
warningText={warnings.prompt}
|
|
48
|
-
/>
|
|
49
|
-
</ConfigFormGroup>
|
|
35
|
+
<SplitColumnLayout main={<MainContent />} aside={<AsideContent />} />
|
|
50
36
|
```
|
|
51
37
|
|
|
52
|
-
- `
|
|
53
|
-
- `
|
|
54
|
-
-
|
|
38
|
+
- `width="wide"` fills the fluid grid. The default `standard` width uses the fixed grid.
|
|
39
|
+
- `tabs` and `pageNotice` are optional and scroll with the page. Omit a region and its gap is omitted too.
|
|
40
|
+
- `SplitColumnLayout` is an 8:4 main/aside split, stacking main then aside below 768px.
|
|
55
41
|
|
|
56
|
-
|
|
42
|
+
## Forms
|
|
57
43
|
|
|
58
|
-
|
|
59
|
-
`styled.label
|
|
60
|
-
`
|
|
44
|
+
Follow [Forms.mdx](../../patterns/Forms/Forms.mdx). Never hand-roll `styled.input` or
|
|
45
|
+
`styled.label`. Compose `FormField` helpers inside an existing surface (`Modal`, `RightPanel`, or a
|
|
46
|
+
page with `PageHeader`); do not invent a Form component.
|
|
61
47
|
|
|
62
|
-
|
|
63
|
-
import ConfigFormGroup from '@persona/design-system/components/ConfigFormGroup';
|
|
64
|
-
import { TextField, TextAreaField } from '@persona/design-system/components/FormField';
|
|
65
|
-
import Select, { Option } from '@persona/design-system/components/Select';
|
|
66
|
-
import { Label } from '@persona/design-system/components/Text';
|
|
67
|
-
import Stack from '@persona/design-system/components/Stack';
|
|
68
|
-
import { Spacing } from '@persona/design-tokens';
|
|
48
|
+
### Size
|
|
69
49
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
onChange={(e) => setConfig({ ...config, name: e.target.value })}
|
|
75
|
-
configField={true}
|
|
76
|
-
helperText="Unique identifier"
|
|
77
|
-
errorText={errors.name}
|
|
78
|
-
rightActions={<Button size="sm" variant="basic">Generate</Button>}
|
|
79
|
-
/>
|
|
50
|
+
Pass `size` only on boxed inputs (`TextField`, `SelectField`, `ComboboxField`, `TextAreaField`).
|
|
51
|
+
Omit it (`md` default) for modals, page forms, and create/edit. Use `size="sm"` only in dense UI:
|
|
52
|
+
editor side panels, configuration forms, filter bars, and `DataTable` cells. Never pass `size` on
|
|
53
|
+
`CheckboxGroupField` or `RadioGroupField`.
|
|
80
54
|
|
|
81
|
-
|
|
82
|
-
label="Description"
|
|
83
|
-
value={config.description}
|
|
84
|
-
onChange={(e) => setConfig({ ...config, description: e.target.value })}
|
|
85
|
-
configField={true}
|
|
86
|
-
helperText="Short summary shown in listings."
|
|
87
|
-
warningText={warnings.prompt}
|
|
88
|
-
/>
|
|
55
|
+
### Stacked vs config
|
|
89
56
|
|
|
90
|
-
|
|
91
|
-
<Label size="sm" color="secondary">Enforcement</Label>
|
|
92
|
-
<Select
|
|
93
|
-
value={config.enforcement}
|
|
94
|
-
onChange={(e) => setConfig({ ...config, enforcement: e.target.value })}
|
|
95
|
-
>
|
|
96
|
-
<Option value="strict">Strict</Option>
|
|
97
|
-
<Option value="lenient">Lenient</Option>
|
|
98
|
-
<Option value="disabled">Disabled</Option>
|
|
99
|
-
</Select>
|
|
100
|
-
</Stack>
|
|
101
|
-
</ConfigFormGroup>
|
|
102
|
-
```
|
|
57
|
+
Do not mix stacked and inline fields in one group.
|
|
103
58
|
|
|
59
|
+
**Stacked** (modal and page forms, radio/checkbox groups): put fields in one wrapping element. Do
|
|
60
|
+
not add `Stack` or `gap` — each field's `Spacing[3]` bottom margin is the gap, and a fragment inside
|
|
61
|
+
`Modal` or `Card` stacks their gap on that margin.
|
|
104
62
|
|
|
63
|
+
```tsx
|
|
64
|
+
import { TextField, TextAreaField } from '@persona/design-system/components/FormField';
|
|
105
65
|
|
|
106
|
-
|
|
66
|
+
<div>
|
|
67
|
+
<TextField label='Name' value={config.name} onChange={...} helperText='Unique identifier' errorText={errors.name} />
|
|
68
|
+
<TextAreaField label='Description' value={config.description} onChange={...} />
|
|
69
|
+
</div>;
|
|
70
|
+
```
|
|
107
71
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
- `errorText` — error message (red)
|
|
112
|
-
- `warningText` — warning message (yellow)
|
|
113
|
-
- `configField` — boolean, renders helper as tooltip
|
|
114
|
-
- `rightActions` — ReactNode for buttons/icons next to label
|
|
115
|
-
- `disabled` — boolean
|
|
72
|
+
**Config** (editor experiences where the page stays visible): wrap in `ConfigFormGroup`, which sets
|
|
73
|
+
`configField` for children. `helperText` becomes a label tooltip; `warningText` / `errorText` mark
|
|
74
|
+
the field but do not render under it. `rightActions` sits next to the label.
|
|
116
75
|
|
|
76
|
+
```tsx
|
|
77
|
+
import ConfigFormGroup from '@persona/design-system/components/ConfigFormGroup';
|
|
78
|
+
import { TextField, TextAreaField } from '@persona/design-system/components/FormField';
|
|
117
79
|
|
|
80
|
+
<ConfigFormGroup>
|
|
81
|
+
<TextField
|
|
82
|
+
label='Name'
|
|
83
|
+
value={config.name}
|
|
84
|
+
onChange={(e) => updateField('name', e.target.value)}
|
|
85
|
+
rightActions={<Button size='sm' variant='basic'>Generate</Button>}
|
|
86
|
+
/>
|
|
87
|
+
<TextAreaField label='Prompt' value={config.prompt} onChange={...} warningText={warnings.prompt} />
|
|
88
|
+
</ConfigFormGroup>;
|
|
89
|
+
```
|
|
118
90
|
|
|
119
91
|
### Form state hook
|
|
120
92
|
|
|
93
|
+
Clear `errorText` on change via `updateField`.
|
|
94
|
+
|
|
121
95
|
```tsx
|
|
122
96
|
const useFormState = (initialConfig) => {
|
|
123
97
|
const [config, setConfig] = useState(initialConfig);
|
|
124
98
|
const [errors, setErrors] = useState({});
|
|
125
99
|
|
|
126
100
|
const updateField = useCallback((field, value) => {
|
|
127
|
-
setConfig(prev => ({ ...prev, [field]: value }));
|
|
128
|
-
setErrors(prev => {
|
|
101
|
+
setConfig((prev) => ({ ...prev, [field]: value }));
|
|
102
|
+
setErrors((prev) => {
|
|
103
|
+
const next = { ...prev };
|
|
104
|
+
delete next[field];
|
|
105
|
+
return next;
|
|
106
|
+
});
|
|
129
107
|
}, []);
|
|
130
108
|
|
|
131
109
|
const validate = useCallback(() => {
|
|
@@ -139,48 +117,27 @@ const useFormState = (initialConfig) => {
|
|
|
139
117
|
};
|
|
140
118
|
```
|
|
141
119
|
|
|
120
|
+
### Tooltip on labels
|
|
142
121
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
```tsx
|
|
147
|
-
import Stack from '@persona/design-system/components/Stack';
|
|
148
|
-
import { HStack } from '@persona/design-system/components/Stack';
|
|
149
|
-
|
|
150
|
-
<Stack spacing={Spacing[5]}>
|
|
151
|
-
<ConfigFormGroup>
|
|
152
|
-
<TextField label="Name" value={config.name} onChange={...} />
|
|
153
|
-
<TextAreaField label="Description" value={config.description} onChange={...} />
|
|
154
|
-
</ConfigFormGroup>
|
|
155
|
-
<HStack spacing={Spacing[3]} justify="flex-end">
|
|
156
|
-
<Button variant="basic" onClick={onCancel}>Cancel</Button>
|
|
157
|
-
<Button variant="primary" onClick={handleSave} isPending={isSaving}>Save</Button>
|
|
158
|
-
</HStack>
|
|
159
|
-
</Stack>
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
### Tooltip on Labels
|
|
163
|
-
|
|
164
|
-
**Always use `TextUnderlineTooltip` — never place an info icon next to a label.**
|
|
122
|
+
**Always use `TextUnderlineTooltip` — never place an info icon next to a label.** `iconTrigger` is
|
|
123
|
+
only for standalone icon buttons with no adjacent label text.
|
|
165
124
|
|
|
166
125
|
```tsx
|
|
167
|
-
// ❌ Deprecated: icon trigger next to label
|
|
168
|
-
<HStack spacing={Spacing[1]} align='center'>
|
|
169
|
-
<Label size='sm' color='secondary'>Review Type</Label>
|
|
170
|
-
<Tooltip iconTrigger={<CircleHelpIcon />} side='right'>…</Tooltip>
|
|
171
|
-
</HStack>
|
|
172
|
-
|
|
173
|
-
// ✅ Correct: dashed underline on the label itself
|
|
174
126
|
import { TextUnderlineTooltip } from '@persona/design-system/components/Tooltip';
|
|
175
127
|
|
|
176
128
|
<TextUnderlineTooltip tooltip='Explanation text.' side='right'>
|
|
177
129
|
<Label size='sm' color='secondary'>Review Type</Label>
|
|
178
|
-
</TextUnderlineTooltip
|
|
130
|
+
</TextUnderlineTooltip>;
|
|
179
131
|
```
|
|
180
132
|
|
|
181
|
-
|
|
182
|
-
|
|
133
|
+
### Choosing a surface
|
|
183
134
|
|
|
135
|
+
- `Modal`: create, confirm, or one-shot tasks where losing page context is fine. Actions go in
|
|
136
|
+
`footer`. Not for long config forms (use `WizardModal` or a page) or frequently reopened forms.
|
|
137
|
+
- `RightPanel`: editing the selected item; dense, repeatable forms. No footer prop — right-align
|
|
138
|
+
actions in the body with `HStack`.
|
|
139
|
+
- Page: long or multi-section forms users may leave and return to. `PageHeader` holds actions; put
|
|
140
|
+
field groups in `Card` (`CardV2`).
|
|
184
141
|
|
|
185
142
|
## Layout
|
|
186
143
|
|
|
@@ -188,14 +145,16 @@ import { TextUnderlineTooltip } from '@persona/design-system/components/Tooltip'
|
|
|
188
145
|
|
|
189
146
|
### Card with collapsible sections
|
|
190
147
|
|
|
148
|
+
Stacked field spacing: [Forms](../../patterns/Forms/Forms.mdx).
|
|
149
|
+
|
|
191
150
|
```tsx
|
|
192
151
|
import { Card } from '@persona/design-system/components/CardV2';
|
|
193
152
|
|
|
194
153
|
<Card>
|
|
195
154
|
<Card.Section heading={{ title: 'Basic Settings' }} collapsible={true} defaultCollapsed={false}>
|
|
196
|
-
<
|
|
155
|
+
<div>
|
|
197
156
|
<TextField label="Name" value={...} onChange={...} />
|
|
198
|
-
</
|
|
157
|
+
</div>
|
|
199
158
|
</Card.Section>
|
|
200
159
|
<Card.Section heading={{ title: 'Advanced' }} collapsible={true}>
|
|
201
160
|
{/* Advanced fields */}
|