@persona/design-system 0.10.3 → 0.10.5
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 +28 -0
- package/dist/Accordion.d.mts +2 -2
- package/dist/AccordionItem.d.mts +2 -2
- package/dist/{Action-DT8WqfEg.d.mts → Action-Bmo8B-Q3.d.mts} +4 -4
- package/dist/Action.d.mts +1 -1
- package/dist/AdvancedFilterRuleRow.d.mts +3 -3
- package/dist/AdvancedFilterRulesPopover.d.mts +3 -3
- package/dist/ArrayValueControl.d.mts +2 -2
- package/dist/Attribute.d.mts +4 -4
- package/dist/AttributeGrid.d.mts +1 -1
- package/dist/{Badge-Bvn3afds.mjs → Badge-8YzapjWf.mjs} +4 -4
- package/dist/Badge-8YzapjWf.mjs.map +1 -0
- package/dist/Badge.d.mts +1 -1
- package/dist/Banner.d.mts +1 -1
- package/dist/BooleanValueControl.d.mts +2 -2
- package/dist/BottomPanel.d.mts +1 -1
- package/dist/{Breadcrumb-BDbY1Ffu.d.mts → Breadcrumb-DnY8n3EL.d.mts} +8 -3
- package/dist/Breadcrumb.d.mts +2 -2
- package/dist/{Breadcrumbs-C2ThOYJ-.d.mts → Breadcrumbs-DRu_JfdI.d.mts} +3 -3
- package/dist/{Breadcrumbs-CQUe9VTM.mjs → Breadcrumbs-Dft2TR4v.mjs} +61 -21
- package/dist/Breadcrumbs-Dft2TR4v.mjs.map +1 -0
- package/dist/Breadcrumbs.d.mts +1 -1
- package/dist/{Button-CyjqQa5v.d.mts → Button-Cg8KyT5M.d.mts} +5 -5
- package/dist/Button.d.mts +1 -1
- package/dist/ButtonGroup.d.mts +1 -1
- package/dist/{Calendar-CkjYG7Mj.d.mts → Calendar-D-6WOLJ1.d.mts} +2 -2
- package/dist/Calendar.d.mts +1 -1
- package/dist/CalendarBase.d.mts +2 -2
- package/dist/CalendarCell.d.mts +1 -1
- package/dist/CalendarGrid.d.mts +1 -1
- package/dist/{Card-CzRHVUFo.d.mts → Card-CfECLwQ6.d.mts} +5 -5
- package/dist/{Card-BXNxWX5C.mjs → Card-DuQHyroh.mjs} +7 -7
- package/dist/Card-DuQHyroh.mjs.map +1 -0
- package/dist/Card.d.mts +1 -1
- package/dist/Card2.d.mts +1 -1
- package/dist/CardGrouping.d.mts +3 -3
- package/dist/{CardV2-Dp4eHSE-.mjs → CardV2-BRJbRSts.mjs} +14 -14
- package/dist/CardV2-BRJbRSts.mjs.map +1 -0
- package/dist/{Checkbox-BaJ-dGdX.mjs → Checkbox-Dr4LMKHV.mjs} +7 -7
- package/dist/Checkbox-Dr4LMKHV.mjs.map +1 -0
- package/dist/{Checkbox-B2MZShdu.d.mts → Checkbox-ZywrdT_h.d.mts} +2 -2
- package/dist/Checkbox.d.mts +1 -1
- package/dist/{CheckboxGroupField-6E5o6bYi.d.mts → CheckboxGroupField-UHpA38U5.d.mts} +4 -4
- package/dist/CheckboxGroupField.d.mts +1 -1
- package/dist/ChoicesValueControl.d.mts +2 -2
- package/dist/CodeHighlight.d.mts +1 -1
- package/dist/{Combobox-DTeu9_RR.d.mts → Combobox-BXkcQ2aY.d.mts} +4 -4
- package/dist/{Combobox-CBM-oY-e.mjs → Combobox-DQxaOCLA.mjs} +18 -18
- package/dist/Combobox-DQxaOCLA.mjs.map +1 -0
- package/dist/Combobox.d.mts +2 -2
- package/dist/{ComboboxBase-BMBdtP2Z.d.mts → ComboboxBase-D2rDQHYZ.d.mts} +8 -8
- package/dist/ComboboxBase.d.mts +1 -1
- package/dist/{ComboboxMultiSelect-DY5bAep9.d.mts → ComboboxMultiSelect-CrvB6ap5.d.mts} +3 -3
- package/dist/ComboboxMultiSelect.d.mts +1 -1
- package/dist/{ComboboxSingleSelect-1NglA-u2.d.mts → ComboboxSingleSelect-Dp0iTdDO.d.mts} +5 -5
- package/dist/ComboboxSingleSelect.d.mts +1 -1
- package/dist/{CompactBar-D9egXqY_.d.mts → CompactBar-zYfXjFmn.d.mts} +4 -4
- package/dist/CompactBar.d.mts +1 -1
- package/dist/{ConfigFormGroup-CidT_cE9.mjs → ConfigFormGroup-BCTWCws5.mjs} +5 -5
- package/dist/ConfigFormGroup-BCTWCws5.mjs.map +1 -0
- package/dist/ConfigFormGroup.d.mts +1 -1
- package/dist/{ControlBar-RIz-xjxs.d.mts → ControlBar-kJ_eWf8f.d.mts} +3 -3
- package/dist/ControlBar.d.mts +1 -1
- package/dist/{DataTable-l1bFeLXL.d.mts → DataTable-C000E74h.d.mts} +7 -7
- package/dist/{DataTable-DQ8axNfo.mjs → DataTable-DEJHWrsy.mjs} +25 -25
- package/dist/DataTable-DEJHWrsy.mjs.map +1 -0
- package/dist/DataTable.d.mts +1 -1
- package/dist/{DateField-CwSq77Ri.d.mts → DateField-g7malFm-.d.mts} +3 -3
- package/dist/DateField.d.mts +1 -1
- package/dist/{DatePicker-DRhY_0st.d.mts → DatePicker-8kUpFFh8.d.mts} +3 -3
- package/dist/{DatePicker-D0cvVbzq.mjs → DatePicker-D-_ibUd1.mjs} +20 -20
- package/dist/DatePicker-D-_ibUd1.mjs.map +1 -0
- package/dist/DatePicker.d.mts +1 -1
- package/dist/{DateRangePicker-CLuBLF1q.d.mts → DateRangePicker-Nv4uNuIW.d.mts} +4 -4
- package/dist/DateRangePicker.d.mts +1 -1
- package/dist/DateRangeValueControl.d.mts +3 -3
- package/dist/DateValueControl.d.mts +2 -2
- package/dist/{DropdownButton-5oNcpsOq.mjs → DropdownButton-BiFRlSVD.mjs} +4 -4
- package/dist/DropdownButton-BiFRlSVD.mjs.map +1 -0
- package/dist/DropdownButton.d.mts +3 -3
- package/dist/{DropdownMenu-UIrnFxfG.d.mts → DropdownMenu-CQbS7ML5.d.mts} +3 -3
- package/dist/{DropdownMenu-CedsmO5h.mjs → DropdownMenu-Q8S-9rXm.mjs} +4 -4
- package/dist/DropdownMenu-Q8S-9rXm.mjs.map +1 -0
- package/dist/DropdownMenu.d.mts +1 -1
- package/dist/{ErrorProps-DH0fzeGf.d.mts → ErrorProps-Cy-APmdC.d.mts} +2 -2
- package/dist/ErrorProps.d.mts +1 -1
- package/dist/{FieldRegistry-B5E-GN91.d.mts → FieldRegistry-a44G08fS.d.mts} +3 -3
- package/dist/FieldRegistry.d.mts +1 -1
- package/dist/{FilterBar-BQWpTi2b.d.mts → FilterBar-BpMguIXl.d.mts} +5 -5
- package/dist/FilterBar.d.mts +1 -1
- package/dist/FilterPickerMenu.d.mts +3 -3
- package/dist/FilterPill.d.mts +2 -2
- package/dist/FilterPopover.d.mts +2 -2
- package/dist/FloatValueControl.d.mts +2 -2
- package/dist/{FloatingActionBar-CpvLefPm.d.mts → FloatingActionBar-DPA9v_yH.d.mts} +2 -2
- package/dist/FloatingActionBar.d.mts +1 -1
- package/dist/FloatingPanel.d.mts +1 -1
- package/dist/FloatingPanelContext.d.mts +1 -1
- package/dist/FloatingPanelRenderer.d.mts +1 -1
- package/dist/FloatingToolbar.d.mts +27 -0
- package/dist/{FormControl-C4CiA0H-.mjs → FormControl-BztNXLn6.mjs} +7 -7
- package/dist/FormControl-BztNXLn6.mjs.map +1 -0
- package/dist/{FormControl-DEG_0oXt.d.mts → FormControl-TkYMZeBd.d.mts} +3 -3
- package/dist/FormControl.d.mts +1 -1
- package/dist/FormControlLabel.d.mts +2 -2
- package/dist/{FormField-mLbXDJ9B.d.mts → FormField-PBo1ctY8.d.mts} +3 -3
- package/dist/{FormField-C0cd1zVd.mjs → FormField-g1zQFM9T.mjs} +22 -22
- package/dist/FormField-g1zQFM9T.mjs.map +1 -0
- package/dist/FormField.d.mts +1 -1
- package/dist/{Grid-DXVkhyNQ.mjs → Grid-BtTuj5mR.mjs} +5 -5
- package/dist/Grid-BtTuj5mR.mjs.map +1 -0
- package/dist/Grid.d.mts +1 -1
- package/dist/GridItem.d.mts +1 -1
- package/dist/{Header-ayDu4VWE.d.mts → Header-fwlbzxYx.d.mts} +2 -2
- package/dist/Header.d.mts +1 -1
- package/dist/{HelperTooltip-BB9Vznnx.d.mts → HelperTooltip-BLfPfJRN.d.mts} +3 -3
- package/dist/HelperTooltip.d.mts +1 -1
- package/dist/HighlightedText.d.mts +3 -3
- package/dist/{HoverCopyableField-D-BubaRd.mjs → HoverCopyableField-CW7Jxmni.mjs} +8 -8
- package/dist/HoverCopyableField-CW7Jxmni.mjs.map +1 -0
- package/dist/HoverCopyableField.d.mts +1 -1
- package/dist/{I18nContext-TXS9M8t5.d.mts → I18nContext-EPmbUprm.d.mts} +3 -3
- package/dist/I18nContext.d.mts +1 -1
- package/dist/{IconButton-HWx5Hlmi.mjs → IconButton-DftINsp7.mjs} +8 -8
- package/dist/IconButton-DftINsp7.mjs.map +1 -0
- package/dist/{IconButton-Bigvu1Q4.d.mts → IconButton-KhCwTwPx.d.mts} +3 -3
- package/dist/IconButton.d.mts +1 -1
- package/dist/ImageThumbnail.d.mts +1 -1
- package/dist/ImageTile.d.mts +2 -2
- package/dist/IndexTableLayout.d.mts +6 -6
- package/dist/InlineCombobox.d.mts +2 -2
- package/dist/InlineInput.d.mts +2 -2
- package/dist/{Input-Dap055xf.mjs → Input-DtO3qMnE.mjs} +7 -7
- package/dist/Input-DtO3qMnE.mjs.map +1 -0
- package/dist/{Input-Bg4bi6VZ.d.mts → Input-QNjbGo38.d.mts} +4 -4
- package/dist/Input.d.mts +1 -1
- package/dist/{InputProps-Bl-G826g.d.mts → InputProps-BT7-RfnD.d.mts} +3 -3
- package/dist/InputProps.d.mts +1 -1
- package/dist/{Inserter-BKVrJ4M5.d.mts → Inserter-BnQVEqHV.d.mts} +2 -2
- package/dist/Inserter.d.mts +1 -1
- package/dist/IntegerValueControl.d.mts +2 -2
- package/dist/LayoutLoadingShimmer.d.mts +1 -1
- package/dist/LayoutLoadingSpinner.d.mts +1 -1
- package/dist/{Link-Cf__H8gD.mjs → Link-DKYmdL9t.mjs} +4 -4
- package/dist/Link-DKYmdL9t.mjs.map +1 -0
- package/dist/Link.d.mts +2 -2
- package/dist/{ListBox-eoyBHtnJ.mjs → ListBox-CDG0EAPg.mjs} +14 -14
- package/dist/ListBox-CDG0EAPg.mjs.map +1 -0
- package/dist/{ListBox-cH0dfeLN.d.mts → ListBox-D9SYTzOd.d.mts} +4 -4
- package/dist/ListBox.d.mts +1 -1
- package/dist/{ListBoxField-DOpaE0q4.d.mts → ListBoxField-CtPDd_Aw.d.mts} +5 -5
- package/dist/ListBoxField.d.mts +1 -1
- package/dist/{LoadingShimmer-Bqjdut7i.mjs → LoadingShimmer-oPIv2ESr.mjs} +3 -3
- package/dist/LoadingShimmer-oPIv2ESr.mjs.map +1 -0
- package/dist/LoadingShimmer.d.mts +2 -2
- package/dist/{LogicRow-CaxsteGU.d.mts → LogicRow-BWIZ7262.d.mts} +4 -4
- package/dist/LogicRow.d.mts +1 -1
- package/dist/MaskedInput.d.mts +2 -2
- package/dist/MatchHighlight.d.mts +1 -1
- package/dist/{Menu-5VknNr1T.d.mts → Menu-DizjcMbO.d.mts} +5 -5
- package/dist/{Menu-Dw6Rcpk6.mjs → Menu-EIT_MwK6.mjs} +7 -9
- package/dist/Menu-EIT_MwK6.mjs.map +1 -0
- package/dist/Menu.d.mts +1 -1
- package/dist/{MiddleTruncatedText-DoTyfMem.mjs → MiddleTruncatedText-DicQsLDG.mjs} +5 -5
- package/dist/MiddleTruncatedText-DicQsLDG.mjs.map +1 -0
- package/dist/{Modal-kjUptzg1.mjs → Modal-92O_uW8H.mjs} +10 -10
- package/dist/Modal-92O_uW8H.mjs.map +1 -0
- package/dist/{Modal-BuxggahW.d.mts → Modal-Bhwq1bQJ.d.mts} +3 -3
- package/dist/Modal.d.mts +1 -1
- package/dist/{PageHeader-DJF7nxgN.mjs → PageHeader-BzvA_NNt.mjs} +13 -6
- package/dist/PageHeader-BzvA_NNt.mjs.map +1 -0
- package/dist/{PageHeader-Czj42pyK.d.mts → PageHeader-D2QLrS7-.d.mts} +3 -3
- package/dist/PageHeader.d.mts +1 -1
- package/dist/{PageLayout-fXJW7daI.mjs → PageLayout-DCe3F76N.mjs} +9 -9
- package/dist/PageLayout-DCe3F76N.mjs.map +1 -0
- package/dist/{PageLayout-TBemv7oL.d.mts → PageLayout-DfAbeFIh.d.mts} +2 -2
- package/dist/PageLayout.d.mts +1 -1
- package/dist/{PageLayoutFrame-DzwlkNZ1.d.mts → PageLayoutFrame-CQLREOBH.d.mts} +2 -2
- package/dist/PageLayoutFrame.d.mts +1 -1
- package/dist/{PageSelector-DXCeBUoU.d.mts → PageSelector-QaKYtk6y.d.mts} +4 -4
- package/dist/PageSelector.d.mts +1 -1
- package/dist/PageSizeSelector.d.mts +1 -1
- package/dist/{Pagination-COcFWlha.d.mts → Pagination-DeXorbSK.d.mts} +3 -3
- package/dist/{Pagination-DtK-jbEY.mjs → Pagination-dTsHLVAk.mjs} +13 -13
- package/dist/Pagination-dTsHLVAk.mjs.map +1 -0
- package/dist/Pagination.d.mts +1 -1
- package/dist/{Pii-DueIK287.mjs → Pii-Bvh_kfGN.mjs} +4 -4
- package/dist/Pii-Bvh_kfGN.mjs.map +1 -0
- package/dist/Pii.d.mts +1 -1
- package/dist/{PillShell-DqglbFHe.d.mts → PillShell-B35z66jZ.d.mts} +3 -3
- package/dist/PillShell.d.mts +1 -1
- package/dist/{Popover-BcII7usF.mjs → Popover-DordjYNM.mjs} +5 -5
- package/dist/Popover-DordjYNM.mjs.map +1 -0
- package/dist/Popover.d.mts +2 -2
- package/dist/ProgressBar.d.mts +2 -2
- package/dist/{ProgressIndicator-C5sbFQcd.d.mts → ProgressIndicator-COCwRZfK.d.mts} +2 -2
- package/dist/{ProgressIndicator-CM37EU1B.mjs → ProgressIndicator-ISARECzW.mjs} +3 -3
- package/dist/ProgressIndicator-ISARECzW.mjs.map +1 -0
- package/dist/ProgressIndicator.d.mts +1 -1
- package/dist/{PseudoClassProps-BFFh2-u8.d.mts → PseudoClassProps-D_f-JUT1.d.mts} +2 -2
- package/dist/PseudoClassProps.d.mts +1 -1
- package/dist/{Radio-BstZg3DI.mjs → Radio-BlEtetrr.mjs} +5 -5
- package/dist/Radio-BlEtetrr.mjs.map +1 -0
- package/dist/Radio.d.mts +1 -1
- package/dist/{RadioGroup-erKerwSt.mjs → RadioGroup-CMrXmmn4.mjs} +5 -5
- package/dist/RadioGroup-CMrXmmn4.mjs.map +1 -0
- package/dist/{RadioGroup-BxEmipHa.d.mts → RadioGroup-pyGpWhhj.d.mts} +2 -2
- package/dist/RadioGroup.d.mts +1 -1
- package/dist/{RangeCalendar-CK5ArbIQ.d.mts → RangeCalendar-BiugsdSP.d.mts} +3 -3
- package/dist/RangeCalendar.d.mts +1 -1
- package/dist/RangeCalendarPresets.d.mts +2 -2
- package/dist/ResizableVerticalPanel.d.mts +1 -1
- package/dist/ResizeHandle.d.mts +1 -1
- package/dist/RichTextEditor.d.mts +36 -0
- package/dist/RightPanel.d.mts +1 -1
- package/dist/RightPanelLoadingContent.d.mts +1 -1
- package/dist/RightPanelResizeHandle.d.mts +1 -1
- package/dist/{RouterContext-CoDbEb_X.d.mts → RouterContext-BUdfr1it.d.mts} +3 -3
- package/dist/{RouterContext-nPSb55p9.mjs → RouterContext-DAQHKOv6.mjs} +2 -2
- package/dist/RouterContext-DAQHKOv6.mjs.map +1 -0
- package/dist/RouterContext.d.mts +1 -1
- package/dist/{RouterLink-BnIEi8d4.d.mts → RouterLink-BKbfvJcM.d.mts} +3 -3
- package/dist/RouterLink.d.mts +1 -1
- package/dist/RuleEditorFields.d.mts +3 -3
- package/dist/RulesPill.d.mts +2 -2
- package/dist/{SearchInput-DLC7-A7K.d.mts → SearchInput-BejaiGsS.d.mts} +3 -3
- package/dist/SearchInput.d.mts +1 -1
- package/dist/Section.d.mts +1 -1
- package/dist/SectionHeading.d.mts +2 -2
- package/dist/{SegmentedControl-DQjIO6iX.mjs → SegmentedControl-D_DA-MU1.mjs} +5 -5
- package/dist/SegmentedControl-D_DA-MU1.mjs.map +1 -0
- package/dist/{SegmentedControl-xjU-2IsJ.d.mts → SegmentedControl-UV03Ujqn.d.mts} +2 -2
- package/dist/SegmentedControl.d.mts +1 -1
- package/dist/{Select-CG_Xkx0m.d.mts → Select-Chk5WB1F.d.mts} +4 -4
- package/dist/{Select-BJ9ACmRD.mjs → Select-DkUMz4LG.mjs} +10 -10
- package/dist/Select-DkUMz4LG.mjs.map +1 -0
- package/dist/Select.d.mts +1 -1
- package/dist/SelectionCard.d.mts +1 -1
- package/dist/SelectionCardGroup.d.mts +1 -1
- package/dist/{SingleColumnLayout-CBynMc76.d.mts → SingleColumnLayout-DBo35psH.d.mts} +3 -3
- package/dist/SingleColumnLayout.d.mts +1 -1
- package/dist/Slider.d.mts +1 -1
- package/dist/SliderRHF.d.mts +1 -1
- package/dist/SliderThumb.d.mts +1 -1
- package/dist/SmartTextInput.d.mts +7 -7
- package/dist/SmartTextInputCodeDialog.d.mts +1 -1
- package/dist/SmartTextInputField.d.mts +3 -3
- package/dist/SmartTextInputFunctionDialog.d.mts +5 -5
- package/dist/SmartTextInputListbox.d.mts +3 -3
- package/dist/SmartTextInputPopover.d.mts +2 -2
- package/dist/{Spacer-J_HuhxX2.mjs → Spacer-C4d9Aho6.mjs} +3 -3
- package/dist/Spacer-C4d9Aho6.mjs.map +1 -0
- package/dist/Spacer.d.mts +1 -1
- package/dist/{Spinner-7Camx1vs.mjs → Spinner-CXb-KUs1.mjs} +3 -3
- package/dist/Spinner-CXb-KUs1.mjs.map +1 -0
- package/dist/Spinner.d.mts +1 -1
- package/dist/{SplitColumnLayout-BVzGbEDC.d.mts → SplitColumnLayout-C6m_mwdf.d.mts} +3 -3
- package/dist/SplitColumnLayout.d.mts +1 -1
- package/dist/{Stack-BkC7FCdF.mjs → Stack-Bzom2BTR.mjs} +3 -3
- package/dist/Stack-Bzom2BTR.mjs.map +1 -0
- package/dist/{Stack-BZyboHQl.d.mts → Stack-DrYxBkiF.d.mts} +3 -3
- package/dist/Stack.d.mts +1 -1
- package/dist/{StatusIndicator-Bunn9YLV.mjs → StatusIndicator-pWl1-FLb.mjs} +3 -3
- package/dist/StatusIndicator-pWl1-FLb.mjs.map +1 -0
- package/dist/StatusIndicator.d.mts +1 -1
- package/dist/{Sticker-yhxtIYH8.mjs → Sticker-Bi_fezCO.mjs} +6 -6
- package/dist/Sticker-Bi_fezCO.mjs.map +1 -0
- package/dist/{Sticker-CsUSNIH-.d.mts → Sticker-sIBnBbHD.d.mts} +5 -5
- package/dist/Sticker.d.mts +1 -1
- package/dist/StringValueControl.d.mts +2 -2
- package/dist/StyledIconDrag.d.mts +1 -1
- package/dist/SwatchPicker.d.mts +1 -1
- package/dist/Tab.d.mts +2 -2
- package/dist/{TabBar-SX8E9-Bk.mjs → TabBar-DpXYsWgS.mjs} +9 -9
- package/dist/TabBar-DpXYsWgS.mjs.map +1 -0
- package/dist/TabBar.d.mts +1 -1
- package/dist/TabBarContext.d.mts +1 -1
- package/dist/TabBarIconButton.d.mts +1 -1
- package/dist/{Table-CadXF71E.d.mts → Table-BJfcRpMX.d.mts} +2 -2
- package/dist/{Table-BIDaC0uS.mjs → Table-DPi4Dt5H.mjs} +14 -14
- package/dist/Table-DPi4Dt5H.mjs.map +1 -0
- package/dist/Table.d.mts +1 -1
- package/dist/{TableBody-BKSHNSTo.d.mts → TableBody-CBz2PjA-.d.mts} +2 -2
- package/dist/TableBody.d.mts +1 -1
- package/dist/{TableBox-Bn_XZEYd.mjs → TableBox-BfSF36Gy.mjs} +23 -23
- package/dist/TableBox-BfSF36Gy.mjs.map +1 -0
- package/dist/TableBox.d.mts +2 -2
- package/dist/{TableBoxCell-v_ag22E0.d.mts → TableBoxCell-CwroLAWy.d.mts} +8 -8
- package/dist/TableBoxCell.d.mts +1 -1
- package/dist/{TableBoxField-BTpSGmgW.d.mts → TableBoxField-B7bHv7uV.d.mts} +6 -6
- package/dist/TableBoxField.d.mts +1 -1
- package/dist/{TableBoxRow-BBTztgTT.d.mts → TableBoxRow-Dke8B99J.d.mts} +4 -4
- package/dist/TableBoxRow.d.mts +1 -1
- package/dist/{TableBoxRowActions-B9QSVySz.d.mts → TableBoxRowActions-CkUDVERC.d.mts} +3 -3
- package/dist/TableBoxRowActions.d.mts +1 -1
- package/dist/TableBoxRowContext.d.mts +1 -1
- package/dist/{TableCell-4u5_BgTC.d.mts → TableCell-KHx5JlqZ.d.mts} +3 -3
- package/dist/TableCell.d.mts +1 -1
- package/dist/{TableControls-qxoq5abn.mjs → TableControls-BDXOQMr7.mjs} +69 -69
- package/dist/TableControls-BDXOQMr7.mjs.map +1 -0
- package/dist/{TableControls-wM35j3g4.d.mts → TableControls-DAjx1TYG.d.mts} +6 -6
- package/dist/TableControls.d.mts +1 -1
- package/dist/{TableControlsContext-rTYwRi5S.d.mts → TableControlsContext-BEIvE9qN.d.mts} +3 -3
- package/dist/TableControlsContext.d.mts +1 -1
- package/dist/{TableHead-BuCQeDAq.d.mts → TableHead-D5A3bOwt.d.mts} +2 -2
- package/dist/TableHead.d.mts +1 -1
- package/dist/{TableHeaderCell-DIcQlZps.d.mts → TableHeaderCell-BXgnxPpX.d.mts} +2 -2
- package/dist/TableHeaderCell.d.mts +1 -1
- package/dist/{TableLayout-ScEVdvvA.d.mts → TableLayout-Dy5ht8KO.d.mts} +2 -2
- package/dist/TableLayout.d.mts +1 -1
- package/dist/{TableRow-lCsvG0a-.d.mts → TableRow-C1iGbNjZ.d.mts} +3 -3
- package/dist/TableRow.d.mts +1 -1
- package/dist/TableTH.d.mts +1 -1
- package/dist/{TableViewConfigurationDropdown-Gut16-vY.d.mts → TableViewConfigurationDropdown-vYnU0d4k.d.mts} +3 -3
- package/dist/TableViewConfigurationDropdown.d.mts +1 -1
- package/dist/{TechnicalSticker-CALVwnrT.mjs → TechnicalSticker-B_JlBkXZ.mjs} +7 -7
- package/dist/TechnicalSticker-B_JlBkXZ.mjs.map +1 -0
- package/dist/TechnicalSticker.d.mts +1 -1
- package/dist/{Text-CSwFifQF.mjs → Text-D0vEReED.mjs} +3 -3
- package/dist/Text-D0vEReED.mjs.map +1 -0
- package/dist/{Text-RSzei6Se.d.mts → Text-SaoRBdB6.d.mts} +4 -4
- package/dist/Text.d.mts +1 -1
- package/dist/{TextArea-CaIEBz8d.mjs → TextArea-Dro-HH8O.mjs} +4 -4
- package/dist/TextArea-Dro-HH8O.mjs.map +1 -0
- package/dist/{TextArea-DFn4XuG-.d.mts → TextArea-gtSlghjy.d.mts} +3 -3
- package/dist/TextArea.d.mts +1 -1
- package/dist/{TextUnderlineTooltip-B0iYaPM1.d.mts → TextUnderlineTooltip-DV61avLv.d.mts} +3 -3
- package/dist/TextUnderlineTooltip.d.mts +1 -1
- package/dist/Tile.d.mts +2 -2
- package/dist/Toast.d.mts +2 -2
- package/dist/{Toggle-xtPgGaGD.d.mts → Toggle-BlvrM-Cw.d.mts} +2 -2
- package/dist/{Toggle-BsqSNYok.mjs → Toggle-D9MzTIZs.mjs} +7 -7
- package/dist/Toggle-D9MzTIZs.mjs.map +1 -0
- package/dist/Toggle.d.mts +1 -1
- package/dist/{Tooltip-Blfhi2gT.d.mts → Tooltip-CysnLwST.d.mts} +3 -3
- package/dist/{Tooltip-B-0VRuKT.mjs → Tooltip-YViXzMdm.mjs} +7 -7
- package/dist/Tooltip-YViXzMdm.mjs.map +1 -0
- package/dist/Tooltip.d.mts +1 -1
- package/dist/{TruncatedText-BMQmveJG.d.mts → TruncatedText-YcjNG-zP.d.mts} +2 -2
- package/dist/VersionHistory.d.mts +2 -2
- package/dist/{VersionHistoryItem-BExp7oSr.d.mts → VersionHistoryItem-Px3ylMMq.d.mts} +2 -2
- package/dist/VersionHistoryItem.d.mts +1 -1
- package/dist/WizardModal.d.mts +3 -3
- package/dist/{accordionTitleTypography-PMKnfoy0.d.mts → accordionTitleTypography-Dlo2YyWd.d.mts} +3 -3
- package/dist/accordionTitleTypography.d.mts +1 -1
- package/dist/assertNever.d.mts +1 -1
- package/dist/chainTypes-aF5rWav-.d.mts +17 -0
- package/dist/{clientFilterUtils-D0Bwapen.d.mts → clientFilterUtils-DYKgw2Yq.d.mts} +3 -3
- package/dist/clientFilterUtils.d.mts +1 -1
- package/dist/{codec-KAvQRjTW.d.mts → codec-D8ZKFLgs.d.mts} +3 -3
- package/dist/codec.d.mts +1 -1
- package/dist/{color-C5B1pN1D.d.mts → color-Cy_0z4IY.d.mts} +3 -3
- package/dist/common.d.mts +1 -1
- package/dist/complete-typography.d.mts +7 -0
- package/dist/components/Accordion/index.d.mts +1 -1
- package/dist/components/Accordion/index.mjs +8 -8
- package/dist/components/Accordion/index.mjs.map +1 -1
- package/dist/components/Attribute/index.mjs +8 -8
- package/dist/components/Attribute/index.mjs.map +1 -1
- package/dist/components/Badge/index.mjs +1 -1
- package/dist/components/Banner/index.mjs +3 -3
- package/dist/components/Banner/index.mjs.map +1 -1
- package/dist/components/BottomPanel/index.mjs +8 -8
- 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 +5 -5
- package/dist/components/ButtonGroup/index.mjs.map +1 -1
- package/dist/components/Card/index.d.mts +2 -2
- package/dist/components/Card/index.mjs +1 -1
- package/dist/components/CardV2/index.d.mts +1 -1
- package/dist/components/CardV2/index.mjs +1 -1
- package/dist/components/Checkbox/index.d.mts +1 -1
- package/dist/components/Checkbox/index.mjs +1 -1
- package/dist/components/CodeHighlight/PrismWithLanguages.mjs +1 -1
- package/dist/components/CodeHighlight/PrismWithLanguages.mjs.map +1 -1
- package/dist/components/CodeHighlight/index.mjs +6 -6
- 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 +21 -21
- package/dist/components/DataTable/TableControls/index.mjs +1 -1
- package/dist/components/DataTable/index.d.mts +8 -8
- package/dist/components/DataTable/index.mjs +1 -1
- package/dist/components/DataTable/types.d.mts +1 -1
- 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 +9 -9
- 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 +5 -5
- package/dist/components/FormField/index.mjs +1 -1
- package/dist/components/Grid/index.mjs +1 -1
- package/dist/components/HoverCopyableField/index.mjs +1 -1
- package/dist/components/ImageTile/index.mjs +11 -11
- package/dist/components/ImageTile/index.mjs.map +1 -1
- package/dist/components/Input/index.d.mts +1 -1
- package/dist/components/Input/index.mjs +2 -2
- package/dist/components/Input/index.mjs.map +1 -1
- package/dist/components/Link/index.mjs +1 -1
- package/dist/components/ListBox/index.d.mts +3 -3
- package/dist/components/ListBox/index.mjs +1 -1
- package/dist/components/LoadingShimmer/index.mjs +1 -1
- package/dist/components/MaskedInput/index.mjs +3 -3
- package/dist/components/MaskedInput/index.mjs.map +1 -1
- package/dist/components/MatchHighlight/index.mjs +2 -2
- package/dist/components/MatchHighlight/index.mjs.map +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 -1
- package/dist/components/PageHeader/index.d.mts +1 -1
- package/dist/components/PageHeader/index.mjs +1 -1
- package/dist/components/Pagination/index.d.mts +3 -3
- package/dist/components/Pagination/index.mjs +1 -1
- package/dist/components/Pii/index.mjs +1 -1
- package/dist/components/Popover/index.mjs +1 -1
- package/dist/components/ProgressBar/index.mjs +4 -4
- package/dist/components/ProgressBar/index.mjs.map +1 -1
- package/dist/components/ProgressIndicator/index.d.mts +1 -1
- package/dist/components/ProgressIndicator/index.mjs +1 -1
- package/dist/components/Radio/index.mjs +1 -1
- package/dist/components/RadioGroup/index.d.mts +1 -1
- package/dist/components/RadioGroup/index.mjs +1 -1
- package/dist/components/RichTextEditor/index.d.mts +5 -0
- package/dist/components/RichTextEditor/index.mjs +1050 -0
- package/dist/components/RichTextEditor/index.mjs.map +1 -0
- package/dist/components/RightPanel/index.mjs +9 -9
- 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/SelectionCard/index.mjs +9 -9
- package/dist/components/SelectionCard/index.mjs.map +1 -1
- package/dist/components/Slider/index.mjs +6 -6
- package/dist/components/Slider/index.mjs.map +1 -1
- package/dist/components/SmartTextInput/PillType.d.mts +1 -1
- package/dist/components/SmartTextInput/PillType.mjs +2 -2
- package/dist/components/SmartTextInput/PillType.mjs.map +1 -1
- package/dist/components/SmartTextInput/index.d.mts +2 -2
- package/dist/components/SmartTextInput/index.mjs +25 -25
- package/dist/components/SmartTextInput/index.mjs.map +1 -1
- package/dist/components/SmartTextInput/parser/method-chain/parser.mjs +1 -1
- package/dist/components/SmartTextInput/parser/method-chain/types.d.mts +1 -1
- package/dist/components/SmartTextInput/parser/method-chain/types.mjs +1 -1
- package/dist/components/SmartTextInput/parser/method-chain/types.mjs.map +1 -1
- package/dist/components/SmartTextInput/parser/smart-text/parser.mjs +2 -2
- package/dist/components/SmartTextInput/parser/smart-text/parser.mjs.map +1 -1
- package/dist/components/SmartTextInput/parser/smart-text/types.d.mts +2 -2
- package/dist/components/SmartTextInput/parser/smart-text/types.mjs +1 -1
- package/dist/components/SmartTextInput/parser/smart-text/types.mjs.map +1 -1
- package/dist/components/Spacer/index.mjs +1 -1
- package/dist/components/Spinner/index.mjs +1 -1
- package/dist/components/Stack/index.d.mts +1 -1
- package/dist/components/Stack/index.mjs +1 -1
- package/dist/components/StatusIndicator/index.mjs +1 -1
- package/dist/components/Sticker/index.d.mts +1 -1
- package/dist/components/Sticker/index.mjs +1 -1
- package/dist/components/SwatchPicker/index.mjs +2 -2
- package/dist/components/SwatchPicker/index.mjs.map +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/Text/index.mjs +1 -1
- package/dist/components/TextArea/index.d.mts +1 -1
- package/dist/components/TextArea/index.mjs +1 -1
- package/dist/components/Tile/index.mjs +6 -6
- package/dist/components/Tile/index.mjs.map +1 -1
- package/dist/components/Toast/index.mjs +3 -3
- 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/Tooltip/index.mjs +1 -1
- package/dist/components/VersionHistory/index.d.mts +1 -1
- package/dist/components/VersionHistory/index.mjs +12 -12
- package/dist/components/VersionHistory/index.mjs.map +1 -1
- package/dist/compound-expression.d.mts +2 -2
- package/dist/{constants-4rSh8e5G.d.mts → constants-CW1DRgwi.d.mts} +2 -2
- package/dist/{constants-BaMvTUbS.d.mts → constants-D1hoZ5LO.d.mts} +2 -2
- package/dist/constants.d.mts +1 -1
- package/dist/constants2.d.mts +1 -1
- package/dist/containers.d.mts +1 -1
- package/dist/createPath-C4ZFkt93.d.mts +7 -0
- package/dist/createPath.d.mts +1 -1
- package/dist/{date-filter-D0ys8s0D.mjs → date-filter-Bj4XkwkT.mjs} +3 -3
- package/dist/date-filter-Bj4XkwkT.mjs.map +1 -0
- package/dist/{date-range-rule-value-Dk6pZHnD.d.mts → date-range-rule-value-CrVBpQcf.d.mts} +3 -3
- package/dist/date-range-rule-value.d.mts +1 -1
- package/dist/{date-rule-intent-C5C8HB1v.d.mts → date-rule-intent-C1aptAoX.d.mts} +4 -4
- package/dist/date-rule-intent.d.mts +1 -1
- package/dist/display.d.mts +3 -3
- package/dist/fieldPickerOptions.d.mts +3 -3
- package/dist/{filter-size-context-5xQ3ycnC.d.mts → filter-size-context-CbT4pi3S.d.mts} +3 -3
- package/dist/filter-size-context.d.mts +1 -1
- package/dist/{filters-C8YLLbH3.d.mts → filters-DjXkx8GJ.d.mts} +3 -3
- package/dist/filters.d.mts +1 -1
- package/dist/format-date-value.d.mts +1 -1
- package/dist/{formatDateTime-Dd9inM5H.d.mts → formatDateTime-BikGGrvq.d.mts} +2 -2
- package/dist/formatDateTime.d.mts +1 -1
- package/dist/{helpers-DvqDI2e5.d.mts → helpers-CdxEL7ri.d.mts} +5 -5
- package/dist/helpers.d.mts +1 -1
- package/dist/{i18n-BscB9FUy.mjs → i18n-BLyCaSdJ.mjs} +4 -4
- package/dist/i18n-BLyCaSdJ.mjs.map +1 -0
- package/dist/index-BWAycP6L.d.mts +4025 -0
- package/dist/{index-EGvEhP1j.d.mts → index-D2YFHdsf.d.mts} +3 -3
- package/dist/{index-CNDe1Lij.d.mts → index-DX5Zu9JU.d.mts} +4 -4
- package/dist/index-FgIOTuJ4.d.mts +7 -0
- package/dist/index.d.mts +1 -2
- package/dist/index2.d.mts +2 -2
- package/dist/index3.d.mts +2 -4
- package/dist/index4.d.mts +4 -2
- package/dist/index5.d.mts +2 -15
- package/dist/index6.d.mts +15 -1
- package/dist/{input-CKhARTlS.d.mts → input-gtTnb9M8.d.mts} +4 -4
- package/dist/{inputFields-BZcm1UV5.d.mts → inputFields-CYttsz5M.d.mts} +12 -12
- package/dist/inputFields.d.mts +1 -1
- package/dist/{intersperse-ObkRVOag.mjs → intersperse-DvJsBw5D.mjs} +2 -2
- package/dist/intersperse-DvJsBw5D.mjs.map +1 -0
- package/dist/intersperse.d.mts +1 -1
- package/dist/{jsonSchema-DmOA0Lnu.d.mts → jsonSchema-DUkfAip_.d.mts} +3 -3
- package/dist/lib/ConfigContext.d.mts +1 -1
- package/dist/lib/ConfigContext.mjs +1 -1
- package/dist/lib/ConfigContext.mjs.map +1 -1
- package/dist/lib/GlobalStyles.d.mts +1 -1
- package/dist/lib/GlobalStyles.mjs +2 -2
- package/dist/lib/GlobalStyles.mjs.map +1 -1
- package/dist/lib/HeadlessAriaButton.d.mts +1 -1
- package/dist/lib/HeadlessAriaButton.mjs +2 -2
- package/dist/lib/HeadlessAriaButton.mjs.map +1 -1
- package/dist/lib/MiddleTruncatedText.d.mts +1 -1
- package/dist/lib/MiddleTruncatedText.mjs +1 -1
- package/dist/lib/PDSProvider.d.mts +4 -4
- package/dist/lib/PDSProvider.mjs +4 -4
- package/dist/lib/PDSProvider.mjs.map +1 -1
- package/dist/lib/TruncatedText.d.mts +1 -1
- package/dist/lib/TruncatedText.mjs +2 -2
- package/dist/lib/TruncatedText.mjs.map +1 -1
- package/dist/lib/TruncatedTextWithTooltip.d.mts +2 -2
- package/dist/lib/TruncatedTextWithTooltip.mjs +2 -2
- package/dist/lib/TruncatedTextWithTooltip.mjs.map +1 -1
- package/dist/lib/chainTypes.d.mts +1 -1
- package/dist/lib/color.d.mts +1 -1
- package/dist/lib/color.mjs +1 -1
- package/dist/lib/color.mjs.map +1 -1
- package/dist/lib/colorMode.d.mts +3 -3
- package/dist/lib/colorMode.mjs +2 -2
- package/dist/lib/colorMode.mjs.map +1 -1
- package/dist/lib/comboboxHelper.d.mts +1 -1
- package/dist/lib/comboboxHelper.mjs +1 -1
- package/dist/lib/comboboxHelper.mjs.map +1 -1
- package/dist/lib/copyTextToClipboard.d.mts +1 -1
- package/dist/lib/copyTextToClipboard.mjs +1 -1
- package/dist/lib/copyTextToClipboard.mjs.map +1 -1
- package/dist/lib/customFunctionSchema.d.mts +2 -2
- package/dist/lib/customFunctionSchema.mjs +1 -1
- package/dist/lib/customFunctionSchema.mjs.map +1 -1
- package/dist/lib/date-filter/index.d.mts +2 -2
- package/dist/lib/date-filter/index.mjs +1 -1
- package/dist/lib/datePickerHelper.d.mts +1 -1
- package/dist/lib/datePickerHelper.mjs +1 -1
- package/dist/lib/datePickerHelper.mjs.map +1 -1
- package/dist/lib/embeddedSurfaceProtocol.d.mts +1 -1
- package/dist/lib/embeddedSurfaceProtocol.mjs +1 -1
- package/dist/lib/embeddedSurfaceProtocol.mjs.map +1 -1
- package/dist/lib/embeddedSurfaceRegistry.d.mts +1 -1
- package/dist/lib/embeddedSurfaceRegistry.mjs +1 -1
- package/dist/lib/embeddedSurfaceRegistry.mjs.map +1 -1
- package/dist/lib/errorReporter.d.mts +1 -1
- package/dist/lib/errorReporter.mjs +1 -1
- package/dist/lib/errorReporter.mjs.map +1 -1
- package/dist/lib/i18n/index.d.mts +3 -3
- package/dist/lib/i18n/index.mjs +1 -1
- package/dist/lib/jsonSchema.d.mts +1 -1
- package/dist/lib/jsonSchema.mjs +1 -1
- package/dist/lib/jsonSchema.mjs.map +1 -1
- package/dist/lib/jsonSchemaType.d.mts +2 -2
- package/dist/lib/jsonSchemaType.mjs +1 -1
- package/dist/lib/jsonSchemaType.mjs.map +1 -1
- package/dist/lib/letPointerDownReachDocument.d.mts +1 -1
- package/dist/lib/letPointerDownReachDocument.mjs +1 -1
- package/dist/lib/letPointerDownReachDocument.mjs.map +1 -1
- package/dist/lib/message.d.mts +1 -1
- package/dist/lib/message.mjs +1 -1
- package/dist/lib/message.mjs.map +1 -1
- package/dist/lib/methodChain.d.mts +2 -2
- package/dist/lib/methodChain.mjs +1 -1
- package/dist/lib/methodChainNormalize.d.mts +3 -3
- package/dist/lib/methodChainNormalize.mjs +1 -1
- package/dist/lib/methodChainNormalize.mjs.map +1 -1
- package/dist/lib/methodChainTypes.d.mts +1 -1
- package/dist/lib/objectSchemaTypes.d.mts +1 -1
- package/dist/lib/platformObject.d.mts +2 -2
- package/dist/lib/platformObject.mjs +1 -1
- package/dist/lib/platformObject.mjs.map +1 -1
- package/dist/lib/pseudoClass.d.mts +2 -2
- package/dist/lib/pseudoClass.mjs +1 -1
- package/dist/lib/pseudoClass.mjs.map +1 -1
- package/dist/lib/reorderItems.d.mts +1 -1
- package/dist/lib/reorderItems.mjs +1 -1
- package/dist/lib/reorderItems.mjs.map +1 -1
- package/dist/lib/router/adapters/reactRouter.d.mts +2 -2
- package/dist/lib/router/adapters/reactRouter.mjs +2 -2
- package/dist/lib/router/adapters/reactRouter.mjs.map +1 -1
- package/dist/lib/router/adapters/tanstack.d.mts +2 -2
- package/dist/lib/router/adapters/tanstack.mjs +2 -2
- package/dist/lib/router/adapters/tanstack.mjs.map +1 -1
- package/dist/lib/router/index.d.mts +5 -5
- package/dist/lib/router/index.mjs +2 -2
- package/dist/lib/schemaOptions.d.mts +1 -1
- package/dist/lib/schemaOptions.mjs +2 -2
- package/dist/lib/schemaOptions.mjs.map +1 -1
- package/dist/lib/selectHelper.d.mts +1 -1
- package/dist/lib/selectHelper.mjs +1 -1
- package/dist/lib/selectHelper.mjs.map +1 -1
- package/dist/lib/semanticColor.d.mts +1 -1
- package/dist/lib/semanticColor.mjs +1 -1
- package/dist/lib/semanticColor.mjs.map +1 -1
- package/dist/lib/snakifyPath.d.mts +1 -1
- package/dist/lib/snakifyPath.mjs +1 -1
- package/dist/lib/snakifyPath.mjs.map +1 -1
- package/dist/lib/useChain.d.mts +1 -1
- package/dist/lib/useChain.mjs +1 -1
- package/dist/lib/useControlled.d.mts +1 -1
- package/dist/lib/useControlled.mjs +1 -1
- package/dist/lib/useControlled.mjs.map +1 -1
- package/dist/lib/useEmbeddedSurface.d.mts +1 -1
- package/dist/lib/useEmbeddedSurface.mjs +1 -1
- package/dist/lib/useEmbeddedSurface.mjs.map +1 -1
- package/dist/lib/useIsOverflow.d.mts +1 -1
- package/dist/lib/useIsOverflow.mjs +1 -1
- package/dist/lib/useIsOverflow.mjs.map +1 -1
- package/dist/lib/useModalInsetRight.d.mts +1 -1
- package/dist/lib/useModalInsetRight.mjs +1 -1
- package/dist/lib/useModalInsetRight.mjs.map +1 -1
- package/dist/lib/useOutsideClick.d.mts +1 -1
- package/dist/lib/useOutsideClick.mjs +1 -1
- package/dist/lib/useOutsideClick.mjs.map +1 -1
- package/dist/lib/useResizablePanel.d.mts +1 -1
- package/dist/lib/useResizablePanel.mjs +1 -1
- package/dist/lib/useResizablePanel.mjs.map +1 -1
- package/dist/lib/useScrollOverflow.d.mts +1 -1
- package/dist/lib/useScrollOverflow.mjs +1 -1
- package/dist/lib/useScrollOverflow.mjs.map +1 -1
- package/dist/lib/zindex.d.mts +1 -1
- package/dist/lib/zindex.mjs +1 -1
- package/dist/lib/zindex.mjs.map +1 -1
- package/dist/lint/index.d.mts +11 -0
- package/dist/lint/index.mjs +399 -0
- package/dist/lint/index.mjs.map +1 -0
- package/dist/lint/recommended.json +10 -0
- package/dist/{listbox-options-DCmqWWgy.d.mts → listbox-options-CkwENvff.d.mts} +4 -4
- package/dist/listbox-options.d.mts +1 -1
- package/dist/markdownUtils.d.mts +23 -0
- package/dist/{message-Dti22dmx.d.mts → message-klSuXfNN.d.mts} +2 -2
- package/dist/{methodChain-DaDvXsHF.d.mts → methodChain-CRYRDa1k.d.mts} +6 -6
- package/dist/{methodChain-xZ1_vhbz.mjs → methodChain-LVNHiGPB.mjs} +4 -4
- package/dist/methodChain-LVNHiGPB.mjs.map +1 -0
- package/dist/{methodChainTypes-a7kHYhs7.d.mts → methodChainTypes-BtbYWrdP.d.mts} +3 -3
- package/dist/middleTruncateText.d.mts +1 -1
- package/dist/min-copy-size.d.mts +7 -0
- package/dist/mixins/focus.d.mts +2 -2
- package/dist/mixins/focus.mjs +2 -2
- package/dist/mixins/focus.mjs.map +1 -1
- package/dist/mixins/hoverable.d.mts +3 -3
- package/dist/mixins/hoverable.mjs +2 -2
- package/dist/mixins/hoverable.mjs.map +1 -1
- package/dist/mixins/input.d.mts +1 -1
- package/dist/mixins/input.mjs +2 -2
- package/dist/mixins/input.mjs.map +1 -1
- package/dist/mixins/menuItem.d.mts +3 -3
- package/dist/mixins/menuItem.mjs +2 -2
- package/dist/mixins/menuItem.mjs.map +1 -1
- package/dist/mixins/print/index.d.mts +1 -1
- package/dist/mixins/print/index.mjs +2 -2
- package/dist/mixins/print/index.mjs.map +1 -1
- package/dist/mixins/scrollbar.d.mts +2 -2
- package/dist/mixins/scrollbar.mjs +2 -2
- package/dist/mixins/scrollbar.mjs.map +1 -1
- package/dist/mixins/text.d.mts +1 -1
- package/dist/mixins/text.mjs +6 -2
- package/dist/mixins/text.mjs.map +1 -1
- package/dist/navigationEvents.d.mts +1 -1
- package/dist/no-raw-table.d.mts +7 -0
- package/dist/{operators-Seez5p9U.d.mts → operators-gCG7uZ6y.d.mts} +4 -4
- package/dist/operators.d.mts +1 -1
- package/dist/{palette-Bp5G-S_5.d.mts → palette-C1gBbxLO.d.mts} +4 -4
- package/dist/palette.d.mts +1 -1
- package/dist/{parser-BeTiVjRs.mjs → parser-BQ2aDi7S.mjs} +2 -2
- package/dist/parser-BQ2aDi7S.mjs.map +1 -0
- package/dist/patterns/CardGrouping/index.mjs +11 -11
- package/dist/patterns/CardGrouping/index.mjs.map +1 -1
- package/dist/patterns/IndexTableLayout/index.mjs +6 -6
- package/dist/patterns/IndexTableLayout/index.mjs.map +1 -1
- package/dist/patterns/LayoutLoadingShimmer/index.mjs +8 -8
- package/dist/patterns/LayoutLoadingShimmer/index.mjs.map +1 -1
- package/dist/patterns/LayoutLoadingSpinner/index.mjs +2 -2
- package/dist/patterns/LayoutLoadingSpinner/index.mjs.map +1 -1
- package/dist/patterns/PageLayout/index.d.mts +4 -4
- package/dist/patterns/PageLayout/index.mjs +1 -1
- package/dist/patterns/WizardModal/index.mjs +7 -7
- package/dist/patterns/WizardModal/index.mjs.map +1 -1
- package/dist/positioning.d.mts +1 -1
- package/dist/reactRouterFallback.d.mts +2 -2
- package/dist/reduced-motion.d.mts +7 -0
- package/dist/relative-date-label.d.mts +2 -2
- package/dist/{router-COrZcVkf.mjs → router-BxmA940v.mjs} +7 -7
- package/dist/router-BxmA940v.mjs.map +1 -0
- package/dist/safe-parse.d.mts +3 -3
- package/dist/{schemaOptions-BQgLOgtD.d.mts → schemaOptions-C_JM2-sg.d.mts} +4 -4
- package/dist/scrollExpandedItemIntoView.d.mts +1 -1
- package/dist/{semantic-DjKvtUi8.d.mts → semantic-BLaQSW1r.d.mts} +2 -2
- package/dist/semantic-color.d.mts +7 -0
- package/dist/{semanticColor-CmGmGRj8.d.mts → semanticColor-Bxufk3ZO.d.mts} +4 -4
- package/dist/shared.d.mts +30 -0
- package/dist/{strings-FWNWdSn1.d.mts → strings-CK9n6b65.d.mts} +2 -2
- package/dist/strings.d.mts +1 -1
- package/dist/{styledComponentsInterop-NxwFjeA4.mjs → styledComponentsInterop-Cs5CCPRy.mjs} +2 -2
- package/dist/styledComponentsInterop-Cs5CCPRy.mjs.map +1 -0
- package/dist/styles.d.mts +8 -0
- package/dist/tableBoxKeyboardNavigation.d.mts +1 -1
- package/dist/{text-BNfECpa5.d.mts → text-Csytfclh.d.mts} +3 -3
- package/dist/{theme-VNhXxAF3.d.mts → theme-mQ4WkH90.d.mts} +4 -4
- package/dist/theme.d.mts +1 -1
- package/dist/theme.mjs +1 -1
- package/dist/theme.mjs.map +1 -1
- package/dist/time-range.d.mts +1 -1
- package/dist/tone.d.mts +4 -4
- package/dist/tree.d.mts +2 -2
- package/dist/{types-CFe4tA8Q.d.mts → types-6L0ptM6-.d.mts} +2 -2
- package/dist/{types-SOkNtcBq.d.mts → types-B4KbdEDc.d.mts} +3 -3
- package/dist/{types-Kmnood9Y.d.mts → types-C2RhHxbE.d.mts} +2 -2
- package/dist/{types-Ci-KTHfu.d.mts → types-CayYd8EX.d.mts} +4 -4
- package/dist/{types-SYxBPX6o.d.mts → types-DJobO07d.d.mts} +4 -4
- package/dist/{types-EodOhsjw.d.mts → types-DbOD5vE_.d.mts} +3 -3
- package/dist/{types-HxiGiwQN.d.mts → types-Dhz6VMKx.d.mts} +2 -2
- package/dist/{types-DWU0Dmy9.d.mts → types-XjJqUj-p.d.mts} +5 -5
- package/dist/{types-DfpVVjso.d.mts → types-dmItSshr.d.mts} +3 -3
- package/dist/{types-39QvBZuZ.d.mts → types-rDQg74j-.d.mts} +2 -2
- 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/types7.d.mts +14 -2
- package/dist/types8.d.mts +2 -0
- package/dist/{url-state-CwaRVyXR.d.mts → url-state-CmgyDnG7.d.mts} +3 -3
- package/dist/url-state.d.mts +1 -1
- package/dist/use-rules-popover-selection.d.mts +1 -1
- package/dist/{useChain-DXkKKe-J.d.mts → useChain-7ztbfujM.d.mts} +7 -7
- package/dist/{useChain-Cu4KDfFk.mjs → useChain-D1aNsdvn.mjs} +4 -4
- package/dist/useChain-D1aNsdvn.mjs.map +1 -0
- package/dist/useChainAtCursor.d.mts +7 -7
- package/dist/useCodeChainFunctionPanel.d.mts +2 -2
- package/dist/useColumnConfiguration.d.mts +3 -3
- package/dist/useColumnWidthLock.d.mts +1 -1
- package/dist/useComboboxFooterAction.d.mts +2 -2
- package/dist/useDelayedInlineEditError.d.mts +1 -1
- package/dist/{useFilterStateV2-Bzo27PR-.d.mts → useFilterStateV2-CPBt0qwc.d.mts} +4 -4
- package/dist/useFilterStateV2.d.mts +1 -1
- package/dist/{useFormField-Ba8rh1CH.d.mts → useFormField-CmEJCqse.d.mts} +3 -3
- package/dist/{useFormField-CbNYbDdp.mjs → useFormField-pOVkb5BK.mjs} +3 -3
- package/dist/useFormField-pOVkb5BK.mjs.map +1 -0
- package/dist/useFormField.d.mts +1 -1
- package/dist/{useFormGroup-CsKC93Pt.mjs → useFormGroup-DSQkoWLh.mjs} +2 -2
- package/dist/useFormGroup-DSQkoWLh.mjs.map +1 -0
- package/dist/useFormGroup.d.mts +1 -1
- package/dist/useLocationPathname-Cnqj8pf4.d.mts +5 -0
- package/dist/useLocationPathname.d.mts +1 -1
- package/dist/{useTableBoxDragAndDrop-CKPIY98e.d.mts → useTableBoxDragAndDrop-8NS4JBuI.d.mts} +2 -2
- package/dist/useTableBoxDragAndDrop.d.mts +1 -1
- package/dist/{useTableColumns-PyxNyTD6.d.mts → useTableColumns-BK-KYY0L.d.mts} +3 -3
- package/dist/useTableColumns.d.mts +1 -1
- package/dist/{useToggle-DRzCDqrc.mjs → useToggle-1z8JE7Ym.mjs} +2 -2
- package/dist/useToggle-1z8JE7Ym.mjs.map +1 -0
- package/dist/useToggle.d.mts +1 -1
- package/dist/useTruncation.d.mts +2 -2
- package/dist/{utilities-BrEUGFGq.d.mts → utilities-CXoc5Cyr.d.mts} +2 -2
- package/dist/utilities.d.mts +1 -1
- package/dist/utils/storybook.mjs +2 -2
- package/dist/utils/storybook.mjs.map +1 -1
- package/dist/utils/testing.d.mts +2 -2
- package/dist/utils/testing.mjs +1 -1
- package/dist/utils/testing.mjs.map +1 -1
- package/dist/utils.d.mts +2 -2
- package/dist/utils2.d.mts +1 -1
- package/dist/utils3.d.mts +1 -1
- package/dist/utils4.d.mts +6 -6
- package/dist/{validation-D6NPueNk.d.mts → validation-BaqPVG1C.d.mts} +4 -4
- package/dist/validation.d.mts +1 -1
- package/dist/validation2.d.mts +5 -5
- package/dist/{value-control-resolver-C-UrXVlB.d.mts → value-control-resolver-CMyFwEY7.d.mts} +3 -3
- package/dist/value-control-resolver.d.mts +1 -1
- package/dist/variables/color.d.mts +1 -1
- package/dist/variables/color.mjs +1 -1
- package/dist/variables/color.mjs.map +1 -1
- package/dist/variables/effect.d.mts +2 -2
- package/dist/variables/effect.mjs +1 -1
- package/dist/variables/effect.mjs.map +1 -1
- package/dist/variables/keyframes.d.mts +1 -1
- package/dist/variables/keyframes.mjs +2 -2
- package/dist/variables/keyframes.mjs.map +1 -1
- package/dist/variables/semantic.d.mts +1 -1
- package/dist/variables/semantic.mjs +1 -1
- package/dist/variables/semantic.mjs.map +1 -1
- package/dist/variables/spacing.d.mts +1 -1
- package/dist/variables/spacing.mjs +1 -1
- package/dist/variables/spacing.mjs.map +1 -1
- package/dist/variables/text.d.mts +1 -1
- package/dist/variables/text.mjs +1 -1
- package/dist/variables/text.mjs.map +1 -1
- package/dist/variables/transitions.d.mts +1 -1
- package/dist/variables/transitions.mjs +1 -1
- package/dist/variables/transitions.mjs.map +1 -1
- package/llms.txt +2 -2
- package/package.json +32 -8
- package/skills/design-system-component-authoring/SKILL.md +4 -4
- package/skills/design-system-component-authoring/component-conventions.md +2 -2
- package/skills/new-screen/SKILL.md +56 -0
- package/skills/ui-authoring/COMPONENTS.md +2 -1
- package/skills/ui-authoring/SKILL.md +5 -3
- package/skills/ui-authoring/STANDARD.md +65 -50
- package/dist/Badge-Bvn3afds.mjs.map +0 -1
- package/dist/Breadcrumbs-CQUe9VTM.mjs.map +0 -1
- package/dist/Card-BXNxWX5C.mjs.map +0 -1
- package/dist/CardV2-Dp4eHSE-.mjs.map +0 -1
- package/dist/Checkbox-BaJ-dGdX.mjs.map +0 -1
- package/dist/Combobox-CBM-oY-e.mjs.map +0 -1
- package/dist/ConfigFormGroup-CidT_cE9.mjs.map +0 -1
- package/dist/DataTable-DQ8axNfo.mjs.map +0 -1
- package/dist/DatePicker-D0cvVbzq.mjs.map +0 -1
- package/dist/DropdownButton-5oNcpsOq.mjs.map +0 -1
- package/dist/DropdownMenu-CedsmO5h.mjs.map +0 -1
- package/dist/FormControl-C4CiA0H-.mjs.map +0 -1
- package/dist/FormField-C0cd1zVd.mjs.map +0 -1
- package/dist/Grid-DXVkhyNQ.mjs.map +0 -1
- package/dist/HoverCopyableField-D-BubaRd.mjs.map +0 -1
- package/dist/IconButton-HWx5Hlmi.mjs.map +0 -1
- package/dist/Input-Dap055xf.mjs.map +0 -1
- package/dist/Link-Cf__H8gD.mjs.map +0 -1
- package/dist/ListBox-eoyBHtnJ.mjs.map +0 -1
- package/dist/LoadingShimmer-Bqjdut7i.mjs.map +0 -1
- package/dist/Menu-Dw6Rcpk6.mjs.map +0 -1
- package/dist/MiddleTruncatedText-DoTyfMem.mjs.map +0 -1
- package/dist/Modal-kjUptzg1.mjs.map +0 -1
- package/dist/PageHeader-DJF7nxgN.mjs.map +0 -1
- package/dist/PageLayout-fXJW7daI.mjs.map +0 -1
- package/dist/Pagination-DtK-jbEY.mjs.map +0 -1
- package/dist/Pii-DueIK287.mjs.map +0 -1
- package/dist/Popover-BcII7usF.mjs.map +0 -1
- package/dist/ProgressIndicator-CM37EU1B.mjs.map +0 -1
- package/dist/Radio-BstZg3DI.mjs.map +0 -1
- package/dist/RadioGroup-erKerwSt.mjs.map +0 -1
- package/dist/RouterContext-nPSb55p9.mjs.map +0 -1
- package/dist/SegmentedControl-DQjIO6iX.mjs.map +0 -1
- package/dist/Select-BJ9ACmRD.mjs.map +0 -1
- package/dist/Spacer-J_HuhxX2.mjs.map +0 -1
- package/dist/Spinner-7Camx1vs.mjs.map +0 -1
- package/dist/Stack-BkC7FCdF.mjs.map +0 -1
- package/dist/StatusIndicator-Bunn9YLV.mjs.map +0 -1
- package/dist/Sticker-yhxtIYH8.mjs.map +0 -1
- package/dist/TabBar-SX8E9-Bk.mjs.map +0 -1
- package/dist/Table-BIDaC0uS.mjs.map +0 -1
- package/dist/TableBox-Bn_XZEYd.mjs.map +0 -1
- package/dist/TableControls-qxoq5abn.mjs.map +0 -1
- package/dist/TechnicalSticker-CALVwnrT.mjs.map +0 -1
- package/dist/Text-CSwFifQF.mjs.map +0 -1
- package/dist/TextArea-CaIEBz8d.mjs.map +0 -1
- package/dist/Toggle-BsqSNYok.mjs.map +0 -1
- package/dist/Tooltip-B-0VRuKT.mjs.map +0 -1
- package/dist/chainTypes-Cjp0zZ4E.d.mts +0 -17
- package/dist/createPath-B_CLq82C.d.mts +0 -7
- package/dist/date-filter-D0ys8s0D.mjs.map +0 -1
- package/dist/i18n-BscB9FUy.mjs.map +0 -1
- package/dist/index-DTAcGzW4.d.mts +0 -7
- package/dist/intersperse-ObkRVOag.mjs.map +0 -1
- package/dist/methodChain-xZ1_vhbz.mjs.map +0 -1
- package/dist/parser-BeTiVjRs.mjs.map +0 -1
- package/dist/router-COrZcVkf.mjs.map +0 -1
- package/dist/styledComponentsInterop-NxwFjeA4.mjs.map +0 -1
- package/dist/useChain-Cu4KDfFk.mjs.map +0 -1
- package/dist/useFormField-CbNYbDdp.mjs.map +0 -1
- package/dist/useFormGroup-CsKC93Pt.mjs.map +0 -1
- package/dist/useLocationPathname-OsvI7mH5.d.mts +0 -5
- package/dist/useToggle-DRzCDqrc.mjs.map +0 -1
- package/skills/ui-authoring/lanes.json +0 -22
- /package/dist/{index-BOaE2xDE.d.mts → index-Bq9Ub6MB.d.mts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as JsonSchema, st as FunctionJsonSchema } from "../jsonSchema-
|
|
1
|
+
import { n as JsonSchema, st as FunctionJsonSchema } from "../jsonSchema-DUkfAip_.mjs";
|
|
2
2
|
|
|
3
|
-
//#region lib/customFunctionSchema.d.ts
|
|
3
|
+
//#region src/lib/customFunctionSchema.d.ts
|
|
4
4
|
declare const RECEIVER_PARAM_KEY = "previous";
|
|
5
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
6
|
declare const VALID_IDENTIFIER_PATTERN: RegExp;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getArrayItemType, getNonNullableRefSchema, getNonNullableType, humanizeSchemaType, isJsonSchemaArray, isJsonSchemaBoolean, isJsonSchemaDate, isJsonSchemaDateTime, isJsonSchemaInteger, isJsonSchemaNumber, isJsonSchemaObject, isJsonSchemaSecret, isJsonSchemaString } from "./jsonSchema.mjs";
|
|
2
2
|
import { startCase } from "lodash-es";
|
|
3
|
-
//#region lib/customFunctionSchema.ts
|
|
3
|
+
//#region src/lib/customFunctionSchema.ts
|
|
4
4
|
const RECEIVER_PARAM_KEY = "previous";
|
|
5
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
6
|
const VALID_IDENTIFIER_PATTERN = /^[a-z_][a-z0-9_]*$/;
|
|
@@ -1 +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
|
+
{"version":3,"file":"customFunctionSchema.mjs","names":[],"sources":["../../src/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":";;;AAwBA,MAAa,qBAAqB;AAIlC,MAAa,wBAAwB,8GAA8G,mBAAmB,6FAA6F,mBAAmB;AAItR,MAAa,2BAA2B;AACxC,MAAa,6BACX;AAEF,MAAM,yBAAyB;AAC/B,MAAM,iBAAiB;AAIvB,MAAa,gBAAgB,QAC3B,IACG,aAAa,CACb,QAAQ,eAAe,GAAG,CAC1B,QAAQ,WAAW,GAAG;AAI3B,MAAa,uBAAuB,MAAc,mBAA0C;AAC1F,KAAI,CAAC,uBAAuB,KAAK,KAAK,CACpC,QAAO;AAET,KAAI,iBAAiB,EAEnB,QAAO,WAAW,eAAe,GADpB,mBAAmB,IAAI,UAAU,SACL;AAE3C,QAAO;;AAIT,MAAa,uBAAuB,MAAc,mBAA0C;CAC1F,MAAM,mBAAmB,oBAAoB,MAAM,eAAe;AAClE,KAAI,iBACF,QAAO;AAET,KAAI,CAAC,eAAe,KAAK,KAAK,CAC5B,QAAO;AAET,QAAO;;AAOT,MAAa,4BAA4B,WACvC,OAAO,0BAA0B,QACjC,OAAO,KAAK,OAAO,YAAY,gBAAgB,cAAc,EAAE,CAAC,CAAC,WAAW;AAG9E,MAAa,uBAAgD;CAAE,MAAM;CAAS,OAAO;CAAO;AAE5F,MAAa,qBAAqB;CAChC,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,QAAQ;CACR,cAAc;CACd,cAAc;CACd,eAAe;CACf,cAAc;CACf;AAGD,MAAM,wCAAwC;CAC5C,cAAA;CACA,cAAA;CACA,eAAA;CACA,cAAA;CACD;AAED,MAAa,wBAAwB,eAAuC;AAC1E,SAAQ,YAAR;EACE,KAAK,SACH,QAAO,EAAE,MAAA,UAA8B;EACzC,KAAK,SACH,QAAO,EAAE,MAAA,UAA8B;EACzC,KAAK,UACH,QAAO,EAAE,MAAA,WAA+B;EAC1C,KAAK,SACH,QAAO;GAAE,MAAA;GAA8B,YAAY,EAAE;GAAE;EACzD,KAAK;EACL,KAAK;EACL,KAAK,gBACH,QAAO;GACL,MAAA;GACA,OAAO,EAAE,MAAM,sCAAsC,aAAa;GACnE;EACH,KAAK,eACH,QAAO;GACL,MAAA;GACA,OAAO;IAAE,MAAA;IAA8B,YAAY,EAAE;IAAE;GACxD;;;AAIP,MAAa,wBAAwB,WAAsD;AACzF,KAAI,UAAU,QAAQ,EAAE,UAAU,QAChC,QAAO;AAGT,SAAQ,OAAO,MAAf;EACE,KAAA,SACE,QAAO;EACT,KAAA;EACA,KAAA,UACE,QAAO;EACT,KAAA,UACE,QAAO;EACT,KAAA,SACE,QAAO;EACT,KAAA,QACE,SAAQ,iBAAiB,OAAO,EAAhC;GACE,KAAA,SACE,QAAO;GACT,KAAA;GACA,KAAA,UACE,QAAO;GACT,KAAA,UACE,QAAO;GACT,KAAA,SACE,QAAO;GACT,QACE,QAAO;;EAGb,QACE,QAAO;;;AAIb,MAAa,yBAAyB,WAAkD;AACtF,KAAI,UAAU,QAAQ,EAAE,UAAU,QAChC,QAAO,mBAAmB;AAE5B,QAAO,mBAAmB,EAAE,QAAQ,CAAC,IAAI,mBAAmB,qBAAqB,OAAO;;AAc1F,MAAM,6BAA6B;CACjC;EAAE,KAAK;EAAmB,OAAO;EAAW;CAC5C;EAAE,KAAK;EAAgB,OAAO;EAAQ;CACtC;EAAE,KAAK;EAAuB,OAAO;EAAe;CACpD;EAAE,KAAK;EAAmB,OAAO;EAAW;CAC5C;EAAE,KAAK;EAAwB,OAAO;EAAgB;CACtD;EAAE,KAAK;EAAkB,OAAO;EAAU;CAC1C;EAAE,KAAK;EAAoB,OAAO;EAAY;CAC/C;AAED,MAAM,iCAAsD,IAAI,IAC9D,2BAA2B,KAAK,EAAE,UAAU,IAAI,CACjD;AAID,MAAa,kCAAwD;CACnE;EAAE,OAAO;EAAU,OAAO;EAAU,kBAAkB,EAAE,MAAM,UAAU;EAAE;CAC1E;EAAE,OAAO;EAAU,OAAO;EAAU,kBAAkB,EAAE,MAAM,UAAU;EAAE;CAC1E;EAAE,OAAO;EAAW,OAAO;EAAW,kBAAkB,EAAE,MAAM,WAAW;EAAE;CAC7E;EAAE,OAAO;EAAgB,OAAO;EAAQ,kBAAkB;GAAE,MAAM;GAAU,QAAQ;GAAQ;EAAE;CAC9F;EACE,OAAO;EACP,OAAO;EACP,kBAAkB;GAAE,MAAM;GAAU,QAAQ;GAAa;EAC1D;CACF;AAED,MAAa,+BAAqD,2BAA2B,KAC1F,EAAE,KAAK,aAAa;CAAE,OAAO;CAAK;CAAO,kBAAkB,EAAE,MAAM,KAAK;CAAE,EAC5E;AAQD,MAAa,wBAA8C,CACzD,GAAG,iCACH,GAAG,6BACJ;AAMD,MAAM,gBAAgB;AAMtB,MAAa,mBAAmB,WAA2B;AACzD,KAAI,OAAO,SAAS,cAAc,CAChC,QAAO,OAAO,MAAM,GAAG,GAAsB;CAE/C,MAAM,QAAQ,OAAO,MAAM,IAAI;AAC/B,KAAI,MAAM,SAAS,KAAK,MAAM,IAAI,SAAS,IAAI,CAC7C,QAAO,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,IAAI;AAEpC,QAAO;;AAMT,MAAM,0BACJ,mBACqD;CACrD,MAAM,YAAY,wBAAwB,eAAe;AACzD,KAAI,UACF,QAAO;EAAE,YAAY;EAAW,aAAa;EAAM;CAErD,MAAM,kBAAkB,mBAAmB,eAAe;AAC1D,KAAI,gBACF,QAAO;EACL,YAAY;GAAE,GAAG;GAAgB,MAAM;GAAiB;EACxD,aAAa;EACd;AAEH,QAAO;EAAE,YAAY;EAAgB,aAAa;EAAO;;AAG3D,MAAa,6BAA6B,mBACxC,kBAAkB,QAAQ,uBAAuB,eAAe,CAAC;AAEnE,MAAa,+BACX,qBACY,0BAA0B,iBAAsC;AAI9E,MAAa,2BACX,kBACA,gBACmC;AACnC,KAAI,CAAC,iBACH,QAAO;CAET,MAAM,OAAO,uBAAuB,iBAA+B,CAAC;AAIpE,KAAI,CAAC,YACH,QAAO;AAET,KAAI,OAAO,KAAK,SAAS,SACvB,QAAO,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,EAAE,MAAM,QAAQ,CAAC,EAAE;AAE3D,KAAI,OAAO,KAAK,SAAS,SACvB,QAAO;EAAE,GAAG;EAAM,MAAM,CAAC,KAAK,MAAM,OAAO;EAAE;AAE/C,QAAO;;AAKT,MAAa,wBACX,qBACmC,wBAAwB,kBAAkB,MAAM;AAKrF,MAAM,uBAAuB,mBAA8C;AACzE,KAAI,SAAS,kBAAkB,OAAO,eAAe,QAAQ,SAC3D,QAAO,eAAe;AAExB,KAAI,UAAU,kBAAkB,OAAO,eAAe,SAAS,SAC7D,QAAO,eAAe;AAExB,QAAO;;AAGT,MAAa,yBACX,mBACmC;AACnC,KAAI,CAAC,eACH,QAAO;CAET,MAAM,EAAE,YAAY,gBAAgB,uBAAuB,eAAe;AAE1E,QAAO,wBADc,0BAA0B,WACJ,EAAE,YAAY;;AAG3D,MAAM,6BAA6B,mBAA+D;CAChG,MAAM,WAAW,oBAAoB,eAAe;AACpD,KAAI,YAAY,KACd,QAAO,EAAE,MAAM,gBAAgB,SAAS,EAAE;AAE5C,KAAI,UAAU,kBAAkB,OAAO,eAAe,SAAS,UAAU;AAGvE,MAAI,iBAAiB,eAAe,IAAI,qBAAqB,eAAe,CAC1E,QAAO;GAAE,MAAM,eAAe;GAAM,QAAQ,eAAe;GAAQ;AAErE,SAAO,EAAE,MAAM,eAAe,MAAM;;AAEtC,QAAO;;AAMT,MAAM,6BAA6B,WAAgC;AACjE,KAAI,EAAE,eAAe,WAAW,OAAO,OAAO,cAAc,SAC1D,QAAO;CAET,MAAM,WAAW,oBAAoB,OAAO;AAC5C,QAAO,YAAY,QAAQ,+BAA+B,IAAI,gBAAgB,SAAS,CAAC;;AAO1F,MAAa,6BACX,mBACY;AACZ,KAAI,CAAC,eACH,QAAO;CAGT,MAAM,EAAE,YAAY,gBAAgB,uBAAuB,eAAe;AAC1E,KAAI,aAAa;EAEf,MAAM,WAAW,oBAAoB,WAAW;AAChD,MAAI,YAAY,KACd,QAAO,+BAA+B,IAAI,gBAAgB,SAAS,CAAC;AAEtE,SAAO,0BAA0B,WAAW;;AAI9C,KAAI,kBAAkB,eAAe,CACnC,QAAO;AAIT,KAAI,0BAA0B,eAAe,CAC3C,QAAO;AAET,KAAI,mBAAmB,eAAe,CACpC,QAAO;AAET,KAAI,mBAAmB,eAAe,CACpC,QAAO;AAET,QACE,mBAAmB,eAAe,IAClC,mBAAmB,eAAe,IAClC,oBAAoB,eAAe,IACnC,oBAAoB,eAAe;;AAIvC,MAAa,oBAAoB,mBAA8C;AAC7E,KAAI,CAAC,eACH,QAAO;CAET,MAAM,EAAE,YAAY,gBAAgB,uBAAuB,eAAe;CAC1E,MAAM,YAAY,qBAAqB,WAAW;AAClD,QAAO,cAAc,GAAG,UAAU,WAAW;;AAG/C,MAAM,wBAAwB,mBAAuC;CACnE,MAAM,WAAW,oBAAoB,eAAe;AACpD,KAAI,YAAY,KAEd,QAAO,UADO,SAAS,QAAQ,YAAY,GAAG,CAAC,MAAM,IAC/B,CAAC,GAAG;AAE5B,KAAI,iBAAiB,eAAe,CAClC,QAAO;AAET,KAAI,qBAAqB,eAAe,CACtC,QAAO;AAET,KAAI,UAAU,kBAAkB,OAAO,eAAe,SAAS,SAC7D,QAAO,UAAU,eAAe,KAAK;AAEvC,QAAO;;AAOT,MAAa,wBAAwB,gBAAsD;AACzF,KAAI,CAAC,YACH,QAAO;AAET,KAAI,EAAE,UAAU,gBAAgB,YAAY,SAAS,QACnD,QAAO;CAET,MAAM,cAAe,YAA0C;AAC/D,KAAI,CAAC,MAAM,QAAQ,YAAY,IAAI,YAAY,WAAW,EAExD,QAAO;AAGT,QADc,YAAY,IACZ,aAAA,eAAoC;;AAGpD,MAAa,uBAAuB,WAAmC;AACrE,KAAI,mBAAmB,OAAO,EAAE;EAC9B,MAAM,EACJ,IAAI,KACJ,YAAY,aACZ,UAAU,WACV,sBAAsB,uBACtB,GAAG,SACD;AAWJ,SAAO;GATL,GAAG;GACH,MAAA;GACA,YAAY,OAAO,YACjB,OAAO,QAAQ,OAAO,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,oBAAoB,CACrE,KACA,oBAAoB,eAAe,CACpC,CAAC,CACH;GAEiB;;AAGtB,KAAI,kBAAkB,OAAO,EAAE;EAC7B,MAAM,EAAE,IAAI,KAAK,OAAO,QAAQ,GAAG,SAAS;AAM5C,SAAO;GAJL,GAAG;GACH,MAAA;GACA,OAAO,oBAAoB,OAAO,MAAM;GAEtB;;CAGtB,MAAM,EAAE,IAAI,KAAK,GAAG,SAAS;AAC7B,QAAO;;AAKT,MAAa,oBACX,qBAC4B;AAC5B,KAAI,CAAC,iBACH,QAAO;AAET,QAAO;EACL,MAAM;EACN,aAAa,CAAC;GAAE,MAAM;GAAU,YAAY,GAAG,qBAAqB,kBAAkB;GAAE,CAAC;EAC1F;;AAKH,MAAa,qBACX,qBACwC;AACxC,KAAI,CAAC,iBACH,QAAO,EAAE;AAEX,QAAO,GAAG,qBAAqB,CAAC,GAAG,mBAAmB,EAAE"}
|
|
@@ -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-rDQg74j-.mjs";
|
|
2
|
+
import { a as selectedPresetFor, i as resolveDateFilterValue, r as parseDateFilterValue } from "../../codec-D8ZKFLgs.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-Bj4XkwkT.mjs";
|
|
2
2
|
export { parseDateFilterValue, resolveDateFilterValue, selectedPresetFor };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { screen, waitFor } from "@testing-library/react";
|
|
2
2
|
import userEvent from "@testing-library/user-event";
|
|
3
|
-
//#region lib/datePickerHelper.ts
|
|
3
|
+
//#region src/lib/datePickerHelper.ts
|
|
4
4
|
/**
|
|
5
5
|
* Open a PDS DateRangePicker calendar by clicking its month segment and wait for the
|
|
6
6
|
* calendar dialog to appear.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datePickerHelper.mjs","names":[],"sources":["../../lib/datePickerHelper.ts"],"sourcesContent":["import { screen, waitFor } from '@testing-library/react';\nimport userEvent from '@testing-library/user-event';\n\n/**\n * Open a PDS DateRangePicker calendar by clicking its month segment and wait for the\n * calendar dialog to appear.\n *\n * In React 18 + jsdom, clicking the wrapper label element (getByLabelText(fieldLabel))\n * does not reliably move focus into the date field. Targeting the \"month\" segment directly\n * works around this.\n */\nexport const openDateRangePicker = async (fieldLabel: string) => {\n await userEvent.click(screen.getByLabelText(`month, ${fieldLabel},`));\n await waitFor(() => {\n expect(screen.getByRole('dialog')).toBeVisible();\n });\n};\n\n/**\n * Click an enabled calendar date button whose aria-label includes dateString.\n * dateString should be in \"MMMM d, yyyy\" format (e.g. \"April 14, 2026\").\n * Requires the calendar dialog to already be open (call openDateRangePicker first).\n */\nexport const clickCalendarDate = async (dateString: string) => {\n const dateButton = screen\n .getAllByRole('button')\n .filter((button) => !button.getAttribute('aria-disabled'))\n .find((button) => button.getAttribute('aria-label')?.includes(dateString));\n\n if (dateButton == null) {\n throw new Error(`Calendar date button not found for \"${dateString}\"`);\n }\n\n expect(dateButton).toBeVisible();\n await userEvent.click(dateButton);\n};\n"],"mappings":";;;;;;;;;;;AAWA,MAAa,sBAAsB,OAAO,eAAuB;AAC/D,OAAM,UAAU,MAAM,OAAO,eAAe,UAAU,WAAW,GAAG,CAAC;AACrE,OAAM,cAAc;AAClB,SAAO,OAAO,UAAU,SAAS,CAAC,CAAC,aAAa;GAChD;;;;;;;AAQJ,MAAa,oBAAoB,OAAO,eAAuB;CAC7D,MAAM,aAAa,OAChB,aAAa,SAAS,CACtB,QAAQ,WAAW,CAAC,OAAO,aAAa,gBAAgB,CAAC,CACzD,MAAM,WAAW,OAAO,aAAa,aAAa,EAAE,SAAS,WAAW,CAAC;AAE5E,KAAI,cAAc,KAChB,OAAM,IAAI,MAAM,uCAAuC,WAAW,GAAG;AAGvE,QAAO,WAAW,CAAC,aAAa;AAChC,OAAM,UAAU,MAAM,WAAW"}
|
|
1
|
+
{"version":3,"file":"datePickerHelper.mjs","names":[],"sources":["../../src/lib/datePickerHelper.ts"],"sourcesContent":["import { screen, waitFor } from '@testing-library/react';\nimport userEvent from '@testing-library/user-event';\n\n/**\n * Open a PDS DateRangePicker calendar by clicking its month segment and wait for the\n * calendar dialog to appear.\n *\n * In React 18 + jsdom, clicking the wrapper label element (getByLabelText(fieldLabel))\n * does not reliably move focus into the date field. Targeting the \"month\" segment directly\n * works around this.\n */\nexport const openDateRangePicker = async (fieldLabel: string) => {\n await userEvent.click(screen.getByLabelText(`month, ${fieldLabel},`));\n await waitFor(() => {\n expect(screen.getByRole('dialog')).toBeVisible();\n });\n};\n\n/**\n * Click an enabled calendar date button whose aria-label includes dateString.\n * dateString should be in \"MMMM d, yyyy\" format (e.g. \"April 14, 2026\").\n * Requires the calendar dialog to already be open (call openDateRangePicker first).\n */\nexport const clickCalendarDate = async (dateString: string) => {\n const dateButton = screen\n .getAllByRole('button')\n .filter((button) => !button.getAttribute('aria-disabled'))\n .find((button) => button.getAttribute('aria-label')?.includes(dateString));\n\n if (dateButton == null) {\n throw new Error(`Calendar date button not found for \"${dateString}\"`);\n }\n\n expect(dateButton).toBeVisible();\n await userEvent.click(dateButton);\n};\n"],"mappings":";;;;;;;;;;;AAWA,MAAa,sBAAsB,OAAO,eAAuB;AAC/D,OAAM,UAAU,MAAM,OAAO,eAAe,UAAU,WAAW,GAAG,CAAC;AACrE,OAAM,cAAc;AAClB,SAAO,OAAO,UAAU,SAAS,CAAC,CAAC,aAAa;GAChD;;;;;;;AAQJ,MAAa,oBAAoB,OAAO,eAAuB;CAC7D,MAAM,aAAa,OAChB,aAAa,SAAS,CACtB,QAAQ,WAAW,CAAC,OAAO,aAAa,gBAAgB,CAAC,CACzD,MAAM,WAAW,OAAO,aAAa,aAAa,EAAE,SAAS,WAAW,CAAC;AAE5E,KAAI,cAAc,KAChB,OAAM,IAAI,MAAM,uCAAuC,WAAW,GAAG;AAGvE,QAAO,WAAW,CAAC,aAAa;AAChC,OAAM,UAAU,MAAM,WAAW"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region lib/embeddedSurfaceProtocol.d.ts
|
|
1
|
+
//#region src/lib/embeddedSurfaceProtocol.d.ts
|
|
2
2
|
declare const EMBEDDED_SURFACE_CHANNEL = "persona-embedded-surface";
|
|
3
3
|
declare const EMBEDDED_SURFACE_PROTOCOL_VERSION = 1;
|
|
4
4
|
type EmbeddedSurfaceKind = 'hello' | 'surfaceSnapshot' | 'surfaceAck' | 'welcome';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddedSurfaceProtocol.mjs","names":[],"sources":["../../lib/embeddedSurfaceProtocol.ts"],"sourcesContent":["export const EMBEDDED_SURFACE_CHANNEL = 'persona-embedded-surface';\nexport const EMBEDDED_SURFACE_PROTOCOL_VERSION = 1;\n\nexport type EmbeddedSurfaceKind = 'hello' | 'surfaceSnapshot' | 'surfaceAck' | 'welcome';\n\nexport type EmbeddedSurfacePayloads = {\n hello: Record<string, never>;\n surfaceSnapshot: {\n epoch: string;\n surfaces: Array<{ surfaceId: string }>;\n /**\n * Set by children that hold their overlay animation until `surfaceAck`. The host only animates\n * its backdrop for those, so host and child releases can ship in either order.\n */\n awaitsAck: boolean;\n };\n surfaceAck: {\n epoch: string;\n startAt: number;\n surfaces: Array<{ surfaceId: string }>;\n };\n welcome: {\n epoch: string;\n };\n};\n\nexport interface EmbeddedSurfaceEnvelope<K extends EmbeddedSurfaceKind = EmbeddedSurfaceKind> {\n channel: typeof EMBEDDED_SURFACE_CHANNEL;\n version: typeof EMBEDDED_SURFACE_PROTOCOL_VERSION;\n connectionId: string;\n kind: K;\n payload: EmbeddedSurfacePayloads[K];\n}\n\nexport type EmbeddedSurfaceEnvelopeUnion = {\n [K in EmbeddedSurfaceKind]: EmbeddedSurfaceEnvelope<K>;\n}[EmbeddedSurfaceKind];\n\nconst IDENTIFIER_PATTERN = /^[A-Za-z0-9_:-]+$/;\nconst MAX_IDENTIFIER_LENGTH = 64;\nconst MAX_SURFACE_IDS = 16;\n\nconst coerceIdentifier = (value: unknown): string | undefined => {\n if (\n typeof value !== 'string' ||\n value.length < 1 ||\n value.length > MAX_IDENTIFIER_LENGTH ||\n !IDENTIFIER_PATTERN.test(value)\n ) {\n return undefined;\n }\n return value;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value != null && !Array.isArray(value);\n\nconst isKnownKind = (value: unknown): value is EmbeddedSurfaceKind =>\n value === 'hello' || value === 'surfaceSnapshot' || value === 'surfaceAck' || value === 'welcome';\n\nconst getEnvelopeMetadata = (\n value: Record<string, unknown>,\n): { connectionId: string } | undefined => {\n if (\n value.channel !== EMBEDDED_SURFACE_CHANNEL ||\n value.version !== EMBEDDED_SURFACE_PROTOCOL_VERSION\n ) {\n return undefined;\n }\n const connectionId = coerceIdentifier(value.connectionId);\n return connectionId != null ? { connectionId } : undefined;\n};\n\nexport const coerceHostboundEnvelope = (\n value: unknown,\n): EmbeddedSurfaceEnvelopeUnion | undefined => {\n if (!isRecord(value) || !isKnownKind(value.kind)) {\n return undefined;\n }\n const metadata = getEnvelopeMetadata(value);\n if (metadata == null) {\n return undefined;\n }\n const payload = isRecord(value.payload) ? value.payload : undefined;\n if (payload == null) {\n return undefined;\n }\n\n switch (value.kind) {\n case 'hello':\n return {\n channel: EMBEDDED_SURFACE_CHANNEL,\n version: EMBEDDED_SURFACE_PROTOCOL_VERSION,\n ...metadata,\n kind: value.kind,\n payload: {},\n };\n case 'surfaceSnapshot': {\n const epoch = coerceIdentifier(payload.epoch);\n if (\n epoch == null ||\n !Array.isArray(payload.surfaces) ||\n payload.surfaces.length > MAX_SURFACE_IDS\n ) {\n return undefined;\n }\n const surfaces = [];\n for (const surface of payload.surfaces) {\n if (!isRecord(surface)) {\n return undefined;\n }\n const surfaceId = coerceIdentifier(surface.surfaceId);\n if (surfaceId == null) {\n return undefined;\n }\n surfaces.push({ surfaceId });\n }\n return {\n channel: EMBEDDED_SURFACE_CHANNEL,\n version: EMBEDDED_SURFACE_PROTOCOL_VERSION,\n ...metadata,\n kind: value.kind,\n payload: { epoch, surfaces, awaitsAck: payload.awaitsAck === true },\n };\n }\n case 'surfaceAck':\n case 'welcome':\n return undefined;\n }\n};\n\nexport const coerceChildboundEnvelope = (\n value: unknown,\n): EmbeddedSurfaceEnvelopeUnion | undefined => {\n if (!isRecord(value) || (value.kind !== 'welcome' && value.kind !== 'surfaceAck')) {\n return undefined;\n }\n const metadata = getEnvelopeMetadata(value);\n const payload = isRecord(value.payload) ? value.payload : undefined;\n if (metadata == null || payload == null) {\n return undefined;\n }\n\n if (value.kind === 'welcome') {\n const epoch = coerceIdentifier(payload.epoch);\n if (epoch == null) {\n return undefined;\n }\n return {\n channel: EMBEDDED_SURFACE_CHANNEL,\n version: EMBEDDED_SURFACE_PROTOCOL_VERSION,\n ...metadata,\n kind: value.kind,\n payload: { epoch },\n };\n }\n if (!Array.isArray(payload.surfaces) || payload.surfaces.length > MAX_SURFACE_IDS) {\n return undefined;\n }\n const epoch = coerceIdentifier(payload.epoch);\n if (epoch == null) {\n return undefined;\n }\n const startAt = payload.startAt;\n if (typeof startAt !== 'number' || !Number.isFinite(startAt)) {\n return undefined;\n }\n const surfaces = [];\n for (const surface of payload.surfaces) {\n if (!isRecord(surface)) {\n return undefined;\n }\n const surfaceId = coerceIdentifier(surface.surfaceId);\n if (surfaceId == null) {\n return undefined;\n }\n surfaces.push({ surfaceId });\n }\n return {\n channel: EMBEDDED_SURFACE_CHANNEL,\n version: EMBEDDED_SURFACE_PROTOCOL_VERSION,\n ...metadata,\n kind: 'surfaceAck',\n payload: { epoch, startAt, surfaces },\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"embeddedSurfaceProtocol.mjs","names":[],"sources":["../../src/lib/embeddedSurfaceProtocol.ts"],"sourcesContent":["export const EMBEDDED_SURFACE_CHANNEL = 'persona-embedded-surface';\nexport const EMBEDDED_SURFACE_PROTOCOL_VERSION = 1;\n\nexport type EmbeddedSurfaceKind = 'hello' | 'surfaceSnapshot' | 'surfaceAck' | 'welcome';\n\nexport type EmbeddedSurfacePayloads = {\n hello: Record<string, never>;\n surfaceSnapshot: {\n epoch: string;\n surfaces: Array<{ surfaceId: string }>;\n /**\n * Set by children that hold their overlay animation until `surfaceAck`. The host only animates\n * its backdrop for those, so host and child releases can ship in either order.\n */\n awaitsAck: boolean;\n };\n surfaceAck: {\n epoch: string;\n startAt: number;\n surfaces: Array<{ surfaceId: string }>;\n };\n welcome: {\n epoch: string;\n };\n};\n\nexport interface EmbeddedSurfaceEnvelope<K extends EmbeddedSurfaceKind = EmbeddedSurfaceKind> {\n channel: typeof EMBEDDED_SURFACE_CHANNEL;\n version: typeof EMBEDDED_SURFACE_PROTOCOL_VERSION;\n connectionId: string;\n kind: K;\n payload: EmbeddedSurfacePayloads[K];\n}\n\nexport type EmbeddedSurfaceEnvelopeUnion = {\n [K in EmbeddedSurfaceKind]: EmbeddedSurfaceEnvelope<K>;\n}[EmbeddedSurfaceKind];\n\nconst IDENTIFIER_PATTERN = /^[A-Za-z0-9_:-]+$/;\nconst MAX_IDENTIFIER_LENGTH = 64;\nconst MAX_SURFACE_IDS = 16;\n\nconst coerceIdentifier = (value: unknown): string | undefined => {\n if (\n typeof value !== 'string' ||\n value.length < 1 ||\n value.length > MAX_IDENTIFIER_LENGTH ||\n !IDENTIFIER_PATTERN.test(value)\n ) {\n return undefined;\n }\n return value;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value != null && !Array.isArray(value);\n\nconst isKnownKind = (value: unknown): value is EmbeddedSurfaceKind =>\n value === 'hello' || value === 'surfaceSnapshot' || value === 'surfaceAck' || value === 'welcome';\n\nconst getEnvelopeMetadata = (\n value: Record<string, unknown>,\n): { connectionId: string } | undefined => {\n if (\n value.channel !== EMBEDDED_SURFACE_CHANNEL ||\n value.version !== EMBEDDED_SURFACE_PROTOCOL_VERSION\n ) {\n return undefined;\n }\n const connectionId = coerceIdentifier(value.connectionId);\n return connectionId != null ? { connectionId } : undefined;\n};\n\nexport const coerceHostboundEnvelope = (\n value: unknown,\n): EmbeddedSurfaceEnvelopeUnion | undefined => {\n if (!isRecord(value) || !isKnownKind(value.kind)) {\n return undefined;\n }\n const metadata = getEnvelopeMetadata(value);\n if (metadata == null) {\n return undefined;\n }\n const payload = isRecord(value.payload) ? value.payload : undefined;\n if (payload == null) {\n return undefined;\n }\n\n switch (value.kind) {\n case 'hello':\n return {\n channel: EMBEDDED_SURFACE_CHANNEL,\n version: EMBEDDED_SURFACE_PROTOCOL_VERSION,\n ...metadata,\n kind: value.kind,\n payload: {},\n };\n case 'surfaceSnapshot': {\n const epoch = coerceIdentifier(payload.epoch);\n if (\n epoch == null ||\n !Array.isArray(payload.surfaces) ||\n payload.surfaces.length > MAX_SURFACE_IDS\n ) {\n return undefined;\n }\n const surfaces = [];\n for (const surface of payload.surfaces) {\n if (!isRecord(surface)) {\n return undefined;\n }\n const surfaceId = coerceIdentifier(surface.surfaceId);\n if (surfaceId == null) {\n return undefined;\n }\n surfaces.push({ surfaceId });\n }\n return {\n channel: EMBEDDED_SURFACE_CHANNEL,\n version: EMBEDDED_SURFACE_PROTOCOL_VERSION,\n ...metadata,\n kind: value.kind,\n payload: { epoch, surfaces, awaitsAck: payload.awaitsAck === true },\n };\n }\n case 'surfaceAck':\n case 'welcome':\n return undefined;\n }\n};\n\nexport const coerceChildboundEnvelope = (\n value: unknown,\n): EmbeddedSurfaceEnvelopeUnion | undefined => {\n if (!isRecord(value) || (value.kind !== 'welcome' && value.kind !== 'surfaceAck')) {\n return undefined;\n }\n const metadata = getEnvelopeMetadata(value);\n const payload = isRecord(value.payload) ? value.payload : undefined;\n if (metadata == null || payload == null) {\n return undefined;\n }\n\n if (value.kind === 'welcome') {\n const epoch = coerceIdentifier(payload.epoch);\n if (epoch == null) {\n return undefined;\n }\n return {\n channel: EMBEDDED_SURFACE_CHANNEL,\n version: EMBEDDED_SURFACE_PROTOCOL_VERSION,\n ...metadata,\n kind: value.kind,\n payload: { epoch },\n };\n }\n if (!Array.isArray(payload.surfaces) || payload.surfaces.length > MAX_SURFACE_IDS) {\n return undefined;\n }\n const epoch = coerceIdentifier(payload.epoch);\n if (epoch == null) {\n return undefined;\n }\n const startAt = payload.startAt;\n if (typeof startAt !== 'number' || !Number.isFinite(startAt)) {\n return undefined;\n }\n const surfaces = [];\n for (const surface of payload.surfaces) {\n if (!isRecord(surface)) {\n return undefined;\n }\n const surfaceId = coerceIdentifier(surface.surfaceId);\n if (surfaceId == null) {\n return undefined;\n }\n surfaces.push({ surfaceId });\n }\n return {\n channel: EMBEDDED_SURFACE_CHANNEL,\n version: EMBEDDED_SURFACE_PROTOCOL_VERSION,\n ...metadata,\n kind: 'surfaceAck',\n payload: { epoch, startAt, surfaces },\n };\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddedSurfaceRegistry.mjs","names":[],"sources":["../../lib/embeddedSurfaceRegistry.ts"],"sourcesContent":["export interface EmbeddedSurfaceTransport {\n send(message: unknown): void;\n subscribe(callback: (message: unknown) => void): () => void;\n}\n\nlet transport: EmbeddedSurfaceTransport | null = null;\nconst transportChangeSubscribers = new Set<() => void>();\n\nexport const setEmbeddedSurfaceTransport = (\n nextTransport: EmbeddedSurfaceTransport | null,\n): void => {\n if (transport === nextTransport) {\n return;\n }\n transport = nextTransport;\n transportChangeSubscribers.forEach((subscriber) => subscriber());\n};\n\nexport const getEmbeddedSurfaceTransport = (): EmbeddedSurfaceTransport | null => transport;\n\nexport const subscribeEmbeddedSurfaceTransportChanges = (callback: () => void): (() => void) => {\n transportChangeSubscribers.add(callback);\n return () => {\n transportChangeSubscribers.delete(callback);\n };\n};\n"],"mappings":";AAKA,IAAI,YAA6C;AACjD,MAAM,6CAA6B,IAAI,KAAiB;AAExD,MAAa,+BACX,kBACS;AACT,KAAI,cAAc,cAChB;AAEF,aAAY;AACZ,4BAA2B,SAAS,eAAe,YAAY,CAAC;;AAGlE,MAAa,oCAAqE;AAElF,MAAa,4CAA4C,aAAuC;AAC9F,4BAA2B,IAAI,SAAS;AACxC,cAAa;AACX,6BAA2B,OAAO,SAAS"}
|
|
1
|
+
{"version":3,"file":"embeddedSurfaceRegistry.mjs","names":[],"sources":["../../src/lib/embeddedSurfaceRegistry.ts"],"sourcesContent":["export interface EmbeddedSurfaceTransport {\n send(message: unknown): void;\n subscribe(callback: (message: unknown) => void): () => void;\n}\n\nlet transport: EmbeddedSurfaceTransport | null = null;\nconst transportChangeSubscribers = new Set<() => void>();\n\nexport const setEmbeddedSurfaceTransport = (\n nextTransport: EmbeddedSurfaceTransport | null,\n): void => {\n if (transport === nextTransport) {\n return;\n }\n transport = nextTransport;\n transportChangeSubscribers.forEach((subscriber) => subscriber());\n};\n\nexport const getEmbeddedSurfaceTransport = (): EmbeddedSurfaceTransport | null => transport;\n\nexport const subscribeEmbeddedSurfaceTransportChanges = (callback: () => void): (() => void) => {\n transportChangeSubscribers.add(callback);\n return () => {\n transportChangeSubscribers.delete(callback);\n };\n};\n"],"mappings":";AAKA,IAAI,YAA6C;AACjD,MAAM,6CAA6B,IAAI,KAAiB;AAExD,MAAa,+BACX,kBACS;AACT,KAAI,cAAc,cAChB;AAEF,aAAY;AACZ,4BAA2B,SAAS,eAAe,YAAY,CAAC;;AAGlE,MAAa,oCAAqE;AAElF,MAAa,4CAA4C,aAAuC;AAC9F,4BAA2B,IAAI,SAAS;AACxC,cAAa;AACX,6BAA2B,OAAO,SAAS"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region lib/errorReporter.d.ts
|
|
1
|
+
//#region src/lib/errorReporter.d.ts
|
|
2
2
|
/** Configure how PDS reports non-fatal errors from non-React code paths (e.g. method-chain serialization). */
|
|
3
3
|
declare const setErrorReporter: (next: (error: Error) => void) => void;
|
|
4
4
|
declare const reportError: (error: Error) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorReporter.mjs","names":[],"sources":["../../lib/errorReporter.ts"],"sourcesContent":["let reporter: (error: Error) => void = (error) => {\n console.error(error);\n};\n\n/** Configure how PDS reports non-fatal errors from non-React code paths (e.g. method-chain serialization). */\nexport const setErrorReporter = (next: (error: Error) => void): void => {\n reporter = next;\n};\n\nexport const reportError = (error: Error): void => {\n reporter(error);\n};\n"],"mappings":";AAAA,IAAI,YAAoC,UAAU;AAChD,SAAQ,MAAM,MAAM;;;AAItB,MAAa,oBAAoB,SAAuC;AACtE,YAAW;;AAGb,MAAa,eAAe,UAAuB;AACjD,UAAS,MAAM"}
|
|
1
|
+
{"version":3,"file":"errorReporter.mjs","names":[],"sources":["../../src/lib/errorReporter.ts"],"sourcesContent":["let reporter: (error: Error) => void = (error) => {\n console.error(error);\n};\n\n/** Configure how PDS reports non-fatal errors from non-React code paths (e.g. method-chain serialization). */\nexport const setErrorReporter = (next: (error: Error) => void): void => {\n reporter = next;\n};\n\nexport const reportError = (error: Error): void => {\n reporter(error);\n};\n"],"mappings":";AAAA,IAAI,YAAoC,UAAU;AAChD,SAAQ,MAAM,MAAM;;;AAItB,MAAa,oBAAoB,SAAuC;AACtE,YAAW;;AAGb,MAAa,eAAe,UAAuB;AACjD,UAAS,MAAM"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as DEFAULT_COMMON_STRINGS, i as CommonStrings, n as CommonStringOverrides, o as resolveCommonStrings, r as CommonStringValue, t as CommonStringKey } from "../../strings-
|
|
2
|
-
import { i as usePDSStrings, n as PDSI18nProviderProps, r as usePDSLocale, t as PDSI18nProvider } from "../../I18nContext-
|
|
3
|
-
import { a as formatDateTime, i as formatDate, n as LEGACY_DATETIME_FORMAT, o as formatTimeZoneName, r as LEGACY_DATE_FORMAT, s as usesLegacyDateFormat, t as FormatDateTimeOptions } from "../../formatDateTime-
|
|
1
|
+
import { a as DEFAULT_COMMON_STRINGS, i as CommonStrings, n as CommonStringOverrides, o as resolveCommonStrings, r as CommonStringValue, t as CommonStringKey } from "../../strings-CK9n6b65.mjs";
|
|
2
|
+
import { i as usePDSStrings, n as PDSI18nProviderProps, r as usePDSLocale, t as PDSI18nProvider } from "../../I18nContext-EPmbUprm.mjs";
|
|
3
|
+
import { a as formatDateTime, i as formatDate, n as LEGACY_DATETIME_FORMAT, o as formatTimeZoneName, r as LEGACY_DATE_FORMAT, s as usesLegacyDateFormat, t as FormatDateTimeOptions } from "../../formatDateTime-BikGGrvq.mjs";
|
|
4
4
|
export { CommonStringKey, CommonStringOverrides, CommonStringValue, CommonStrings, DEFAULT_COMMON_STRINGS, FormatDateTimeOptions, LEGACY_DATETIME_FORMAT, LEGACY_DATE_FORMAT, PDSI18nProvider, PDSI18nProviderProps, formatDate, formatDateTime, formatTimeZoneName, resolveCommonStrings, usePDSLocale, usePDSStrings, usesLegacyDateFormat };
|
package/dist/lib/i18n/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as formatTimeZoneName, c as usePDSLocale, d as resolveCommonStrings, i as formatDateTime, l as usePDSStrings, n as LEGACY_DATE_FORMAT, o as usesLegacyDateFormat, r as formatDate, s as PDSI18nProvider, t as LEGACY_DATETIME_FORMAT, u as DEFAULT_COMMON_STRINGS } from "../../i18n-
|
|
1
|
+
import { a as formatTimeZoneName, c as usePDSLocale, d as resolveCommonStrings, i as formatDateTime, l as usePDSStrings, n as LEGACY_DATE_FORMAT, o as usesLegacyDateFormat, r as formatDate, s as PDSI18nProvider, t as LEGACY_DATETIME_FORMAT, u as DEFAULT_COMMON_STRINGS } from "../../i18n-BLyCaSdJ.mjs";
|
|
2
2
|
export { DEFAULT_COMMON_STRINGS, LEGACY_DATETIME_FORMAT, LEGACY_DATE_FORMAT, PDSI18nProvider, formatDate, formatDateTime, formatTimeZoneName, resolveCommonStrings, usePDSLocale, usePDSStrings, usesLegacyDateFormat };
|
|
@@ -1,2 +1,2 @@
|
|
|
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-
|
|
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-DUkfAip_.mjs";
|
|
2
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonSchema.mjs","names":[],"sources":["../../lib/jsonSchema.ts"],"sourcesContent":["import { startCase } from 'lodash-es';\n\nimport type {\n FunctionConvertedTypeSchema,\n FunctionGenericParameterSchema,\n FunctionJsonSchema,\n FunctionParameterJsonSchema,\n FunctionReturnTypeJsonSchema,\n ObjectSchemaMap,\n} from './objectSchemaTypes';\n/**\n * Consumers with a known set of platform object keys can narrow `objectKey`\n * via declaration merging:\n *\n * declare module '@persona/design-system/lib/jsonSchema' {\n * interface JsonSchemaObjectKeyRegistry { objectKey: MyObjectKeyEnum }\n * }\n */\nexport interface JsonSchemaObjectKeyRegistry {}\n\nexport type JsonSchemaObjectKey = JsonSchemaObjectKeyRegistry extends {\n objectKey: infer K extends string;\n}\n ? K\n : string;\n\n/**\n * Field types are consumer-defined. Register them by mapping each field type to the JSON type it\n * serializes as (`null` when it has no fixed JSON type); PDS derives the full `fieldType` set and\n * each JSON schema interface's allowed `fieldType`s from the map:\n *\n * const FIELD_TYPE_JSON_TYPES = {\n * [MyFieldType.File]: 'object',\n * [MyFieldType.Alias]: null,\n * } as const satisfies Record<MyFieldType, `${JsonSchemaTypes}` | null>;\n *\n * declare module '@persona/design-system/lib/jsonSchema' {\n * interface JsonSchemaFieldTypeRegistry { fieldTypes: typeof FIELD_TYPE_JSON_TYPES }\n * }\n *\n * See the \"Lib/JSON Schema\" docs page for the full guide.\n */\nexport interface JsonSchemaFieldTypeRegistry {}\n\nexport type JsonSchemaFieldType = JsonSchemaFieldTypeRegistry extends { fieldTypes: infer M }\n ? keyof M & string\n : string;\n\ntype FieldTypeKind = `${Exclude<JsonSchemaTypes, JsonSchemaTypes.Null>}`;\n\ntype FieldTypeFor<K extends FieldTypeKind> = JsonSchemaFieldTypeRegistry extends {\n fieldTypes: infer M;\n}\n ? { [P in keyof M]: M[P] extends K ? P : never }[keyof M] & string\n : string;\n\n/** A field type this module gives runtime meaning to, as the consumer's type spells it. */\ntype KnownFieldType<V extends string> = string extends JsonSchemaFieldType\n ? V\n : Extract<JsonSchemaFieldType, V>;\n\nexport enum JsonSchemaTypes {\n Array = 'array',\n Boolean = 'boolean',\n Integer = 'integer',\n Number = 'number',\n Object = 'object',\n String = 'string',\n Null = 'null',\n}\n\nexport enum JsonSchemaCustomTypes {\n Date = 'date',\n Datetime = 'datetime',\n Enum = 'enum',\n File = 'file',\n MultiEnum = 'multi-enum',\n GroupedEnum = 'grouped-enum',\n Relation = 'relation',\n MaskedString = 'secret',\n Unknown = 'unknown',\n}\n\nexport type JsonSchemaAllTypes = JsonSchemaTypes | JsonSchemaCustomTypes;\nexport const JsonSchemaAllTypes = {\n ...JsonSchemaTypes,\n ...JsonSchemaCustomTypes,\n};\n\nexport const JsonSchemaStringifiableTypes = [\n JsonSchemaTypes.Boolean,\n JsonSchemaTypes.Integer,\n JsonSchemaTypes.Number,\n JsonSchemaTypes.String,\n JsonSchemaCustomTypes.Date,\n JsonSchemaCustomTypes.Enum,\n];\n\nexport type JsonSchemaBasicTypes =\n | JsonSchemaTypes.Boolean\n | JsonSchemaTypes.Integer\n | JsonSchemaTypes.Number\n | JsonSchemaTypes.String;\n\nexport interface JsonSchemaBase {\n title?: string;\n description?: string;\n examples?: (string | number)[];\n oneOf?: JsonSchema[];\n $ref?: string;\n $id?: string;\n id?: string; // custom\n // TODO: This likely should be a `JsonSchema` not an object containing only `type` but currently\n // only simple objects with a `type` property are expected.\n // Setting the correct type causes too-deep type recursion errors elsewhere.\n serializedSchema?: { type: JsonSchemaTypes } | null; // custom;\n default?: unknown;\n readOnly?: boolean;\n}\n\nexport interface JsonSchemaArray<ItemSchema = JsonSchema> extends JsonSchemaBase {\n type: JsonSchemaTypes.Array;\n items: ItemSchema;\n uniqueItems?: boolean;\n fieldType?: FieldTypeFor<'array'>; // custom\n default?: unknown[];\n supportedFunctions?: string[];\n}\n\nexport interface JsonSchemaBoolean extends JsonSchemaBase {\n type: JsonSchemaTypes.Boolean;\n fieldType?: FieldTypeFor<'boolean'>; // custom\n default?: boolean;\n}\n\nexport interface JsonSchemaInteger extends JsonSchemaBase {\n type: JsonSchemaTypes.Integer;\n enum?: number[];\n minimum?: number;\n maximum?: number;\n fieldType?: FieldTypeFor<'integer'>; // custom\n default?: number;\n}\n\nexport interface JsonSchemaNumber extends JsonSchemaBase {\n type: JsonSchemaTypes.Number;\n enum?: number[];\n minimum?: number;\n maximum?: number;\n fieldType?: FieldTypeFor<'number'>; // custom\n default?: number;\n}\n\nexport interface JsonSchemaNull extends JsonSchemaBase {\n type: JsonSchemaTypes.Null;\n default?: null;\n}\n\nexport interface JsonSchemaObject<PropertySchema = JsonSchema> extends JsonSchemaBase {\n type: JsonSchemaTypes.Object;\n properties: Record<string, PropertySchema>;\n required?: string[];\n // custom\n objectKey?: JsonSchemaObjectKey;\n // custom\n fieldType?: FieldTypeFor<'object'>;\n // custom\n isVariable?: boolean;\n // custom: picker subtitle for a chain root; generated root `description`s\n // otherwise just repeat the label and are hidden\n rootDescription?: string;\n // `true` admits keys missing from `properties` with an unknown type; a schema types them.\n additionalProperties?: boolean | JsonSchema;\n baseSupportedFunctions?: string[];\n}\n\nexport const EMPTY_JSON_SCHEMA_OBJECT: JsonSchemaObject = {\n type: JsonSchemaTypes.Object,\n properties: {},\n};\n\nexport interface JsonSchemaString extends JsonSchemaBase {\n type: JsonSchemaTypes.String;\n enum?: string[];\n oneOf?: JsonSchemaConst[];\n const?: string;\n format?: string;\n group?: string; // custom\n labels?: string[]; // custom\n maxLength?: number | null;\n fieldType?: FieldTypeFor<'string'>; // custom\n default?: string;\n}\n\nexport interface JsonSchemaAnyOf extends JsonSchemaBase {\n anyOf: JsonSchema[];\n}\n\nexport interface JsonSchemaConst extends JsonSchemaBase {\n const: string;\n}\n\nexport interface JsonSchemaRef extends JsonSchemaBase {\n $ref: string;\n // custom\n objectKey?: JsonSchemaObjectKey;\n}\n\nexport type JsonSchemaEmpty = Record<string, never>;\n\nexport type JsonSchemaBasic =\n | JsonSchemaBoolean\n | JsonSchemaInteger\n | JsonSchemaNumber\n | JsonSchemaString;\n\n// This is an explicit type for json schemas that only use the standard types.\n// e.g. All subschemas will have a `type` attribute.\n// This is useful for when you know you won't be dealing with any uncommon schemas like anyOf.\nexport type JsonSchemaCore =\n | JsonSchemaArray<JsonSchemaCore>\n | JsonSchemaBoolean\n | JsonSchemaInteger\n | JsonSchemaNumber\n | JsonSchemaObject<JsonSchemaCore>\n | JsonSchemaString;\n\nexport type JsonSchema =\n | JsonSchemaArray\n | JsonSchemaBoolean\n | JsonSchemaInteger\n | JsonSchemaNumber\n | JsonSchemaObject\n | JsonSchemaString\n | JsonSchemaAnyOf\n | JsonSchemaConst\n | JsonSchemaRef\n | JsonSchemaBase;\n\nexport const isJsonSchemaObject = (schema: JsonSchema): schema is JsonSchemaObject => {\n return 'type' in schema && schema.type === JsonSchemaTypes.Object;\n};\n\nexport const isJsonSchemaArray = (schema: JsonSchema): schema is JsonSchemaArray => {\n return 'type' in schema && schema.type === JsonSchemaTypes.Array;\n};\n\n/** Returns true for non-primitive schemas (object, array, or $ref to a platform object). */\nexport const isNonPrimitiveSchema = (schema: JsonSchema): boolean =>\n isJsonSchemaObject(schema) || isJsonSchemaArray(schema) || isJsonSchemaRef(schema);\n\nexport const isFileType = (\n fieldType: JsonSchemaFieldType | undefined,\n): fieldType is KnownFieldType<'file'> => fieldType === 'file';\n\nexport const isJsonType = (\n fieldType: JsonSchemaFieldType | undefined,\n): fieldType is KnownFieldType<'json'> => fieldType === 'json';\n\nexport const isFileField = (schema: JsonSchema): boolean =>\n 'fieldType' in schema && isFileType(schema.fieldType);\n\nexport const isArrayWithFileItems = (schema: JsonSchema): boolean =>\n isJsonSchemaArray(schema) &&\n !!schema.items &&\n typeof schema.items === 'object' &&\n 'fieldType' in schema.items &&\n isFileType(schema.items.fieldType);\n\n/** ImageGallery accepts file schemas or arrays of file items. */\nexport const isFileSchema = (schema: JsonSchema): boolean =>\n isFileField(schema) || isArrayWithFileItems(schema);\n\nexport const isJsonSchemaRef = (schema: JsonSchema): schema is JsonSchemaRef => {\n return '$ref' in schema;\n};\n\nexport const isJsonSchemaPlatformObject = (schema: JsonSchema): schema is JsonSchemaRef => {\n return isJsonSchemaRef(schema) && 'objectKey' in schema;\n};\n\nexport const isJsonSchemaString = (schema: JsonSchema): schema is JsonSchemaString => {\n return 'type' in schema && schema.type === JsonSchemaTypes.String;\n};\n\nexport const isJsonSchemaDate = (schema: JsonSchema): schema is JsonSchemaString => {\n return (\n 'type' in schema &&\n schema.type === JsonSchemaTypes.String &&\n 'format' in schema &&\n schema.format === 'date'\n );\n};\n\nexport const isJsonSchemaDateTime = (schema: JsonSchema): schema is JsonSchemaString => {\n return (\n 'type' in schema &&\n schema.type === JsonSchemaTypes.String &&\n 'format' in schema &&\n schema.format === 'date-time'\n );\n};\n\nexport const isJsonSchemaSecret = (schema: JsonSchema): schema is JsonSchemaString => {\n return (\n 'type' in schema &&\n schema.type === JsonSchemaTypes.String &&\n 'format' in schema &&\n schema.format === 'secret'\n );\n};\n\nexport const isOneOfSchema = (\n schema: JsonSchema,\n): schema is JsonSchemaBase & { oneOf: JsonSchemaConst[] } => {\n return 'oneOf' in schema && schema.oneOf != null && Array.isArray(schema.oneOf);\n};\n\nexport const isOneOfStringSchema = (\n schema: JsonSchema,\n): schema is JsonSchemaString & { oneOf: JsonSchemaConst[] } => {\n return (\n isJsonSchemaString(schema) &&\n 'oneOf' in schema &&\n schema.oneOf != null &&\n Array.isArray(schema.oneOf)\n );\n};\n\nexport const isFunctionSchema = (schema: JsonSchema): schema is FunctionJsonSchema => {\n return schema && 'function' in schema && !!schema.function;\n};\n\nexport const genericArrayItemSchema = (\n object: JsonSchema,\n schema: FunctionParameterJsonSchema | FunctionReturnTypeJsonSchema,\n): JsonSchema | null => {\n if (!('genericType' in schema) || schema.genericType !== 'array_item_schema') {\n return null;\n }\n const array = withNameableType(object);\n return array != null && isJsonSchemaArray(array) && isSubschema(array.items) ? array.items : null;\n};\n\nexport const isPrecedingSchema = (\n schema: FunctionParameterJsonSchema | FunctionReturnTypeJsonSchema,\n) => {\n return 'genericType' in schema && schema.genericType === 'preceding_schema';\n};\n\nexport const isGenericParameterSchema = (\n schema: FunctionParameterJsonSchema | FunctionReturnTypeJsonSchema,\n): schema is FunctionGenericParameterSchema => {\n return (\n 'genericType' in schema && schema.genericType === 'parameter_schema' && 'position' in schema\n );\n};\n\nexport const isConvertedTypeSchema = (\n schema: FunctionParameterJsonSchema | FunctionReturnTypeJsonSchema,\n): schema is FunctionConvertedTypeSchema => {\n return (\n 'genericType' in schema && schema.genericType === 'converted_type' && 'schemaByValue' in schema\n );\n};\n\nexport const isJsonSchemaChoices = (schema: JsonSchema): schema is JsonSchemaString => {\n return 'type' in schema && schema.type === JsonSchemaTypes.String && 'enum' in schema;\n};\n\nexport const isJsonSchemaInteger = (schema: JsonSchema): schema is JsonSchemaInteger => {\n return 'type' in schema && schema.type === JsonSchemaTypes.Integer;\n};\n\nexport const isJsonSchemaNumber = (schema: JsonSchema): schema is JsonSchemaNumber => {\n return 'type' in schema && schema.type === JsonSchemaTypes.Number;\n};\n\nexport const isJsonSchemaBoolean = (schema: JsonSchema): schema is JsonSchemaBoolean => {\n return 'type' in schema && schema.type === JsonSchemaTypes.Boolean;\n};\n\nexport const functionParametersFromJsonSchema = (\n functionSchema: JsonSchema,\n currentSchema: JsonSchema,\n): JsonSchema[] => {\n if (!isFunctionSchema(functionSchema)) {\n return [];\n }\n\n const paramTypes = functionSchema.properties.parameterTypes;\n const orderedParams: JsonSchema[] = [];\n Object.entries(paramTypes.properties).forEach(([title, paramObject]) => {\n orderedParams[paramObject.position] = {\n title,\n ...(genericArrayItemSchema(currentSchema, paramObject) ?? paramObject),\n };\n });\n return orderedParams;\n};\n\nexport const getArrayItemType = (schema: JsonSchema): JsonSchemaTypes | null => {\n if (!isJsonSchemaArray(schema) || !('type' in schema.items) || schema.items.type == null) {\n return null;\n }\n\n const itemType = schema.items.type;\n\n switch (itemType) {\n case JsonSchemaTypes.Boolean:\n case JsonSchemaTypes.Integer:\n case JsonSchemaTypes.Number:\n case JsonSchemaTypes.Object:\n case JsonSchemaTypes.String:\n return itemType;\n case JsonSchemaTypes.Array:\n // Nested arrays are not supported for simple array item types\n return null;\n default:\n return null;\n }\n};\n\n/**\n * Display labels for field-backed schemas, whose JSON type alone is too coarse to identify them:\n * every file and relation field serializes as `object`, so only `fieldType` distinguishes a document\n * from a selfie from a plain hash. Shared by both the array-item and object branches below so a type\n * can't be labelled two ways depending on whether it is wrapped in an array.\n *\n * Values follow `FIELD_SCHEMA_TYPE_DISPLAY` in `front-end/lib/fields` so the same field reads the same in the\n * field-schema editor and in these pickers. They are duplicated rather than imported because\n * `front-end/lib/fields` imports this module, and this label map is deliberately dependency-free.\n *\n * These are names, so they are intentionally finer-grained than `getDataTypeFromJsonSchema`, which\n * resolves the same schemas to a rendering strategy: it has no relation case (base `Field::Relation`\n * lands on `DataType.Hash`) and folds NFC into `DataType.GovernmentId`. A label wants to be as\n * specific as the schema allows; a DataType wants to be as specific as the renderer supports.\n *\n * The base `Field::Relation` appears when a producer erases the concrete subtype; \"Relation\" is\n * vague but still truer than the bare JSON type.\n */\nconst FIELD_TYPE_LABELS: Partial<Record<string, string>> = {\n 'Field::Relation::Document::Generic': 'Document',\n file: 'File',\n 'Field::Relation::Document::GovernmentId': 'Government ID',\n 'Field::Relation::Document::GovernmentIdNfc': 'Government ID NFC',\n hash: 'Hash',\n json: 'JSON',\n 'platform-file': 'Platform File',\n 'Field::Relation': 'Relation',\n 'Field::Relation::Selfie': 'Selfie',\n};\n\n/**\n * Names the field types that are all `type: 'string'` in JSON Schema and are told apart only by a\n * marker, so an item inside an array reads the same as it would on its own. Returns null for a\n * plain string, leaving the caller to fall back to the JSON type.\n */\nconst stringSubtypeLabel = (schema: JsonSchema): string | null => {\n if (!isJsonSchemaString(schema)) {\n return null;\n }\n if (schema.fieldType === 'choices') {\n return 'Choices';\n }\n // The backend platform-object schema sends both markers for an email address; a schema built\n // from a field schema on the client sends `format` alone.\n if (schema.fieldType === 'email-address' || schema.format === 'email') {\n return 'Email Address';\n }\n if (schema.format === 'date-time') {\n return 'Datetime';\n }\n if (schema.format === 'date') {\n return 'Date';\n }\n if (schema.format === 'secret') {\n return 'Secret';\n }\n return null;\n};\n\n/**\n * An `items` slot holds a boolean in JSON Schema 2020-12, and anything at all in a hand-written\n * schema, so a label rule can only treat it as a schema once it is an object.\n */\nconst isSubschema = (items: unknown): items is JsonSchema =>\n items != null && typeof items === 'object';\n\n/**\n * Restates a `type` union as the single type it names, so a caller can apply one label rule to a\n * nullable schema and its non-nullable form alike. Returns null when the type names nothing a label\n * can use: no `type` at all, or a union wider than nullable.\n */\nconst withNameableType = (\n schema: JsonSchema | FunctionJsonSchema,\n): (JsonSchema & { type: JsonSchemaTypes }) | null => {\n if (!('type' in schema)) {\n return null;\n }\n const type = schema.type as JsonSchemaTypes | JsonSchemaTypes[];\n const nameable = typeof type === 'string' ? type : getNonNullableType(schema);\n if (nameable == null) {\n return null;\n }\n const named = { ...schema, type: nameable };\n return named as JsonSchema & { type: JsonSchemaTypes };\n};\n\nexport const humanizeSchemaType = ({\n schema,\n parentSchema = {},\n}: {\n schema: JsonSchema | FunctionJsonSchema;\n parentSchema?: JsonSchema;\n}): string => {\n if ('function' in schema && schema.function) {\n return 'Function';\n }\n\n const format = (typeName: string, { asArray = false }: { asArray?: boolean } = {}): string => {\n return startCase(typeName.split('/')[0]) + (asArray ? '[]' : '');\n };\n\n // Unlike a `type`, an `objectKey` is never narrowed before it gets here, and a customer-authored\n // schema can hold anything in it.\n const formatObjectKey = (objectKey: unknown, options: { asArray?: boolean } = {}): string =>\n typeof objectKey === 'string' ? format(objectKey, options) : 'Unsupported';\n\n if ('genericType' in schema && schema.genericType === 'array_item_schema') {\n const parent = withNameableType(parentSchema);\n\n if (parent != null && isJsonSchemaArray(parent) && isSubschema(parent.items)) {\n if ('objectKey' in parent.items && parent.items.objectKey) {\n return formatObjectKey(parent.items.objectKey);\n }\n\n if ('type' in parent.items) {\n // The option here is the item itself, so an item type that names nothing leaves no outer\n // type to fall back on.\n const items = withNameableType(parent.items);\n return items == null ? 'Unsupported' : (stringSubtypeLabel(items) ?? format(items.type));\n }\n }\n }\n\n if (isJsonSchemaRef(schema) && schema.objectKey) {\n return formatObjectKey(schema.objectKey);\n }\n\n if (!('type' in schema)) {\n return '';\n }\n\n // Resolved before any rule reads the type, so a nullable schema is labelled the same way whether\n // it stands alone or sits in an array.\n const named = withNameableType(schema);\n if (named == null) {\n // TODO(PLO-345): return one label per non-null type for multi-non-null schemas.\n return 'Unsupported';\n }\n\n if (isJsonSchemaArray(named)) {\n if (named.fieldType === 'multi-choices') {\n return 'Multi Choices';\n }\n\n if (isSubschema(named.items)) {\n if ('objectKey' in named.items && named.items.objectKey) {\n return formatObjectKey(named.items.objectKey, { asArray: true });\n }\n\n // An item schema with no nameable type leaves the array reading as its own `Array` type,\n // which is still true of the value.\n const items = withNameableType(named.items);\n if (items != null) {\n // Object items are named by their `fieldType`; ones without a recognized marker read as\n // `Hash[]` rather than `Object[]`, since a bare `object` says nothing useful to a reader.\n if (isJsonSchemaObject(items)) {\n const itemLabel = items.fieldType && FIELD_TYPE_LABELS[items.fieldType];\n return `${itemLabel ?? 'Hash'}[]`;\n }\n\n const itemLabel = stringSubtypeLabel(items);\n if (itemLabel) {\n return `${itemLabel}[]`;\n }\n\n return format(items.type, { asArray: true });\n }\n }\n }\n\n if (isJsonSchemaString(named)) {\n if ('objectKey' in named && named.objectKey != null) {\n return formatObjectKey(named.objectKey);\n }\n const label = stringSubtypeLabel(named);\n if (label) {\n return label;\n }\n }\n\n if (isJsonSchemaObject(named)) {\n if (named.objectKey) {\n return formatObjectKey(named.objectKey);\n }\n\n // An untagged object has no field type to name it, so it falls through to its JSON type.\n const label = named.fieldType && FIELD_TYPE_LABELS[named.fieldType];\n if (label) {\n return label;\n }\n }\n\n return format(named.type);\n};\n\nexport const getNonNullableType = (\n schema: JsonSchema | FunctionJsonSchema | null | undefined,\n): JsonSchemaTypes | null => {\n if (!schema || !('type' in schema)) {\n return null;\n }\n const type = schema.type as JsonSchemaTypes | JsonSchemaTypes[];\n if (!Array.isArray(type)) {\n return null;\n }\n if (type.length !== 2 || !type.includes(JsonSchemaTypes.Null)) {\n return null;\n }\n // Only the cast above makes a member a `JsonSchemaTypes`; a hand-written schema can put anything\n // in the union, and callers splat this into a `type` their own callers then read as a name.\n const nonNullable = type.find((t) => t !== JsonSchemaTypes.Null);\n return typeof nonNullable === 'string' ? nonNullable : null;\n};\n\n/**\n * Unwraps an exactly-nullable platform-object union — a `oneOf` of one `$ref`\n * member and one `null` member — to its `$ref` member. Any other shape\n * (arbitrary unions, multiple refs, inline members) returns null so it is\n * never treated as a single receiver type.\n */\nexport const getNonNullableRefSchema = (\n schema: JsonSchema | null | undefined,\n): JsonSchemaRef | null => {\n if (!schema || !('oneOf' in schema) || !Array.isArray(schema.oneOf)) {\n return null;\n }\n if ('type' in schema || schema.oneOf.length !== 2) {\n return null;\n }\n const nullMembers: JsonSchema[] = schema.oneOf.filter(\n (member) => 'type' in member && (member.type as JsonSchemaTypes) === JsonSchemaTypes.Null,\n );\n if (nullMembers.length !== 1) {\n return null;\n }\n const refMember = schema.oneOf.find((member) => !nullMembers.includes(member));\n return refMember && isJsonSchemaRef(refMember) ? refMember : null;\n};\n\nexport const isSchemaTypeAllowed = (\n schema: JsonSchema | FunctionJsonSchema | null | undefined,\n allowedTypes: readonly string[],\n): boolean => {\n if (!schema) {\n return false;\n }\n const nonNullable = getNonNullableType(schema);\n if (nonNullable) {\n return allowedTypes.includes(nonNullable);\n }\n if ('type' in schema && !Array.isArray(schema.type) && allowedTypes.includes(schema.type)) {\n return true;\n }\n if ('format' in schema && typeof schema.format === 'string') {\n return allowedTypes.includes(schema.format);\n }\n return false;\n};\n\nexport const extendSchema = (\n schemaMap: ObjectSchemaMap,\n schemaToAdd: Partial<Record<keyof typeof schemaMap, Record<string, JsonSchema>>>,\n): ObjectSchemaMap => {\n return Object.fromEntries(\n Object.entries(schemaMap).map(([key, schema]) => {\n return [\n key,\n {\n ...schema,\n properties: {\n ...schema?.properties,\n ...schemaToAdd[key],\n },\n },\n ];\n }),\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jsonSchema.mjs","names":[],"sources":["../../src/lib/jsonSchema.ts"],"sourcesContent":["import { startCase } from 'lodash-es';\n\nimport type {\n FunctionConvertedTypeSchema,\n FunctionGenericParameterSchema,\n FunctionJsonSchema,\n FunctionParameterJsonSchema,\n FunctionReturnTypeJsonSchema,\n ObjectSchemaMap,\n} from './objectSchemaTypes';\n/**\n * Consumers with a known set of platform object keys can narrow `objectKey`\n * via declaration merging:\n *\n * declare module '@persona/design-system/lib/jsonSchema' {\n * interface JsonSchemaObjectKeyRegistry { objectKey: MyObjectKeyEnum }\n * }\n */\nexport interface JsonSchemaObjectKeyRegistry {}\n\nexport type JsonSchemaObjectKey = JsonSchemaObjectKeyRegistry extends {\n objectKey: infer K extends string;\n}\n ? K\n : string;\n\n/**\n * Field types are consumer-defined. Register them by mapping each field type to the JSON type it\n * serializes as (`null` when it has no fixed JSON type); PDS derives the full `fieldType` set and\n * each JSON schema interface's allowed `fieldType`s from the map:\n *\n * const FIELD_TYPE_JSON_TYPES = {\n * [MyFieldType.File]: 'object',\n * [MyFieldType.Alias]: null,\n * } as const satisfies Record<MyFieldType, `${JsonSchemaTypes}` | null>;\n *\n * declare module '@persona/design-system/lib/jsonSchema' {\n * interface JsonSchemaFieldTypeRegistry { fieldTypes: typeof FIELD_TYPE_JSON_TYPES }\n * }\n *\n * See the \"Lib/JSON Schema\" docs page for the full guide.\n */\nexport interface JsonSchemaFieldTypeRegistry {}\n\nexport type JsonSchemaFieldType = JsonSchemaFieldTypeRegistry extends { fieldTypes: infer M }\n ? keyof M & string\n : string;\n\ntype FieldTypeKind = `${Exclude<JsonSchemaTypes, JsonSchemaTypes.Null>}`;\n\ntype FieldTypeFor<K extends FieldTypeKind> = JsonSchemaFieldTypeRegistry extends {\n fieldTypes: infer M;\n}\n ? { [P in keyof M]: M[P] extends K ? P : never }[keyof M] & string\n : string;\n\n/** A field type this module gives runtime meaning to, as the consumer's type spells it. */\ntype KnownFieldType<V extends string> = string extends JsonSchemaFieldType\n ? V\n : Extract<JsonSchemaFieldType, V>;\n\nexport enum JsonSchemaTypes {\n Array = 'array',\n Boolean = 'boolean',\n Integer = 'integer',\n Number = 'number',\n Object = 'object',\n String = 'string',\n Null = 'null',\n}\n\nexport enum JsonSchemaCustomTypes {\n Date = 'date',\n Datetime = 'datetime',\n Enum = 'enum',\n File = 'file',\n MultiEnum = 'multi-enum',\n GroupedEnum = 'grouped-enum',\n Relation = 'relation',\n MaskedString = 'secret',\n Unknown = 'unknown',\n}\n\nexport type JsonSchemaAllTypes = JsonSchemaTypes | JsonSchemaCustomTypes;\nexport const JsonSchemaAllTypes = {\n ...JsonSchemaTypes,\n ...JsonSchemaCustomTypes,\n};\n\nexport const JsonSchemaStringifiableTypes = [\n JsonSchemaTypes.Boolean,\n JsonSchemaTypes.Integer,\n JsonSchemaTypes.Number,\n JsonSchemaTypes.String,\n JsonSchemaCustomTypes.Date,\n JsonSchemaCustomTypes.Enum,\n];\n\nexport type JsonSchemaBasicTypes =\n | JsonSchemaTypes.Boolean\n | JsonSchemaTypes.Integer\n | JsonSchemaTypes.Number\n | JsonSchemaTypes.String;\n\nexport interface JsonSchemaBase {\n title?: string;\n description?: string;\n examples?: (string | number)[];\n oneOf?: JsonSchema[];\n $ref?: string;\n $id?: string;\n id?: string; // custom\n // TODO: This likely should be a `JsonSchema` not an object containing only `type` but currently\n // only simple objects with a `type` property are expected.\n // Setting the correct type causes too-deep type recursion errors elsewhere.\n serializedSchema?: { type: JsonSchemaTypes } | null; // custom;\n default?: unknown;\n readOnly?: boolean;\n}\n\nexport interface JsonSchemaArray<ItemSchema = JsonSchema> extends JsonSchemaBase {\n type: JsonSchemaTypes.Array;\n items: ItemSchema;\n uniqueItems?: boolean;\n fieldType?: FieldTypeFor<'array'>; // custom\n default?: unknown[];\n supportedFunctions?: string[];\n}\n\nexport interface JsonSchemaBoolean extends JsonSchemaBase {\n type: JsonSchemaTypes.Boolean;\n fieldType?: FieldTypeFor<'boolean'>; // custom\n default?: boolean;\n}\n\nexport interface JsonSchemaInteger extends JsonSchemaBase {\n type: JsonSchemaTypes.Integer;\n enum?: number[];\n minimum?: number;\n maximum?: number;\n fieldType?: FieldTypeFor<'integer'>; // custom\n default?: number;\n}\n\nexport interface JsonSchemaNumber extends JsonSchemaBase {\n type: JsonSchemaTypes.Number;\n enum?: number[];\n minimum?: number;\n maximum?: number;\n fieldType?: FieldTypeFor<'number'>; // custom\n default?: number;\n}\n\nexport interface JsonSchemaNull extends JsonSchemaBase {\n type: JsonSchemaTypes.Null;\n default?: null;\n}\n\nexport interface JsonSchemaObject<PropertySchema = JsonSchema> extends JsonSchemaBase {\n type: JsonSchemaTypes.Object;\n properties: Record<string, PropertySchema>;\n required?: string[];\n // custom\n objectKey?: JsonSchemaObjectKey;\n // custom\n fieldType?: FieldTypeFor<'object'>;\n // custom\n isVariable?: boolean;\n // custom: picker subtitle for a chain root; generated root `description`s\n // otherwise just repeat the label and are hidden\n rootDescription?: string;\n // `true` admits keys missing from `properties` with an unknown type; a schema types them.\n additionalProperties?: boolean | JsonSchema;\n baseSupportedFunctions?: string[];\n}\n\nexport const EMPTY_JSON_SCHEMA_OBJECT: JsonSchemaObject = {\n type: JsonSchemaTypes.Object,\n properties: {},\n};\n\nexport interface JsonSchemaString extends JsonSchemaBase {\n type: JsonSchemaTypes.String;\n enum?: string[];\n oneOf?: JsonSchemaConst[];\n const?: string;\n format?: string;\n group?: string; // custom\n labels?: string[]; // custom\n maxLength?: number | null;\n fieldType?: FieldTypeFor<'string'>; // custom\n default?: string;\n}\n\nexport interface JsonSchemaAnyOf extends JsonSchemaBase {\n anyOf: JsonSchema[];\n}\n\nexport interface JsonSchemaConst extends JsonSchemaBase {\n const: string;\n}\n\nexport interface JsonSchemaRef extends JsonSchemaBase {\n $ref: string;\n // custom\n objectKey?: JsonSchemaObjectKey;\n}\n\nexport type JsonSchemaEmpty = Record<string, never>;\n\nexport type JsonSchemaBasic =\n | JsonSchemaBoolean\n | JsonSchemaInteger\n | JsonSchemaNumber\n | JsonSchemaString;\n\n// This is an explicit type for json schemas that only use the standard types.\n// e.g. All subschemas will have a `type` attribute.\n// This is useful for when you know you won't be dealing with any uncommon schemas like anyOf.\nexport type JsonSchemaCore =\n | JsonSchemaArray<JsonSchemaCore>\n | JsonSchemaBoolean\n | JsonSchemaInteger\n | JsonSchemaNumber\n | JsonSchemaObject<JsonSchemaCore>\n | JsonSchemaString;\n\nexport type JsonSchema =\n | JsonSchemaArray\n | JsonSchemaBoolean\n | JsonSchemaInteger\n | JsonSchemaNumber\n | JsonSchemaObject\n | JsonSchemaString\n | JsonSchemaAnyOf\n | JsonSchemaConst\n | JsonSchemaRef\n | JsonSchemaBase;\n\nexport const isJsonSchemaObject = (schema: JsonSchema): schema is JsonSchemaObject => {\n return 'type' in schema && schema.type === JsonSchemaTypes.Object;\n};\n\nexport const isJsonSchemaArray = (schema: JsonSchema): schema is JsonSchemaArray => {\n return 'type' in schema && schema.type === JsonSchemaTypes.Array;\n};\n\n/** Returns true for non-primitive schemas (object, array, or $ref to a platform object). */\nexport const isNonPrimitiveSchema = (schema: JsonSchema): boolean =>\n isJsonSchemaObject(schema) || isJsonSchemaArray(schema) || isJsonSchemaRef(schema);\n\nexport const isFileType = (\n fieldType: JsonSchemaFieldType | undefined,\n): fieldType is KnownFieldType<'file'> => fieldType === 'file';\n\nexport const isJsonType = (\n fieldType: JsonSchemaFieldType | undefined,\n): fieldType is KnownFieldType<'json'> => fieldType === 'json';\n\nexport const isFileField = (schema: JsonSchema): boolean =>\n 'fieldType' in schema && isFileType(schema.fieldType);\n\nexport const isArrayWithFileItems = (schema: JsonSchema): boolean =>\n isJsonSchemaArray(schema) &&\n !!schema.items &&\n typeof schema.items === 'object' &&\n 'fieldType' in schema.items &&\n isFileType(schema.items.fieldType);\n\n/** ImageGallery accepts file schemas or arrays of file items. */\nexport const isFileSchema = (schema: JsonSchema): boolean =>\n isFileField(schema) || isArrayWithFileItems(schema);\n\nexport const isJsonSchemaRef = (schema: JsonSchema): schema is JsonSchemaRef => {\n return '$ref' in schema;\n};\n\nexport const isJsonSchemaPlatformObject = (schema: JsonSchema): schema is JsonSchemaRef => {\n return isJsonSchemaRef(schema) && 'objectKey' in schema;\n};\n\nexport const isJsonSchemaString = (schema: JsonSchema): schema is JsonSchemaString => {\n return 'type' in schema && schema.type === JsonSchemaTypes.String;\n};\n\nexport const isJsonSchemaDate = (schema: JsonSchema): schema is JsonSchemaString => {\n return (\n 'type' in schema &&\n schema.type === JsonSchemaTypes.String &&\n 'format' in schema &&\n schema.format === 'date'\n );\n};\n\nexport const isJsonSchemaDateTime = (schema: JsonSchema): schema is JsonSchemaString => {\n return (\n 'type' in schema &&\n schema.type === JsonSchemaTypes.String &&\n 'format' in schema &&\n schema.format === 'date-time'\n );\n};\n\nexport const isJsonSchemaSecret = (schema: JsonSchema): schema is JsonSchemaString => {\n return (\n 'type' in schema &&\n schema.type === JsonSchemaTypes.String &&\n 'format' in schema &&\n schema.format === 'secret'\n );\n};\n\nexport const isOneOfSchema = (\n schema: JsonSchema,\n): schema is JsonSchemaBase & { oneOf: JsonSchemaConst[] } => {\n return 'oneOf' in schema && schema.oneOf != null && Array.isArray(schema.oneOf);\n};\n\nexport const isOneOfStringSchema = (\n schema: JsonSchema,\n): schema is JsonSchemaString & { oneOf: JsonSchemaConst[] } => {\n return (\n isJsonSchemaString(schema) &&\n 'oneOf' in schema &&\n schema.oneOf != null &&\n Array.isArray(schema.oneOf)\n );\n};\n\nexport const isFunctionSchema = (schema: JsonSchema): schema is FunctionJsonSchema => {\n return schema && 'function' in schema && !!schema.function;\n};\n\nexport const genericArrayItemSchema = (\n object: JsonSchema,\n schema: FunctionParameterJsonSchema | FunctionReturnTypeJsonSchema,\n): JsonSchema | null => {\n if (!('genericType' in schema) || schema.genericType !== 'array_item_schema') {\n return null;\n }\n const array = withNameableType(object);\n return array != null && isJsonSchemaArray(array) && isSubschema(array.items) ? array.items : null;\n};\n\nexport const isPrecedingSchema = (\n schema: FunctionParameterJsonSchema | FunctionReturnTypeJsonSchema,\n) => {\n return 'genericType' in schema && schema.genericType === 'preceding_schema';\n};\n\nexport const isGenericParameterSchema = (\n schema: FunctionParameterJsonSchema | FunctionReturnTypeJsonSchema,\n): schema is FunctionGenericParameterSchema => {\n return (\n 'genericType' in schema && schema.genericType === 'parameter_schema' && 'position' in schema\n );\n};\n\nexport const isConvertedTypeSchema = (\n schema: FunctionParameterJsonSchema | FunctionReturnTypeJsonSchema,\n): schema is FunctionConvertedTypeSchema => {\n return (\n 'genericType' in schema && schema.genericType === 'converted_type' && 'schemaByValue' in schema\n );\n};\n\nexport const isJsonSchemaChoices = (schema: JsonSchema): schema is JsonSchemaString => {\n return 'type' in schema && schema.type === JsonSchemaTypes.String && 'enum' in schema;\n};\n\nexport const isJsonSchemaInteger = (schema: JsonSchema): schema is JsonSchemaInteger => {\n return 'type' in schema && schema.type === JsonSchemaTypes.Integer;\n};\n\nexport const isJsonSchemaNumber = (schema: JsonSchema): schema is JsonSchemaNumber => {\n return 'type' in schema && schema.type === JsonSchemaTypes.Number;\n};\n\nexport const isJsonSchemaBoolean = (schema: JsonSchema): schema is JsonSchemaBoolean => {\n return 'type' in schema && schema.type === JsonSchemaTypes.Boolean;\n};\n\nexport const functionParametersFromJsonSchema = (\n functionSchema: JsonSchema,\n currentSchema: JsonSchema,\n): JsonSchema[] => {\n if (!isFunctionSchema(functionSchema)) {\n return [];\n }\n\n const paramTypes = functionSchema.properties.parameterTypes;\n const orderedParams: JsonSchema[] = [];\n Object.entries(paramTypes.properties).forEach(([title, paramObject]) => {\n orderedParams[paramObject.position] = {\n title,\n ...(genericArrayItemSchema(currentSchema, paramObject) ?? paramObject),\n };\n });\n return orderedParams;\n};\n\nexport const getArrayItemType = (schema: JsonSchema): JsonSchemaTypes | null => {\n if (!isJsonSchemaArray(schema) || !('type' in schema.items) || schema.items.type == null) {\n return null;\n }\n\n const itemType = schema.items.type;\n\n switch (itemType) {\n case JsonSchemaTypes.Boolean:\n case JsonSchemaTypes.Integer:\n case JsonSchemaTypes.Number:\n case JsonSchemaTypes.Object:\n case JsonSchemaTypes.String:\n return itemType;\n case JsonSchemaTypes.Array:\n // Nested arrays are not supported for simple array item types\n return null;\n default:\n return null;\n }\n};\n\n/**\n * Display labels for field-backed schemas, whose JSON type alone is too coarse to identify them:\n * every file and relation field serializes as `object`, so only `fieldType` distinguishes a document\n * from a selfie from a plain hash. Shared by both the array-item and object branches below so a type\n * can't be labelled two ways depending on whether it is wrapped in an array.\n *\n * Values follow `FIELD_SCHEMA_TYPE_DISPLAY` in `front-end/lib/fields` so the same field reads the same in the\n * field-schema editor and in these pickers. They are duplicated rather than imported because\n * `front-end/lib/fields` imports this module, and this label map is deliberately dependency-free.\n *\n * These are names, so they are intentionally finer-grained than `getDataTypeFromJsonSchema`, which\n * resolves the same schemas to a rendering strategy: it has no relation case (base `Field::Relation`\n * lands on `DataType.Hash`) and folds NFC into `DataType.GovernmentId`. A label wants to be as\n * specific as the schema allows; a DataType wants to be as specific as the renderer supports.\n *\n * The base `Field::Relation` appears when a producer erases the concrete subtype; \"Relation\" is\n * vague but still truer than the bare JSON type.\n */\nconst FIELD_TYPE_LABELS: Partial<Record<string, string>> = {\n 'Field::Relation::Document::Generic': 'Document',\n file: 'File',\n 'Field::Relation::Document::GovernmentId': 'Government ID',\n 'Field::Relation::Document::GovernmentIdNfc': 'Government ID NFC',\n hash: 'Hash',\n json: 'JSON',\n 'platform-file': 'Platform File',\n 'Field::Relation': 'Relation',\n 'Field::Relation::Selfie': 'Selfie',\n};\n\n/**\n * Names the field types that are all `type: 'string'` in JSON Schema and are told apart only by a\n * marker, so an item inside an array reads the same as it would on its own. Returns null for a\n * plain string, leaving the caller to fall back to the JSON type.\n */\nconst stringSubtypeLabel = (schema: JsonSchema): string | null => {\n if (!isJsonSchemaString(schema)) {\n return null;\n }\n if (schema.fieldType === 'choices') {\n return 'Choices';\n }\n // The backend platform-object schema sends both markers for an email address; a schema built\n // from a field schema on the client sends `format` alone.\n if (schema.fieldType === 'email-address' || schema.format === 'email') {\n return 'Email Address';\n }\n if (schema.format === 'date-time') {\n return 'Datetime';\n }\n if (schema.format === 'date') {\n return 'Date';\n }\n if (schema.format === 'secret') {\n return 'Secret';\n }\n return null;\n};\n\n/**\n * An `items` slot holds a boolean in JSON Schema 2020-12, and anything at all in a hand-written\n * schema, so a label rule can only treat it as a schema once it is an object.\n */\nconst isSubschema = (items: unknown): items is JsonSchema =>\n items != null && typeof items === 'object';\n\n/**\n * Restates a `type` union as the single type it names, so a caller can apply one label rule to a\n * nullable schema and its non-nullable form alike. Returns null when the type names nothing a label\n * can use: no `type` at all, or a union wider than nullable.\n */\nconst withNameableType = (\n schema: JsonSchema | FunctionJsonSchema,\n): (JsonSchema & { type: JsonSchemaTypes }) | null => {\n if (!('type' in schema)) {\n return null;\n }\n const type = schema.type as JsonSchemaTypes | JsonSchemaTypes[];\n const nameable = typeof type === 'string' ? type : getNonNullableType(schema);\n if (nameable == null) {\n return null;\n }\n const named = { ...schema, type: nameable };\n return named as JsonSchema & { type: JsonSchemaTypes };\n};\n\nexport const humanizeSchemaType = ({\n schema,\n parentSchema = {},\n}: {\n schema: JsonSchema | FunctionJsonSchema;\n parentSchema?: JsonSchema;\n}): string => {\n if ('function' in schema && schema.function) {\n return 'Function';\n }\n\n const format = (typeName: string, { asArray = false }: { asArray?: boolean } = {}): string => {\n return startCase(typeName.split('/')[0]) + (asArray ? '[]' : '');\n };\n\n // Unlike a `type`, an `objectKey` is never narrowed before it gets here, and a customer-authored\n // schema can hold anything in it.\n const formatObjectKey = (objectKey: unknown, options: { asArray?: boolean } = {}): string =>\n typeof objectKey === 'string' ? format(objectKey, options) : 'Unsupported';\n\n if ('genericType' in schema && schema.genericType === 'array_item_schema') {\n const parent = withNameableType(parentSchema);\n\n if (parent != null && isJsonSchemaArray(parent) && isSubschema(parent.items)) {\n if ('objectKey' in parent.items && parent.items.objectKey) {\n return formatObjectKey(parent.items.objectKey);\n }\n\n if ('type' in parent.items) {\n // The option here is the item itself, so an item type that names nothing leaves no outer\n // type to fall back on.\n const items = withNameableType(parent.items);\n return items == null ? 'Unsupported' : (stringSubtypeLabel(items) ?? format(items.type));\n }\n }\n }\n\n if (isJsonSchemaRef(schema) && schema.objectKey) {\n return formatObjectKey(schema.objectKey);\n }\n\n if (!('type' in schema)) {\n return '';\n }\n\n // Resolved before any rule reads the type, so a nullable schema is labelled the same way whether\n // it stands alone or sits in an array.\n const named = withNameableType(schema);\n if (named == null) {\n // TODO(PLO-345): return one label per non-null type for multi-non-null schemas.\n return 'Unsupported';\n }\n\n if (isJsonSchemaArray(named)) {\n if (named.fieldType === 'multi-choices') {\n return 'Multi Choices';\n }\n\n if (isSubschema(named.items)) {\n if ('objectKey' in named.items && named.items.objectKey) {\n return formatObjectKey(named.items.objectKey, { asArray: true });\n }\n\n // An item schema with no nameable type leaves the array reading as its own `Array` type,\n // which is still true of the value.\n const items = withNameableType(named.items);\n if (items != null) {\n // Object items are named by their `fieldType`; ones without a recognized marker read as\n // `Hash[]` rather than `Object[]`, since a bare `object` says nothing useful to a reader.\n if (isJsonSchemaObject(items)) {\n const itemLabel = items.fieldType && FIELD_TYPE_LABELS[items.fieldType];\n return `${itemLabel ?? 'Hash'}[]`;\n }\n\n const itemLabel = stringSubtypeLabel(items);\n if (itemLabel) {\n return `${itemLabel}[]`;\n }\n\n return format(items.type, { asArray: true });\n }\n }\n }\n\n if (isJsonSchemaString(named)) {\n if ('objectKey' in named && named.objectKey != null) {\n return formatObjectKey(named.objectKey);\n }\n const label = stringSubtypeLabel(named);\n if (label) {\n return label;\n }\n }\n\n if (isJsonSchemaObject(named)) {\n if (named.objectKey) {\n return formatObjectKey(named.objectKey);\n }\n\n // An untagged object has no field type to name it, so it falls through to its JSON type.\n const label = named.fieldType && FIELD_TYPE_LABELS[named.fieldType];\n if (label) {\n return label;\n }\n }\n\n return format(named.type);\n};\n\nexport const getNonNullableType = (\n schema: JsonSchema | FunctionJsonSchema | null | undefined,\n): JsonSchemaTypes | null => {\n if (!schema || !('type' in schema)) {\n return null;\n }\n const type = schema.type as JsonSchemaTypes | JsonSchemaTypes[];\n if (!Array.isArray(type)) {\n return null;\n }\n if (type.length !== 2 || !type.includes(JsonSchemaTypes.Null)) {\n return null;\n }\n // Only the cast above makes a member a `JsonSchemaTypes`; a hand-written schema can put anything\n // in the union, and callers splat this into a `type` their own callers then read as a name.\n const nonNullable = type.find((t) => t !== JsonSchemaTypes.Null);\n return typeof nonNullable === 'string' ? nonNullable : null;\n};\n\n/**\n * Unwraps an exactly-nullable platform-object union — a `oneOf` of one `$ref`\n * member and one `null` member — to its `$ref` member. Any other shape\n * (arbitrary unions, multiple refs, inline members) returns null so it is\n * never treated as a single receiver type.\n */\nexport const getNonNullableRefSchema = (\n schema: JsonSchema | null | undefined,\n): JsonSchemaRef | null => {\n if (!schema || !('oneOf' in schema) || !Array.isArray(schema.oneOf)) {\n return null;\n }\n if ('type' in schema || schema.oneOf.length !== 2) {\n return null;\n }\n const nullMembers: JsonSchema[] = schema.oneOf.filter(\n (member) => 'type' in member && (member.type as JsonSchemaTypes) === JsonSchemaTypes.Null,\n );\n if (nullMembers.length !== 1) {\n return null;\n }\n const refMember = schema.oneOf.find((member) => !nullMembers.includes(member));\n return refMember && isJsonSchemaRef(refMember) ? refMember : null;\n};\n\nexport const isSchemaTypeAllowed = (\n schema: JsonSchema | FunctionJsonSchema | null | undefined,\n allowedTypes: readonly string[],\n): boolean => {\n if (!schema) {\n return false;\n }\n const nonNullable = getNonNullableType(schema);\n if (nonNullable) {\n return allowedTypes.includes(nonNullable);\n }\n if ('type' in schema && !Array.isArray(schema.type) && allowedTypes.includes(schema.type)) {\n return true;\n }\n if ('format' in schema && typeof schema.format === 'string') {\n return allowedTypes.includes(schema.format);\n }\n return false;\n};\n\nexport const extendSchema = (\n schemaMap: ObjectSchemaMap,\n schemaToAdd: Partial<Record<keyof typeof schemaMap, Record<string, JsonSchema>>>,\n): ObjectSchemaMap => {\n return Object.fromEntries(\n Object.entries(schemaMap).map(([key, schema]) => {\n return [\n key,\n {\n ...schema,\n properties: {\n ...schema?.properties,\n ...schemaToAdd[key],\n },\n },\n ];\n }),\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { T as JsonSchemaTypes, f as JsonSchemaCustomTypes, n as JsonSchema } from "../jsonSchema-
|
|
1
|
+
import { T as JsonSchemaTypes, f as JsonSchemaCustomTypes, n as JsonSchema } from "../jsonSchema-DUkfAip_.mjs";
|
|
2
2
|
|
|
3
|
-
//#region lib/jsonSchemaType.d.ts
|
|
3
|
+
//#region src/lib/jsonSchemaType.d.ts
|
|
4
4
|
declare const getJsonSchemaType: (schema: JsonSchema | null) => JsonSchemaTypes | JsonSchemaCustomTypes;
|
|
5
5
|
//#endregion
|
|
6
6
|
export { getJsonSchemaType };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JsonSchemaAllTypes, getNonNullableType, isFileType, isJsonSchemaArray, isJsonSchemaString } from "./jsonSchema.mjs";
|
|
2
|
-
//#region lib/jsonSchemaType.ts
|
|
2
|
+
//#region src/lib/jsonSchemaType.ts
|
|
3
3
|
const getJsonSchemaType = (schema) => {
|
|
4
4
|
if (schema == null) return JsonSchemaAllTypes.Unknown;
|
|
5
5
|
if ("enum" in schema) return JsonSchemaAllTypes.Enum;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonSchemaType.mjs","names":[],"sources":["../../lib/jsonSchemaType.ts"],"sourcesContent":["import {\n getNonNullableType,\n isFileType,\n isJsonSchemaArray,\n isJsonSchemaString,\n type JsonSchema,\n type JsonSchemaTypes,\n JsonSchemaAllTypes,\n type JsonSchemaCustomTypes,\n} from './jsonSchema';\n\nexport const getJsonSchemaType = (\n schema: JsonSchema | null,\n): JsonSchemaTypes | JsonSchemaCustomTypes => {\n if (schema == null) {\n return JsonSchemaAllTypes.Unknown;\n }\n\n if ('enum' in schema) {\n return JsonSchemaAllTypes.Enum;\n }\n if ('anyOf' in schema && schema.anyOf.every((group: JsonSchema) => 'enum' in group)) {\n return JsonSchemaAllTypes.GroupedEnum;\n }\n if ('type' in schema) {\n // TODO(PLO-345): Union utilities across all non-`null` types in multi-non-null arrays\n // (e.g. `[\"string\", \"number\", \"null\"]`) once runtime coercion semantics are confirmed.\n if (Array.isArray(schema.type)) {\n const nonNullable = getNonNullableType(schema);\n if (!nonNullable) {\n return JsonSchemaAllTypes.Unknown;\n }\n return getJsonSchemaType({ ...schema, type: nonNullable } as JsonSchema);\n }\n if (schema.type === JsonSchemaAllTypes.String && schema.format === 'date') {\n return JsonSchemaAllTypes.Date;\n }\n if (schema.type === JsonSchemaAllTypes.String && schema.format === 'date-time') {\n return JsonSchemaAllTypes.Datetime;\n }\n if (schema.type === JsonSchemaAllTypes.String && schema.format === 'secret') {\n return JsonSchemaAllTypes.MaskedString;\n }\n if (schema.type === JsonSchemaAllTypes.Array && schema.uniqueItems && 'enum' in schema.items) {\n return JsonSchemaAllTypes.MultiEnum;\n }\n if (schema.type === JsonSchemaAllTypes.Object && isFileType(schema.fieldType)) {\n return JsonSchemaAllTypes.File;\n }\n if (\n schema.type === JsonSchemaAllTypes.Object &&\n typeof schema.fieldType === 'string' &&\n schema.fieldType.startsWith('Field::Relation')\n ) {\n return JsonSchemaAllTypes.Relation;\n }\n if (isJsonSchemaString(schema) && 'oneOf' in schema) {\n return JsonSchemaAllTypes.Enum;\n }\n if (isJsonSchemaArray(schema) && isJsonSchemaString(schema.items) && 'oneOf' in schema.items) {\n return JsonSchemaAllTypes.MultiEnum;\n }\n return schema.type;\n }\n return JsonSchemaAllTypes.Unknown;\n};\n"],"mappings":";;AAWA,MAAa,qBACX,WAC4C;AAC5C,KAAI,UAAU,KACZ,QAAO,mBAAmB;AAG5B,KAAI,UAAU,OACZ,QAAO,mBAAmB;AAE5B,KAAI,WAAW,UAAU,OAAO,MAAM,OAAO,UAAsB,UAAU,MAAM,CACjF,QAAO,mBAAmB;AAE5B,KAAI,UAAU,QAAQ;AAGpB,MAAI,MAAM,QAAQ,OAAO,KAAK,EAAE;GAC9B,MAAM,cAAc,mBAAmB,OAAO;AAC9C,OAAI,CAAC,YACH,QAAO,mBAAmB;AAE5B,UAAO,kBAAkB;IAAE,GAAG;IAAQ,MAAM;IAAa,CAAe;;AAE1E,MAAI,OAAO,SAAS,mBAAmB,UAAU,OAAO,WAAW,OACjE,QAAO,mBAAmB;AAE5B,MAAI,OAAO,SAAS,mBAAmB,UAAU,OAAO,WAAW,YACjE,QAAO,mBAAmB;AAE5B,MAAI,OAAO,SAAS,mBAAmB,UAAU,OAAO,WAAW,SACjE,QAAO,mBAAmB;AAE5B,MAAI,OAAO,SAAS,mBAAmB,SAAS,OAAO,eAAe,UAAU,OAAO,MACrF,QAAO,mBAAmB;AAE5B,MAAI,OAAO,SAAS,mBAAmB,UAAU,WAAW,OAAO,UAAU,CAC3E,QAAO,mBAAmB;AAE5B,MACE,OAAO,SAAS,mBAAmB,UACnC,OAAO,OAAO,cAAc,YAC5B,OAAO,UAAU,WAAW,kBAAkB,CAE9C,QAAO,mBAAmB;AAE5B,MAAI,mBAAmB,OAAO,IAAI,WAAW,OAC3C,QAAO,mBAAmB;AAE5B,MAAI,kBAAkB,OAAO,IAAI,mBAAmB,OAAO,MAAM,IAAI,WAAW,OAAO,MACrF,QAAO,mBAAmB;AAE5B,SAAO,OAAO;;AAEhB,QAAO,mBAAmB"}
|
|
1
|
+
{"version":3,"file":"jsonSchemaType.mjs","names":[],"sources":["../../src/lib/jsonSchemaType.ts"],"sourcesContent":["import {\n getNonNullableType,\n isFileType,\n isJsonSchemaArray,\n isJsonSchemaString,\n type JsonSchema,\n type JsonSchemaTypes,\n JsonSchemaAllTypes,\n type JsonSchemaCustomTypes,\n} from './jsonSchema';\n\nexport const getJsonSchemaType = (\n schema: JsonSchema | null,\n): JsonSchemaTypes | JsonSchemaCustomTypes => {\n if (schema == null) {\n return JsonSchemaAllTypes.Unknown;\n }\n\n if ('enum' in schema) {\n return JsonSchemaAllTypes.Enum;\n }\n if ('anyOf' in schema && schema.anyOf.every((group: JsonSchema) => 'enum' in group)) {\n return JsonSchemaAllTypes.GroupedEnum;\n }\n if ('type' in schema) {\n // TODO(PLO-345): Union utilities across all non-`null` types in multi-non-null arrays\n // (e.g. `[\"string\", \"number\", \"null\"]`) once runtime coercion semantics are confirmed.\n if (Array.isArray(schema.type)) {\n const nonNullable = getNonNullableType(schema);\n if (!nonNullable) {\n return JsonSchemaAllTypes.Unknown;\n }\n return getJsonSchemaType({ ...schema, type: nonNullable } as JsonSchema);\n }\n if (schema.type === JsonSchemaAllTypes.String && schema.format === 'date') {\n return JsonSchemaAllTypes.Date;\n }\n if (schema.type === JsonSchemaAllTypes.String && schema.format === 'date-time') {\n return JsonSchemaAllTypes.Datetime;\n }\n if (schema.type === JsonSchemaAllTypes.String && schema.format === 'secret') {\n return JsonSchemaAllTypes.MaskedString;\n }\n if (schema.type === JsonSchemaAllTypes.Array && schema.uniqueItems && 'enum' in schema.items) {\n return JsonSchemaAllTypes.MultiEnum;\n }\n if (schema.type === JsonSchemaAllTypes.Object && isFileType(schema.fieldType)) {\n return JsonSchemaAllTypes.File;\n }\n if (\n schema.type === JsonSchemaAllTypes.Object &&\n typeof schema.fieldType === 'string' &&\n schema.fieldType.startsWith('Field::Relation')\n ) {\n return JsonSchemaAllTypes.Relation;\n }\n if (isJsonSchemaString(schema) && 'oneOf' in schema) {\n return JsonSchemaAllTypes.Enum;\n }\n if (isJsonSchemaArray(schema) && isJsonSchemaString(schema.items) && 'oneOf' in schema.items) {\n return JsonSchemaAllTypes.MultiEnum;\n }\n return schema.type;\n }\n return JsonSchemaAllTypes.Unknown;\n};\n"],"mappings":";;AAWA,MAAa,qBACX,WAC4C;AAC5C,KAAI,UAAU,KACZ,QAAO,mBAAmB;AAG5B,KAAI,UAAU,OACZ,QAAO,mBAAmB;AAE5B,KAAI,WAAW,UAAU,OAAO,MAAM,OAAO,UAAsB,UAAU,MAAM,CACjF,QAAO,mBAAmB;AAE5B,KAAI,UAAU,QAAQ;AAGpB,MAAI,MAAM,QAAQ,OAAO,KAAK,EAAE;GAC9B,MAAM,cAAc,mBAAmB,OAAO;AAC9C,OAAI,CAAC,YACH,QAAO,mBAAmB;AAE5B,UAAO,kBAAkB;IAAE,GAAG;IAAQ,MAAM;IAAa,CAAe;;AAE1E,MAAI,OAAO,SAAS,mBAAmB,UAAU,OAAO,WAAW,OACjE,QAAO,mBAAmB;AAE5B,MAAI,OAAO,SAAS,mBAAmB,UAAU,OAAO,WAAW,YACjE,QAAO,mBAAmB;AAE5B,MAAI,OAAO,SAAS,mBAAmB,UAAU,OAAO,WAAW,SACjE,QAAO,mBAAmB;AAE5B,MAAI,OAAO,SAAS,mBAAmB,SAAS,OAAO,eAAe,UAAU,OAAO,MACrF,QAAO,mBAAmB;AAE5B,MAAI,OAAO,SAAS,mBAAmB,UAAU,WAAW,OAAO,UAAU,CAC3E,QAAO,mBAAmB;AAE5B,MACE,OAAO,SAAS,mBAAmB,UACnC,OAAO,OAAO,cAAc,YAC5B,OAAO,UAAU,WAAW,kBAAkB,CAE9C,QAAO,mBAAmB;AAE5B,MAAI,mBAAmB,OAAO,IAAI,WAAW,OAC3C,QAAO,mBAAmB;AAE5B,MAAI,kBAAkB,OAAO,IAAI,mBAAmB,OAAO,MAAM,IAAI,WAAW,OAAO,MACrF,QAAO,mBAAmB;AAE5B,SAAO,OAAO;;AAEhB,QAAO,mBAAmB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PointerEvent } from "react";
|
|
2
2
|
|
|
3
|
-
//#region lib/letPointerDownReachDocument.d.ts
|
|
3
|
+
//#region src/lib/letPointerDownReachDocument.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* `onPointerDownCapture` handler for a Radix dismissable layer (Popover,
|
|
6
6
|
* DropdownMenu, ...) that hosts react-aria pressables.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"letPointerDownReachDocument.mjs","names":[],"sources":["../../lib/letPointerDownReachDocument.ts"],"sourcesContent":["import type { PointerEvent as ReactPointerEvent } from 'react';\n\n/**\n * `onPointerDownCapture` handler for a Radix dismissable layer (Popover,\n * DropdownMenu, ...) that hosts react-aria pressables.\n *\n * react-aria's `usePress` stops `pointerdown` propagation, and React forwards\n * that to the native event, so it never reaches `document`. Radix marks a\n * pointerdown as \"inside\" during capture and only clears that mark from its\n * `document` listener, so the mark survives and the next outside pointerdown\n * is taken as inside: the layer needs a second outside click to dismiss.\n *\n * This keeps React-level propagation stopped (ancestor `usePress` handlers\n * still skip the event) but lets the native event reach `document`.\n */\nexport const letPointerDownReachDocument = ({ nativeEvent }: ReactPointerEvent): void => {\n if (Object.prototype.hasOwnProperty.call(nativeEvent, 'stopPropagation')) {\n return;\n }\n Object.defineProperty(nativeEvent, 'stopPropagation', {\n configurable: true,\n value: () => undefined,\n });\n};\n"],"mappings":";;;;;;;;;;;;;;AAeA,MAAa,+BAA+B,EAAE,kBAA2C;AACvF,KAAI,OAAO,UAAU,eAAe,KAAK,aAAa,kBAAkB,CACtE;AAEF,QAAO,eAAe,aAAa,mBAAmB;EACpD,cAAc;EACd,aAAa,KAAA;EACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"letPointerDownReachDocument.mjs","names":[],"sources":["../../src/lib/letPointerDownReachDocument.ts"],"sourcesContent":["import type { PointerEvent as ReactPointerEvent } from 'react';\n\n/**\n * `onPointerDownCapture` handler for a Radix dismissable layer (Popover,\n * DropdownMenu, ...) that hosts react-aria pressables.\n *\n * react-aria's `usePress` stops `pointerdown` propagation, and React forwards\n * that to the native event, so it never reaches `document`. Radix marks a\n * pointerdown as \"inside\" during capture and only clears that mark from its\n * `document` listener, so the mark survives and the next outside pointerdown\n * is taken as inside: the layer needs a second outside click to dismiss.\n *\n * This keeps React-level propagation stopped (ancestor `usePress` handlers\n * still skip the event) but lets the native event reach `document`.\n */\nexport const letPointerDownReachDocument = ({ nativeEvent }: ReactPointerEvent): void => {\n if (Object.prototype.hasOwnProperty.call(nativeEvent, 'stopPropagation')) {\n return;\n }\n Object.defineProperty(nativeEvent, 'stopPropagation', {\n configurable: true,\n value: () => undefined,\n });\n};\n"],"mappings":";;;;;;;;;;;;;;AAeA,MAAa,+BAA+B,EAAE,kBAA2C;AACvF,KAAI,OAAO,UAAU,eAAe,KAAK,aAAa,kBAAkB,CACtE;AAEF,QAAO,eAAe,aAAa,mBAAmB;EACpD,cAAc;EACd,aAAa,KAAA;EACd,CAAC"}
|
package/dist/lib/message.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as MessageType } from "../message-
|
|
1
|
+
import { t as MessageType } from "../message-klSuXfNN.mjs";
|
|
2
2
|
export { MessageType };
|
package/dist/lib/message.mjs
CHANGED
package/dist/lib/message.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.mjs","names":[],"sources":["../../lib/message.ts"],"sourcesContent":["export enum MessageType {\n Success = 'success',\n Failure = 'failure',\n Notice = 'notice',\n}\n"],"mappings":";AAAA,IAAY,cAAL,yBAAA,aAAA;AACL,aAAA,aAAA;AACA,aAAA,aAAA;AACA,aAAA,YAAA;;KACD"}
|
|
1
|
+
{"version":3,"file":"message.mjs","names":[],"sources":["../../src/lib/message.ts"],"sourcesContent":["export enum MessageType {\n Success = 'success',\n Failure = 'failure',\n Notice = 'notice',\n}\n"],"mappings":";AAAA,IAAY,cAAL,yBAAA,aAAA;AACL,aAAA,aAAA;AACA,aAAA,aAAA;AACA,aAAA,YAAA;;KACD"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { C as tryParseMethodChain, S as removeFunctionNode, _ as methodChainToString, a as getFunctionParams, b as pathContainsFunctionNode, c as isCustomFunctionNode, d as isIdentifierNode, f as isStringNode, g as methodChainRootName, h as methodChainNodeToJsonSchema, i as containsFunctionNode, l as isEmpty, m as methodChainCache, n as MethodChainNodeTypes, o as getSyntaxError, p as isValid, r as appendedMethodChain, s as isArrayNode, t as EMPTY_METHOD_CHAIN, u as isFunctionNode, v as parseMethodChain, x as pathIsNormative, y as parseWithPartialOption } from "../methodChain-
|
|
2
|
-
import { a as FunctionParamType, c as NumberNode, i as FunctionNode, l as StringNode, n as Chain, o as IdentifierNode, r as CustomFunctionNode, s as MethodChainNode, t as ArrayNode } from "../methodChainTypes-
|
|
1
|
+
import { C as tryParseMethodChain, S as removeFunctionNode, _ as methodChainToString, a as getFunctionParams, b as pathContainsFunctionNode, c as isCustomFunctionNode, d as isIdentifierNode, f as isStringNode, g as methodChainRootName, h as methodChainNodeToJsonSchema, i as containsFunctionNode, l as isEmpty, m as methodChainCache, n as MethodChainNodeTypes, o as getSyntaxError, p as isValid, r as appendedMethodChain, s as isArrayNode, t as EMPTY_METHOD_CHAIN, u as isFunctionNode, v as parseMethodChain, x as pathIsNormative, y as parseWithPartialOption } from "../methodChain-CRYRDa1k.mjs";
|
|
2
|
+
import { a as FunctionParamType, c as NumberNode, i as FunctionNode, l as StringNode, n as Chain, o as IdentifierNode, r as CustomFunctionNode, s as MethodChainNode, t as ArrayNode } from "../methodChainTypes-BtbYWrdP.mjs";
|
|
3
3
|
export { ArrayNode, Chain, CustomFunctionNode, EMPTY_METHOD_CHAIN, FunctionNode, FunctionParamType, IdentifierNode, MethodChainNode, MethodChainNodeTypes, NumberNode, StringNode, appendedMethodChain, containsFunctionNode, getFunctionParams, getSyntaxError, isArrayNode, isCustomFunctionNode, isEmpty, isFunctionNode, isIdentifierNode, isStringNode, isValid, methodChainCache, methodChainNodeToJsonSchema, methodChainRootName, methodChainToString, parseMethodChain, parseWithPartialOption, pathContainsFunctionNode, pathIsNormative, removeFunctionNode, tryParseMethodChain };
|