@persona/design-system 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/README.md +9 -9
- package/dist/Accordion.d.mts +38 -0
- package/dist/AccordionItem.d.mts +31 -0
- package/dist/{Action-C7INft7X.d.mts → Action-B-AiHknZ.d.mts} +3 -3
- package/dist/Action.d.mts +1 -1
- package/dist/AdvancedFilterRuleRow.d.mts +2 -2
- package/dist/AdvancedFilterRulesPopover.d.mts +2 -2
- package/dist/ArrayValueControl.d.mts +1 -1
- package/dist/Attribute.d.mts +3 -3
- package/dist/{Badge-BD0Ut46g.mjs → Badge-COqUjFQu.mjs} +2 -2
- package/dist/{Badge-BD0Ut46g.mjs.map → Badge-COqUjFQu.mjs.map} +1 -1
- package/dist/BooleanValueControl.d.mts +1 -1
- package/dist/{Breadcrumb-DtW1R9xW.d.mts → Breadcrumb-DRFY46ZW.d.mts} +1 -1
- package/dist/Breadcrumb.d.mts +1 -1
- package/dist/{Breadcrumbs-B6JyoS8n.d.mts → Breadcrumbs-DUSbT1I7.d.mts} +2 -2
- package/dist/{Breadcrumbs-CrXfUK1V.mjs → Breadcrumbs-DXS7rU7_.mjs} +5 -5
- package/dist/{Breadcrumbs-CrXfUK1V.mjs.map → Breadcrumbs-DXS7rU7_.mjs.map} +1 -1
- package/dist/Breadcrumbs.d.mts +1 -1
- package/dist/{Button-HodDf_bB.d.mts → Button-xZ6DC5XC.d.mts} +4 -4
- package/dist/Button.d.mts +1 -1
- package/dist/{Calendar-DrdTvzAa.d.mts → Calendar-dPmo2dkj.d.mts} +1 -1
- package/dist/Calendar.d.mts +1 -1
- package/dist/CalendarBase.d.mts +1 -1
- package/dist/{Card-CpDwATnX.d.mts → Card-CUeM8Lh8.d.mts} +3 -3
- package/dist/Card.d.mts +1 -1
- package/dist/{CardV2-M3o4BELp.mjs → CardV2-D9p7D7jX.mjs} +9 -7
- package/dist/{CardV2-M3o4BELp.mjs.map → CardV2-D9p7D7jX.mjs.map} +1 -1
- package/dist/{Checkbox-CyWXhuby.mjs → Checkbox-DQynkc_I.mjs} +3 -3
- package/dist/{Checkbox-CyWXhuby.mjs.map → Checkbox-DQynkc_I.mjs.map} +1 -1
- package/dist/{Checkbox-C-hMfItK.d.mts → Checkbox-DoJpxPEz.d.mts} +1 -1
- package/dist/Checkbox.d.mts +1 -1
- package/dist/CheckboxGroupField.d.mts +1 -1
- package/dist/ChoicesValueControl.d.mts +1 -1
- package/dist/{Combobox-1M6EwVmq.mjs → Combobox-C_kCY3P3.mjs} +28 -12
- package/dist/Combobox-C_kCY3P3.mjs.map +1 -0
- package/dist/{Combobox-DyNllwt8.d.mts → Combobox-D7hyf-jA.d.mts} +3 -3
- package/dist/Combobox.d.mts +2 -2
- package/dist/{ComboboxBase-B3YqkjQp.d.mts → ComboboxBase-BMCY6O7Y.d.mts} +10 -5
- package/dist/ComboboxBase.d.mts +1 -1
- package/dist/{ComboboxMultiSelect-BuwVssvZ.d.mts → ComboboxMultiSelect-L0KYMkmm.d.mts} +2 -2
- package/dist/ComboboxMultiSelect.d.mts +1 -1
- package/dist/{ComboboxSingleSelect-gJC4v7ER.d.mts → ComboboxSingleSelect-v5oNrJ7M.d.mts} +4 -4
- package/dist/ComboboxSingleSelect.d.mts +1 -1
- package/dist/{CompactBar-DhHh7Roq.d.mts → CompactBar-DjFaUAsN.d.mts} +4 -4
- package/dist/CompactBar.d.mts +1 -1
- package/dist/{ConfigFormGroup-Cz7GeTYd.mjs → ConfigFormGroup-DLOZOuLf.mjs} +2 -2
- package/dist/{ConfigFormGroup-Cz7GeTYd.mjs.map → ConfigFormGroup-DLOZOuLf.mjs.map} +1 -1
- package/dist/{ControlBar-C8kagIck.d.mts → ControlBar-Cegjxa6-.d.mts} +7 -2
- package/dist/ControlBar.d.mts +1 -1
- package/dist/DataTable.d.mts +4 -3
- package/dist/{DateField-2aigfD4u.d.mts → DateField-Dk5ykLdr.d.mts} +2 -2
- package/dist/DateField.d.mts +1 -1
- package/dist/{DatePicker-D9JurBBj.mjs → DatePicker-C7z1yodK.mjs} +77 -42
- package/dist/DatePicker-C7z1yodK.mjs.map +1 -0
- package/dist/{DatePicker-DC_RKjdM.d.mts → DatePicker-Dtvv0V45.d.mts} +2 -2
- package/dist/DatePicker.d.mts +1 -1
- package/dist/{DateRangePicker-ByD6IsLB.d.mts → DateRangePicker-HPYsa4wC.d.mts} +3 -3
- package/dist/DateRangePicker.d.mts +1 -1
- package/dist/DateRangeValueControl.d.mts +5 -3
- package/dist/DateValueControl.d.mts +8 -5
- package/dist/{DropdownButton-BWiXLMfD.mjs → DropdownButton-CQrFHOIW.mjs} +3 -3
- package/dist/{DropdownButton-BWiXLMfD.mjs.map → DropdownButton-CQrFHOIW.mjs.map} +1 -1
- package/dist/DropdownButton.d.mts +2 -2
- package/dist/{DropdownMenu-Xl1BYXsY.d.mts → DropdownMenu-D1qvgGTZ.d.mts} +2 -2
- package/dist/{DropdownMenu-CuKSNxc9.mjs → DropdownMenu-rm9Nnxn7.mjs} +7 -2
- package/dist/DropdownMenu-rm9Nnxn7.mjs.map +1 -0
- package/dist/DropdownMenu.d.mts +1 -1
- package/dist/{ErrorProps-Dgu98PkH.d.mts → ErrorProps-B8-Mqf1W.d.mts} +1 -1
- package/dist/ErrorProps.d.mts +1 -1
- package/dist/{FieldRegistry-BdtxI1N2.d.mts → FieldRegistry-0LmSQ-jc.d.mts} +2 -2
- package/dist/FieldRegistry.d.mts +1 -1
- package/dist/{FilterBar-jYjPeD7F.d.mts → FilterBar-BMM4Swbt.d.mts} +11 -4
- package/dist/FilterBar.d.mts +1 -1
- package/dist/FilterPickerMenu.d.mts +2 -2
- package/dist/FilterPill.d.mts +1 -1
- package/dist/FilterPopover.d.mts +1 -1
- package/dist/FloatValueControl.d.mts +1 -1
- package/dist/{FormControl-BEk4F1EV.mjs → FormControl-DXrxoJLl.mjs} +26 -11
- package/dist/FormControl-DXrxoJLl.mjs.map +1 -0
- package/dist/{FormControl-CJfYdgZF.d.mts → FormControl-Dg8doZq2.d.mts} +6 -2
- package/dist/FormControl.d.mts +1 -1
- package/dist/FormControlLabel.d.mts +1 -1
- package/dist/{FormField-CK8o1sMB.d.mts → FormField-BeLigf9j.d.mts} +4 -2
- package/dist/{FormField-ByT0avVx.mjs → FormField-Crp3F-hv.mjs} +31 -21
- package/dist/FormField-Crp3F-hv.mjs.map +1 -0
- package/dist/FormField.d.mts +1 -1
- package/dist/Grid-eMLuyRzV.mjs +92 -0
- package/dist/Grid-eMLuyRzV.mjs.map +1 -0
- package/dist/Grid.d.mts +4 -1
- package/dist/{Header-ZnHGm8fs.d.mts → Header-DxJ6TfPw.d.mts} +1 -1
- package/dist/Header.d.mts +1 -1
- package/dist/{HelperTooltip-CQpPO16Q.d.mts → HelperTooltip-DcyrpEZI.d.mts} +2 -2
- package/dist/HelperTooltip.d.mts +1 -1
- package/dist/{HoverCopyableField-CN3gl0ny.mjs → HoverCopyableField-12bBuG-d.mjs} +3 -3
- package/dist/{HoverCopyableField-CN3gl0ny.mjs.map → HoverCopyableField-12bBuG-d.mjs.map} +1 -1
- package/dist/{IconButton-zu-VNp1h.d.mts → IconButton-BUMMN-gH.d.mts} +2 -2
- package/dist/{IconButton-CqTPMhjV.mjs → IconButton-CCLMYWVN.mjs} +1 -1
- package/dist/{IconButton-CqTPMhjV.mjs.map → IconButton-CCLMYWVN.mjs.map} +1 -1
- package/dist/IconButton.d.mts +1 -1
- package/dist/ImageTile.d.mts +1 -1
- package/dist/InlineCombobox.d.mts +1 -1
- package/dist/InlineInput.d.mts +1 -1
- package/dist/{Input-Ce8FvSYf.d.mts → Input-2N2e5JCf.d.mts} +3 -3
- package/dist/{Input-Bc2yWH3j.mjs → Input-Cl4o41k4.mjs} +7 -3
- package/dist/Input-Cl4o41k4.mjs.map +1 -0
- package/dist/Input.d.mts +1 -1
- package/dist/{InputProps-B1Xod4wm.d.mts → InputProps-TWzig3QO.d.mts} +2 -2
- package/dist/InputProps.d.mts +1 -1
- package/dist/IntegerValueControl.d.mts +1 -1
- package/dist/Link-I9Bklen-.mjs +79 -0
- package/dist/Link-I9Bklen-.mjs.map +1 -0
- package/dist/Link.d.mts +1 -1
- package/dist/{ListBox-D-8iwYVj.d.mts → ListBox-BcoXOt73.d.mts} +3 -3
- package/dist/{ListBox-CFBhILRy.mjs → ListBox-sqeLBiKS.mjs} +33 -16
- package/dist/ListBox-sqeLBiKS.mjs.map +1 -0
- package/dist/ListBox.d.mts +1 -1
- package/dist/ListBoxField.d.mts +3 -2
- package/dist/{LoadingShimmer-Dizk2sZu.mjs → LoadingShimmer-dRSkdlqD.mjs} +13 -8
- package/dist/LoadingShimmer-dRSkdlqD.mjs.map +1 -0
- package/dist/LoadingShimmer.d.mts +1 -1
- package/dist/{LogicRow-CgPds2tq.d.mts → LogicRow-DXywXdYt.d.mts} +3 -3
- package/dist/LogicRow.d.mts +1 -1
- package/dist/MaskedInput.d.mts +2 -2
- package/dist/{Menu-CSwzFqdv.d.mts → Menu-BekLwm8w.d.mts} +3 -3
- package/dist/{Menu-Cd6oxjAe.mjs → Menu-CwlI7BMN.mjs} +1 -1
- package/dist/{Menu-Cd6oxjAe.mjs.map → Menu-CwlI7BMN.mjs.map} +1 -1
- package/dist/Menu.d.mts +1 -1
- package/dist/Modal-CMiFcXC9.mjs +260 -0
- package/dist/Modal-CMiFcXC9.mjs.map +1 -0
- package/dist/Modal-ymxlGYKt.d.mts +145 -0
- package/dist/Modal.d.mts +2 -145
- package/dist/{PageHeader-DJOlcAiW.mjs → PageHeader-D_0p7UK_.mjs} +2 -2
- package/dist/{PageHeader-DJOlcAiW.mjs.map → PageHeader-D_0p7UK_.mjs.map} +1 -1
- package/dist/PageHeader.d.mts +1 -1
- package/dist/PageLayoutFrame.d.mts +28 -0
- package/dist/{PageSelector-BMz2Q4P6.d.mts → PageSelector-Bxulu6vU.d.mts} +3 -3
- package/dist/PageSelector.d.mts +1 -1
- package/dist/{Pagination-B1u203DE.mjs → Pagination-Co9CfyFQ.mjs} +5 -5
- package/dist/{Pagination-B1u203DE.mjs.map → Pagination-Co9CfyFQ.mjs.map} +1 -1
- package/dist/{Pagination-ne9hnVoe.d.mts → Pagination-Dg-4O7F7.d.mts} +2 -2
- package/dist/Pagination.d.mts +1 -1
- package/dist/{Pii-Dz4woKd8.mjs → Pii-JGV9gP95.mjs} +2 -2
- package/dist/{Pii-Dz4woKd8.mjs.map → Pii-JGV9gP95.mjs.map} +1 -1
- package/dist/{PillShell-ChTB_koa.d.mts → PillShell-BA7KK1zS.d.mts} +2 -2
- package/dist/PillShell.d.mts +1 -1
- package/dist/{Popover-opVa9Xhc.mjs → Popover-ZAj03lws.mjs} +15 -2
- package/dist/Popover-ZAj03lws.mjs.map +1 -0
- package/dist/ProgressIndicator-CQg08vuA.mjs +188 -0
- package/dist/ProgressIndicator-CQg08vuA.mjs.map +1 -0
- package/dist/ProgressIndicator-D85HQGSx.d.mts +66 -0
- package/dist/ProgressIndicator.d.mts +2 -66
- package/dist/{PseudoClassProps-CdRF3QNn.d.mts → PseudoClassProps-BHs8TX_3.d.mts} +1 -1
- package/dist/PseudoClassProps.d.mts +1 -1
- package/dist/{Radio-Ds1pODKw.mjs → Radio-CYV290JI.mjs} +2 -2
- package/dist/{Radio-Ds1pODKw.mjs.map → Radio-CYV290JI.mjs.map} +1 -1
- package/dist/{RadioGroup-CxL6LW4q.d.mts → RadioGroup-Cq3KV1TN.d.mts} +1 -1
- package/dist/{RadioGroup-HIC9V2hO.mjs → RadioGroup-lWMMtu9V.mjs} +2 -2
- package/dist/{RadioGroup-HIC9V2hO.mjs.map → RadioGroup-lWMMtu9V.mjs.map} +1 -1
- package/dist/RadioGroup.d.mts +1 -1
- package/dist/{RangeCalendar-B7TwRJbg.d.mts → RangeCalendar-Mh7h74Tp.d.mts} +2 -2
- package/dist/RangeCalendar.d.mts +1 -1
- package/dist/RangeCalendarPresets.d.mts +1 -1
- package/dist/{RouterContext-B7N12wkK.d.mts → RouterContext-B3IU1jb0.d.mts} +2 -2
- package/dist/RouterContext.d.mts +1 -1
- package/dist/{RouterLink-Bq36EGjc.d.mts → RouterLink-CwAqTLC2.d.mts} +2 -2
- package/dist/RouterLink.d.mts +1 -1
- package/dist/RuleEditorFields.d.mts +2 -2
- package/dist/RulesPill.d.mts +1 -1
- package/dist/{SearchInput-D69WxMNq.d.mts → SearchInput-BGyUUcoz.d.mts} +2 -2
- package/dist/SearchInput.d.mts +1 -1
- package/dist/SectionHeading.d.mts +1 -1
- package/dist/{SegmentedControl-OHrfJiw0.mjs → SegmentedControl-BEbIcV3g.mjs} +13 -6
- package/dist/SegmentedControl-BEbIcV3g.mjs.map +1 -0
- package/dist/{SegmentedControl-vCnGsdXo.d.mts → SegmentedControl-DgDabSgr.d.mts} +2 -1
- package/dist/SegmentedControl.d.mts +1 -1
- package/dist/{Select-sQb4dQwT.d.mts → Select-wqTtGyga.d.mts} +3 -3
- package/dist/{Select-DE7uv9C8.mjs → Select-yC2t_gZb.mjs} +10 -8
- package/dist/Select-yC2t_gZb.mjs.map +1 -0
- package/dist/Select.d.mts +1 -1
- package/dist/SingleColumnLayout.d.mts +16 -0
- package/dist/{Spinner-DplDSBqf.mjs → Spinner-BlAg8_OX.mjs} +1 -1
- package/dist/{Spinner-DplDSBqf.mjs.map → Spinner-BlAg8_OX.mjs.map} +1 -1
- package/dist/SplitColumnLayout.d.mts +19 -0
- package/dist/{Stack-ChsImaEY.mjs → Stack-Bkn0TUDe.mjs} +1 -1
- package/dist/{Stack-ChsImaEY.mjs.map → Stack-Bkn0TUDe.mjs.map} +1 -1
- package/dist/{Stack-8KGPQp0u.d.mts → Stack-CYqjBXe8.d.mts} +1 -1
- package/dist/Stack.d.mts +1 -1
- package/dist/StatusIndicator-DT2zNbkp.mjs +315 -0
- package/dist/StatusIndicator-DT2zNbkp.mjs.map +1 -0
- package/dist/{Sticker-C3Eb13OQ.mjs → Sticker-BLbgJxcH.mjs} +5 -8
- package/dist/Sticker-BLbgJxcH.mjs.map +1 -0
- package/dist/{Sticker-Bf9rhSkv.d.mts → Sticker-BmyKaxwx.d.mts} +4 -4
- package/dist/Sticker.d.mts +1 -1
- package/dist/StringValueControl.d.mts +1 -1
- package/dist/Tab.d.mts +1 -1
- package/dist/{TabBar-BepWbJHz.mjs → TabBar-Bj84q1Mr.mjs} +4 -7
- package/dist/{TabBar-BepWbJHz.mjs.map → TabBar-Bj84q1Mr.mjs.map} +1 -1
- package/dist/{Table-BefytM6w.d.mts → Table-DhdHUQ8V.d.mts} +1 -1
- package/dist/{Table-B1gRr2XT.mjs → Table-WqNfjasd.mjs} +22 -3
- package/dist/Table-WqNfjasd.mjs.map +1 -0
- package/dist/Table.d.mts +1 -1
- package/dist/{TableBody-BZ34-_wV.d.mts → TableBody-qoSvQDds.d.mts} +1 -1
- package/dist/TableBody.d.mts +1 -1
- package/dist/{TableBox-NP6bhtKb.mjs → TableBox-obl64W5Y.mjs} +22 -17
- package/dist/TableBox-obl64W5Y.mjs.map +1 -0
- package/dist/TableBox.d.mts +2 -2
- package/dist/{TableBoxCell-CHGw9HVj.d.mts → TableBoxCell-DzYMx4Ju.d.mts} +6 -6
- package/dist/TableBoxCell.d.mts +1 -1
- package/dist/TableBoxField.d.mts +4 -3
- package/dist/{TableBoxRow-BljsXKrL.d.mts → TableBoxRow-B4rFCvWK.d.mts} +3 -3
- package/dist/TableBoxRow.d.mts +1 -1
- package/dist/{TableBoxRowActions-h6HNEv9F.d.mts → TableBoxRowActions-qMKcVuTL.d.mts} +2 -2
- package/dist/TableBoxRowActions.d.mts +1 -1
- package/dist/{TableCell-DorRxyke.d.mts → TableCell-CGPQRc5g.d.mts} +2 -2
- package/dist/TableCell.d.mts +1 -1
- package/dist/{TableControls-CYTpBlQN.mjs → TableControls-RS_ozBsI.mjs} +219 -70
- package/dist/TableControls-RS_ozBsI.mjs.map +1 -0
- package/dist/{TableControls-BtGFiZeD.d.mts → TableControls-WP78qtET.d.mts} +4 -3
- package/dist/TableControls.d.mts +1 -1
- package/dist/{TableControlsContext-C3DYeUmB.d.mts → TableControlsContext-DZIZSyfX.d.mts} +2 -2
- package/dist/TableControlsContext.d.mts +1 -1
- package/dist/{TableHead-B0Fdldgw.d.mts → TableHead-36j-_oyn.d.mts} +1 -1
- package/dist/TableHead.d.mts +1 -1
- package/dist/{TableHeaderCell-C_7X8QAT.d.mts → TableHeaderCell-C7gp9j1X.d.mts} +1 -1
- package/dist/TableHeaderCell.d.mts +1 -1
- package/dist/{TableLayout-CXVVzq0e.d.mts → TableLayout-CQqIV0vj.d.mts} +1 -1
- package/dist/TableLayout.d.mts +1 -1
- package/dist/{TableRow-Dr61XJNw.d.mts → TableRow-BJZM8I8i.d.mts} +2 -2
- package/dist/TableRow.d.mts +1 -1
- package/dist/TableTH.d.mts +1 -1
- package/dist/{TableViewConfigurationDropdown-CCtwcB3I.d.mts → TableViewConfigurationDropdown-Dwy_9FBz.d.mts} +2 -2
- package/dist/TableViewConfigurationDropdown.d.mts +1 -1
- package/dist/{TechnicalSticker-_LtE-PRY.mjs → TechnicalSticker-CL0zkOAj.mjs} +1 -1
- package/dist/{TechnicalSticker-_LtE-PRY.mjs.map → TechnicalSticker-CL0zkOAj.mjs.map} +1 -1
- package/dist/{Text-DD_W_ixb.d.mts → Text-DbtTa83E.d.mts} +3 -3
- package/dist/Text.d.mts +1 -1
- package/dist/{TextArea-DOofaXJi.d.mts → TextArea-CbxF6u7z.d.mts} +2 -2
- package/dist/{TextArea-8TuVvmvj.mjs → TextArea-CfZr5Sk4.mjs} +2 -2
- package/dist/{TextArea-8TuVvmvj.mjs.map → TextArea-CfZr5Sk4.mjs.map} +1 -1
- package/dist/TextArea.d.mts +1 -1
- package/dist/{TextUnderlineTooltip-BPLKU9wu.d.mts → TextUnderlineTooltip-BgLQuK38.d.mts} +2 -2
- package/dist/TextUnderlineTooltip.d.mts +1 -1
- package/dist/Tile.d.mts +1 -1
- package/dist/Toast.d.mts +1 -1
- package/dist/{Toggle-2nrUX591.d.mts → Toggle-BYMLrPXk.d.mts} +3 -1
- package/dist/{Toggle-Dcn2Rqgm.mjs → Toggle-D4ZaUcVt.mjs} +11 -5
- package/dist/Toggle-D4ZaUcVt.mjs.map +1 -0
- package/dist/Toggle.d.mts +1 -1
- package/dist/{Tooltip-Cnqf1-tx.d.mts → Tooltip-4pshzB_i.d.mts} +2 -2
- package/dist/Tooltip.d.mts +1 -1
- package/dist/{TruncatedText-g2T5HlqX.d.mts → TruncatedText-O7hE3w0O.d.mts} +1 -1
- package/dist/VersionHistory.d.mts +23 -0
- package/dist/VersionHistoryItem-CIcEgl0K.d.mts +54 -0
- package/dist/VersionHistoryItem.d.mts +2 -0
- package/dist/WizardModal.d.mts +41 -0
- package/dist/accordionTitleTypography-CNB1w3kn.d.mts +17 -0
- package/dist/accordionTitleTypography.d.mts +2 -0
- package/dist/assertNever.d.mts +5 -0
- package/dist/{codec-CoX6LfOY.d.mts → codec-BXVBsB8Y.d.mts} +2 -2
- package/dist/codec.d.mts +1 -1
- package/dist/{color-Bt0Lv1e3.d.mts → color-3UO63ocQ.d.mts} +9 -4
- package/dist/components/Accordion/index.d.mts +4 -0
- package/dist/components/Accordion/index.mjs +330 -0
- package/dist/components/Accordion/index.mjs.map +1 -0
- package/dist/components/Attribute/index.mjs +2 -2
- package/dist/components/Badge/index.mjs +1 -1
- package/dist/components/Banner/index.mjs +1 -1
- package/dist/components/BottomPanel/index.mjs +5 -3
- package/dist/components/BottomPanel/index.mjs.map +1 -1
- package/dist/components/Breadcrumbs/index.d.mts +1 -1
- package/dist/components/Breadcrumbs/index.mjs +1 -1
- package/dist/components/Button/index.d.mts +2 -2
- package/dist/components/Button/index.mjs +1 -1
- package/dist/components/ButtonGroup/index.mjs +2 -2
- package/dist/components/Card/index.d.mts +2 -2
- package/dist/components/CardV2/index.d.mts +1 -1
- package/dist/components/CardV2/index.mjs +1 -1
- package/dist/components/Checkbox/index.d.mts +1 -1
- package/dist/components/Checkbox/index.mjs +1 -1
- package/dist/components/CodeHighlight/index.mjs +3 -1
- package/dist/components/CodeHighlight/index.mjs.map +1 -1
- package/dist/components/Combobox/index.d.mts +2 -2
- package/dist/components/Combobox/index.mjs +1 -1
- package/dist/components/ConfigFormGroup/index.mjs +2 -2
- package/dist/components/DataTable/TableControls/index.d.mts +19 -19
- package/dist/components/DataTable/TableControls/index.mjs +1 -1
- package/dist/components/DataTable/index.mjs +27 -16
- package/dist/components/DataTable/index.mjs.map +1 -1
- package/dist/components/DataTable/types.d.mts +2 -2
- package/dist/components/DatePicker/index.d.mts +5 -5
- package/dist/components/DatePicker/index.mjs +1 -1
- package/dist/components/DropdownButton/index.mjs +1 -1
- package/dist/components/DropdownMenu/index.d.mts +1 -1
- package/dist/components/DropdownMenu/index.mjs +1 -1
- package/dist/components/FloatingPanel/index.mjs +10 -7
- package/dist/components/FloatingPanel/index.mjs.map +1 -1
- package/dist/components/FormControl/index.d.mts +2 -2
- package/dist/components/FormControl/index.mjs +2 -2
- package/dist/components/FormField/index.d.mts +1 -1
- package/dist/components/FormField/index.mjs +1 -1
- package/dist/components/Grid/index.d.mts +2 -2
- package/dist/components/Grid/index.mjs +2 -85
- package/dist/components/HoverCopyableField/index.mjs +1 -1
- package/dist/components/ImageTile/index.mjs +13 -9
- package/dist/components/ImageTile/index.mjs.map +1 -1
- package/dist/components/Input/index.d.mts +1 -1
- package/dist/components/Input/index.mjs +1 -1
- package/dist/components/Link/index.mjs +1 -78
- package/dist/components/ListBox/index.d.mts +3 -3
- package/dist/components/ListBox/index.mjs +1 -1
- package/dist/components/LoadingShimmer/index.mjs +1 -1
- package/dist/components/MaskedInput/index.mjs +1 -1
- package/dist/components/Menu/index.d.mts +1 -1
- package/dist/components/Menu/index.mjs +1 -1
- package/dist/components/Modal/index.d.mts +1 -1
- package/dist/components/Modal/index.mjs +1 -257
- package/dist/components/PageHeader/index.mjs +1 -1
- package/dist/components/Pagination/index.d.mts +3 -3
- package/dist/components/Pagination/index.mjs +1 -1
- package/dist/components/Pii/index.mjs +1 -1
- package/dist/components/Popover/index.mjs +1 -1
- package/dist/components/ProgressBar/index.mjs +1 -2
- package/dist/components/ProgressBar/index.mjs.map +1 -1
- package/dist/components/ProgressIndicator/index.d.mts +2 -2
- package/dist/components/ProgressIndicator/index.mjs +1 -187
- package/dist/components/Radio/index.mjs +1 -1
- package/dist/components/RadioGroup/index.d.mts +1 -1
- package/dist/components/RadioGroup/index.mjs +1 -1
- package/dist/components/RightPanel/index.mjs +10 -7
- package/dist/components/RightPanel/index.mjs.map +1 -1
- package/dist/components/SegmentedControl/index.d.mts +1 -1
- package/dist/components/SegmentedControl/index.mjs +1 -1
- package/dist/components/Select/index.d.mts +1 -1
- package/dist/components/Select/index.mjs +1 -1
- package/dist/components/Slider/index.mjs +1 -1
- package/dist/components/Slider/index.mjs.map +1 -1
- package/dist/components/SmartTextInput/parser/method-chain/types.d.mts +2 -105
- package/dist/components/SmartTextInput/parser/smart-text/types.d.mts +1 -1
- package/dist/components/Spinner/index.mjs +1 -1
- package/dist/components/Stack/index.d.mts +1 -1
- package/dist/components/Stack/index.mjs +1 -1
- package/dist/components/StatusIndicator/index.mjs +1 -314
- package/dist/components/Sticker/index.d.mts +1 -1
- package/dist/components/Sticker/index.mjs +1 -1
- package/dist/components/TabBar/index.mjs +1 -1
- package/dist/components/Table/index.d.mts +8 -8
- package/dist/components/Table/index.mjs +1 -1
- package/dist/components/TableBox/index.d.mts +2 -2
- package/dist/components/TableBox/index.mjs +1 -1
- package/dist/components/TechnicalSticker/index.mjs +1 -1
- package/dist/components/Text/index.d.mts +1 -1
- package/dist/components/TextArea/index.d.mts +1 -1
- package/dist/components/TextArea/index.mjs +1 -1
- package/dist/components/Tile/index.mjs +2 -2
- package/dist/components/Toast/index.mjs +2 -2
- package/dist/components/Toast/index.mjs.map +1 -1
- package/dist/components/Toggle/index.d.mts +1 -1
- package/dist/components/Toggle/index.mjs +1 -1
- package/dist/components/Tooltip/index.d.mts +3 -3
- package/dist/components/VersionHistory/index.d.mts +3 -0
- package/dist/components/VersionHistory/index.mjs +389 -0
- package/dist/components/VersionHistory/index.mjs.map +1 -0
- package/dist/components/WizardModal/index.d.mts +2 -0
- package/dist/components/WizardModal/index.mjs +106 -0
- package/dist/components/WizardModal/index.mjs.map +1 -0
- package/dist/compound-expression.d.mts +1 -1
- package/dist/{constants-D8bzZ-7B.d.mts → constants-BOxzLX-O.d.mts} +1 -1
- package/dist/constants.d.mts +1 -1
- package/dist/{createPath-BDYRvl57.d.mts → createPath-OeTC9kvS.d.mts} +2 -2
- package/dist/createPath.d.mts +1 -1
- package/dist/{date-filter-CZeChs9T.mjs → date-filter-BnzR6NxT.mjs} +1 -1
- package/dist/{date-filter-CZeChs9T.mjs.map → date-filter-BnzR6NxT.mjs.map} +1 -1
- package/dist/{date-range-rule-value-jZAHuxZJ.d.mts → date-range-rule-value-BRp5Bi7R.d.mts} +2 -2
- package/dist/date-range-rule-value.d.mts +1 -1
- package/dist/{date-rule-intent-CC1LdkE7.d.mts → date-rule-intent-CDBtV0ET.d.mts} +3 -3
- package/dist/date-rule-intent.d.mts +1 -1
- package/dist/display.d.mts +2 -2
- package/dist/fieldPickerOptions.d.mts +2 -2
- package/dist/{filter-size-context-BGczB5R9.d.mts → filter-size-context-CqvQ190x.d.mts} +2 -2
- package/dist/filter-size-context.d.mts +1 -1
- package/dist/format-date-value.d.mts +5 -0
- package/dist/helpers.d.mts +1 -1
- package/dist/{index-DalP_w0c.d.mts → index-BXSe73Xn.d.mts} +2 -2
- package/dist/{index-BRKXhLGa.d.mts → index-CyAok7As.d.mts} +2 -2
- package/dist/index-gVcIuWLd.d.mts +1 -0
- package/dist/{index-BZmGEbsA.d.mts → index-wKK9f9La.d.mts} +3 -3
- package/dist/index-zeAhjge4.d.mts +1 -0
- package/dist/index.d.mts +1 -1
- package/dist/index2.d.mts +1 -1
- package/dist/index3.d.mts +3 -3
- package/dist/index4.d.mts +1 -1
- package/dist/index5.d.mts +14 -14
- package/dist/{input-DCJivcWf.d.mts → input-C6cyiqm2.d.mts} +3 -3
- package/dist/inputFields.d.mts +14 -12
- package/dist/{intersperse-Bxcrxj2Q.mjs → intersperse-Df9zw7Bk.mjs} +1 -1
- package/dist/{intersperse-Bxcrxj2Q.mjs.map → intersperse-Df9zw7Bk.mjs.map} +1 -1
- package/dist/{jsonSchema-c_EfAj8y.d.mts → jsonSchema-CfGi1bzI.d.mts} +67 -11
- package/dist/lib/PDSProvider.d.mts +2 -2
- package/dist/lib/TruncatedText.d.mts +1 -1
- package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
- package/dist/lib/chainTypes.d.mts +17 -0
- package/dist/lib/chainTypes.mjs +0 -0
- package/dist/lib/color.d.mts +2 -2
- package/dist/lib/color.mjs +18 -11
- package/dist/lib/color.mjs.map +1 -1
- package/dist/lib/customFunctionSchema.d.mts +49 -0
- package/dist/lib/customFunctionSchema.mjs +299 -0
- package/dist/lib/customFunctionSchema.mjs.map +1 -0
- package/dist/lib/date-filter/index.d.mts +2 -2
- package/dist/lib/date-filter/index.mjs +1 -1
- package/dist/lib/jsonSchema.d.mts +2 -2
- package/dist/lib/jsonSchema.mjs +36 -11
- package/dist/lib/jsonSchema.mjs.map +1 -1
- package/dist/lib/jsonSchemaType.d.mts +7 -0
- package/dist/lib/jsonSchemaType.mjs +31 -0
- package/dist/lib/jsonSchemaType.mjs.map +1 -0
- package/dist/lib/letPointerDownReachDocument.d.mts +22 -0
- package/dist/lib/letPointerDownReachDocument.mjs +25 -0
- package/dist/lib/letPointerDownReachDocument.mjs.map +1 -0
- package/dist/lib/message.d.mts +1 -1
- package/dist/lib/methodChain.d.mts +3 -66
- package/dist/lib/methodChain.mjs +1 -237
- package/dist/lib/methodChainNormalize.d.mts +2 -2
- package/dist/lib/methodChainTypes.d.mts +2 -23
- package/dist/lib/objectSchemaTypes.d.mts +1 -1
- package/dist/lib/platformObject.d.mts +38 -0
- package/dist/lib/platformObject.mjs +79 -0
- package/dist/lib/platformObject.mjs.map +1 -0
- package/dist/lib/pseudoClass.d.mts +1 -1
- package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
- package/dist/lib/router/adapters/tanstack.d.mts +1 -1
- package/dist/lib/router/index.d.mts +5 -5
- package/dist/lib/schemaOptions.d.mts +173 -0
- package/dist/lib/schemaOptions.mjs +481 -0
- package/dist/lib/schemaOptions.mjs.map +1 -0
- package/dist/lib/semanticColor.d.mts +1 -1
- package/dist/lib/snakifyPath.d.mts +5 -0
- package/dist/lib/snakifyPath.mjs +11 -0
- package/dist/lib/snakifyPath.mjs.map +1 -0
- package/dist/{message-CjIHdhX1.d.mts → message-CblP0EjG.d.mts} +1 -1
- package/dist/methodChain-DAQxLgxt.mjs +241 -0
- package/dist/methodChain-DAQxLgxt.mjs.map +1 -0
- package/dist/methodChain-Pk1C3i_E.d.mts +66 -0
- package/dist/methodChainTypes-CqWzfx0M.d.mts +23 -0
- package/dist/mixins/focus.d.mts +1 -1
- package/dist/mixins/hoverable.d.mts +2 -2
- package/dist/mixins/input.d.mts +1 -1
- package/dist/mixins/input.mjs +6 -14
- package/dist/mixins/input.mjs.map +1 -1
- package/dist/mixins/menuItem.d.mts +2 -2
- package/dist/mixins/scrollbar.d.mts +10 -0
- package/dist/mixins/scrollbar.mjs +31 -0
- package/dist/mixins/scrollbar.mjs.map +1 -0
- package/dist/mixins/text.d.mts +1 -1
- package/dist/{operators-x_ZENhrT.d.mts → operators-CoXL5Hv6.d.mts} +2 -2
- package/dist/operators.d.mts +1 -1
- package/dist/{palette-qgPRWgUN.d.mts → palette-CxXUs1Fu.d.mts} +3 -3
- package/dist/palette.d.mts +1 -1
- package/dist/patterns/LayoutLoadingShimmer/index.mjs +5 -5
- package/dist/patterns/PageLayout/index.d.mts +4 -1
- package/dist/patterns/PageLayout/index.mjs +99 -2
- package/dist/patterns/PageLayout/index.mjs.map +1 -1
- package/dist/reactRouterFallback.d.mts +1 -1
- package/dist/relative-date-label.d.mts +1 -1
- package/dist/scrollExpandedItemIntoView.d.mts +12 -0
- package/dist/{semantic-DUctmpu_.d.mts → semantic-CFMBsuiJ.d.mts} +2 -2
- package/dist/{semanticColor-IAhXS17y.d.mts → semanticColor-DuJCmDrH.d.mts} +3 -3
- package/dist/{text-DjTGRUM1.d.mts → text-D8HPjiEX.d.mts} +1 -1
- package/dist/{theme-DKiszVRN.d.mts → theme-BcaR-Au5.d.mts} +3 -3
- package/dist/theme.d.mts +1 -1
- package/dist/time-range.d.mts +7 -0
- package/dist/tone.d.mts +3 -3
- package/dist/{types-CcZbBH0e.d.mts → types-BCiq4hGv.d.mts} +1 -1
- package/dist/types-BGMmkUpy.d.mts +105 -0
- package/dist/{types-N8PYonjD.d.mts → types-C4WUSW3e.d.mts} +7 -2
- package/dist/{types-CuQSgl1F.d.mts → types-CkpixGWr.d.mts} +1 -1
- package/dist/{types-D8rWSj3z.d.mts → types-Cl-w8tYc.d.mts} +1 -1
- package/dist/{types-gnF3MPfk2.d.mts → types-CoVZwrMW.d.mts} +2 -2
- package/dist/{types-RWjW1d9I.d.mts → types-DgyGecdM.d.mts} +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types2.d.mts +1 -1
- package/dist/types3.d.mts +1 -1
- package/dist/types4.d.mts +1 -1
- package/dist/types5.d.mts +1 -1
- package/dist/types6.d.mts +1 -1
- package/dist/{url-state-C2gl07_y.d.mts → url-state-8j_ef8Uf.d.mts} +2 -2
- package/dist/url-state.d.mts +1 -1
- package/dist/useComboboxFooterAction.d.mts +1 -1
- package/dist/{useFilterStateV2-BQYcAdKR.d.mts → useFilterStateV2-CW6eght1.d.mts} +3 -3
- package/dist/useFilterStateV2.d.mts +1 -1
- package/dist/{useFormField-DDbo-ExT.d.mts → useFormField-CLRZkUZt.d.mts} +4 -2
- package/dist/{useFormField-DsvC5dOb.mjs → useFormField-XezSxho_.mjs} +3 -2
- package/dist/useFormField-XezSxho_.mjs.map +1 -0
- package/dist/useFormField.d.mts +1 -1
- package/dist/{useFormGroup-CH3kiXoa.mjs → useFormGroup-C7Cax8zO.mjs} +1 -1
- package/dist/{useFormGroup-CH3kiXoa.mjs.map → useFormGroup-C7Cax8zO.mjs.map} +1 -1
- package/dist/{useLocationPathname-K2N4fw8j.d.mts → useLocationPathname-DH5Tdq5X.d.mts} +1 -1
- package/dist/useLocationPathname.d.mts +1 -1
- package/dist/{useTableBoxDragAndDrop-CbbH3pMK.d.mts → useTableBoxDragAndDrop-Da4TiYBT.d.mts} +1 -1
- package/dist/useTableBoxDragAndDrop.d.mts +1 -1
- package/dist/useTruncation.d.mts +1 -1
- package/dist/{utilities-D0EhDri-.d.mts → utilities-DcsbI71T.d.mts} +1 -1
- package/dist/utilities.d.mts +1 -1
- package/dist/utils/storybook.mjs +1 -1
- package/dist/utils/testing.d.mts +1 -1
- package/dist/utils/testing.mjs.map +1 -1
- package/dist/utils.d.mts +1 -1
- package/dist/{validation-CMtfUd-R.d.mts → validation-BgwNghi2.d.mts} +3 -3
- package/dist/validation.d.mts +1 -1
- package/dist/{value-control-resolver-Au9JNS5z.d.mts → value-control-resolver-B0HDRxRN.d.mts} +3 -2
- package/dist/value-control-resolver.d.mts +1 -1
- package/dist/variables/effect.d.mts +1 -1
- package/dist/variables/semantic.d.mts +1 -1
- package/dist/variables/semantic.mjs +15 -18
- package/dist/variables/semantic.mjs.map +1 -1
- package/llms.txt +10 -1
- package/package.json +27 -6
- package/skills/ui-authoring/COMPONENTS.md +6 -1
- package/skills/ui-authoring/PATTERNS.md +74 -115
- package/dist/Combobox-1M6EwVmq.mjs.map +0 -1
- package/dist/DatePicker-D9JurBBj.mjs.map +0 -1
- package/dist/DropdownMenu-CuKSNxc9.mjs.map +0 -1
- package/dist/FormControl-BEk4F1EV.mjs.map +0 -1
- package/dist/FormField-ByT0avVx.mjs.map +0 -1
- package/dist/Input-Bc2yWH3j.mjs.map +0 -1
- package/dist/ListBox-CFBhILRy.mjs.map +0 -1
- package/dist/LoadingShimmer-Dizk2sZu.mjs.map +0 -1
- package/dist/Popover-opVa9Xhc.mjs.map +0 -1
- package/dist/SegmentedControl-OHrfJiw0.mjs.map +0 -1
- package/dist/Select-DE7uv9C8.mjs.map +0 -1
- package/dist/Sticker-C3Eb13OQ.mjs.map +0 -1
- package/dist/Table-B1gRr2XT.mjs.map +0 -1
- package/dist/TableBox-NP6bhtKb.mjs.map +0 -1
- package/dist/TableControls-CYTpBlQN.mjs.map +0 -1
- package/dist/Toggle-Dcn2Rqgm.mjs.map +0 -1
- package/dist/components/Grid/index.mjs.map +0 -1
- package/dist/components/Link/index.mjs.map +0 -1
- package/dist/components/Modal/index.mjs.map +0 -1
- package/dist/components/ProgressIndicator/index.mjs.map +0 -1
- package/dist/components/StatusIndicator/index.mjs.map +0 -1
- package/dist/fieldSchemaTypes-BVYSm74B.d.mts +0 -39
- package/dist/lib/fieldSchemaTypes.d.mts +0 -2
- package/dist/lib/fieldSchemaTypes.mjs +0 -41
- package/dist/lib/fieldSchemaTypes.mjs.map +0 -1
- package/dist/lib/methodChain.mjs.map +0 -1
- package/dist/useFormField-DsvC5dOb.mjs.map +0 -1
- /package/dist/{index--p6oQT9I.d.mts → index-B24gUwOx.d.mts} +0 -0
- /package/dist/{index-B33elXxm.d.mts → index-BFnNtGdX.d.mts} +0 -0
- /package/dist/{index-BO_854F2.d.mts → index-BNRXMhlr.d.mts} +0 -0
- /package/dist/{index-BrGZHEgX.d.mts → index-BPiqSRRl.d.mts} +0 -0
- /package/dist/{index-BwAfCVZH2.d.mts → index-BYd3Btr1.d.mts} +0 -0
- /package/dist/{index-CRo77wc3.d.mts → index-Bt4QNofW.d.mts} +0 -0
- /package/dist/{index-CX869wwk.d.mts → index-CEqOS-7M.d.mts} +0 -0
- /package/dist/{index-CsuikFeJ.d.mts → index-CIABef8t.d.mts} +0 -0
- /package/dist/{index-CuYZJcK3.d.mts → index-CTHojwxd.d.mts} +0 -0
- /package/dist/{index-CzItj62a.d.mts → index-Cm-1i165.d.mts} +0 -0
- /package/dist/{index-D13oYj4_.d.mts → index-DB7t8whN.d.mts} +0 -0
- /package/dist/{index-D4DUvwPf.d.mts → index-DBGd4WeR.d.mts} +0 -0
- /package/dist/{index-DMRtRo7y.d.mts → index-DGsJdI5l.d.mts} +0 -0
- /package/dist/{index-DXJd7-2Z.d.mts → index-DWfPppPU.d.mts} +0 -0
- /package/dist/{index-DZlqSwCF.d.mts → index-DedbSZMv.d.mts} +0 -0
- /package/dist/{index-Dflz2i1X.d.mts → index-Jh0C5PIG.d.mts} +0 -0
- /package/dist/{index-DkrC-i1D.d.mts → index-NKYLt_R9.d.mts} +0 -0
- /package/dist/{index-DztUdPP_.d.mts → index-Qwqzz3XM.d.mts} +0 -0
- /package/dist/{index-Rvd9MEUQ.d.mts → index-VWno75SQ.d.mts} +0 -0
- /package/dist/{index-bHnO4ZKt.d.mts → index-fxXoW-qc.d.mts} +0 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { n as JsonSchema, st as FunctionJsonSchema } from "../jsonSchema-CfGi1bzI.mjs";
|
|
2
|
+
|
|
3
|
+
//#region lib/customFunctionSchema.d.ts
|
|
4
|
+
declare const RECEIVER_PARAM_KEY = "previous";
|
|
5
|
+
declare const DEFAULT_FUNCTION_CODE = "// Export a default JavaScript function as an ES module.\n// It takes a single argument: an object with a \"previous\" key holding\n// the result of the chain before this function.\nexport default function({ previous }) {\n\n}\n";
|
|
6
|
+
declare const VALID_IDENTIFIER_PATTERN: RegExp;
|
|
7
|
+
declare const INVALID_IDENTIFIER_MESSAGE = "Name can only contain lowercase letters, digits, and underscores (no spaces) and can't start with a digit";
|
|
8
|
+
declare const sanitizeName: (raw: string) => string;
|
|
9
|
+
declare const getRunBlockingError: (code: string, lintErrorCount: number) => string | null;
|
|
10
|
+
declare const getCodeErrorMessage: (code: string, lintErrorCount: number) => string | null;
|
|
11
|
+
declare const isNoArgCodeChainFunction: (schema: FunctionJsonSchema) => boolean;
|
|
12
|
+
declare const NO_ARGS_INPUT_SCHEMA: Record<string, unknown>;
|
|
13
|
+
declare const OUTPUT_TYPE_LABELS: {
|
|
14
|
+
readonly string: "String";
|
|
15
|
+
readonly number: "Number";
|
|
16
|
+
readonly boolean: "Boolean";
|
|
17
|
+
readonly object: "Object";
|
|
18
|
+
readonly array_string: "String[]";
|
|
19
|
+
readonly array_number: "Number[]";
|
|
20
|
+
readonly array_boolean: "Boolean[]";
|
|
21
|
+
readonly array_object: "Object[]";
|
|
22
|
+
};
|
|
23
|
+
type OutputType = keyof typeof OUTPUT_TYPE_LABELS;
|
|
24
|
+
declare const schemaFromOutputType: (outputType: OutputType) => JsonSchema;
|
|
25
|
+
declare const outputTypeFromSchema: (schema: JsonSchema | null | undefined) => OutputType;
|
|
26
|
+
declare const labelFromOutputSchema: (schema: JsonSchema | null | undefined) => string;
|
|
27
|
+
interface ReceiverTypeOption {
|
|
28
|
+
value: string;
|
|
29
|
+
label: string;
|
|
30
|
+
receiverProperty: Record<string, unknown>;
|
|
31
|
+
}
|
|
32
|
+
declare const PRIMITIVE_RECEIVER_TYPE_OPTIONS: ReceiverTypeOption[];
|
|
33
|
+
declare const OBJECT_RECEIVER_TYPE_OPTIONS: ReceiverTypeOption[];
|
|
34
|
+
declare const RECEIVER_TYPE_OPTIONS: ReceiverTypeOption[];
|
|
35
|
+
declare const getBaseSchemaId: (fullId: string) => string;
|
|
36
|
+
declare const receiverSchemaAcceptsNull: (receiverSchema: JsonSchema | null) => boolean;
|
|
37
|
+
declare const receiverPropertyAcceptsNull: (receiverProperty: Record<string, unknown> | null) => boolean;
|
|
38
|
+
declare const withReceiverNullability: (receiverProperty: Record<string, unknown> | null, acceptsNull: boolean) => Record<string, unknown> | null;
|
|
39
|
+
declare const baseReceiverProperty: (receiverProperty: Record<string, unknown> | null) => Record<string, unknown> | null;
|
|
40
|
+
declare const buildReceiverProperty: (receiverSchema: JsonSchema | null) => Record<string, unknown> | null;
|
|
41
|
+
declare const isCreatableReceiverSchema: (receiverSchema: JsonSchema | null | undefined) => boolean;
|
|
42
|
+
declare const getReceiverLabel: (receiverSchema: JsonSchema | null) => string;
|
|
43
|
+
declare const unwrapReceiverSchema: (inputSchema: JsonSchema | null) => JsonSchema | null;
|
|
44
|
+
declare const stripEditorMetadata: (schema: JsonSchema) => JsonSchema;
|
|
45
|
+
declare const buildInputSchema: (receiverProperty: Record<string, unknown> | null) => Record<string, unknown>;
|
|
46
|
+
declare const buildParamMapping: (receiverProperty: Record<string, unknown> | null) => Record<string, (string | number)[]>;
|
|
47
|
+
//#endregion
|
|
48
|
+
export { DEFAULT_FUNCTION_CODE, INVALID_IDENTIFIER_MESSAGE, NO_ARGS_INPUT_SCHEMA, OBJECT_RECEIVER_TYPE_OPTIONS, OUTPUT_TYPE_LABELS, OutputType, PRIMITIVE_RECEIVER_TYPE_OPTIONS, RECEIVER_PARAM_KEY, RECEIVER_TYPE_OPTIONS, ReceiverTypeOption, VALID_IDENTIFIER_PATTERN, baseReceiverProperty, buildInputSchema, buildParamMapping, buildReceiverProperty, getBaseSchemaId, getCodeErrorMessage, getReceiverLabel, getRunBlockingError, isCreatableReceiverSchema, isNoArgCodeChainFunction, labelFromOutputSchema, outputTypeFromSchema, receiverPropertyAcceptsNull, receiverSchemaAcceptsNull, sanitizeName, schemaFromOutputType, stripEditorMetadata, unwrapReceiverSchema, withReceiverNullability };
|
|
49
|
+
//# sourceMappingURL=customFunctionSchema.d.mts.map
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
import { getArrayItemType, getNonNullableRefSchema, getNonNullableType, humanizeSchemaType, isJsonSchemaArray, isJsonSchemaBoolean, isJsonSchemaDate, isJsonSchemaDateTime, isJsonSchemaInteger, isJsonSchemaNumber, isJsonSchemaObject, isJsonSchemaSecret, isJsonSchemaString } from "./jsonSchema.mjs";
|
|
2
|
+
import { startCase } from "lodash-es";
|
|
3
|
+
//#region lib/customFunctionSchema.ts
|
|
4
|
+
const RECEIVER_PARAM_KEY = "previous";
|
|
5
|
+
const DEFAULT_FUNCTION_CODE = `// Export a default JavaScript function as an ES module.\n// It takes a single argument: an object with a "${RECEIVER_PARAM_KEY}" key holding\n// the result of the chain before this function.\nexport default function({ ${RECEIVER_PARAM_KEY} }) {\n\n}\n`;
|
|
6
|
+
const VALID_IDENTIFIER_PATTERN = /^[a-z_][a-z0-9_]*$/;
|
|
7
|
+
const INVALID_IDENTIFIER_MESSAGE = "Name can only contain lowercase letters, digits, and underscores (no spaces) and can't start with a digit";
|
|
8
|
+
const EXPORT_DEFAULT_PATTERN = /\bexport\s+default\b/;
|
|
9
|
+
const RETURN_PATTERN = /\breturn\b/;
|
|
10
|
+
const sanitizeName = (raw) => raw.toLowerCase().replace(/[^a-z0-9_]/g, "").replace(/^[0-9]+/, "");
|
|
11
|
+
const getRunBlockingError = (code, lintErrorCount) => {
|
|
12
|
+
if (!EXPORT_DEFAULT_PATTERN.test(code)) return "Code must have a default export (e.g. `export default function(...) { ... }`)";
|
|
13
|
+
if (lintErrorCount > 0) return `Resolve ${lintErrorCount} ${lintErrorCount === 1 ? "error" : "errors"} in the code editor before saving`;
|
|
14
|
+
return null;
|
|
15
|
+
};
|
|
16
|
+
const getCodeErrorMessage = (code, lintErrorCount) => {
|
|
17
|
+
const runBlockingError = getRunBlockingError(code, lintErrorCount);
|
|
18
|
+
if (runBlockingError) return runBlockingError;
|
|
19
|
+
if (!RETURN_PATTERN.test(code)) return "Code must include a return statement";
|
|
20
|
+
return null;
|
|
21
|
+
};
|
|
22
|
+
const isNoArgCodeChainFunction = (schema) => schema.codeChainFunctionToken != null && Object.keys(schema.properties?.parameterTypes?.properties ?? {}).length === 0;
|
|
23
|
+
const NO_ARGS_INPUT_SCHEMA = {
|
|
24
|
+
type: "array",
|
|
25
|
+
items: false
|
|
26
|
+
};
|
|
27
|
+
const OUTPUT_TYPE_LABELS = {
|
|
28
|
+
string: "String",
|
|
29
|
+
number: "Number",
|
|
30
|
+
boolean: "Boolean",
|
|
31
|
+
object: "Object",
|
|
32
|
+
array_string: "String[]",
|
|
33
|
+
array_number: "Number[]",
|
|
34
|
+
array_boolean: "Boolean[]",
|
|
35
|
+
array_object: "Object[]"
|
|
36
|
+
};
|
|
37
|
+
const ARRAY_OUTPUT_ITEM_TYPE_BY_OUTPUT_TYPE = {
|
|
38
|
+
array_string: "string",
|
|
39
|
+
array_number: "number",
|
|
40
|
+
array_boolean: "boolean",
|
|
41
|
+
array_object: "object"
|
|
42
|
+
};
|
|
43
|
+
const schemaFromOutputType = (outputType) => {
|
|
44
|
+
switch (outputType) {
|
|
45
|
+
case "string": return { type: "string" };
|
|
46
|
+
case "number": return { type: "number" };
|
|
47
|
+
case "boolean": return { type: "boolean" };
|
|
48
|
+
case "object": return {
|
|
49
|
+
type: "object",
|
|
50
|
+
properties: {}
|
|
51
|
+
};
|
|
52
|
+
case "array_string":
|
|
53
|
+
case "array_number":
|
|
54
|
+
case "array_boolean": return {
|
|
55
|
+
type: "array",
|
|
56
|
+
items: { type: ARRAY_OUTPUT_ITEM_TYPE_BY_OUTPUT_TYPE[outputType] }
|
|
57
|
+
};
|
|
58
|
+
case "array_object": return {
|
|
59
|
+
type: "array",
|
|
60
|
+
items: {
|
|
61
|
+
type: "object",
|
|
62
|
+
properties: {}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
const outputTypeFromSchema = (schema) => {
|
|
68
|
+
if (schema == null || !("type" in schema)) return "string";
|
|
69
|
+
switch (schema.type) {
|
|
70
|
+
case "string": return "string";
|
|
71
|
+
case "number":
|
|
72
|
+
case "integer": return "number";
|
|
73
|
+
case "boolean": return "boolean";
|
|
74
|
+
case "object": return "object";
|
|
75
|
+
case "array": switch (getArrayItemType(schema)) {
|
|
76
|
+
case "string": return "array_string";
|
|
77
|
+
case "number":
|
|
78
|
+
case "integer": return "array_number";
|
|
79
|
+
case "boolean": return "array_boolean";
|
|
80
|
+
case "object": return "array_object";
|
|
81
|
+
default: return "string";
|
|
82
|
+
}
|
|
83
|
+
default: return "string";
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const labelFromOutputSchema = (schema) => {
|
|
87
|
+
if (schema == null || !("type" in schema)) return OUTPUT_TYPE_LABELS.string;
|
|
88
|
+
return humanizeSchemaType({ schema }) || OUTPUT_TYPE_LABELS[outputTypeFromSchema(schema)];
|
|
89
|
+
};
|
|
90
|
+
const CREATABLE_OBJECT_RECEIVERS = [
|
|
91
|
+
{
|
|
92
|
+
ref: "/schema/account",
|
|
93
|
+
label: "Account"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
ref: "/schema/case",
|
|
97
|
+
label: "Case"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
ref: "/schema/transaction",
|
|
101
|
+
label: "Transaction"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
ref: "/schema/inquiry",
|
|
105
|
+
label: "Inquiry"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
ref: "/schema/verification",
|
|
109
|
+
label: "Verification"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
ref: "/schema/report",
|
|
113
|
+
label: "Report"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
ref: "/schema/document",
|
|
117
|
+
label: "Document"
|
|
118
|
+
}
|
|
119
|
+
];
|
|
120
|
+
const CREATABLE_OBJECT_RECEIVER_REFS = new Set(CREATABLE_OBJECT_RECEIVERS.map(({ ref }) => ref));
|
|
121
|
+
const PRIMITIVE_RECEIVER_TYPE_OPTIONS = [
|
|
122
|
+
{
|
|
123
|
+
value: "string",
|
|
124
|
+
label: "String",
|
|
125
|
+
receiverProperty: { type: "string" }
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
value: "number",
|
|
129
|
+
label: "Number",
|
|
130
|
+
receiverProperty: { type: "number" }
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
value: "boolean",
|
|
134
|
+
label: "Boolean",
|
|
135
|
+
receiverProperty: { type: "boolean" }
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
value: "/schema/date",
|
|
139
|
+
label: "Date",
|
|
140
|
+
receiverProperty: {
|
|
141
|
+
type: "string",
|
|
142
|
+
format: "date"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
value: "/schema/datetime",
|
|
147
|
+
label: "Datetime",
|
|
148
|
+
receiverProperty: {
|
|
149
|
+
type: "string",
|
|
150
|
+
format: "date-time"
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
];
|
|
154
|
+
const OBJECT_RECEIVER_TYPE_OPTIONS = CREATABLE_OBJECT_RECEIVERS.map(({ ref, label }) => ({
|
|
155
|
+
value: ref,
|
|
156
|
+
label,
|
|
157
|
+
receiverProperty: { $ref: ref }
|
|
158
|
+
}));
|
|
159
|
+
const RECEIVER_TYPE_OPTIONS = [...PRIMITIVE_RECEIVER_TYPE_OPTIONS, ...OBJECT_RECEIVER_TYPE_OPTIONS];
|
|
160
|
+
const MERGED_SUFFIX = "/merged";
|
|
161
|
+
const getBaseSchemaId = (fullId) => {
|
|
162
|
+
if (fullId.endsWith(MERGED_SUFFIX)) return fullId.slice(0, -7);
|
|
163
|
+
const parts = fullId.split("/");
|
|
164
|
+
if (parts.length > 3 && parts[3]?.includes("_")) return parts.slice(0, 3).join("/");
|
|
165
|
+
return fullId;
|
|
166
|
+
};
|
|
167
|
+
const getNonNullableReceiver = (receiverSchema) => {
|
|
168
|
+
const refSchema = getNonNullableRefSchema(receiverSchema);
|
|
169
|
+
if (refSchema) return {
|
|
170
|
+
baseSchema: refSchema,
|
|
171
|
+
acceptsNull: true
|
|
172
|
+
};
|
|
173
|
+
const nonNullableType = getNonNullableType(receiverSchema);
|
|
174
|
+
if (nonNullableType) return {
|
|
175
|
+
baseSchema: {
|
|
176
|
+
...receiverSchema,
|
|
177
|
+
type: nonNullableType
|
|
178
|
+
},
|
|
179
|
+
acceptsNull: true
|
|
180
|
+
};
|
|
181
|
+
return {
|
|
182
|
+
baseSchema: receiverSchema,
|
|
183
|
+
acceptsNull: false
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
const receiverSchemaAcceptsNull = (receiverSchema) => receiverSchema != null && getNonNullableReceiver(receiverSchema).acceptsNull;
|
|
187
|
+
const receiverPropertyAcceptsNull = (receiverProperty) => receiverSchemaAcceptsNull(receiverProperty);
|
|
188
|
+
const withReceiverNullability = (receiverProperty, acceptsNull) => {
|
|
189
|
+
if (!receiverProperty) return null;
|
|
190
|
+
const base = getNonNullableReceiver(receiverProperty).baseSchema;
|
|
191
|
+
if (!acceptsNull) return base;
|
|
192
|
+
if (typeof base.$ref === "string") return { oneOf: [{ $ref: base.$ref }, { type: "null" }] };
|
|
193
|
+
if (typeof base.type === "string") return {
|
|
194
|
+
...base,
|
|
195
|
+
type: [base.type, "null"]
|
|
196
|
+
};
|
|
197
|
+
return base;
|
|
198
|
+
};
|
|
199
|
+
const baseReceiverProperty = (receiverProperty) => withReceiverNullability(receiverProperty, false);
|
|
200
|
+
const getReceiverSchemaId = (receiverSchema) => {
|
|
201
|
+
if ("$id" in receiverSchema && typeof receiverSchema.$id === "string") return receiverSchema.$id;
|
|
202
|
+
if ("$ref" in receiverSchema && typeof receiverSchema.$ref === "string") return receiverSchema.$ref;
|
|
203
|
+
return null;
|
|
204
|
+
};
|
|
205
|
+
const buildReceiverProperty = (receiverSchema) => {
|
|
206
|
+
if (!receiverSchema) return null;
|
|
207
|
+
const { baseSchema, acceptsNull } = getNonNullableReceiver(receiverSchema);
|
|
208
|
+
return withReceiverNullability(buildBaseReceiverProperty(baseSchema), acceptsNull);
|
|
209
|
+
};
|
|
210
|
+
const buildBaseReceiverProperty = (receiverSchema) => {
|
|
211
|
+
const schemaId = getReceiverSchemaId(receiverSchema);
|
|
212
|
+
if (schemaId != null) return { $ref: getBaseSchemaId(schemaId) };
|
|
213
|
+
if ("type" in receiverSchema && typeof receiverSchema.type === "string") {
|
|
214
|
+
if (isJsonSchemaDate(receiverSchema) || isJsonSchemaDateTime(receiverSchema)) return {
|
|
215
|
+
type: receiverSchema.type,
|
|
216
|
+
format: receiverSchema.format
|
|
217
|
+
};
|
|
218
|
+
return { type: receiverSchema.type };
|
|
219
|
+
}
|
|
220
|
+
return null;
|
|
221
|
+
};
|
|
222
|
+
const isCreatableObjectReceiver = (schema) => {
|
|
223
|
+
if (!("objectKey" in schema) || typeof schema.objectKey !== "string") return false;
|
|
224
|
+
const schemaId = getReceiverSchemaId(schema);
|
|
225
|
+
return schemaId != null && CREATABLE_OBJECT_RECEIVER_REFS.has(getBaseSchemaId(schemaId));
|
|
226
|
+
};
|
|
227
|
+
const isCreatableReceiverSchema = (receiverSchema) => {
|
|
228
|
+
if (!receiverSchema) return false;
|
|
229
|
+
const { baseSchema, acceptsNull } = getNonNullableReceiver(receiverSchema);
|
|
230
|
+
if (acceptsNull) {
|
|
231
|
+
const schemaId = getReceiverSchemaId(baseSchema);
|
|
232
|
+
if (schemaId != null) return CREATABLE_OBJECT_RECEIVER_REFS.has(getBaseSchemaId(schemaId));
|
|
233
|
+
return isCreatableReceiverSchema(baseSchema);
|
|
234
|
+
}
|
|
235
|
+
if (isJsonSchemaArray(receiverSchema)) return false;
|
|
236
|
+
if (isCreatableObjectReceiver(receiverSchema)) return true;
|
|
237
|
+
if (isJsonSchemaObject(receiverSchema)) return false;
|
|
238
|
+
if (isJsonSchemaSecret(receiverSchema)) return false;
|
|
239
|
+
return isJsonSchemaString(receiverSchema) || isJsonSchemaNumber(receiverSchema) || isJsonSchemaInteger(receiverSchema) || isJsonSchemaBoolean(receiverSchema);
|
|
240
|
+
};
|
|
241
|
+
const getReceiverLabel = (receiverSchema) => {
|
|
242
|
+
if (!receiverSchema) return "Unknown";
|
|
243
|
+
const { baseSchema, acceptsNull } = getNonNullableReceiver(receiverSchema);
|
|
244
|
+
const baseLabel = getBaseReceiverLabel(baseSchema);
|
|
245
|
+
return acceptsNull ? `${baseLabel} | null` : baseLabel;
|
|
246
|
+
};
|
|
247
|
+
const getBaseReceiverLabel = (receiverSchema) => {
|
|
248
|
+
const schemaId = getReceiverSchemaId(receiverSchema);
|
|
249
|
+
if (schemaId != null) return startCase(schemaId.replace("/schema/", "").split("/")[0]);
|
|
250
|
+
if (isJsonSchemaDate(receiverSchema)) return "Date";
|
|
251
|
+
if (isJsonSchemaDateTime(receiverSchema)) return "Datetime";
|
|
252
|
+
if ("type" in receiverSchema && typeof receiverSchema.type === "string") return startCase(receiverSchema.type);
|
|
253
|
+
return "Unknown";
|
|
254
|
+
};
|
|
255
|
+
const unwrapReceiverSchema = (inputSchema) => {
|
|
256
|
+
if (!inputSchema) return null;
|
|
257
|
+
if (!("type" in inputSchema) || inputSchema.type !== "array") return inputSchema;
|
|
258
|
+
const prefixItems = inputSchema.prefixItems;
|
|
259
|
+
if (!Array.isArray(prefixItems) || prefixItems.length === 0) return null;
|
|
260
|
+
return prefixItems[0]?.properties?.["previous"] ?? null;
|
|
261
|
+
};
|
|
262
|
+
const stripEditorMetadata = (schema) => {
|
|
263
|
+
if (isJsonSchemaObject(schema)) {
|
|
264
|
+
const { id: _id, properties: _properties, required: _required, additionalProperties: _additionalProperties, ...rest } = schema;
|
|
265
|
+
return {
|
|
266
|
+
...rest,
|
|
267
|
+
type: "object",
|
|
268
|
+
properties: Object.fromEntries(Object.entries(schema.properties ?? {}).map(([key, propertySchema]) => [key, stripEditorMetadata(propertySchema)]))
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
if (isJsonSchemaArray(schema)) {
|
|
272
|
+
const { id: _id, items: _items, ...rest } = schema;
|
|
273
|
+
return {
|
|
274
|
+
...rest,
|
|
275
|
+
type: "array",
|
|
276
|
+
items: stripEditorMetadata(schema.items)
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
const { id: _id, ...rest } = schema;
|
|
280
|
+
return rest;
|
|
281
|
+
};
|
|
282
|
+
const buildInputSchema = (receiverProperty) => {
|
|
283
|
+
if (!receiverProperty) return NO_ARGS_INPUT_SCHEMA;
|
|
284
|
+
return {
|
|
285
|
+
type: "array",
|
|
286
|
+
prefixItems: [{
|
|
287
|
+
type: "object",
|
|
288
|
+
properties: { [RECEIVER_PARAM_KEY]: receiverProperty }
|
|
289
|
+
}]
|
|
290
|
+
};
|
|
291
|
+
};
|
|
292
|
+
const buildParamMapping = (receiverProperty) => {
|
|
293
|
+
if (!receiverProperty) return {};
|
|
294
|
+
return { [RECEIVER_PARAM_KEY]: [0, RECEIVER_PARAM_KEY] };
|
|
295
|
+
};
|
|
296
|
+
//#endregion
|
|
297
|
+
export { DEFAULT_FUNCTION_CODE, INVALID_IDENTIFIER_MESSAGE, NO_ARGS_INPUT_SCHEMA, OBJECT_RECEIVER_TYPE_OPTIONS, OUTPUT_TYPE_LABELS, PRIMITIVE_RECEIVER_TYPE_OPTIONS, RECEIVER_PARAM_KEY, RECEIVER_TYPE_OPTIONS, VALID_IDENTIFIER_PATTERN, baseReceiverProperty, buildInputSchema, buildParamMapping, buildReceiverProperty, getBaseSchemaId, getCodeErrorMessage, getReceiverLabel, getRunBlockingError, isCreatableReceiverSchema, isNoArgCodeChainFunction, labelFromOutputSchema, outputTypeFromSchema, receiverPropertyAcceptsNull, receiverSchemaAcceptsNull, sanitizeName, schemaFromOutputType, stripEditorMetadata, unwrapReceiverSchema, withReceiverNullability };
|
|
298
|
+
|
|
299
|
+
//# sourceMappingURL=customFunctionSchema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customFunctionSchema.mjs","names":[],"sources":["../../lib/customFunctionSchema.ts"],"sourcesContent":["import { startCase } from 'lodash-es';\n\nimport {\n getArrayItemType,\n getNonNullableRefSchema,\n getNonNullableType,\n humanizeSchemaType,\n isJsonSchemaArray,\n isJsonSchemaBoolean,\n isJsonSchemaDate,\n isJsonSchemaDateTime,\n isJsonSchemaInteger,\n isJsonSchemaNumber,\n isJsonSchemaObject,\n isJsonSchemaSecret,\n isJsonSchemaString,\n type JsonSchema,\n type JsonSchemaArray,\n type JsonSchemaObject,\n JsonSchemaTypes,\n} from './jsonSchema';\nimport type { FunctionJsonSchema } from './objectSchemaTypes';\n\n// \"previous\" refers to the output of the preceding step in the method chain\nexport const RECEIVER_PARAM_KEY = 'previous';\n\n// Seed code for a new function: the single source for the default editor/body\n// contents, shared by every \"create function\" entry point.\nexport const DEFAULT_FUNCTION_CODE = `// Export a default JavaScript function as an ES module.\\n// It takes a single argument: an object with a \"${RECEIVER_PARAM_KEY}\" key holding\\n// the result of the chain before this function.\\nexport default function({ ${RECEIVER_PARAM_KEY} }) {\\n\\n}\\n`;\n\n// A valid function identifier: starts with a letter or _; then letters, digits, or _.\n// Mirrors the backend `name` validation on CodeChainFunction: lowercase-only, standardized.\nexport const VALID_IDENTIFIER_PATTERN = /^[a-z_][a-z0-9_]*$/;\nexport const INVALID_IDENTIFIER_MESSAGE =\n \"Name can only contain lowercase letters, digits, and underscores (no spaces) and can't start with a digit\";\n\nconst EXPORT_DEFAULT_PATTERN = /\\bexport\\s+default\\b/;\nconst RETURN_PATTERN = /\\breturn\\b/;\n\n// Standardizes a name to a valid lowercase identifier: lowercases, strips disallowed characters,\n// and drops leading digits (create callers seed from IMC popover queries like `@@Custom`).\nexport const sanitizeName = (raw: string): string =>\n raw\n .toLowerCase()\n .replace(/[^a-z0-9_]/g, '')\n .replace(/^[0-9]+/, '');\n\n// Blocks a test run: no default export to invoke, or unresolved lint errors. A\n// missing `return` does NOT block a run — only submit (see getCodeErrorMessage).\nexport const getRunBlockingError = (code: string, lintErrorCount: number): string | null => {\n if (!EXPORT_DEFAULT_PATTERN.test(code)) {\n return 'Code must have a default export (e.g. `export default function(...) { ... }`)';\n }\n if (lintErrorCount > 0) {\n const noun = lintErrorCount === 1 ? 'error' : 'errors';\n return `Resolve ${lintErrorCount} ${noun} in the code editor before saving`;\n }\n return null;\n};\n\n// Blocks a save: the run-blocking checks plus a return statement (rejects the stub).\nexport const getCodeErrorMessage = (code: string, lintErrorCount: number): string | null => {\n const runBlockingError = getRunBlockingError(code, lintErrorCount);\n if (runBlockingError) {\n return runBlockingError;\n }\n if (!RETURN_PATTERN.test(code)) {\n return 'Code must include a return statement';\n }\n return null;\n};\n\n// A CCF whose only \"parameter\" is the receiver (i.e. no option params beyond\n// `previous`). These behave like attributes from the author's POV — just\n// dot-invoke and read the output — so callers typically render them without\n// a parameter-editing form and label them by output type.\nexport const isNoArgCodeChainFunction = (schema: FunctionJsonSchema): boolean =>\n schema.codeChainFunctionToken != null &&\n Object.keys(schema.properties?.parameterTypes?.properties ?? {}).length === 0;\n\n// No-args input schema — type:array with items:false (disallows any items)\nexport const NO_ARGS_INPUT_SCHEMA: Record<string, unknown> = { type: 'array', items: false };\n\nexport const OUTPUT_TYPE_LABELS = {\n string: 'String',\n number: 'Number',\n boolean: 'Boolean',\n object: 'Object',\n array_string: 'String[]',\n array_number: 'Number[]',\n array_boolean: 'Boolean[]',\n array_object: 'Object[]',\n} as const;\nexport type OutputType = keyof typeof OUTPUT_TYPE_LABELS;\n\nconst ARRAY_OUTPUT_ITEM_TYPE_BY_OUTPUT_TYPE = {\n array_string: JsonSchemaTypes.String,\n array_number: JsonSchemaTypes.Number,\n array_boolean: JsonSchemaTypes.Boolean,\n array_object: JsonSchemaTypes.Object,\n} as const satisfies Partial<Record<OutputType, JsonSchemaTypes>>;\n\nexport const schemaFromOutputType = (outputType: OutputType): JsonSchema => {\n switch (outputType) {\n case 'string':\n return { type: JsonSchemaTypes.String };\n case 'number':\n return { type: JsonSchemaTypes.Number };\n case 'boolean':\n return { type: JsonSchemaTypes.Boolean };\n case 'object':\n return { type: JsonSchemaTypes.Object, properties: {} };\n case 'array_string':\n case 'array_number':\n case 'array_boolean':\n return {\n type: JsonSchemaTypes.Array,\n items: { type: ARRAY_OUTPUT_ITEM_TYPE_BY_OUTPUT_TYPE[outputType] },\n };\n case 'array_object':\n return {\n type: JsonSchemaTypes.Array,\n items: { type: JsonSchemaTypes.Object, properties: {} },\n };\n }\n};\n\nexport const outputTypeFromSchema = (schema: JsonSchema | null | undefined): OutputType => {\n if (schema == null || !('type' in schema)) {\n return 'string';\n }\n\n switch (schema.type) {\n case JsonSchemaTypes.String:\n return 'string';\n case JsonSchemaTypes.Number:\n case JsonSchemaTypes.Integer:\n return 'number';\n case JsonSchemaTypes.Boolean:\n return 'boolean';\n case JsonSchemaTypes.Object:\n return 'object';\n case JsonSchemaTypes.Array: {\n switch (getArrayItemType(schema)) {\n case JsonSchemaTypes.String:\n return 'array_string';\n case JsonSchemaTypes.Number:\n case JsonSchemaTypes.Integer:\n return 'array_number';\n case JsonSchemaTypes.Boolean:\n return 'array_boolean';\n case JsonSchemaTypes.Object:\n return 'array_object';\n default:\n return 'string';\n }\n }\n default:\n return 'string';\n }\n};\n\nexport const labelFromOutputSchema = (schema: JsonSchema | null | undefined): string => {\n if (schema == null || !('type' in schema)) {\n return OUTPUT_TYPE_LABELS.string;\n }\n return humanizeSchemaType({ schema }) || OUTPUT_TYPE_LABELS[outputTypeFromSchema(schema)];\n};\n\nexport interface ReceiverTypeOption {\n // Stable id used as the <Select> option value.\n value: string;\n label: string;\n // `{ type }` for primitives, `{ $ref }` for Persona objects; fed to buildInputSchema/buildParamMapping.\n receiverProperty: Record<string, unknown>;\n}\n\n// Base PlatformObjects a CCF may be authored against — the single source of truth\n// shared by OBJECT_RECEIVER_TYPE_OPTIONS and isCreatableObjectReceiver. An allow-list, not\n// any object with an `objectKey`: many others carry one but can't be bound here.\nconst CREATABLE_OBJECT_RECEIVERS = [\n { ref: '/schema/account', label: 'Account' },\n { ref: '/schema/case', label: 'Case' },\n { ref: '/schema/transaction', label: 'Transaction' },\n { ref: '/schema/inquiry', label: 'Inquiry' },\n { ref: '/schema/verification', label: 'Verification' },\n { ref: '/schema/report', label: 'Report' },\n { ref: '/schema/document', label: 'Document' },\n] as const;\n\nconst CREATABLE_OBJECT_RECEIVER_REFS: ReadonlySet<string> = new Set(\n CREATABLE_OBJECT_RECEIVERS.map(({ ref }) => ref),\n);\n\n// Date/Datetime are primitives carried as `{ type: 'string', format }` (not `$ref`) —\n// receiver_schema_id_from keys on the format to bucket them as /schema/date|datetime.\nexport const PRIMITIVE_RECEIVER_TYPE_OPTIONS: ReceiverTypeOption[] = [\n { value: 'string', label: 'String', receiverProperty: { type: 'string' } },\n { value: 'number', label: 'Number', receiverProperty: { type: 'number' } },\n { value: 'boolean', label: 'Boolean', receiverProperty: { type: 'boolean' } },\n { value: '/schema/date', label: 'Date', receiverProperty: { type: 'string', format: 'date' } },\n {\n value: '/schema/datetime',\n label: 'Datetime',\n receiverProperty: { type: 'string', format: 'date-time' },\n },\n];\n\nexport const OBJECT_RECEIVER_TYPE_OPTIONS: ReceiverTypeOption[] = CREATABLE_OBJECT_RECEIVERS.map(\n ({ ref, label }) => ({ value: ref, label, receiverProperty: { $ref: ref } }),\n);\n\n// Receiver (input) types offered when authoring a code function from scratch in\n// the standalone create modal. In the chain-editor (IMC) path the preceding link\n// pins the receiver type, so no picker is needed; create-mode instead gives free\n// selection. We deliberately omit array and freeform object/hash receivers — a CCF\n// authored against those can't be meaningfully bound or exercised here — and offer\n// primitives plus the allow-listed base PlatformObject receivers above.\nexport const RECEIVER_TYPE_OPTIONS: ReceiverTypeOption[] = [\n ...PRIMITIVE_RECEIVER_TYPE_OPTIONS,\n ...OBJECT_RECEIVER_TYPE_OPTIONS,\n];\n\n// Authoring-only suffix returned by platform schema endpoints when\n// `include_merged: true` synthesizes a display union across template variants.\n// See PlatformObject::SchemaId::MERGED_SCHEMA_ID. No runtime instance carries\n// this id, so it must be stripped before we persist a $ref we later dispatch on.\nconst MERGED_SUFFIX = '/merged';\n\n// Strips authoring-only suffixes from a schema $id so the result is a\n// dispatchable base platform type (e.g. `/schema/txn/merged` → `/schema/txn`,\n// `/schema/txn/tmpl_abc123` → `/schema/txn`). Base refs and relation refs\n// (`/schema/foo/relation/bar`) are returned unchanged.\nexport const getBaseSchemaId = (fullId: string): string => {\n if (fullId.endsWith(MERGED_SUFFIX)) {\n return fullId.slice(0, -MERGED_SUFFIX.length);\n }\n const parts = fullId.split('/');\n if (parts.length > 3 && parts[3]?.includes('_')) {\n return parts.slice(0, 3).join('/');\n }\n return fullId;\n};\n\n// Splits a receiver schema into its non-null base and a nullability flag. Only\n// the exact shapes `CodeChainFunction.normalize_receiver_schema` accepts count\n// as nullable; anything else is non-nullable.\nconst getNonNullableReceiver = (\n receiverSchema: JsonSchema,\n): { baseSchema: JsonSchema; acceptsNull: boolean } => {\n const refSchema = getNonNullableRefSchema(receiverSchema);\n if (refSchema) {\n return { baseSchema: refSchema, acceptsNull: true };\n }\n const nonNullableType = getNonNullableType(receiverSchema);\n if (nonNullableType) {\n return {\n baseSchema: { ...receiverSchema, type: nonNullableType } as JsonSchema,\n acceptsNull: true,\n };\n }\n return { baseSchema: receiverSchema, acceptsNull: false };\n};\n\nexport const receiverSchemaAcceptsNull = (receiverSchema: JsonSchema | null): boolean =>\n receiverSchema != null && getNonNullableReceiver(receiverSchema).acceptsNull;\n\nexport const receiverPropertyAcceptsNull = (\n receiverProperty: Record<string, unknown> | null,\n): boolean => receiverSchemaAcceptsNull(receiverProperty as JsonSchema | null);\n\n// Wraps or unwraps a receiver property in the exact nullable shapes the\n// backend recognizes (see getNonNullableReceiver).\nexport const withReceiverNullability = (\n receiverProperty: Record<string, unknown> | null,\n acceptsNull: boolean,\n): Record<string, unknown> | null => {\n if (!receiverProperty) {\n return null;\n }\n const base = getNonNullableReceiver(receiverProperty as JsonSchema).baseSchema as Record<\n string,\n unknown\n >;\n if (!acceptsNull) {\n return base;\n }\n if (typeof base.$ref === 'string') {\n return { oneOf: [{ $ref: base.$ref }, { type: 'null' }] };\n }\n if (typeof base.type === 'string') {\n return { ...base, type: [base.type, 'null'] };\n }\n return base;\n};\n\n// The non-null base of a receiver property: unwraps a nullable shape, returns\n// a strict one unchanged.\nexport const baseReceiverProperty = (\n receiverProperty: Record<string, unknown> | null,\n): Record<string, unknown> | null => withReceiverNullability(receiverProperty, false);\n\n// Reads the schema id from a receiver schema. Authoring callers pass `$id`\n// (live schema from the chain), edit callers pass `$ref` (persisted property\n// from a prior buildReceiverProperty round-trip).\nconst getReceiverSchemaId = (receiverSchema: JsonSchema): string | null => {\n if ('$id' in receiverSchema && typeof receiverSchema.$id === 'string') {\n return receiverSchema.$id;\n }\n if ('$ref' in receiverSchema && typeof receiverSchema.$ref === 'string') {\n return receiverSchema.$ref;\n }\n return null;\n};\n\nexport const buildReceiverProperty = (\n receiverSchema: JsonSchema | null,\n): Record<string, unknown> | null => {\n if (!receiverSchema) {\n return null;\n }\n const { baseSchema, acceptsNull } = getNonNullableReceiver(receiverSchema);\n const baseProperty = buildBaseReceiverProperty(baseSchema);\n return withReceiverNullability(baseProperty, acceptsNull);\n};\n\nconst buildBaseReceiverProperty = (receiverSchema: JsonSchema): Record<string, unknown> | null => {\n const schemaId = getReceiverSchemaId(receiverSchema);\n if (schemaId != null) {\n return { $ref: getBaseSchemaId(schemaId) };\n }\n if ('type' in receiverSchema && typeof receiverSchema.type === 'string') {\n // Preserve `format` for dates so the backend can discriminate date and\n // date-time from plain string — otherwise the receiver buckets as String.\n if (isJsonSchemaDate(receiverSchema) || isJsonSchemaDateTime(receiverSchema)) {\n return { type: receiverSchema.type, format: receiverSchema.format };\n }\n return { type: receiverSchema.type };\n }\n return null;\n};\n\n// An allow-listed base PlatformObject (see CREATABLE_OBJECT_RECEIVERS). Requires an\n// `objectKey` — plain hashes and bare primitive `$ref`s (file/email) lack one — plus\n// a base schema id in the allow-list, so unsupported objects are rejected.\nconst isCreatableObjectReceiver = (schema: JsonSchema): boolean => {\n if (!('objectKey' in schema) || typeof schema.objectKey !== 'string') {\n return false;\n }\n const schemaId = getReceiverSchemaId(schema);\n return schemaId != null && CREATABLE_OBJECT_RECEIVER_REFS.has(getBaseSchemaId(schemaId));\n};\n\n// Whether a CCF can be authored against this receiver: a supported primitive\n// or an allow-listed platform object. Arrays, plain hashes, and unsupported\n// platform objects are excluded (they bucket to an unusable receiver_schema_id).\n// Gates the IMC \"Create custom chain\" entrypoint.\nexport const isCreatableReceiverSchema = (\n receiverSchema: JsonSchema | null | undefined,\n): boolean => {\n if (!receiverSchema) {\n return false;\n }\n // A nullable receiver is creatable when its base is.\n const { baseSchema, acceptsNull } = getNonNullableReceiver(receiverSchema);\n if (acceptsNull) {\n // The unwrapped member of a nullable oneOf is a bare `$ref` with no `objectKey`.\n const schemaId = getReceiverSchemaId(baseSchema);\n if (schemaId != null) {\n return CREATABLE_OBJECT_RECEIVER_REFS.has(getBaseSchemaId(schemaId));\n }\n return isCreatableReceiverSchema(baseSchema);\n }\n // Reject arrays first — an array of objects carries `objectKey` on `items`,\n // not on the array, so the platform-object check below wouldn't catch it.\n if (isJsonSchemaArray(receiverSchema)) {\n return false;\n }\n // Allow-listed platform objects are also `type:'object'`, so this must precede\n // the plain hash rejection below.\n if (isCreatableObjectReceiver(receiverSchema)) {\n return true;\n }\n if (isJsonSchemaObject(receiverSchema)) {\n return false;\n }\n if (isJsonSchemaSecret(receiverSchema)) {\n return false;\n }\n return (\n isJsonSchemaString(receiverSchema) || // covers Date + Datetime via `format`\n isJsonSchemaNumber(receiverSchema) ||\n isJsonSchemaInteger(receiverSchema) ||\n isJsonSchemaBoolean(receiverSchema)\n );\n};\n\nexport const getReceiverLabel = (receiverSchema: JsonSchema | null): string => {\n if (!receiverSchema) {\n return 'Unknown';\n }\n const { baseSchema, acceptsNull } = getNonNullableReceiver(receiverSchema);\n const baseLabel = getBaseReceiverLabel(baseSchema);\n return acceptsNull ? `${baseLabel} | null` : baseLabel;\n};\n\nconst getBaseReceiverLabel = (receiverSchema: JsonSchema): string => {\n const schemaId = getReceiverSchemaId(receiverSchema);\n if (schemaId != null) {\n const parts = schemaId.replace('/schema/', '').split('/');\n return startCase(parts[0]);\n }\n if (isJsonSchemaDate(receiverSchema)) {\n return 'Date';\n }\n if (isJsonSchemaDateTime(receiverSchema)) {\n return 'Datetime';\n }\n if ('type' in receiverSchema && typeof receiverSchema.type === 'string') {\n return startCase(receiverSchema.type);\n }\n return 'Unknown';\n};\n\n// Inverse of buildInputSchema: pulls the receiver schema back out of the\n// persisted prefixItems wrapper. When editing an existing CCF we get the\n// wrapped form from the API; authoring (create) callers pass the receiver\n// schema directly, so we pass non-wrapped shapes through unchanged.\nexport const unwrapReceiverSchema = (inputSchema: JsonSchema | null): JsonSchema | null => {\n if (!inputSchema) {\n return null;\n }\n if (!('type' in inputSchema) || inputSchema.type !== 'array') {\n return inputSchema;\n }\n const prefixItems = (inputSchema as { prefixItems?: unknown }).prefixItems;\n if (!Array.isArray(prefixItems) || prefixItems.length === 0) {\n // No-args CCF (items: false) — no receiver to unwrap.\n return null;\n }\n const first = prefixItems[0] as { properties?: Record<string, JsonSchema> } | undefined;\n return first?.properties?.[RECEIVER_PARAM_KEY] ?? null;\n};\n\nexport const stripEditorMetadata = (schema: JsonSchema): JsonSchema => {\n if (isJsonSchemaObject(schema)) {\n const {\n id: _id,\n properties: _properties,\n required: _required,\n additionalProperties: _additionalProperties,\n ...rest\n } = schema;\n const cleanedSchema: JsonSchemaObject = {\n ...rest,\n type: JsonSchemaTypes.Object,\n properties: Object.fromEntries(\n Object.entries(schema.properties ?? {}).map(([key, propertySchema]) => [\n key,\n stripEditorMetadata(propertySchema),\n ]),\n ),\n };\n return cleanedSchema;\n }\n\n if (isJsonSchemaArray(schema)) {\n const { id: _id, items: _items, ...rest } = schema;\n const cleanedSchema: JsonSchemaArray = {\n ...rest,\n type: JsonSchemaTypes.Array,\n items: stripEditorMetadata(schema.items),\n };\n return cleanedSchema;\n }\n\n const { id: _id, ...rest } = schema;\n return rest as JsonSchema;\n};\n\n// Builds input_schema in the prefixItems format expected by the API.\n// A single receiver arg is placed as properties.previous inside prefixItems[0].\nexport const buildInputSchema = (\n receiverProperty: Record<string, unknown> | null,\n): Record<string, unknown> => {\n if (!receiverProperty) {\n return NO_ARGS_INPUT_SCHEMA;\n }\n return {\n type: 'array',\n prefixItems: [{ type: 'object', properties: { [RECEIVER_PARAM_KEY]: receiverProperty } }],\n };\n};\n\n// Builds param_mapping in the hash format { source_key: destination_path }.\n// 'previous' key maps the receiver to prefixItems[0].properties.previous.\nexport const buildParamMapping = (\n receiverProperty: Record<string, unknown> | null,\n): Record<string, (string | number)[]> => {\n if (!receiverProperty) {\n return {};\n }\n return { [RECEIVER_PARAM_KEY]: [0, RECEIVER_PARAM_KEY] };\n};\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as DateFilterPreset, c as RelativeDateFilterValue, n as AbsoluteDateRange, o as DateFilterValue } from "../../types-
|
|
2
|
-
import { a as selectedPresetFor, i as resolveDateFilterValue, r as parseDateFilterValue } from "../../codec-
|
|
1
|
+
import { a as DateFilterPreset, c as RelativeDateFilterValue, n as AbsoluteDateRange, o as DateFilterValue } from "../../types-Cl-w8tYc.mjs";
|
|
2
|
+
import { a as selectedPresetFor, i as resolveDateFilterValue, r as parseDateFilterValue } from "../../codec-BXVBsB8Y.mjs";
|
|
3
3
|
export { AbsoluteDateRange, DateFilterPreset, DateFilterValue, RelativeDateFilterValue, parseDateFilterValue, resolveDateFilterValue, selectedPresetFor };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as selectedPresetFor, n as parseDateFilterValue, r as resolveDateFilterValue } from "../../date-filter-
|
|
1
|
+
import { i as selectedPresetFor, n as parseDateFilterValue, r as resolveDateFilterValue } from "../../date-filter-BnzR6NxT.mjs";
|
|
2
2
|
export { parseDateFilterValue, resolveDateFilterValue, selectedPresetFor };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
export { EMPTY_JSON_SCHEMA_OBJECT, JsonSchema, JsonSchemaAnyOf, JsonSchemaArray, JsonSchemaBase, JsonSchemaBasic, JsonSchemaBasicTypes, JsonSchemaBoolean, JsonSchemaConst, JsonSchemaCore, JsonSchemaEmpty, JsonSchemaInteger, JsonSchemaNull, JsonSchemaNumber, JsonSchemaObject, JsonSchemaObjectKey, JsonSchemaObjectKeyRegistry, JsonSchemaRef, JsonSchemaString, JsonSchemaTypes, extendSchema, functionParametersFromJsonSchema, genericArrayItemSchema, getArrayItemType, getNonNullableRefSchema, getNonNullableType, humanizeSchemaType, isArrayWithFileItems, isConvertedTypeSchema, isFileField, isFileSchema, isFileType, isFunctionSchema, isGenericParameterSchema, isJsonSchemaArray, isJsonSchemaBoolean, isJsonSchemaChoices, isJsonSchemaDate, isJsonSchemaDateTime, isJsonSchemaInteger, isJsonSchemaNumber, isJsonSchemaObject, isJsonSchemaPlatformObject, isJsonSchemaRef, isJsonSchemaSecret, isJsonSchemaString, isNonPrimitiveSchema, isOneOfSchema, isOneOfStringSchema, isPrecedingSchema, isSchemaTypeAllowed };
|
|
1
|
+
import { $ as isNonPrimitiveSchema, A as getNonNullableRefSchema, B as isJsonSchemaArray, C as JsonSchemaString, D as functionParametersFromJsonSchema, E as extendSchema, F as isFileField, G as isJsonSchemaInteger, H as isJsonSchemaChoices, I as isFileSchema, J as isJsonSchemaPlatformObject, K as isJsonSchemaNumber, L as isFileType, M as humanizeSchemaType, N as isArrayWithFileItems, O as genericArrayItemSchema, P as isConvertedTypeSchema, Q as isJsonType, R as isFunctionSchema, S as JsonSchemaRef, T as JsonSchemaTypes, U as isJsonSchemaDate, V as isJsonSchemaBoolean, W as isJsonSchemaDateTime, X as isJsonSchemaSecret, Y as isJsonSchemaRef, Z as isJsonSchemaString, _ as JsonSchemaNull, a as JsonSchemaArray, b as JsonSchemaObjectKey, c as JsonSchemaBasicTypes, d as JsonSchemaCore, et as isOneOfSchema, f as JsonSchemaCustomTypes, g as JsonSchemaInteger, h as JsonSchemaFieldTypeRegistry, i as JsonSchemaAnyOf, j as getNonNullableType, k as getArrayItemType, l as JsonSchemaBoolean, m as JsonSchemaFieldType, n as JsonSchema, nt as isPrecedingSchema, o as JsonSchemaBase, p as JsonSchemaEmpty, q as isJsonSchemaObject, r as JsonSchemaAllTypes, rt as isSchemaTypeAllowed, s as JsonSchemaBasic, t as EMPTY_JSON_SCHEMA_OBJECT, tt as isOneOfStringSchema, u as JsonSchemaConst, v as JsonSchemaNumber, w as JsonSchemaStringifiableTypes, x as JsonSchemaObjectKeyRegistry, y as JsonSchemaObject, z as isGenericParameterSchema } from "../jsonSchema-CfGi1bzI.mjs";
|
|
2
|
+
export { EMPTY_JSON_SCHEMA_OBJECT, JsonSchema, JsonSchemaAllTypes, JsonSchemaAnyOf, JsonSchemaArray, JsonSchemaBase, JsonSchemaBasic, JsonSchemaBasicTypes, JsonSchemaBoolean, JsonSchemaConst, JsonSchemaCore, JsonSchemaCustomTypes, JsonSchemaEmpty, JsonSchemaFieldType, JsonSchemaFieldTypeRegistry, JsonSchemaInteger, JsonSchemaNull, JsonSchemaNumber, JsonSchemaObject, JsonSchemaObjectKey, JsonSchemaObjectKeyRegistry, JsonSchemaRef, JsonSchemaString, JsonSchemaStringifiableTypes, JsonSchemaTypes, extendSchema, functionParametersFromJsonSchema, genericArrayItemSchema, getArrayItemType, getNonNullableRefSchema, getNonNullableType, humanizeSchemaType, isArrayWithFileItems, isConvertedTypeSchema, isFileField, isFileSchema, isFileType, isFunctionSchema, isGenericParameterSchema, isJsonSchemaArray, isJsonSchemaBoolean, isJsonSchemaChoices, isJsonSchemaDate, isJsonSchemaDateTime, isJsonSchemaInteger, isJsonSchemaNumber, isJsonSchemaObject, isJsonSchemaPlatformObject, isJsonSchemaRef, isJsonSchemaSecret, isJsonSchemaString, isJsonType, isNonPrimitiveSchema, isOneOfSchema, isOneOfStringSchema, isPrecedingSchema, isSchemaTypeAllowed };
|
package/dist/lib/jsonSchema.mjs
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import "./fieldSchemaTypes.mjs";
|
|
2
1
|
import { startCase } from "lodash-es";
|
|
3
2
|
//#region lib/jsonSchema.ts
|
|
4
3
|
let JsonSchemaTypes = /* @__PURE__ */ function(JsonSchemaTypes) {
|
|
@@ -11,6 +10,30 @@ let JsonSchemaTypes = /* @__PURE__ */ function(JsonSchemaTypes) {
|
|
|
11
10
|
JsonSchemaTypes["Null"] = "null";
|
|
12
11
|
return JsonSchemaTypes;
|
|
13
12
|
}({});
|
|
13
|
+
let JsonSchemaCustomTypes = /* @__PURE__ */ function(JsonSchemaCustomTypes) {
|
|
14
|
+
JsonSchemaCustomTypes["Date"] = "date";
|
|
15
|
+
JsonSchemaCustomTypes["Datetime"] = "datetime";
|
|
16
|
+
JsonSchemaCustomTypes["Enum"] = "enum";
|
|
17
|
+
JsonSchemaCustomTypes["File"] = "file";
|
|
18
|
+
JsonSchemaCustomTypes["MultiEnum"] = "multi-enum";
|
|
19
|
+
JsonSchemaCustomTypes["GroupedEnum"] = "grouped-enum";
|
|
20
|
+
JsonSchemaCustomTypes["Relation"] = "relation";
|
|
21
|
+
JsonSchemaCustomTypes["MaskedString"] = "secret";
|
|
22
|
+
JsonSchemaCustomTypes["Unknown"] = "unknown";
|
|
23
|
+
return JsonSchemaCustomTypes;
|
|
24
|
+
}({});
|
|
25
|
+
const JsonSchemaAllTypes = {
|
|
26
|
+
...JsonSchemaTypes,
|
|
27
|
+
...JsonSchemaCustomTypes
|
|
28
|
+
};
|
|
29
|
+
const JsonSchemaStringifiableTypes = [
|
|
30
|
+
"boolean",
|
|
31
|
+
"integer",
|
|
32
|
+
"number",
|
|
33
|
+
"string",
|
|
34
|
+
"date",
|
|
35
|
+
"enum"
|
|
36
|
+
];
|
|
14
37
|
const EMPTY_JSON_SCHEMA_OBJECT = {
|
|
15
38
|
type: "object",
|
|
16
39
|
properties: {}
|
|
@@ -24,6 +47,7 @@ const isJsonSchemaArray = (schema) => {
|
|
|
24
47
|
/** Returns true for non-primitive schemas (object, array, or $ref to a platform object). */
|
|
25
48
|
const isNonPrimitiveSchema = (schema) => isJsonSchemaObject(schema) || isJsonSchemaArray(schema) || isJsonSchemaRef(schema);
|
|
26
49
|
const isFileType = (fieldType) => fieldType === "file";
|
|
50
|
+
const isJsonType = (fieldType) => fieldType === "json";
|
|
27
51
|
const isFileField = (schema) => "fieldType" in schema && isFileType(schema.fieldType);
|
|
28
52
|
const isArrayWithFileItems = (schema) => isJsonSchemaArray(schema) && !!schema.items && typeof schema.items === "object" && "fieldType" in schema.items && isFileType(schema.items.fieldType);
|
|
29
53
|
/** ImageGallery accepts file schemas or arrays of file items. */
|
|
@@ -114,7 +138,7 @@ const getArrayItemType = (schema) => {
|
|
|
114
138
|
*
|
|
115
139
|
* Values follow `FIELD_SCHEMA_TYPE_DISPLAY` in `front-end/lib/fields` so the same field reads the same in the
|
|
116
140
|
* field-schema editor and in these pickers. They are duplicated rather than imported because
|
|
117
|
-
* `front-end/lib/fields` imports this module, and
|
|
141
|
+
* `front-end/lib/fields` imports this module, and this label map is deliberately dependency-free.
|
|
118
142
|
*
|
|
119
143
|
* These are names, so they are intentionally finer-grained than `getDataTypeFromJsonSchema`, which
|
|
120
144
|
* resolves the same schemas to a rendering strategy: it has no relation case (base `Field::Relation`
|
|
@@ -125,14 +149,15 @@ const getArrayItemType = (schema) => {
|
|
|
125
149
|
* vague but still truer than the bare JSON type.
|
|
126
150
|
*/
|
|
127
151
|
const FIELD_TYPE_LABELS = {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
152
|
+
"Field::Relation::Document::Generic": "Document",
|
|
153
|
+
file: "File",
|
|
154
|
+
"Field::Relation::Document::GovernmentId": "Government ID",
|
|
155
|
+
"Field::Relation::Document::GovernmentIdNfc": "Government ID NFC",
|
|
156
|
+
hash: "Hash",
|
|
157
|
+
json: "JSON",
|
|
158
|
+
"platform-file": "Platform File",
|
|
159
|
+
"Field::Relation": "Relation",
|
|
160
|
+
"Field::Relation::Selfie": "Selfie"
|
|
136
161
|
};
|
|
137
162
|
/**
|
|
138
163
|
* Names the field types that are all `type: 'string'` in JSON Schema and are told apart only by a
|
|
@@ -255,6 +280,6 @@ const extendSchema = (schemaMap, schemaToAdd) => {
|
|
|
255
280
|
}));
|
|
256
281
|
};
|
|
257
282
|
//#endregion
|
|
258
|
-
export { EMPTY_JSON_SCHEMA_OBJECT, JsonSchemaTypes, extendSchema, functionParametersFromJsonSchema, genericArrayItemSchema, getArrayItemType, getNonNullableRefSchema, getNonNullableType, humanizeSchemaType, isArrayWithFileItems, isConvertedTypeSchema, isFileField, isFileSchema, isFileType, isFunctionSchema, isGenericParameterSchema, isJsonSchemaArray, isJsonSchemaBoolean, isJsonSchemaChoices, isJsonSchemaDate, isJsonSchemaDateTime, isJsonSchemaInteger, isJsonSchemaNumber, isJsonSchemaObject, isJsonSchemaPlatformObject, isJsonSchemaRef, isJsonSchemaSecret, isJsonSchemaString, isNonPrimitiveSchema, isOneOfSchema, isOneOfStringSchema, isPrecedingSchema, isSchemaTypeAllowed };
|
|
283
|
+
export { EMPTY_JSON_SCHEMA_OBJECT, JsonSchemaAllTypes, JsonSchemaCustomTypes, JsonSchemaStringifiableTypes, JsonSchemaTypes, extendSchema, functionParametersFromJsonSchema, genericArrayItemSchema, getArrayItemType, getNonNullableRefSchema, getNonNullableType, humanizeSchemaType, isArrayWithFileItems, isConvertedTypeSchema, isFileField, isFileSchema, isFileType, isFunctionSchema, isGenericParameterSchema, isJsonSchemaArray, isJsonSchemaBoolean, isJsonSchemaChoices, isJsonSchemaDate, isJsonSchemaDateTime, isJsonSchemaInteger, isJsonSchemaNumber, isJsonSchemaObject, isJsonSchemaPlatformObject, isJsonSchemaRef, isJsonSchemaSecret, isJsonSchemaString, isJsonType, isNonPrimitiveSchema, isOneOfSchema, isOneOfStringSchema, isPrecedingSchema, isSchemaTypeAllowed };
|
|
259
284
|
|
|
260
285
|
//# sourceMappingURL=jsonSchema.mjs.map
|