@povio/ui 5.0.0-rc.1 → 5.0.0-rc.3
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/.rulesync/rules/ui-buttons-and-content.md +56 -0
- package/.rulesync/rules/ui-inputs-and-forms.md +62 -0
- package/.rulesync/rules/ui-overlays-navigation-and-styling.md +49 -0
- package/.rulesync/rules/ui-overview.md +33 -0
- package/README.md +49 -16
- package/dist/{Accordion-CzFKi8Bp.js → Accordion-BzwO4_ml.js} +20 -136
- package/dist/{Alert-T25LY8ZL.js → Alert-CnvEb1D_.js} +16 -12
- package/dist/{Alert-f1dG-4Uy.d.ts → Alert-DfiJbKH0.d.ts} +2 -1
- package/dist/{AlertDialog-B6R2MbNg.d.ts → AlertDialog-OWTbR4km.d.ts} +3 -3
- package/dist/{Autocomplete-CQ63Cynd.d.ts → Autocomplete-BwNHp8fy.d.ts} +1 -1
- package/dist/{Badge-YKlKz-Jy.d.ts → Badge-CBNpj823.d.ts} +8 -5
- package/dist/BadgeButton-Ccgt3oGO.d.ts +15 -0
- package/dist/{BottomSheet-DvqBvth_.js → BottomSheet-BXLE3161.js} +7 -6
- package/dist/{BottomSheet-xaymO7aQ.d.ts → BottomSheet-DbQuzfAB.d.ts} +1 -1
- package/dist/{BottomSheet.lazy-CGBRPve_.d.ts → BottomSheet.lazy-D9LCEo7s.d.ts} +1 -1
- package/dist/{Breadcrumbs-DyriI-Bi.d.ts → Breadcrumbs-CUV6CU8Q.d.ts} +1 -1
- package/dist/{Breadcrumbs-DiIYJAWf.js → Breadcrumbs-CbKzAq1v.js} +24 -38
- package/dist/Button-C5rv4Cr2.js +506 -0
- package/dist/{Button-BZ3is6IU.d.ts → Button-D-4qb0IR.d.ts} +3 -3
- package/dist/{ButtonContent-B2_dZ6vA.js → ButtonContent-c7lJayVQ.js} +10 -8
- package/dist/{Calendar-DzQApBCy.js → Calendar-CVSQH-rC.js} +22 -15
- package/dist/{CheckContent-DZ7Gk8GS.js → CheckContent-D7sZPmzx.js} +2 -2
- package/dist/{Checkbox-BepzfVfK.js → Checkbox-BU0d702K.js} +6 -6
- package/dist/{Checkbox-CHpgW3fI.d.ts → Checkbox-DVTWaMKa.d.ts} +1 -1
- package/dist/{CheckboxCheckmark-B3lnOjsU.js → CheckboxCheckmark-usHsolNj.js} +10 -10
- package/dist/{CheckboxGroup-CXrR3A-c.d.ts → CheckboxGroup-DGF12cmB.d.ts} +3 -3
- package/dist/ComponentGallery-DIFeJqGx.js +2528 -0
- package/dist/{DatePicker-B3l9TEjW.d.ts → DatePicker-8xSs_jNd.d.ts} +3 -3
- package/dist/{DatePicker-CI87jC4_.js → DatePicker-D95gDPhg.js} +12 -11
- package/dist/{DatePickerInput-UBZcTmdv.js → DatePickerInput-CX6NYim4.js} +12 -23
- package/dist/{DatePickerInput-CZTEsrS0.d.ts → DatePickerInput-D81ZJ3fT.d.ts} +3 -3
- package/dist/{DateRangePicker-DKkc2B3n.d.ts → DateRangePicker-Bfq-yDm7.d.ts} +3 -3
- package/dist/{DateRangePicker-BX2O5zA8.js → DateRangePicker-_uTQk_ae.js} +16 -15
- package/dist/{DateTimePicker-CVfkp45w.js → DateTimePicker-BB058Z34.js} +11 -10
- package/dist/{DateTimePicker-IHr-wPq8.d.ts → DateTimePicker-D4lHyf6P.d.ts} +3 -3
- package/dist/{Dialog-DdRP4YFC.js → Dialog-9manOgMA.js} +4 -4
- package/dist/{Dialog-CXoVeIkU.js → Dialog-CKLkS00H.js} +10 -2
- package/dist/{Dialog-DEbI_9S-.d.ts → Dialog-CW93T9X1.d.ts} +3 -2
- package/dist/{DropdownMenu-zrodtd44.js → DropdownMenu-5jmtgLXd.js} +8 -6
- package/dist/{DropdownMenu-CWDhk3XA.d.ts → DropdownMenu-JNpYT4-3.d.ts} +3 -2
- package/dist/{DropdownMenuDesktop-CGYxsavQ.js → DropdownMenuDesktop-Cl9gZVq0.js} +9 -38
- package/dist/{FileInput-Dz1eESr_.js → FileInput-C0-6bw4w.js} +8 -8
- package/dist/{FileInput-BQbn77bE.d.ts → FileInput-C4CE5kuP.d.ts} +5 -4
- package/dist/{FileUpload-qySCMcLn.d.ts → FileUpload-CR7bZxV1.d.ts} +1 -1
- package/dist/{FileUpload-D3Io7Is5.js → FileUpload-DDpYMn8f.js} +51 -139
- package/dist/{FileUploadContainer-qOyGvb5J.d.ts → FileUploadContainer-042ztsaL.d.ts} +1 -1
- package/dist/{Form-u_N_6mwo.d.ts → Form-BJ12MjE-.d.ts} +1 -1
- package/dist/{FormField-B0miX3gu.d.ts → FormField-Byiehm9y.d.ts} +1 -1
- package/dist/{FormField-CHD4OJOt.js → FormField-U_-d4V_g.js} +9 -9
- package/dist/{FormFieldError-QRAFHUTt.js → FormFieldError-DeOHHLo2.js} +1 -1
- package/dist/FormFieldHeaderTooltip-DXbuu88v.js +17 -0
- package/dist/{IconButton-KXecZgYX.d.ts → IconButton-D4thBurp.d.ts} +2 -2
- package/dist/IconSlot-DSK7qNxc.js +79 -0
- package/dist/{InlineIconButton-CbKZ2U_a.d.ts → InlineIconButton-BeJCjl-q.d.ts} +2 -2
- package/dist/{InlineTooltipWrapper-g5yoeH1B.js → InlineTooltipWrapper-Bpmd--e7.js} +3 -3
- package/dist/{Input-efmPwk8f.d.ts → Input-DOanwj3l.d.ts} +3 -3
- package/dist/{InputContent-DuBa9FuI.d.ts → InputContent-CXuP1ghQ.d.ts} +3 -3
- package/dist/{InputItem-2zf6QI5L.js → InputItem-D-KuiNSc.js} +11 -11
- package/dist/{Inputs-C-w03Q_F.d.ts → Inputs-DA73LmLc.d.ts} +1 -1
- package/dist/{Inputs-BceDTmdT.js → Inputs-j3JmcLWR.js} +1 -1
- package/dist/{Link-QYpprkN1.d.ts → Link-Ow9H7kNv.d.ts} +3 -2
- package/dist/{ListBox-B7DW1S7n.js → ListBox-CL8Ar4Q_.js} +5 -4
- package/dist/{MenuItem--Mjd_yK8.d.ts → MenuItem-DHyqOqln.d.ts} +1 -1
- package/dist/{Modal-CoFt5PGP.js → Modal-w60dVQcb.js} +1 -1
- package/dist/{NumberField-z2JatYK0.d.ts → NumberField-Cb9Gf6QJ.d.ts} +3 -3
- package/dist/{NumberRangeInput-Chai3iEi.d.ts → NumberRangeInput-BfbJQqzn.d.ts} +2 -2
- package/dist/{NumberRangeInput-BxVrHq8R.js → NumberRangeInput-C-8U05wF.js} +6 -6
- package/dist/{Pagination-CXtIDclf.d.ts → Pagination-CwQu5Py8.d.ts} +1 -1
- package/dist/{PaginationList-CXG4jWFD.d.ts → PaginationList-DMRUGtf8.d.ts} +1 -1
- package/dist/{PaginationList-0bAmvXC0.js → PaginationList-DtvuP63b.js} +2 -2
- package/dist/{PasswordInput-ub2TQxef.d.ts → PasswordInput-CLwFUgl0.d.ts} +1 -1
- package/dist/{Popover-DUKH0q9u.d.ts → Popover-BTHPteIh.d.ts} +2 -2
- package/dist/{Progress-DQWiFP0L.js → Progress-B3mY9rIP.js} +2 -2
- package/dist/{Progress-Dho39FDs.d.ts → Progress-CjWOR38H.d.ts} +2 -1
- package/dist/{QuerySelect-Bo1K6gi_.d.ts → QuerySelect-BGxb6Y0K.d.ts} +2 -2
- package/dist/{RadioGroup-SSZYch-J.js → RadioGroup-B7_pNwn9.js} +13 -13
- package/dist/{RadioGroup-B_zJdn4y.d.ts → RadioGroup-CZg2kIMk.d.ts} +3 -3
- package/dist/{RichTextEditor-D6RewmRj.js → RichTextEditor-D9-B1Cze.js} +52 -133
- package/dist/{RichTextEditor-B_JX3nor.d.ts → RichTextEditor-YxuRUlI7.d.ts} +1 -1
- package/dist/{Select-CuZDkeQs.js → Select-CkujlTjm.js} +5 -4
- package/dist/{Select-DeapZMYx.d.ts → Select-pHbyJdZJ.d.ts} +1 -1
- package/dist/{SelectBase-7SE9Za2r.d.ts → SelectBase-Omiq2D3M.d.ts} +3 -3
- package/dist/{Slider-DJ9K_a-x.js → Slider-BHPl0OPy.js} +11 -11
- package/dist/{Slider-BFViQmM3.d.ts → Slider-EYlGCLWe.d.ts} +1 -1
- package/dist/{Spinner-BEYBu85B.js → Spinner-BeVTUzzx.js} +1 -1
- package/dist/{Spinner-BbcI6IOb.d.ts → Spinner-DbXeDOa2.d.ts} +2 -1
- package/dist/{SplitButton-lL87EcBL.d.ts → SplitButton-D9ngY1rJ.d.ts} +3 -3
- package/dist/{Stepper-C1YPgTBG.js → Stepper-Cp5vbL5g.js} +4 -117
- package/dist/{Stepper-hlhViuaK.d.ts → Stepper-TATlHZhQ.d.ts} +9 -8
- package/dist/{Switch-JxRmH1dX.js → Switch-CqnGEdeD.js} +11 -11
- package/dist/{Switch-DPftmB1b.d.ts → Switch-s_EPn0Jz.d.ts} +1 -1
- package/dist/Table-BDNSuEWc.js +689 -0
- package/dist/Tag-AHfV_XSf.d.ts +44 -0
- package/dist/{Tag-HiDH438e.js → Tag-DPg5sL1Z.js} +22 -21
- package/dist/{TextArea-gikUKKDl.js → TextArea-DqHDiRGJ.js} +6 -6
- package/dist/{TextArea-BhrCBGbq.d.ts → TextArea-l_keyLK7.d.ts} +2 -2
- package/dist/{TextButton-DnXRykhF.d.ts → TextButton-XUhV_1s0.d.ts} +4 -4
- package/dist/{TimePicker-CmT89X7v.d.ts → TimePicker-B1POvGWs.d.ts} +2 -2
- package/dist/{TimePicker-DtNTOOGr.js → TimePicker-DQ6JCkGB.js} +10 -10
- package/dist/Toast-DtG3pA61.js +53 -0
- package/dist/{Toast-B4cXs2rj.d.ts → Toast-ruXqONDA.d.ts} +1 -1
- package/dist/{ToastContainer-BbsMIwtC.js → ToastContainer-qgpzMFD4.js} +4 -3
- package/dist/{ToggleButton-BGuzPJDO.d.ts → ToggleButton-7aP8Jb11.d.ts} +2 -2
- package/dist/{ToggleGroup-D9CFdM5-.d.ts → ToggleGroup-CRFDIPGZ.d.ts} +1 -1
- package/dist/{ToggleGroup-Cl0NS3fe.js → ToggleGroup-DX0VYXwP.js} +25 -58
- package/dist/{Tooltip-aE1Vswxz.js → Tooltip-B9DKcYvr.js} +6 -47
- package/dist/{Tooltip-D7dNwGy9.d.ts → Tooltip-DHv6vAqW.d.ts} +6 -5
- package/dist/{TooltipWrapper-CRf-JFeo.js → TooltipWrapper-DznDgVJB.js} +4 -4
- package/dist/{Typography-B0Gp1lpc.js → Typography-LU4z2pR1.js} +2 -2
- package/dist/{Typography-BiuidzDC.d.ts → Typography-XljT9s02.d.ts} +1 -1
- package/dist/accordion.cva-CL1bVscW.js +129 -0
- package/dist/{autocomplete-BJ7rqWa4.d.ts → autocomplete-DeERHN8W.d.ts} +2 -2
- package/dist/badgeButton.cva-B2bgCQP6.d.ts +41 -0
- package/dist/badgeButton.cva-CvN4CTx5.js +300 -0
- package/dist/breadcrumbs.cva-7zzdDhVR.js +27 -0
- package/dist/{button.cva-BvRI-3Gn.d.ts → button.cva-C7kEhgoA.d.ts} +7 -6
- package/dist/{buttonContent.cva-BDT_CReI.d.ts → buttonContent.cva-DPIlROA9.d.ts} +2 -2
- package/dist/{checkbox-BfcE8J5P.d.ts → checkbox-DxIPDTK5.d.ts} +1 -1
- package/dist/{checkbox-group-CHs2wFHS.d.ts → checkbox-group-B3BOVshI.d.ts} +1 -1
- package/dist/{checkbox.cva-gv87kr1W.d.ts → checkbox.cva-t1Ox50hy.d.ts} +4 -3
- package/dist/components/accordion.js +1 -1
- package/dist/components/alert-dialog.d.ts +1 -1
- package/dist/components/alert-dialog.js +4 -4
- package/dist/components/alert.d.ts +1 -1
- package/dist/components/alert.js +1 -1
- package/dist/components/autocomplete.d.ts +1 -1
- package/dist/components/autocomplete.js +5 -4
- package/dist/components/badge-button.d.ts +2 -0
- package/dist/components/{pill-button.js → badge-button.js} +13 -12
- package/dist/components/badge.d.ts +1 -1
- package/dist/components/badge.js +56 -37
- package/dist/components/bottom-sheet.d.ts +2 -2
- package/dist/components/bottom-sheet.js +2 -2
- package/dist/components/breadcrumbs.d.ts +1 -1
- package/dist/components/breadcrumbs.js +1 -1
- package/dist/components/button.d.ts +2 -2
- package/dist/components/button.js +1 -1
- package/dist/components/checkbox-group.d.ts +1 -1
- package/dist/components/checkbox-group.js +6 -6
- package/dist/components/checkbox.d.ts +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/date-picker.d.ts +1 -1
- package/dist/components/date-picker.js +1 -1
- package/dist/components/date-range-picker.d.ts +1 -1
- package/dist/components/date-range-picker.js +1 -1
- package/dist/components/date-time-picker.d.ts +1 -1
- package/dist/components/date-time-picker.js +1 -1
- package/dist/components/dialog.d.ts +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/drawer.js +3 -3
- package/dist/components/dropdown-menu.d.ts +2 -2
- package/dist/components/dropdown-menu.js +2 -2
- package/dist/components/file-input.d.ts +1 -1
- package/dist/components/file-input.js +1 -1
- package/dist/components/file-upload-container.d.ts +2 -2
- package/dist/components/file-upload-container.js +1 -1
- package/dist/components/file-upload.d.ts +2 -2
- package/dist/components/file-upload.js +1 -1
- package/dist/components/form-field.d.ts +1 -1
- package/dist/components/form-field.js +1 -1
- package/dist/components/icon-button.d.ts +1 -1
- package/dist/components/icon-button.js +2 -2
- package/dist/components/icon-slot.d.ts +2 -0
- package/dist/components/icon-slot.js +2 -0
- package/dist/components/inline-icon-button.d.ts +1 -1
- package/dist/components/inline-icon-button.js +1 -1
- package/dist/components/input.d.ts +1 -1
- package/dist/components/input.js +7 -7
- package/dist/components/link.d.ts +1 -1
- package/dist/components/link.js +32 -1
- package/dist/components/number-field.d.ts +1 -1
- package/dist/components/number-field.js +7 -7
- package/dist/components/number-range-input.d.ts +1 -1
- package/dist/components/number-range-input.js +1 -1
- package/dist/components/pagination-list.d.ts +1 -1
- package/dist/components/pagination-list.js +1 -1
- package/dist/components/pagination.d.ts +1 -1
- package/dist/components/pagination.js +2 -2
- package/dist/components/password-input.d.ts +1 -1
- package/dist/components/popover.d.ts +1 -1
- package/dist/components/popover.js +6 -5
- package/dist/components/progress.d.ts +1 -1
- package/dist/components/progress.js +1 -1
- package/dist/components/query-autocomplete.d.ts +2 -2
- package/dist/components/query-autocomplete.js +2 -2
- package/dist/components/query-select.d.ts +1 -1
- package/dist/components/query-select.js +3 -3
- package/dist/components/radio-group.d.ts +1 -1
- package/dist/components/radio-group.js +1 -1
- package/dist/components/select.d.ts +2 -2
- package/dist/components/select.js +1 -1
- package/dist/components/slider.d.ts +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/spinner.d.ts +1 -1
- package/dist/components/spinner.js +1 -1
- package/dist/components/split-button.d.ts +1 -1
- package/dist/components/split-button.js +3 -3
- package/dist/components/stepper.d.ts +1 -1
- package/dist/components/stepper.js +1 -1
- package/dist/components/switch.d.ts +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/tag.d.ts +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/text-area.d.ts +1 -1
- package/dist/components/text-area.js +1 -1
- package/dist/components/text-button.d.ts +1 -1
- package/dist/components/text-button.js +1 -1
- package/dist/components/time-picker.d.ts +1 -1
- package/dist/components/time-picker.js +1 -1
- package/dist/components/toast.d.ts +2 -2
- package/dist/components/toast.js +2 -2
- package/dist/components/toggle-button.d.ts +1 -1
- package/dist/components/toggle-button.js +1 -1
- package/dist/components/toggle-group.d.ts +2 -2
- package/dist/components/toggle-group.js +1 -1
- package/dist/components/tooltip-ellipsis.js +1 -1
- package/dist/components/tooltip.d.ts +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/typography.d.ts +2 -2
- package/dist/components/typography.js +1 -1
- package/dist/components/use-toast.d.ts +1 -1
- package/dist/components/use-toast.js +2 -2
- package/dist/config/confirmation.d.ts +1 -1
- package/dist/config/link-context.d.ts +2 -2
- package/dist/config/ui-config.d.ts +2 -2
- package/dist/config/ui-config.js +1 -1
- package/dist/config/ui-configurator-theme.d.ts +2 -0
- package/dist/config/ui-configurator-theme.js +2 -0
- package/dist/config/ui-configurator-vite.d.ts +10 -0
- package/dist/config/ui-configurator-vite.js +174 -0
- package/dist/config/ui-configurator.d.ts +934 -0
- package/dist/config/ui-configurator.js +3731 -0
- package/dist/config/ui-overrides.d.ts +1 -1
- package/dist/config/ui-overrides.js +1 -1
- package/dist/{confirmation.context-DPAKsLYl.d.ts → confirmation.context-BOeEVczb.d.ts} +1 -1
- package/dist/{date-picker-BYFWSbN8.d.ts → date-picker-DnxDmlOW.d.ts} +1 -1
- package/dist/{date-range-picker-BaaXOObm.d.ts → date-range-picker-DHDOSvHN.d.ts} +1 -1
- package/dist/{date-time-picker-D42cTCgx.d.ts → date-time-picker-UkTa0OJ8.d.ts} +1 -1
- package/dist/datePickerInput.cva-Cd7UUN61.js +14 -0
- package/dist/{datePickerValue.utils-CFCY-fRJ.js → datePickerValue.utils-CUzkWie8.js} +5 -5
- package/dist/{dialog.cva---xiOXMQ.js → dialog.cva-COhDZaVl.js} +4 -4
- package/dist/{dist-B8h0VT0E.js → dist-CAdwxJbe.js} +1 -208
- package/dist/{dom.utils-DjuRTR6U.js → dom.utils-D1AopHx9.js} +1 -1
- package/dist/dropdownMenu.cva-DvEmX0bs.js +34 -0
- package/dist/{dynamicInputs-wEEikYeg.d.ts → dynamicInputs-iP39lVKf.d.ts} +102 -100
- package/dist/{fieldAdapter-C0lCFmf0.js → fieldAdapter-DjYls12j.js} +1 -1
- package/dist/{file-input-C56GXRwz.d.ts → file-input-DkbkdI7l.d.ts} +1 -1
- package/dist/{file-upload-Bx0X534g.d.ts → file-upload-CTsPhxJk.d.ts} +2 -2
- package/dist/fileUpload.cva-ujmStxB1.js +42 -0
- package/dist/{fileUpload.types-DWuQKA2l.d.ts → fileUpload.types-n5FxK_F-.d.ts} +2 -2
- package/dist/iconSlot.cva-CnpFzAOR.d.ts +21 -0
- package/dist/icons.d.ts +2 -1
- package/dist/icons.js +2 -1
- package/dist/index.d.ts +87 -86
- package/dist/index.js +55 -44
- package/dist/info-iUmX3uDk.js +32 -0
- package/dist/{input-D2kGX0hW.d.ts → input-CdQNCPgH.d.ts} +1 -1
- package/dist/{input.cva-BhDJxc7r.d.ts → input.cva-BsHgYa-L.d.ts} +3 -2
- package/dist/{input.cva-BcXyC1vZ.js → input.cva-DJA8ovm_.js} +9 -9
- package/dist/{link.context-CDZn6oL2.d.ts → link.context-D5qyz9Rf.d.ts} +1 -1
- package/dist/link.cva-DMTHZiJG.js +12 -0
- package/dist/{number-field-Bw2GKr0s.d.ts → number-field-CUDbenNV.d.ts} +1 -1
- package/dist/{number-range-input-Dqe6x2dR.d.ts → number-range-input-DZGrcvjL.d.ts} +1 -1
- package/dist/{password-input-DepKyhh3.d.ts → password-input-fYN20cQO.d.ts} +1 -1
- package/dist/{popover.cva-BJSkLndY.js → popover.cva-Bhud1wnp.js} +1 -1
- package/dist/popoverAnimation-DEZSvKP8.js +4 -0
- package/dist/{query-autocomplete-BSpHin_R.d.ts → query-autocomplete-CfuQeiYG.d.ts} +2 -2
- package/dist/{query-select-m1DCp4UF.d.ts → query-select-CuT_sE6a.d.ts} +2 -2
- package/dist/{queryAutocomplete.types-CrbVUmvl.d.ts → queryAutocomplete.types-tl3r6iaY.d.ts} +2 -2
- package/dist/{radio-group-Civ3Fb70.d.ts → radio-group-B3ccPf0p.d.ts} +1 -1
- package/dist/{radio.cva-BlOrmxzf.d.ts → radio.cva-DN9VQ3Kb.d.ts} +4 -3
- package/dist/rhf/autocomplete.d.ts +2 -2
- package/dist/rhf/autocomplete.js +1 -1
- package/dist/rhf/checkbox-group.d.ts +2 -2
- package/dist/rhf/checkbox-group.js +1 -1
- package/dist/rhf/checkbox.d.ts +2 -2
- package/dist/rhf/checkbox.js +2 -2
- package/dist/rhf/date-picker.d.ts +2 -2
- package/dist/rhf/date-picker.js +2 -2
- package/dist/rhf/date-range-picker.d.ts +2 -2
- package/dist/rhf/date-range-picker.js +2 -2
- package/dist/rhf/date-time-picker.d.ts +2 -2
- package/dist/rhf/date-time-picker.js +2 -2
- package/dist/rhf/file-input.d.ts +2 -2
- package/dist/rhf/file-input.js +2 -2
- package/dist/rhf/file-upload.d.ts +2 -2
- package/dist/rhf/file-upload.js +2 -2
- package/dist/rhf/input.d.ts +2 -2
- package/dist/rhf/input.js +1 -1
- package/dist/rhf/inputs.d.ts +2 -2
- package/dist/rhf/number-field.d.ts +2 -2
- package/dist/rhf/number-field.js +1 -1
- package/dist/rhf/number-range-input.d.ts +2 -2
- package/dist/rhf/number-range-input.js +2 -2
- package/dist/rhf/password-input.d.ts +2 -2
- package/dist/rhf/password-input.js +1 -1
- package/dist/rhf/query-autocomplete.d.ts +1 -1
- package/dist/rhf/query-autocomplete.js +1 -1
- package/dist/rhf/query-select.d.ts +1 -1
- package/dist/rhf/query-select.js +1 -1
- package/dist/rhf/radio-group.d.ts +2 -2
- package/dist/rhf/radio-group.js +2 -2
- package/dist/rhf/rich-text-editor.d.ts +2 -2
- package/dist/rhf/rich-text-editor.js +2 -2
- package/dist/rhf/select.d.ts +2 -2
- package/dist/rhf/select.js +2 -2
- package/dist/rhf/slider.d.ts +2 -2
- package/dist/rhf/slider.js +2 -2
- package/dist/rhf/switch.d.ts +2 -2
- package/dist/rhf/switch.js +2 -2
- package/dist/rhf/text-area.d.ts +2 -2
- package/dist/rhf/text-area.js +2 -2
- package/dist/rhf/time-picker.d.ts +2 -2
- package/dist/rhf/time-picker.js +2 -2
- package/dist/rhf/toggle-group.d.ts +2 -2
- package/dist/rhf/toggle-group.js +2 -2
- package/dist/{rhf-D8B7mLO1.js → rhf-t348TCCL.js} +1 -1
- package/dist/rhf.d.ts +87 -86
- package/dist/rhf.js +55 -44
- package/dist/{rich-text-editor-DvNEOIux.d.ts → rich-text-editor-B-Onl7T8.d.ts} +1 -1
- package/dist/rich-text-editor.d.ts +1 -1
- package/dist/rich-text-editor.js +1 -1
- package/dist/{select-DY5QtwqI.d.ts → select-B4a52eWW.d.ts} +2 -2
- package/dist/selectDesktop.cva-CHAMxhfO.js +69 -0
- package/dist/{slider-CrB-Gkcv.d.ts → slider-dNj9jruO.d.ts} +1 -1
- package/dist/{staticDateTimeSegments-DR8bJw-F.js → staticDateTimeSegments-CsCE9Buo.js} +26 -27
- package/dist/{staticSelect.utils-Cm7MoDVG.js → staticSelect.utils-BemUyaaA.js} +31 -90
- package/dist/stepper.cva-CZ0Kj-s7.js +116 -0
- package/dist/style-merge.util-zLimKwt6.d.ts +40 -0
- package/dist/styles/color-utilities.css +13 -25
- package/dist/styles/configurator.css +1852 -0
- package/dist/styles/input.d.ts +1 -1
- package/dist/{switch-8WzXfTS8.d.ts → switch-C--iWnY8.d.ts} +1 -1
- package/dist/switch.cva-CWNzmdRc.d.ts +16 -0
- package/dist/table.cva-BikE8qJH.js +49 -0
- package/dist/tanstack/autocomplete.d.ts +1 -1
- package/dist/tanstack/checkbox-group.d.ts +1 -1
- package/dist/tanstack/checkbox.d.ts +1 -1
- package/dist/tanstack/checkbox.js +1 -1
- package/dist/tanstack/date-picker.d.ts +1 -1
- package/dist/tanstack/date-picker.js +1 -1
- package/dist/tanstack/date-range-picker.d.ts +1 -1
- package/dist/tanstack/date-range-picker.js +1 -1
- package/dist/tanstack/date-time-picker.d.ts +1 -1
- package/dist/tanstack/date-time-picker.js +1 -1
- package/dist/tanstack/file-input.d.ts +1 -1
- package/dist/tanstack/file-input.js +1 -1
- package/dist/tanstack/file-upload.d.ts +2 -2
- package/dist/tanstack/file-upload.js +1 -1
- package/dist/tanstack/form.d.ts +1 -1
- package/dist/tanstack/form.js +1 -1
- package/dist/tanstack/input.d.ts +1 -1
- package/dist/tanstack/inputs.d.ts +3 -3
- package/dist/tanstack/inputs.js +1 -1
- package/dist/tanstack/number-field.d.ts +1 -1
- package/dist/tanstack/number-range-input.d.ts +1 -1
- package/dist/tanstack/number-range-input.js +1 -1
- package/dist/tanstack/password-input.d.ts +1 -1
- package/dist/tanstack/query-select.d.ts +1 -1
- package/dist/tanstack/radio-group.d.ts +1 -1
- package/dist/tanstack/radio-group.js +1 -1
- package/dist/tanstack/rich-text-editor.d.ts +1 -1
- package/dist/tanstack/rich-text-editor.js +1 -1
- package/dist/tanstack/select.d.ts +1 -1
- package/dist/tanstack/select.js +1 -1
- package/dist/tanstack/slider.d.ts +1 -1
- package/dist/tanstack/slider.js +1 -1
- package/dist/tanstack/switch.d.ts +1 -1
- package/dist/tanstack/switch.js +1 -1
- package/dist/tanstack/table.d.ts +1 -1
- package/dist/tanstack/table.js +2 -1
- package/dist/tanstack/text-area.d.ts +1 -1
- package/dist/tanstack/text-area.js +1 -1
- package/dist/tanstack/time-picker.d.ts +1 -1
- package/dist/tanstack/time-picker.js +1 -1
- package/dist/tanstack/toggle-group.d.ts +2 -2
- package/dist/tanstack/toggle-group.js +1 -1
- package/dist/tanstack.d.ts +71 -70
- package/dist/tanstack.js +66 -53
- package/dist/{text-area-CqnKRWKq.d.ts → text-area-DQAtpOQp.d.ts} +1 -1
- package/dist/theme-model-C-QMCksE.js +136 -0
- package/dist/theme-model-T1zIdBg8.d.ts +12 -0
- package/dist/{time-picker-Cz1GIzpF.d.ts → time-picker-DoGfbil6.d.ts} +1 -1
- package/dist/{toast.cva-Cj6o2Rmu.d.ts → toast.cva-By5lvAfr.d.ts} +3 -2
- package/dist/toast.cva-C_L_RffH.js +163 -0
- package/dist/{toast.runtime-CIKvmkjo.js → toast.runtime-cxex9e4E.js} +2 -1
- package/dist/{toggle-group-CPkKHm1t.d.ts → toggle-group-C1nMDOwz.d.ts} +1 -1
- package/dist/toggleGroup.cva-MbpaEBg1.js +35 -0
- package/dist/{toggleGroup.types-DD6uRI5G.d.ts → toggleGroup.types-Bp43zbSQ.d.ts} +2 -1
- package/dist/tooltip.cva-BIzlOXHH.js +48 -0
- package/dist/{tooltipWrapper.cva-CUu8pI-a.js → tooltipWrapper.cva-BBQ4ic3D.js} +1 -1
- package/dist/{typography.cva-jtp6WWUH.d.ts → typography.cva-D1JOEYl-.d.ts} +2 -1
- package/dist/{typography.cva-CJZZSGXW.js → typography.cva-iD15k56p.js} +1 -1
- package/dist/{uiConfig.context-D2eUIPHn.js → uiConfig.context-BS3r_kTS.js} +1 -1
- package/dist/{uiConfig.context-aoarCLYX.d.ts → uiConfig.context-DeBX2beU.d.ts} +8 -8
- package/dist/{uiOverrides.context-Bfm2n-n8.js → uiOverrides.context-BTCH9y5a.js} +2 -2
- package/dist/{uiOverrides.context-C3xb4Ttq.d.ts → uiOverrides.context-DEp139He.d.ts} +11 -44
- package/dist/underline-66hmELxa.js +81 -0
- package/dist/{useBreakpoint-BOA-MyoT.js → useBreakpoint-DQoMN-BG.js} +1 -1
- package/dist/{useFieldAccessibility-D2_Qm26-.js → useFieldAccessibility-B4MVL6fz.js} +15 -8
- package/dist/{useFormAutosave-BYFn3LH8.js → useFormAutosave-Mg-tdwMh.js} +2 -2
- package/dist/{useStaticInputHandoff-DB9PgioW.js → useStaticInputHandoff-CvSBPUB3.js} +13 -10
- package/dist/useTableColumnConfig-gfVame8v.js +892 -0
- package/dist/{useTableNav-D9mICzNW.d.ts → useTableNav-Ckj5PBRk.d.ts} +3 -2
- package/dist/{useToast-DMSm59Y6.d.ts → useToast-yreVCUer.d.ts} +1 -1
- package/package.json +38 -6
- package/rulesync.jsonc +11 -0
- package/scripts/generate-rules.mjs +34 -0
- package/src/configurator/README.md +71 -0
- package/dist/Button-sn52l1Yv.js +0 -506
- package/dist/FormFieldHeaderTooltip-Dl24v4_j.js +0 -45
- package/dist/Link-Btxj2gzg.js +0 -42
- package/dist/PillButton-DASBXLFB.d.ts +0 -15
- package/dist/Tag-Cch_68QO.d.ts +0 -43
- package/dist/components/pill-button.d.ts +0 -2
- package/dist/pillButton.cva-BEWuu0qm.d.ts +0 -34
- package/dist/pillButton.cva-DlP5tOT5.js +0 -197
- package/dist/switch.cva-8T0fw31t.d.ts +0 -15
- package/dist/useTableColumnConfig-CcJxu14U.js +0 -1625
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
targets: ["*"]
|
|
3
|
+
description: "@povio/ui buttons, labels, status feedback, and text-content APIs"
|
|
4
|
+
globs:
|
|
5
|
+
- "packages/ui/src/components/buttons/**/*"
|
|
6
|
+
- "packages/ui/src/components/text/**/*"
|
|
7
|
+
- "packages/ui/src/components/status/**/*"
|
|
8
|
+
- "packages/ui/src/components/shared/pagination/**/*"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Buttons, text, and status components
|
|
12
|
+
|
|
13
|
+
## Button
|
|
14
|
+
|
|
15
|
+
Use `Button` for an action. Its content is `children`; use `link` only when it navigates through the configured `LinkContext`.
|
|
16
|
+
|
|
17
|
+
- Visual variants: `contained`, `solid`, `outlined`, `outline`, `subtle`, `text`, `ghost`. The default CVA styles `solid` like `contained` and `outline` like `outlined`, but passes every value through unchanged so UI overrides can redefine either value.
|
|
18
|
+
- Colors: `primary`, `secondary`, `error` (destructive theme tokens), and Atlas-specific `dual`. Text buttons with `dual` use primary text and secondary icons. Only primary text buttons support `inverted`, using the primary foreground token.
|
|
19
|
+
- Sizes: `sm` (alias `s`), `default`, and `none` (zero padding); omit the size prop for `default`. Legacy sizes (`xs`, `small`, `m`, `md`, `l`, `lg`) are not supported.
|
|
20
|
+
- Use `fullWidth`; `width="fill"` and `width="hug"` remain valid.
|
|
21
|
+
- Use `loading` or `isLoading`; loading disables the button by default. `disableWhileLoading={false}` opts out; `noDisableWhenLoading` is the legacy inverse.
|
|
22
|
+
- Use `startIcon` and `endIcon`. `icon` plus `iconPosition="left" | "right"` remains supported.
|
|
23
|
+
- Use `IconButton` for icon-only actions and supply `ariaLabel` or `label`. `InlineIconButton` is the text-style icon-only variant.
|
|
24
|
+
- Use `ToggleButton` for one independently toggled state (`isSelected`, `defaultSelected`, `onChange`). It defaults to outlined primary but honors supplied `variant` and `color`.
|
|
25
|
+
- Use `SplitButton` only for a primary action with menu alternatives; use `ButtonGroup` for peer actions.
|
|
26
|
+
- `variant`, `size`, and other CVA props belong to the active override. Never normalize their values inside a component; define default compatibility aliases as CVA entries instead.
|
|
27
|
+
- Use `BadgeButton` from `@povio/ui/badge-button` for a compact, badge-styled action. It has its own CVA but follows the same variant contract: `solid` and `outline` are default aliases and are passed unchanged to `badgeButton.cva` overrides.
|
|
28
|
+
|
|
29
|
+
## Tags, links, typography
|
|
30
|
+
|
|
31
|
+
Typography sizes are `headline-l`, `h1`–`h4`, `lead`, `body`, `large`, and `small`; There is no typography `variant`; use `className="font-bold"` or `className="italic"` for emphasis. `large` and `small` do not add font weight; use explicit emphasis when needed. Use the same size on mobile and desktop unless explicitly overridden.
|
|
32
|
+
|
|
33
|
+
- `Badge` and `Tag` are display components, not generic buttons. Use `dismissible` and `onRemove` for removal; `dismissable` and `onDismiss` are legacy forms.
|
|
34
|
+
- `Badge` and `BadgeButton` support primary, secondary, success, warning, and error colors with contained, outlined, and subtle variants. Their padding is 2px vertically and 8px horizontally, or 6px horizontally when an icon/dismiss control is present. `Badge isSelected` displays the toggled state; use `BadgeButton toggle` for an interactive toggle. Toggled colors use the same state modifiers as buttons.
|
|
35
|
+
- Pass remove-button behavior through `dismissButtonProps`; arbitrary button props do not belong on the display container.
|
|
36
|
+
- Use `Link` for navigation and `Button` for actions.
|
|
37
|
+
- Use `Typography` with semantic `as` elements (`h1`, `h2`, `p`, `span`) and library typography variants/sizes. Token changes belong in UI overrides, not consumers.
|
|
38
|
+
|
|
39
|
+
## Feedback
|
|
40
|
+
|
|
41
|
+
- Use `Alert` for persistent inline status, `Toast`/`useToast` for transient notifications, `Spinner` for indeterminate progress, and `Progress` for numeric progress.
|
|
42
|
+
- For alerts and toasts, keep `variant` (`contained`/`outlined`) separate from semantic `color` (`neutral`, `success`, `warning`, `error`).
|
|
43
|
+
- Alert and Toast message text uses `large` typography. Outlined messages use `surface-default-card-foreground` text and primary text-button actions. Contained messages use `surface-inverted-card-foreground` for neutral, `surface-success-inverted-base` for success, `surface-warning-inverted-base` for warning, and `surface-destructive-inverted-base` for error; actions use inverted primary text buttons. Actions use `size="none"`, with `toast-gap-action` spacing between them. Alert's `rightContent` is caller supplied, so configure its actions with `TextButton size="none" color="primary" inverted={variant === "contained"}`.
|
|
44
|
+
- Toast actions are `{ text, onPress }`; keep them short and non-destructive.
|
|
45
|
+
|
|
46
|
+
## Reference
|
|
47
|
+
|
|
48
|
+
- `packages/ui/src/components/buttons/Button/Button.tsx` — Button behavior and compatibility.
|
|
49
|
+
- `packages/ui/src/components/text/Tag/Tag.tsx` — dismissible tag contract.
|
|
50
|
+
- `packages/ui/src/components/status/Toast/Toast.tsx` — toast content and actions.
|
|
51
|
+
|
|
52
|
+
## When refactoring
|
|
53
|
+
|
|
54
|
+
- `Button` uses `icon` only for a conventional start/end icon → use `startIcon` or `endIcon`.
|
|
55
|
+
- An icon-only action has no accessible name → use `IconButton` with `ariaLabel` or `label`.
|
|
56
|
+
- A tag/pill receives `onPress` to represent selection → use `ToggleButton` or `ToggleGroup`.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
targets: ["*"]
|
|
3
|
+
description: "@povio/ui form fields, selection controls, pickers, uploads, and React Hook Form integration"
|
|
4
|
+
globs:
|
|
5
|
+
- "packages/ui/src/components/inputs/**/*"
|
|
6
|
+
- "packages/ui/src/hooks/useForm*.ts"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Inputs and forms
|
|
10
|
+
|
|
11
|
+
## Shared field contract
|
|
12
|
+
|
|
13
|
+
- Sizes: `small` and `default` only. Omit `size` for the default; `extra-small` and `large` are not supported. This shared input API has no `sm` or `s` aliases.
|
|
14
|
+
- Use `label`, `helperText`, `error`, `isRequired`, and `isDisabled` as the base field contract.
|
|
15
|
+
- `Input`, `TextArea`, and `NumberField` also accept `errorMessage`, `required`, and `disabled`. Their visual layout is `layout="default" | "floating" | "filter" | "inline"`; `as` remains the legacy layout prop and is not polymorphic element selection.
|
|
16
|
+
- Use `variant="outlined" | "filled"` for text-like inputs. Keep layout separate from variant.
|
|
17
|
+
- Use `isClearable`, `leadingIcon`, `trailingIcon`, `action`, `unit`, `placeholder`, and `inputClassName` only where exposed; do not recreate input chrome in consumers.
|
|
18
|
+
- Controlled fields use `value` and `onChange`; uncontrolled fields use `defaultValue`. Preserve callback value types: strings for text, `number | null` for number fields, and component-specific date values for pickers.
|
|
19
|
+
|
|
20
|
+
## Selection controls
|
|
21
|
+
|
|
22
|
+
- `Checkbox` uses `isSelected`, `defaultSelected`, and `onChange(boolean)`; `children` may be any `ReactNode`.
|
|
23
|
+
- `Switch` uses the same boolean selection contract.
|
|
24
|
+
- `RadioGroup` takes `options: { label, value }[]` and scalar `value`/`defaultValue`/`onChange`.
|
|
25
|
+
- `CheckboxGroup` takes the same options shape and array values. `allValue` is an Atlas extension for all-selected representation.
|
|
26
|
+
- `ToggleGroup`, `Select`, and `Autocomplete` use `selectionMode="single" | "multiple"`. Single values are `Key | null`; multiple values are `Key[]`.
|
|
27
|
+
- `Select` is a closed selection field. `Autocomplete` is the searchable/combobox form of the same item API. Both take `items: { id, label, content?, isDisabled? }[]`.
|
|
28
|
+
- Preserve Select capabilities: `isSearchable`, `isClearable`, `showSelectAllOption`, `showSelectionBar`, `showNewItemOption`, `onNewItemOption`, async `isLoading`/`hasLoadMore`/`onLoadMore`, and `virtualizerOptions`.
|
|
29
|
+
- Use `QuerySelect` and `QueryAutocomplete` only with the package TanStack Query adapter; they are not generic async-select replacements.
|
|
30
|
+
|
|
31
|
+
## Dates, ranges, files, rich text
|
|
32
|
+
|
|
33
|
+
- Use `DatePicker`, `DateRangePicker`, `TimePicker`, and `DateTimePicker` for React Aria date values. Preserve `minValue`, `maxValue`, `granularity`, `isClearable`, and date-input options rather than replacing them with native inputs.
|
|
34
|
+
- Use `Slider` with numeric `value`/`defaultValue`; set `isRange` for two-thumb values.
|
|
35
|
+
- Use `FileInput` for controlled form file values and `FileUpload` for upload lifecycle, progress, cancellation, and uploaded-file display. Both accept `multiple` or `allowsMultiple`.
|
|
36
|
+
- Import `RichTextEditor` from `@povio/ui/rich-text-editor`, not the main package entry point.
|
|
37
|
+
|
|
38
|
+
## Forms
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
// TanStack Form (native binding, e.g. import from "@povio/ui/tanstack/input")
|
|
42
|
+
<Input label="Name" field={{ form, name: "name" }} />
|
|
43
|
+
|
|
44
|
+
// React Hook Form (adapter, e.g. import from "@povio/ui/rhf/input")
|
|
45
|
+
<Input label="Name" formControl={{ control: form.control, name: "name" }} />
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
- `field` (TanStack) and `formControl` (React Hook Form) each own `value`, `onChange`, and `onBlur`; do not supply competing controlled props alongside either.
|
|
49
|
+
- `Form` and `Inputs` are Zod schema helpers, available in both the TanStack-native and React Hook Form flavors. Use a regular HTML `<form>` with individual fields when schema-generated rendering is not needed.
|
|
50
|
+
|
|
51
|
+
## Reference
|
|
52
|
+
|
|
53
|
+
- `packages/ui/src/components/inputs/Input/Input.tsx` — core text-field API.
|
|
54
|
+
- `packages/ui/src/components/inputs/Selection/shared/SelectBase.tsx` — selection and async capabilities.
|
|
55
|
+
- `packages/ui/src/components/inputs/shared/form.types.ts` — typed `field` (TanStack) contract.
|
|
56
|
+
- `packages/ui/src/rhf/form.types.ts` — typed `formControl` (React Hook Form) contract.
|
|
57
|
+
|
|
58
|
+
## When refactoring
|
|
59
|
+
|
|
60
|
+
- A consumer uses `as` to select a DOM element → use `layout`; `as` controls legacy input presentation.
|
|
61
|
+
- App code checks `allowsMultiple` → prefer `multiple` in new code.
|
|
62
|
+
- A select hand-rolls filtering or virtualized results → use the exposed Select/Autocomplete props before adding consumer-side overlay logic.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
targets: ["*"]
|
|
3
|
+
description: "@povio/ui overlays, navigation, tables, accessibility, and styling conventions"
|
|
4
|
+
globs:
|
|
5
|
+
- "packages/ui/src/components/overlays/**/*"
|
|
6
|
+
- "packages/ui/src/components/navigation/**/*"
|
|
7
|
+
- "packages/ui/src/components/DropdownMenu/**/*"
|
|
8
|
+
- "packages/ui/src/components/Breadcrumbs/**/*"
|
|
9
|
+
- "packages/ui/src/components/table/**/*"
|
|
10
|
+
- "packages/ui/src/components/**/*.cva.ts"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Overlays, navigation, tables, and styling
|
|
14
|
+
|
|
15
|
+
## Overlays and navigation
|
|
16
|
+
|
|
17
|
+
- Use `Dialog` with controlled `isOpen`; handle transitions with `onOpenChange`. `onClose` remains available for close-only behavior.
|
|
18
|
+
- Use `AlertDialog` for confirmations with a primary action and optional secondary action.
|
|
19
|
+
- Use `Drawer` for a side panel and `BottomSheet` for a mobile bottom sheet. Both own focus trapping and dismissal; do not mount parallel ad-hoc overlays.
|
|
20
|
+
- `Popover` renders a desktop popover and mobile bottom sheet. It requires a trigger, controlled state, and accessible `sheetLabel`.
|
|
21
|
+
- Use `Tooltip` for supplemental text only; it must not be the sole accessible label for an icon action.
|
|
22
|
+
- Use `DropdownMenu` with `trigger`, `items`, and `onAction`. Menu items are `{ id, label, content?, link?, children? }`; nested `children` create submenus.
|
|
23
|
+
- Use `Accordion` for expandable content, `Stepper` for step progress, `Breadcrumbs` for hierarchy, and `Pagination`/`PaginationList` for page navigation.
|
|
24
|
+
|
|
25
|
+
## Tables
|
|
26
|
+
|
|
27
|
+
- `Table` is the base TanStack wrapper. Use `PaginatedTable` or `InfiniteTable` only when their data-loading contracts match the view.
|
|
28
|
+
- Keep table columns in the consumer domain. Use `CellText` and `HeaderText` for consistent text treatment; use `ColumnConfigModal` for persisted visibility/configuration behavior.
|
|
29
|
+
|
|
30
|
+
## Styling and accessibility
|
|
31
|
+
|
|
32
|
+
- Components use class-variance-authority, `UIOverrides`, and tokenized Tailwind classes. Add visual variants through the relevant `*.cva.ts` definition and expose a typed variant prop; do not add hard-coded color values in consumers.
|
|
33
|
+
- Use `UIConfig` for package-wide defaults and `UIOverrides` for recipe overrides. Do not duplicate component markup to bypass them.
|
|
34
|
+
- Preserve React Aria state props/data attributes (`isDisabled`, `isSelected`, `isInvalid`, `data-selected`) when wrapping controls.
|
|
35
|
+
- Root styling uses `className`. Prefer existing slot props (`inputClassName`, `dialogClassName`, `overlayClassName`, `containerClassName`) over selectors reaching into library internals.
|
|
36
|
+
- Keep button-like controls keyboard accessible. Icon-only actions need an accessible name; labels remain associated with fields.
|
|
37
|
+
- Avoid nested runtime ternaries in rendering or prop normalization. Use a named helper, map, or explicit branch.
|
|
38
|
+
|
|
39
|
+
## Reference
|
|
40
|
+
|
|
41
|
+
- `packages/ui/src/components/overlays/Dialog/Dialog.tsx` — controlled dialog behavior.
|
|
42
|
+
- `packages/ui/src/components/DropdownMenu/DropdownMenu.tsx` — responsive menu boundary.
|
|
43
|
+
- `packages/ui/src/config/uiOverrides.context.tsx` — recipe override system.
|
|
44
|
+
|
|
45
|
+
## When refactoring
|
|
46
|
+
|
|
47
|
+
- A component hard-codes a visual token already represented by a CVA recipe → add or reuse a typed recipe variant.
|
|
48
|
+
- An icon-only trigger relies only on a tooltip → add an `aria-label`/`ariaLabel` or visible label.
|
|
49
|
+
- Overlay state is duplicated in an app wrapper and a UI component → make controlled `isOpen`/`onOpenChange` the source of truth.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
root: true
|
|
3
|
+
targets: ["*"]
|
|
4
|
+
description: "@povio/ui public API and component-selection guidance"
|
|
5
|
+
globs: ["packages/ui/**/*"]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# @povio/ui component-library overview
|
|
9
|
+
|
|
10
|
+
`@povio/ui` is a React 19, TypeScript, Tailwind 4 component library built on React Aria Components. Import components and hooks from component-scoped subpaths (e.g. `@povio/ui/dialog`, `@povio/ui/rich-text-editor`), or from the broader `@povio/ui/rhf` (React Hook Form) or `@povio/ui/tanstack` (TanStack Form) entries; internal `src/components/**` paths are not consumer APIs.
|
|
11
|
+
|
|
12
|
+
## Public API and naming
|
|
13
|
+
|
|
14
|
+
- `src/rhf.ts` and `src/tanstack.ts` are the authoritative barrels for the two form-integration flavors; `src/entries/*.ts` (plus `src/entries/rhf/*.ts` and `src/entries/tanstack/*.ts` for form-capable components) back the individual `package.json#exports` subpaths. Add or change a public component in all three places together with its prop type.
|
|
15
|
+
- Component names are canonical and final: `Input`, `NumberField`, `FileInput`, `Switch`, `ToggleGroup`, `DropdownMenu`, `Dialog`, `AlertDialog`, `Popover`, `Spinner`, `Progress`, `Badge`, `RichTextEditor` (exported from `@povio/ui/rich-text-editor`).
|
|
16
|
+
- Use `ButtonGroup` for grouped independent actions. Use `ToggleGroup` only when the group represents selected value(s).
|
|
17
|
+
|
|
18
|
+
## Common conventions
|
|
19
|
+
|
|
20
|
+
- Components use React Aria event names (`onPress`, `onChange`, `isDisabled`, `isSelected`) as their base API.
|
|
21
|
+
- Form-capable components speak a native `field: { form, name }` TanStack Form binding. Consumers on `@povio/ui/rhf/*` get the same components wrapped with a `formControl: { control, name }` React Hook Form adapter instead. Do not pass `value`, `onChange`, or `onBlur` together with `field`/`formControl`.
|
|
22
|
+
- Keep public props semantic and domain-independent. Use `className` for root styling and component-specific `*ClassName` props only for independently styled internal slots.
|
|
23
|
+
- Prefer `ReactNode` for display content and preserve `aria-*` props through to the interactive element.
|
|
24
|
+
|
|
25
|
+
## Reference
|
|
26
|
+
|
|
27
|
+
- `packages/ui/src/rhf.ts` / `packages/ui/src/tanstack.ts` — public exports per form-integration flavor.
|
|
28
|
+
- `packages/ui/src/config/uiConfig.context.tsx` — runtime component defaults.
|
|
29
|
+
|
|
30
|
+
## When refactoring
|
|
31
|
+
|
|
32
|
+
- A consumer imports from `src/components/...` → switch it to a package subpath export.
|
|
33
|
+
- A stateful segmented control is used as an action toolbar → use `ButtonGroup` and `Button`s instead.
|
package/README.md
CHANGED
|
@@ -12,6 +12,7 @@ Use component and feature subpaths in application code. Each subpath resolves to
|
|
|
12
12
|
|
|
13
13
|
```tsx
|
|
14
14
|
import { Button } from "@povio/ui/button";
|
|
15
|
+
import { BadgeButton } from "@povio/ui/badge-button";
|
|
15
16
|
import { Dialog } from "@povio/ui/dialog";
|
|
16
17
|
import { Select } from "@povio/ui/tanstack/select";
|
|
17
18
|
import { useForm } from "@povio/ui/tanstack/form";
|
|
@@ -40,6 +41,23 @@ The React Aria hooks used by Povio are similarly isolated under `use-text-field`
|
|
|
40
41
|
|
|
41
42
|
Each emitted entry is independently bundled and tree-shaken; it does not forward React Aria's aggregate barrel or share a generated aggregate chunk with unrelated controls. Ordinary Povio component imports do not include the escape-hatch entries.
|
|
42
43
|
|
|
44
|
+
Use `Badge` for display content, `BadgeButton` for a compact, badge-styled action, and `ToggleButton` or `ToggleGroup` for selection. `BadgeButton` uses the theme's `badge-*` spacing and radius tokens; customize its recipe through `UIOverrides.badgeButton`.
|
|
45
|
+
|
|
46
|
+
## Theme configurator
|
|
47
|
+
|
|
48
|
+
The live theme editor ships separately as `@povio/ui/ui-configurator`, with its stylesheet at `@povio/ui/ui-configurator/styles`. It is independent of Storybook and is excluded from ordinary component imports. For only the `parseThemeCss` / `exportCss` helpers and token types, use the lightweight `@povio/ui/ui-configurator/theme` entry.
|
|
49
|
+
|
|
50
|
+
To save its Tailwind CSS export directly to your app's theme during development, add the bundled Vite plugin:
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
import { uiConfigurator } from "@povio/ui/ui-configurator/vite";
|
|
54
|
+
|
|
55
|
+
// In your Vite plugins array:
|
|
56
|
+
uiConfigurator({ themeFile: "src/styles/theme.css" });
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
The path defaults to `src/styles/theme.css` relative to this app's Vite root. **Export → Tailwind CSS → Save theme** updates that file's token declarations and lets Vite reload the CSS. Each app writes only its own configured theme. Apply remains session-only; Cancel does not undo a file save. The plugin and save action are absent from builds and preview servers. See [the configurator guide](./src/configurator/README.md) for provider setup, preview behavior, and supported theme blocks.
|
|
60
|
+
|
|
43
61
|
## Button sizes
|
|
44
62
|
|
|
45
63
|
`Button` supports `sm` (with `s` as an equivalent alias), `default`, and `none` (zero padding). Omitting `size` uses `default`. The same sizes apply to `IconButton`, `InlineIconButton`, `TextButton`, `ToggleButton`, and `SplitButton`.
|
|
@@ -62,21 +80,15 @@ Replace `size="extra-small"` with `size="small"`, and remove `size="large"` or `
|
|
|
62
80
|
|
|
63
81
|
The package ships RuleSync source rules in `.rulesync/` and `rulesync.jsonc`. They document the public component API, standard aliases, form contracts, accessibility expectations, and styling conventions for AI coding tools. Generated tool files are deliberately excluded from the published npm package.
|
|
64
82
|
|
|
65
|
-
To generate the UI rules into a consuming project's repository root, run the executable bundled with `@povio/ui`:
|
|
83
|
+
To generate the UI rules into a consuming project's repository root, install [`rulesync`](https://github.com/dyoshikawa/rulesync) (`^8.15.0`) in that project, then run the executable bundled with `@povio/ui`:
|
|
66
84
|
|
|
67
85
|
```bash
|
|
68
|
-
|
|
86
|
+
bunx --package @povio/ui povio-ui-rules
|
|
69
87
|
```
|
|
70
88
|
|
|
71
|
-
|
|
89
|
+
This generates the relevant Cursor, Claude Code, and Codex CLI files in the consuming repository. Add generated files to that repository's `.gitignore` unless they are intentionally versioned. Re-run the command after upgrading `@povio/ui`; verify without writing files by adding `--check` (for example, `bunx --package @povio/ui povio-ui-rules --check`).
|
|
72
90
|
|
|
73
|
-
|
|
74
|
-
npx povio-ui-rules
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
This generates the relevant Cursor, Claude Code, and Codex CLI files in the consuming repository. Add generated files to that repository's `.gitignore` unless they are intentionally versioned. Re-run the command after upgrading `@povio/ui`; verify without writing files by adding `--check` (for example, `pnpm exec povio-ui-rules --check`).
|
|
78
|
-
|
|
79
|
-
Within this monorepo, the equivalent package-local commands are `pnpm --filter @povio/ui rules:gen` and `pnpm --filter @povio/ui rules:check`.
|
|
91
|
+
Within this monorepo, the equivalent package-local commands are `bun run --filter @povio/ui rules:gen` and `bun run --filter @povio/ui rules:check`.
|
|
80
92
|
|
|
81
93
|
## Publishing
|
|
82
94
|
|
|
@@ -130,9 +142,9 @@ We also use a custom tailwind plugin to shorten some selectors inside the @povio
|
|
|
130
142
|
@plugin "@povio/ui/tw-ui-plugin";
|
|
131
143
|
```
|
|
132
144
|
|
|
133
|
-
###
|
|
145
|
+
### State color utilities
|
|
134
146
|
|
|
135
|
-
Import the color utilities in your application's Tailwind stylesheet. This import is required because `@povio/ui`
|
|
147
|
+
Import the color utilities in your application's Tailwind stylesheet. This import is required because `@povio/ui` components use these utilities:
|
|
136
148
|
|
|
137
149
|
```css
|
|
138
150
|
@import "tailwindcss";
|
|
@@ -140,18 +152,39 @@ Import the color utilities in your application's Tailwind stylesheet. This impor
|
|
|
140
152
|
@import "@povio/ui/color-utilities";
|
|
141
153
|
```
|
|
142
154
|
|
|
143
|
-
Use `bg-
|
|
155
|
+
Use `bg-state-<color>/<state>`, `border-state-<color>/<state>`, `border-b-state-<color>/<state>`, or `text-state-<color>/<state>` to mix a theme color with a named state color in sRGB. The color resolves to `--color-<color>`. For each state, define `--states-<state>-color` and `--states-<state>-opacity` in the light and dark themes, then expose them as `--state-color-<state>` and `--state-opacity-<state>` in `@theme inline`. The theme export supplies these aliases, so additional state names require no change to the utilities.
|
|
144
156
|
|
|
145
157
|
```tsx
|
|
146
158
|
<button
|
|
147
159
|
type="button"
|
|
148
|
-
className="bg-interactive-primary-background text-interactive-primary-foreground hover:bg-
|
|
160
|
+
className="bg-interactive-primary-background border-interactive-primary-background text-interactive-primary-foreground hover:bg-state-interactive-primary-background/hover hover:border-state-interactive-primary-background/hover"
|
|
149
161
|
>
|
|
150
|
-
Hover to
|
|
162
|
+
Hover to change state color
|
|
151
163
|
</button>
|
|
152
164
|
```
|
|
153
165
|
|
|
154
|
-
The
|
|
166
|
+
The utilities support standard Tailwind variants such as `hover:`, `focus-visible:`, and `dark:`. With an opaque starting color and state mix color, the result remains opaque. Using the same base color and state for background and border gives them exactly the same result. The state mix color can be white, black, or another color supplied by the theme.
|
|
167
|
+
|
|
168
|
+
### Icon slots
|
|
169
|
+
|
|
170
|
+
`IconSlot` reserves the Figma `icons-size` spacing token (`--spacing-icons-size`, exposed as `size-icons-size`) and centers an SVG at 80% of that size. Buttons and input icon props use it automatically, whether you pass a component reference or an element. Export this token in your Tailwind theme alongside the other Figma spacing tokens.
|
|
171
|
+
|
|
172
|
+
```tsx
|
|
173
|
+
import { Plus } from "lucide-react";
|
|
174
|
+
import { IconSlot } from "@povio/ui/icon-slot";
|
|
175
|
+
|
|
176
|
+
<IconSlot icon={Plus} />;
|
|
177
|
+
<IconSlot
|
|
178
|
+
icon={<Plus strokeWidth={1.5} />}
|
|
179
|
+
scale={0.8}
|
|
180
|
+
/>;
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
`IconSlot` is also exported from `@povio/ui`, `@povio/ui/rhf`, `@povio/ui/tanstack`, and `@povio/ui/icons`. `className` styles the outer slot; `iconClassName` styles the SVG. The slot controls SVG dimensions, including supplied SVGs with their own size classes. Use the inherited CSS variable `--icons-scale` to change the default ratio throughout a theme, or `scale` to override one slot. A 20px token at `0.8` produces a 16px SVG; a 24px token produces a 19.2px SVG. Stroke width continues to follow the icon's own configuration.
|
|
184
|
+
|
|
185
|
+
Override the shared recipe through `UIOverrides` at `iconSlot.cva`. Component-specific icon recipes, such as `button.iconSize`, now style the outer slot. An explicitly configured slot passed to a button or input keeps its configuration without nesting another slot.
|
|
186
|
+
|
|
187
|
+
Storybook's **UI / Components / Icons / IconSlot** page includes a playground, raw-versus-slotted comparisons, and button/input examples. Adjust `tokenSize` and `scale` in Controls and enable slot outlines to compare against the Figma frame at 100% browser zoom.
|
|
155
188
|
|
|
156
189
|
### Z-Index
|
|
157
190
|
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { t as ChevronDown } from "./chevron-down-B4Pr8bD3.js";
|
|
2
2
|
import { t as clsx } from "./clsx-CnD0nOiA.js";
|
|
3
|
+
import { t as UIOverrides } from "./uiOverrides.context-BTCH9y5a.js";
|
|
4
|
+
import { t as IconSlot } from "./IconSlot-DSK7qNxc.js";
|
|
3
5
|
import { n as $7230ffa83bc0c2cf$export$29f1550f4b0d4415, o as $7230ffa83bc0c2cf$export$c62b8e45d58ddad9, r as $7230ffa83bc0c2cf$export$4d86445c2cf5e3, s as $7230ffa83bc0c2cf$export$df3a06d6289f983e, t as $7230ffa83bc0c2cf$export$2881499e37b75b9a } from "./utils-Czcqspm7.js";
|
|
4
6
|
import { n as $7705c033048f6da7$export$353f5b6fc5456de1, t as $7705c033048f6da7$export$24d547caef80ccd1 } from "./Button-D6KlWSFL.js";
|
|
5
7
|
import { t as $2ec61d1d4f780267$export$a8a3e93435678ff9 } from "./Heading-nI1_VOaE.js";
|
|
6
|
-
import { t as
|
|
7
|
-
import { t as
|
|
8
|
+
import { t as Typography } from "./Typography-LU4z2pR1.js";
|
|
9
|
+
import { a as accordionHeadingTitleDefinition, c as accordionPanelContentDefinition, i as accordionHeadingSubtitleDefinition, l as accordionPanelDefinition, n as accordionDefinition, o as accordionIconDefinition, r as accordionHeadingDefinition, s as accordionItemDefinition, t as accordionChevronDefinition, u as accordionTriggerDefinition } from "./accordion.cva-CL1bVscW.js";
|
|
8
10
|
import $ahdqC$react, { createContext, forwardRef, useContext } from "react";
|
|
9
11
|
import { c } from "react/compiler-runtime";
|
|
12
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
10
13
|
import { mergeProps } from "react-aria/mergeProps";
|
|
11
14
|
import { mergeRefs } from "react-aria/mergeRefs";
|
|
12
15
|
import { filterDOMProps } from "react-aria/filterDOMProps";
|
|
@@ -15,7 +18,6 @@ import { useId as useId$1 } from "react-aria/useId";
|
|
|
15
18
|
import { useDisclosure } from "react-aria/useDisclosure";
|
|
16
19
|
import { useDisclosureGroupState } from "react-stately/useDisclosureGroupState";
|
|
17
20
|
import { useDisclosureState } from "react-stately/useDisclosureState";
|
|
18
|
-
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
19
21
|
//#region ../../node_modules/.bun/react-aria-components@1.21.1+67f6792bdf102c28/node_modules/react-aria-components/dist/private/Disclosure.mjs
|
|
20
22
|
const $a3e16eab0ea4036c$export$1d40e3e0cc4d5de = /*#__PURE__*/ createContext(null);
|
|
21
23
|
const $a3e16eab0ea4036c$export$944aceb4f8c89f10 = /*#__PURE__*/ forwardRef(function DisclosureGroup(props, ref) {
|
|
@@ -113,133 +115,6 @@ const $a3e16eab0ea4036c$export$feabaa331e1d464c = /*#__PURE__*/ forwardRef(funct
|
|
|
113
115
|
}, /*#__PURE__*/ $ahdqC$react.createElement($7230ffa83bc0c2cf$export$2881499e37b75b9a, { values: [[$7705c033048f6da7$export$24d547caef80ccd1, null]] }, props.children));
|
|
114
116
|
});
|
|
115
117
|
//#endregion
|
|
116
|
-
//#region src/components/navigation/Accordion/accordion.cva.ts
|
|
117
|
-
const accordionDefinition = UIOverrides.defineConfig({
|
|
118
|
-
base: ["flex w-full flex-col"],
|
|
119
|
-
config: {
|
|
120
|
-
variants: {
|
|
121
|
-
variant: {
|
|
122
|
-
filled: "gap-1",
|
|
123
|
-
outlined: ""
|
|
124
|
-
},
|
|
125
|
-
singleItem: {
|
|
126
|
-
true: "",
|
|
127
|
-
false: ""
|
|
128
|
-
}
|
|
129
|
-
},
|
|
130
|
-
defaultVariants: {
|
|
131
|
-
variant: "filled",
|
|
132
|
-
singleItem: false
|
|
133
|
-
},
|
|
134
|
-
compoundVariants: [{
|
|
135
|
-
variant: "outlined",
|
|
136
|
-
singleItem: false,
|
|
137
|
-
className: "rounded-global-rounding-s border border-border-default-subtle"
|
|
138
|
-
}]
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
const accordionItemDefinition = UIOverrides.defineConfig({
|
|
142
|
-
base: ["flex w-full flex-col"],
|
|
143
|
-
config: {
|
|
144
|
-
variants: {
|
|
145
|
-
variant: {
|
|
146
|
-
filled: "rounded-accordion-rounding-filled bg-surface-default-background",
|
|
147
|
-
outlined: ""
|
|
148
|
-
},
|
|
149
|
-
singleItem: {
|
|
150
|
-
true: "",
|
|
151
|
-
false: ""
|
|
152
|
-
}
|
|
153
|
-
},
|
|
154
|
-
defaultVariants: {
|
|
155
|
-
variant: "filled",
|
|
156
|
-
singleItem: false
|
|
157
|
-
},
|
|
158
|
-
compoundVariants: [{
|
|
159
|
-
singleItem: true,
|
|
160
|
-
variant: "outlined",
|
|
161
|
-
className: "border-border-default-subtle border-b"
|
|
162
|
-
}, {
|
|
163
|
-
singleItem: false,
|
|
164
|
-
variant: "outlined",
|
|
165
|
-
className: "not-last:border-border-default-subtle not-last:border-b"
|
|
166
|
-
}]
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
|
-
const accordionTriggerDefinition = UIOverrides.defineConfig({
|
|
170
|
-
base: [
|
|
171
|
-
"group flex w-full items-center gap-accordion-gap-content-to-arrow",
|
|
172
|
-
"px-accordion-side-accordion py-accordion-height-accordion",
|
|
173
|
-
"outline-none focus-visible:ring-2 focus-visible:ring-interactive-ring"
|
|
174
|
-
],
|
|
175
|
-
config: {
|
|
176
|
-
variants: {
|
|
177
|
-
variant: {
|
|
178
|
-
outlined: "rounded-accordion-rounding-outlined hover:bg-tint-surface-default-popover/80",
|
|
179
|
-
filled: "rounded-accordion-rounding-filled bg-surface-default-background hover:bg-tint-surface-default-popover/80"
|
|
180
|
-
},
|
|
181
|
-
actionPosition: {
|
|
182
|
-
left: "flex-row-reverse",
|
|
183
|
-
right: "flex-row"
|
|
184
|
-
},
|
|
185
|
-
disabled: { true: "opacity-50" }
|
|
186
|
-
},
|
|
187
|
-
defaultVariants: {
|
|
188
|
-
variant: "filled",
|
|
189
|
-
actionPosition: "right"
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
const accordionHeadingDefinition = UIOverrides.defineConfig({
|
|
194
|
-
base: ["flex flex-1 items-center justify-between gap-accordion-gap-content-to-arrow"],
|
|
195
|
-
config: {
|
|
196
|
-
variants: {},
|
|
197
|
-
defaultVariants: {}
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
const accordionHeadingTitleDefinition = UIOverrides.defineConfig({
|
|
201
|
-
base: ["flex-1 text-left text-surface-default-card-foreground"],
|
|
202
|
-
config: {
|
|
203
|
-
variants: {},
|
|
204
|
-
defaultVariants: {}
|
|
205
|
-
}
|
|
206
|
-
});
|
|
207
|
-
const accordionHeadingSubtitleDefinition = UIOverrides.defineConfig({
|
|
208
|
-
base: ["flex-1 text-left text-surface-default-foreground"],
|
|
209
|
-
config: {
|
|
210
|
-
variants: {},
|
|
211
|
-
defaultVariants: {}
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
|
-
const accordionChevronDefinition = UIOverrides.defineConfig({
|
|
215
|
-
base: ["size-6 shrink-0 text-surface-default-popover-foreground transition-transform duration-200"],
|
|
216
|
-
config: {
|
|
217
|
-
variants: { isExpanded: {
|
|
218
|
-
true: "rotate-180",
|
|
219
|
-
false: "rotate-0"
|
|
220
|
-
} },
|
|
221
|
-
defaultVariants: { isExpanded: false }
|
|
222
|
-
}
|
|
223
|
-
});
|
|
224
|
-
const accordionIconDefinition = UIOverrides.defineConfig({
|
|
225
|
-
base: ["size-6 shrink-0 text-surface-default-popover-foreground"],
|
|
226
|
-
config: {
|
|
227
|
-
variants: {},
|
|
228
|
-
defaultVariants: {}
|
|
229
|
-
}
|
|
230
|
-
});
|
|
231
|
-
const accordionPanelDefinition = UIOverrides.defineConfig({
|
|
232
|
-
base: [""],
|
|
233
|
-
config: { variants: { isExpanded: { true: "px-accordion-side-accordion pt-0 pb-accordion-height-accordion" } } }
|
|
234
|
-
});
|
|
235
|
-
const accordionPanelContentDefinition = UIOverrides.defineConfig({
|
|
236
|
-
base: ["py-accordion-height-content"],
|
|
237
|
-
config: {
|
|
238
|
-
variants: {},
|
|
239
|
-
defaultVariants: {}
|
|
240
|
-
}
|
|
241
|
-
});
|
|
242
|
-
//#endregion
|
|
243
118
|
//#region src/components/navigation/Accordion/AccordionItem.tsx
|
|
244
119
|
const AccordionItem = (t0) => {
|
|
245
120
|
const $ = c(25);
|
|
@@ -282,7 +157,10 @@ const AccordionItem = (t0) => {
|
|
|
282
157
|
children: /* @__PURE__ */ jsxs("div", {
|
|
283
158
|
className: "flex flex-1 items-center gap-accordion-gap-icon-to-text",
|
|
284
159
|
children: [
|
|
285
|
-
Icon && /* @__PURE__ */ jsx(
|
|
160
|
+
Icon && /* @__PURE__ */ jsx(IconSlot, {
|
|
161
|
+
icon: Icon,
|
|
162
|
+
className: iconCva({})
|
|
163
|
+
}),
|
|
286
164
|
/* @__PURE__ */ jsx(Typography, {
|
|
287
165
|
size: "small",
|
|
288
166
|
className: headingTitleCva({}),
|
|
@@ -295,12 +173,18 @@ const AccordionItem = (t0) => {
|
|
|
295
173
|
})
|
|
296
174
|
]
|
|
297
175
|
})
|
|
298
|
-
}), /* @__PURE__ */ jsx(
|
|
176
|
+
}), /* @__PURE__ */ jsx(IconSlot, {
|
|
177
|
+
icon: ChevronDown,
|
|
178
|
+
className: chevronCva({ isExpanded })
|
|
179
|
+
})]
|
|
299
180
|
}) }), /* @__PURE__ */ jsx($a3e16eab0ea4036c$export$feabaa331e1d464c, {
|
|
300
|
-
className:
|
|
181
|
+
className: clsx("h-(--disclosure-panel-height) overflow-clip transition-[height,opacity] duration-200 ease-out motion-reduce:transition-none", isExpanded ? "opacity-100" : "opacity-0"),
|
|
301
182
|
children: /* @__PURE__ */ jsx("div", {
|
|
302
|
-
className:
|
|
303
|
-
children
|
|
183
|
+
className: panelCva({ isExpanded }),
|
|
184
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
185
|
+
className: panelContentCva({}),
|
|
186
|
+
children
|
|
187
|
+
})
|
|
304
188
|
})
|
|
305
189
|
})] });
|
|
306
190
|
};
|
|
@@ -411,4 +295,4 @@ const Accordion = (t0) => {
|
|
|
411
295
|
return t7;
|
|
412
296
|
};
|
|
413
297
|
//#endregion
|
|
414
|
-
export {
|
|
298
|
+
export { Accordion as t };
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { t as UIOverrides } from "./uiOverrides.context-
|
|
2
|
-
import { t as
|
|
3
|
-
import { t as
|
|
1
|
+
import { t as UIOverrides } from "./uiOverrides.context-BTCH9y5a.js";
|
|
2
|
+
import { t as IconSlot } from "./IconSlot-DSK7qNxc.js";
|
|
3
|
+
import { t as Typography } from "./Typography-LU4z2pR1.js";
|
|
4
|
+
import { t as Spinner } from "./Spinner-BeVTUzzx.js";
|
|
4
5
|
import { c } from "react/compiler-runtime";
|
|
5
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
7
|
//#region src/components/status/Alert/alert.cva.ts
|
|
7
8
|
const alertDefinition = UIOverrides.defineConfig({
|
|
8
|
-
base: ["min-h-0 overflow-hidden rounded-alert-rounding-default p-0"],
|
|
9
|
+
base: ["min-h-0 overflow-hidden rounded-alert-rounding-default p-0 shadow-4"],
|
|
9
10
|
config: {
|
|
10
11
|
variants: {
|
|
11
12
|
variant: {
|
|
@@ -38,7 +39,7 @@ const alertDefinition = UIOverrides.defineConfig({
|
|
|
38
39
|
{
|
|
39
40
|
variant: "outlined",
|
|
40
41
|
color: "error",
|
|
41
|
-
className: "border-
|
|
42
|
+
className: "border-border-destructive-base"
|
|
42
43
|
},
|
|
43
44
|
{
|
|
44
45
|
variant: "contained",
|
|
@@ -70,7 +71,7 @@ const alertDefinition = UIOverrides.defineConfig({
|
|
|
70
71
|
//#endregion
|
|
71
72
|
//#region src/components/status/shared/status.cva.ts
|
|
72
73
|
const statusIconDefinition = UIOverrides.defineConfig({
|
|
73
|
-
base: ["size-
|
|
74
|
+
base: ["size-icons-size shrink-0"],
|
|
74
75
|
config: {
|
|
75
76
|
variants: {
|
|
76
77
|
variant: {
|
|
@@ -163,10 +164,13 @@ const Alert = (t0) => {
|
|
|
163
164
|
} else t3 = $[6];
|
|
164
165
|
let t4;
|
|
165
166
|
if ($[7] !== Icon || $[8] !== color || $[9] !== iconCva || $[10] !== isLoading || $[11] !== variant) {
|
|
166
|
-
t4 = !isLoading && Icon && /* @__PURE__ */ jsx(
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
167
|
+
t4 = !isLoading && Icon && /* @__PURE__ */ jsx(IconSlot, {
|
|
168
|
+
icon: Icon,
|
|
169
|
+
className: iconCva({
|
|
170
|
+
variant,
|
|
171
|
+
color
|
|
172
|
+
})
|
|
173
|
+
});
|
|
170
174
|
$[7] = Icon;
|
|
171
175
|
$[8] = color;
|
|
172
176
|
$[9] = iconCva;
|
|
@@ -177,7 +181,7 @@ const Alert = (t0) => {
|
|
|
177
181
|
let t5;
|
|
178
182
|
if ($[13] !== text) {
|
|
179
183
|
t5 = /* @__PURE__ */ jsx(Typography, {
|
|
180
|
-
size: "
|
|
184
|
+
size: "large",
|
|
181
185
|
children: text
|
|
182
186
|
});
|
|
183
187
|
$[13] = text;
|
|
@@ -204,7 +208,7 @@ const Alert = (t0) => {
|
|
|
204
208
|
variant,
|
|
205
209
|
color
|
|
206
210
|
}) }), /* @__PURE__ */ jsx("div", {
|
|
207
|
-
className: "flex w-full shrink-0 flex-wrap items-center justify-end gap-
|
|
211
|
+
className: "flex w-full shrink-0 flex-wrap items-center justify-end gap-toast-gap-action px-alert-side-default py-alert-height-actions-mobile md:w-auto md:justify-center md:py-alert-height-actions-desktop",
|
|
208
212
|
children: rightContent
|
|
209
213
|
})] });
|
|
210
214
|
$[19] = color;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as StyleMergeUtils } from "./style-merge.util-zLimKwt6.js";
|
|
2
|
+
import { t as UIOverrides } from "./uiOverrides.context-DEp139He.js";
|
|
2
3
|
import { FC, ReactNode, SVGProps } from "react";
|
|
3
4
|
//#region src/components/status/Alert/alert.cva.d.ts
|
|
4
5
|
declare const alertDefinition: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as ButtonVariantProps } from "./button.cva-
|
|
2
|
-
import { n as DialogProps } from "./Dialog-
|
|
3
|
-
import { r as TypographyPropsCva } from "./Typography-
|
|
1
|
+
import { n as ButtonVariantProps } from "./button.cva-C7kEhgoA.js";
|
|
2
|
+
import { n as DialogProps } from "./Dialog-CW93T9X1.js";
|
|
3
|
+
import { r as TypographyPropsCva } from "./Typography-XljT9s02.js";
|
|
4
4
|
//#region src/components/overlays/AlertDialog/AlertDialog.d.ts
|
|
5
5
|
interface AlertDialogAction {
|
|
6
6
|
label: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as FieldValues } from "./form.binding-DVJ5F0JE.js";
|
|
2
|
-
import { n as GroupedSelectControlProps, o as SelectBaseProps, r as GroupedSelectProps, t as DefaultInitialSelectItem } from "./SelectBase-
|
|
2
|
+
import { n as GroupedSelectControlProps, o as SelectBaseProps, r as GroupedSelectProps, t as DefaultInitialSelectItem } from "./SelectBase-Omiq2D3M.js";
|
|
3
3
|
import { s as OmitDiscriminatedUnion } from "./common-UBFya8WY.js";
|
|
4
4
|
import { ReactElement } from "react";
|
|
5
5
|
import { Key } from "react-aria-components";
|