@persona/design-system 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -1
- package/dist/{Action-C2waxwIy.d.mts → Action-C2FTJhnQ.d.mts} +3 -3
- package/dist/Action.d.mts +1 -1
- package/dist/AdvancedFilterRuleRow.d.mts +2 -2
- package/dist/AdvancedFilterRulesPopover.d.mts +2 -2
- package/dist/ArrayValueControl.d.mts +1 -1
- package/dist/Attribute.d.mts +8 -6
- package/dist/{Badge-CM2TzkdE.mjs → Badge-BtNIvtDZ.mjs} +3 -3
- package/dist/{Badge-CM2TzkdE.mjs.map → Badge-BtNIvtDZ.mjs.map} +1 -1
- package/dist/BooleanValueControl.d.mts +1 -1
- package/dist/{Breadcrumb-Df06cTnA.d.mts → Breadcrumb-BlAhp45l.d.mts} +1 -1
- package/dist/Breadcrumb.d.mts +1 -1
- package/dist/{Breadcrumbs-BEYQlGbW.mjs → Breadcrumbs-CR-xdruP.mjs} +16 -15
- package/dist/Breadcrumbs-CR-xdruP.mjs.map +1 -0
- package/dist/{Breadcrumbs-D_Gzd4_J.d.mts → Breadcrumbs-DdZ14ZFw.d.mts} +2 -2
- package/dist/Breadcrumbs.d.mts +1 -1
- package/dist/{Button-CRFbWv3l.d.mts → Button-CTgyA3gc.d.mts} +5 -4
- package/dist/Button.d.mts +1 -1
- package/dist/{Calendar-DjnoZVcT.d.mts → Calendar-_gM6U5ET.d.mts} +1 -1
- package/dist/Calendar.d.mts +1 -1
- package/dist/CalendarBase.d.mts +1 -1
- package/dist/Card-Dorym91P.d.mts +75 -0
- package/dist/{Card-CKrJtn1f.mjs → Card-vQIPtdXi.mjs} +12 -10
- package/dist/Card-vQIPtdXi.mjs.map +1 -0
- package/dist/Card.d.mts +1 -1
- package/dist/Card2.d.mts +3 -3
- package/dist/{CardV2-B2wx1NE3.mjs → CardV2-CBjhsfrn.mjs} +19 -18
- package/dist/CardV2-CBjhsfrn.mjs.map +1 -0
- package/dist/{Checkbox-DwZEsi7x.mjs → Checkbox-BHZ7c7_6.mjs} +27 -23
- package/dist/Checkbox-BHZ7c7_6.mjs.map +1 -0
- package/dist/{Checkbox-CwPXPLCi.d.mts → Checkbox-DRJXDs2T.d.mts} +1 -1
- package/dist/Checkbox.d.mts +1 -1
- package/dist/CheckboxGroupField.d.mts +1 -1
- package/dist/ChoicesValueControl.d.mts +1 -1
- package/dist/CodeHighlight.d.mts +40 -0
- package/dist/{Combobox-CKaVX-32.mjs → Combobox-BCYLeZDP.mjs} +23 -22
- package/dist/Combobox-BCYLeZDP.mjs.map +1 -0
- package/dist/{Combobox-BQN5OwB-.d.mts → Combobox-DMN3nc7E.d.mts} +3 -3
- package/dist/Combobox.d.mts +2 -2
- package/dist/{ComboboxBase-nfHr19x-.d.mts → ComboboxBase-DBLJYQrh.d.mts} +18 -29
- package/dist/ComboboxBase.d.mts +1 -1
- package/dist/{ComboboxMultiSelect-DRNj2Mtx.d.mts → ComboboxMultiSelect-CZRLyM_y.d.mts} +2 -2
- package/dist/ComboboxMultiSelect.d.mts +1 -1
- package/dist/{ComboboxSingleSelect-BkhbEx-F.d.mts → ComboboxSingleSelect-BS6pZpU_.d.mts} +4 -4
- package/dist/ComboboxSingleSelect.d.mts +1 -1
- package/dist/{CompactBar-CyHbWTv4.d.mts → CompactBar-DEqItiZr.d.mts} +3 -3
- package/dist/CompactBar.d.mts +1 -1
- package/dist/{ConfigFormGroup-CmCRJyse.mjs → ConfigFormGroup-BnRDAs0j.mjs} +3 -3
- package/dist/{ConfigFormGroup-CmCRJyse.mjs.map → ConfigFormGroup-BnRDAs0j.mjs.map} +1 -1
- package/dist/{ControlBar-DwAhPcb5.d.mts → ControlBar-BVG5Pbvh.d.mts} +2 -2
- package/dist/ControlBar.d.mts +1 -1
- package/dist/DataTable.d.mts +17 -6
- package/dist/{DateField-tOyrGcx1.d.mts → DateField-CBCo8_d3.d.mts} +2 -2
- package/dist/DateField.d.mts +1 -1
- package/dist/{DatePicker-Bs9JODNg.d.mts → DatePicker-BZ4_I4Db.d.mts} +2 -2
- package/dist/{DatePicker-D2SfjS-N.mjs → DatePicker-BcjrAr7o.mjs} +44 -33
- package/dist/DatePicker-BcjrAr7o.mjs.map +1 -0
- package/dist/DatePicker.d.mts +1 -1
- package/dist/{DateRangePicker-BT6-j8V7.d.mts → DateRangePicker-BMKJquPT.d.mts} +3 -3
- package/dist/DateRangePicker.d.mts +1 -1
- package/dist/DateRangeValueControl.d.mts +2 -2
- package/dist/DateValueControl.d.mts +1 -1
- package/dist/{DropdownButton-dpGAmVlN.mjs → DropdownButton-l-fzkb5_.mjs} +3 -3
- package/dist/{DropdownButton-dpGAmVlN.mjs.map → DropdownButton-l-fzkb5_.mjs.map} +1 -1
- package/dist/DropdownButton.d.mts +2 -2
- package/dist/{DropdownMenu-RTxQ0Zu1.d.mts → DropdownMenu-Bg68vvxx.d.mts} +3 -3
- package/dist/{DropdownMenu-CyxizDxJ.mjs → DropdownMenu-C0WK4bM0.mjs} +3 -3
- package/dist/{DropdownMenu-CyxizDxJ.mjs.map → DropdownMenu-C0WK4bM0.mjs.map} +1 -1
- package/dist/DropdownMenu.d.mts +1 -1
- package/dist/{ErrorProps-C9T857Wk.d.mts → ErrorProps-7eWoxSes.d.mts} +1 -1
- package/dist/ErrorProps.d.mts +1 -1
- package/dist/{FieldRegistry-D6niLExM.d.mts → FieldRegistry-BslyuPZw.d.mts} +2 -2
- package/dist/FieldRegistry.d.mts +1 -1
- package/dist/{FilterBar-DfBV7yKM.d.mts → FilterBar-DjZE4PoB.d.mts} +4 -4
- package/dist/FilterBar.d.mts +1 -1
- package/dist/FilterPickerMenu.d.mts +2 -2
- package/dist/FilterPill.d.mts +1 -1
- package/dist/FilterPopover.d.mts +1 -1
- package/dist/FloatValueControl.d.mts +1 -1
- package/dist/{FormControl-DQFefbrI.mjs → FormControl-BzMbbgr0.mjs} +8 -7
- package/dist/FormControl-BzMbbgr0.mjs.map +1 -0
- package/dist/{FormControl-BMYRsFkI.d.mts → FormControl-gpLZZpNs.d.mts} +3 -3
- package/dist/FormControl.d.mts +1 -1
- package/dist/FormControlLabel.d.mts +2 -2
- package/dist/{FormField-C7bW-O6H.mjs → FormField-2sNS5PzN.mjs} +16 -16
- package/dist/{FormField-C7bW-O6H.mjs.map → FormField-2sNS5PzN.mjs.map} +1 -1
- package/dist/{FormField-C1DaUT5U.d.mts → FormField-CZXKvCGt.d.mts} +2 -2
- package/dist/FormField.d.mts +1 -1
- package/dist/{Header-BKk3qESS.d.mts → Header-1laYnwRP.d.mts} +2 -2
- package/dist/Header.d.mts +1 -1
- package/dist/{HelperTooltip-CD_yy7Hp.d.mts → HelperTooltip-BPJS3EwC.d.mts} +2 -2
- package/dist/HelperTooltip.d.mts +1 -1
- package/dist/{HoverCopyableField-Bgt639FR.mjs → HoverCopyableField-CeJ0UP87.mjs} +8 -8
- package/dist/{HoverCopyableField-Bgt639FR.mjs.map → HoverCopyableField-CeJ0UP87.mjs.map} +1 -1
- package/dist/{IconButton-BnSEV7eR.mjs → IconButton-CnJNIJVQ.mjs} +124 -25
- package/dist/IconButton-CnJNIJVQ.mjs.map +1 -0
- package/dist/{IconButton-Bh-JJ-0x.d.mts → IconButton-PnrnqQ1s.d.mts} +2 -2
- package/dist/IconButton.d.mts +1 -1
- package/dist/ImageTile.d.mts +1 -1
- package/dist/InlineCombobox.d.mts +1 -1
- package/dist/InlineInput.d.mts +1 -1
- package/dist/{Input-D7of_GtJ.mjs → Input-DGWThZlt.mjs} +12 -10
- package/dist/Input-DGWThZlt.mjs.map +1 -0
- package/dist/{Input-1bDdMAgO.d.mts → Input-Diztxhle.d.mts} +5 -9
- package/dist/Input.d.mts +1 -1
- package/dist/{InputProps-BBShwi8N.d.mts → InputProps-BILq1X-n.d.mts} +2 -2
- package/dist/InputProps.d.mts +1 -1
- package/dist/IntegerValueControl.d.mts +1 -1
- package/dist/{ListBox-DeFHRX2T.d.mts → ListBox-Awtw7Xy_.d.mts} +3 -3
- package/dist/{ListBox-jzXQDraS.mjs → ListBox-DqII8giL.mjs} +37 -29
- package/dist/ListBox-DqII8giL.mjs.map +1 -0
- package/dist/ListBox.d.mts +1 -1
- package/dist/ListBoxField.d.mts +2 -2
- package/dist/{LoadingShimmer-a2Hv0kAq.mjs → LoadingShimmer-ZyzJs5Vi.mjs} +13 -5
- package/dist/LoadingShimmer-ZyzJs5Vi.mjs.map +1 -0
- package/dist/LoadingShimmer.d.mts +2 -2
- package/dist/{LogicRow-BOhB0uNS.d.mts → LogicRow-DIn0gLEq.d.mts} +3 -3
- package/dist/LogicRow.d.mts +1 -1
- package/dist/MaskedInput.d.mts +2 -2
- package/dist/MatchHighlight.d.mts +1 -1
- package/dist/{Menu-DVI8l-4Q.mjs → Menu-CeV3lL2g.mjs} +42 -25
- package/dist/Menu-CeV3lL2g.mjs.map +1 -0
- package/dist/{Menu-BCVhmNEe.d.mts → Menu-DdHN-drQ.d.mts} +4 -4
- package/dist/Menu.d.mts +1 -1
- package/dist/{MiddleTruncatedText-DnF7F_1D.mjs → MiddleTruncatedText-CO58jrNF.mjs} +2 -2
- package/dist/{MiddleTruncatedText-DnF7F_1D.mjs.map → MiddleTruncatedText-CO58jrNF.mjs.map} +1 -1
- package/dist/Modal.d.mts +4 -4
- package/dist/{PageHeader-BpGT-BM0.mjs → PageHeader-UI_6yImi.mjs} +9 -6
- package/dist/PageHeader-UI_6yImi.mjs.map +1 -0
- package/dist/PageHeader.d.mts +2 -2
- package/dist/PageLayout.d.mts +1 -1
- package/dist/{PageSelector-D6tffcGW.d.mts → PageSelector-CIa3Zts9.d.mts} +3 -3
- package/dist/PageSelector.d.mts +1 -1
- package/dist/{Pagination-BkjmybcI.d.mts → Pagination-C2eZEM7K.d.mts} +2 -2
- package/dist/{Pagination-CVRTcKSG.mjs → Pagination-DgA0U1fa.mjs} +9 -8
- package/dist/Pagination-DgA0U1fa.mjs.map +1 -0
- package/dist/Pagination.d.mts +1 -1
- package/dist/{Pii-CA7aCuYT.mjs → Pii-bxG0qu3t.mjs} +2 -2
- package/dist/{Pii-CA7aCuYT.mjs.map → Pii-bxG0qu3t.mjs.map} +1 -1
- package/dist/{PillShell-CVqpZ5iV.d.mts → PillShell-D6dN9sWk.d.mts} +2 -2
- package/dist/PillShell.d.mts +1 -1
- package/dist/{Popover-DlXyKYL5.mjs → Popover-UiOUt5up.mjs} +9 -5
- package/dist/Popover-UiOUt5up.mjs.map +1 -0
- package/dist/{PseudoClassProps-BPdn-ofQ.d.mts → PseudoClassProps-DnlHhW5u.d.mts} +1 -1
- package/dist/PseudoClassProps.d.mts +1 -1
- package/dist/{Radio-DYGEt0FT.mjs → Radio-BrQzZhwP.mjs} +22 -18
- package/dist/Radio-BrQzZhwP.mjs.map +1 -0
- package/dist/{RadioGroup-pegXtLwD.mjs → RadioGroup-Bl9oXPIo.mjs} +3 -3
- package/dist/{RadioGroup-pegXtLwD.mjs.map → RadioGroup-Bl9oXPIo.mjs.map} +1 -1
- package/dist/{RadioGroup-DYIfRj02.d.mts → RadioGroup-Dg_gydUp.d.mts} +1 -1
- package/dist/RadioGroup.d.mts +1 -1
- package/dist/RangeCalendar.d.mts +1 -1
- package/dist/RangeCalendarPresets.d.mts +1 -1
- package/dist/RuleEditorFields.d.mts +2 -2
- package/dist/RulesPill.d.mts +1 -1
- package/dist/{SearchInput-Dc90GLTF.d.mts → SearchInput-CNg109M5.d.mts} +2 -2
- package/dist/SearchInput.d.mts +1 -1
- package/dist/SectionHeading.d.mts +1 -1
- package/dist/{SegmentedControl-DIHonamg.d.mts → SegmentedControl-BBIHKcvo.d.mts} +1 -1
- package/dist/{SegmentedControl-DwbltwDQ.mjs → SegmentedControl-BozydMtT.mjs} +10 -9
- package/dist/SegmentedControl-BozydMtT.mjs.map +1 -0
- package/dist/SegmentedControl.d.mts +1 -1
- package/dist/{Select-CBVvPyRJ.mjs → Select-CktsIrzf.mjs} +16 -15
- package/dist/Select-CktsIrzf.mjs.map +1 -0
- package/dist/{Select-DwqWnWBi.d.mts → Select-yPqzqe5k.d.mts} +3 -3
- package/dist/Select.d.mts +1 -1
- package/dist/{Spacer-BsK8tTwA.mjs → Spacer-D58qwuXR.mjs} +2 -2
- package/dist/{Spacer-BsK8tTwA.mjs.map → Spacer-D58qwuXR.mjs.map} +1 -1
- package/dist/{Spinner-e725Rxkd.mjs → Spinner-Dpw3-3JS.mjs} +6 -8
- package/dist/Spinner-Dpw3-3JS.mjs.map +1 -0
- package/dist/{Stack-Bre2oiov.mjs → Stack-BqQndGI9.mjs} +2 -2
- package/dist/{Stack-Bre2oiov.mjs.map → Stack-BqQndGI9.mjs.map} +1 -1
- package/dist/{Stack-6eOrxjJi.d.mts → Stack-DgC83-nw.d.mts} +2 -2
- package/dist/Stack.d.mts +1 -1
- package/dist/{Sticker-By3F8Aip.mjs → Sticker-BDyejPZa.mjs} +159 -14
- package/dist/Sticker-BDyejPZa.mjs.map +1 -0
- package/dist/{Sticker-Ep6N4Exq.d.mts → Sticker-qvWkqEMw.d.mts} +5 -5
- package/dist/Sticker.d.mts +1 -1
- package/dist/StringValueControl.d.mts +1 -1
- package/dist/Tab.d.mts +3 -4
- package/dist/{TabBar-CWF65Tv4.mjs → TabBar-Dw3xE_B-.mjs} +17 -16
- package/dist/TabBar-Dw3xE_B-.mjs.map +1 -0
- package/dist/TabBarIconButton.d.mts +1 -5
- package/dist/{Table-BOcWdwpv.d.mts → Table-CPvIH27_.d.mts} +1 -1
- package/dist/{Table-nWd5ZVbm.mjs → Table-ELLvSvH4.mjs} +86 -39
- package/dist/Table-ELLvSvH4.mjs.map +1 -0
- package/dist/Table.d.mts +1 -1
- package/dist/{TableBody-BFPFaZnD.d.mts → TableBody-CQYijW_3.d.mts} +1 -1
- package/dist/TableBody.d.mts +1 -1
- package/dist/{TableBox-Bd-H5oyh.mjs → TableBox-CCfha6G2.mjs} +57 -47
- package/dist/TableBox-CCfha6G2.mjs.map +1 -0
- package/dist/TableBox.d.mts +2 -2
- package/dist/{TableBoxCell-Cjlc_xJz.d.mts → TableBoxCell-xnzuHPV1.d.mts} +7 -7
- package/dist/TableBoxCell.d.mts +1 -1
- package/dist/TableBoxField.d.mts +3 -3
- package/dist/{TableBoxRow-CKDjNUsU.d.mts → TableBoxRow-BBDMh5xl.d.mts} +3 -3
- package/dist/TableBoxRow.d.mts +1 -1
- package/dist/{TableBoxRowActions-BJ8ue3Bk.d.mts → TableBoxRowActions-DCfol4GC.d.mts} +2 -2
- package/dist/TableBoxRowActions.d.mts +1 -1
- package/dist/{index-CvBvfQAY.d.mts → TableCell-BQv4ASkE.d.mts} +5 -26
- package/dist/TableCell.d.mts +1 -1
- package/dist/{TableControls-BnesnTue.mjs → TableControls-C-yb5EYU.mjs} +76 -64
- package/dist/TableControls-C-yb5EYU.mjs.map +1 -0
- package/dist/{TableControls-D8xMNgyS.d.mts → TableControls-CtEL3ioz.d.mts} +3 -3
- package/dist/TableControls.d.mts +1 -1
- package/dist/{TableControlsContext-ChFsFEjR.d.mts → TableControlsContext-X-Lupvc6.d.mts} +2 -2
- package/dist/TableControlsContext.d.mts +1 -1
- package/dist/{TableHead-CWDxuy5V.d.mts → TableHead-DLLn0zoP.d.mts} +1 -1
- package/dist/TableHead.d.mts +1 -1
- package/dist/{TableHeaderCell-C_sIU1d7.d.mts → TableHeaderCell-DiJ2jyw4.d.mts} +3 -1
- package/dist/TableHeaderCell.d.mts +1 -1
- package/dist/{TableLayout-CgGhKU_A.d.mts → TableLayout-BgnUz8NO.d.mts} +1 -1
- package/dist/TableLayout.d.mts +1 -1
- package/dist/{TableRow-B1UKlbze.d.mts → TableRow-Dgg8hGy5.d.mts} +2 -2
- package/dist/TableRow.d.mts +1 -1
- package/dist/TableTH.d.mts +1 -1
- package/dist/{TableViewConfigurationDropdown-BqB7pOh8.d.mts → TableViewConfigurationDropdown-DRxd562-.d.mts} +2 -2
- package/dist/TableViewConfigurationDropdown.d.mts +1 -1
- package/dist/{TechnicalSticker-Ct2WnNzJ.mjs → TechnicalSticker-CLbNA0kp.mjs} +27 -22
- package/dist/TechnicalSticker-CLbNA0kp.mjs.map +1 -0
- package/dist/{Text-B0orb-cZ.mjs → Text-Dn_p7ZvT.mjs} +16 -12
- package/dist/Text-Dn_p7ZvT.mjs.map +1 -0
- package/dist/{Text-BzzUdBdc.d.mts → Text-tgFz40XD.d.mts} +4 -4
- package/dist/Text.d.mts +1 -1
- package/dist/{TextArea-CGpY5xqX.d.mts → TextArea-BxxXQSwP.d.mts} +2 -2
- package/dist/{TextArea-CospIXEO.mjs → TextArea-oAK1DKId.mjs} +3 -3
- package/dist/{TextArea-CospIXEO.mjs.map → TextArea-oAK1DKId.mjs.map} +1 -1
- package/dist/TextArea.d.mts +1 -1
- package/dist/{TextUnderlineTooltip-DZYGjJq1.d.mts → TextUnderlineTooltip-DQVYsLqM.d.mts} +3 -3
- package/dist/TextUnderlineTooltip.d.mts +1 -1
- package/dist/Tile.d.mts +1 -1
- package/dist/Toast.d.mts +1 -1
- package/dist/{Toggle-BjAivdyX.d.mts → Toggle-BmUl78kH.d.mts} +1 -1
- package/dist/{Toggle-Do5z1VcO.mjs → Toggle-DZzirZ8p.mjs} +20 -11
- package/dist/Toggle-DZzirZ8p.mjs.map +1 -0
- package/dist/Toggle.d.mts +1 -1
- package/dist/{Tooltip-DSKGD33G.mjs → Tooltip-BsuYG0fw.mjs} +12 -9
- package/dist/Tooltip-BsuYG0fw.mjs.map +1 -0
- package/dist/{Tooltip-n3XkX4dp.d.mts → Tooltip-eSaiYjxT.d.mts} +3 -3
- package/dist/Tooltip.d.mts +1 -1
- package/dist/{TruncatedText-C-MJPIRi.d.mts → TruncatedText-B2v53Y11.d.mts} +2 -2
- package/dist/{codec-B0dZTwlG.d.mts → codec-D5qlDVgU.d.mts} +2 -2
- package/dist/codec.d.mts +1 -1
- package/dist/color-fQTsW4gq.d.mts +20 -0
- package/dist/components/Attribute/index.mjs +34 -9
- package/dist/components/Attribute/index.mjs.map +1 -1
- package/dist/components/Badge/index.mjs +1 -1
- package/dist/components/Banner/index.mjs +19 -8
- package/dist/components/Banner/index.mjs.map +1 -1
- package/dist/components/BottomPanel/index.mjs +4 -4
- 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 +13 -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.d.mts +2 -0
- package/dist/components/CodeHighlight/PrismWithLanguages.mjs +48 -0
- package/dist/components/CodeHighlight/PrismWithLanguages.mjs.map +1 -0
- package/dist/components/CodeHighlight/index.d.mts +2 -0
- package/dist/components/CodeHighlight/index.mjs +381 -0
- package/dist/components/CodeHighlight/index.mjs.map +1 -0
- package/dist/components/Combobox/index.d.mts +2 -2
- package/dist/components/Combobox/index.mjs +1 -1
- package/dist/components/ConfigFormGroup/index.mjs +2 -2
- package/dist/components/DataTable/TableControls/index.d.mts +19 -19
- package/dist/components/DataTable/TableControls/index.mjs +1 -1
- package/dist/components/DataTable/index.mjs +84 -44
- package/dist/components/DataTable/index.mjs.map +1 -1
- package/dist/components/DataTable/types.d.mts +2 -2
- package/dist/components/DatePicker/index.d.mts +4 -4
- 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 +5 -5
- package/dist/components/FormControl/index.d.mts +2 -2
- package/dist/components/FormControl/index.mjs +2 -2
- package/dist/components/FormField/index.d.mts +1 -1
- package/dist/components/FormField/index.mjs +1 -1
- package/dist/components/Grid/index.mjs +1 -1
- package/dist/components/HoverCopyableField/index.mjs +1 -1
- package/dist/components/ImageTile/index.mjs +18 -17
- package/dist/components/ImageTile/index.mjs.map +1 -1
- package/dist/components/Input/index.d.mts +1 -1
- package/dist/components/Input/index.mjs +1 -1
- package/dist/components/Link/index.mjs +7 -8
- package/dist/components/Link/index.mjs.map +1 -1
- package/dist/components/ListBox/index.d.mts +3 -3
- package/dist/components/ListBox/index.mjs +1 -1
- package/dist/components/LoadingShimmer/index.mjs +1 -1
- package/dist/components/MaskedInput/index.mjs +1 -1
- package/dist/components/MatchHighlight/index.mjs +6 -4
- 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.mjs +12 -72
- package/dist/components/Modal/index.mjs.map +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 +16 -19
- package/dist/components/ProgressBar/index.mjs.map +1 -1
- package/dist/components/ProgressIndicator/index.mjs +25 -19
- package/dist/components/ProgressIndicator/index.mjs.map +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/RightPanel/index.mjs +5 -5
- package/dist/components/SegmentedControl/index.d.mts +1 -1
- package/dist/components/SegmentedControl/index.mjs +1 -1
- package/dist/components/Select/index.d.mts +1 -1
- package/dist/components/Select/index.mjs +1 -1
- package/dist/components/Slider/index.mjs +21 -12
- package/dist/components/Slider/index.mjs.map +1 -1
- package/dist/components/SmartTextInput/PillType.d.mts +10 -0
- package/dist/components/SmartTextInput/PillType.mjs +31 -0
- package/dist/components/SmartTextInput/PillType.mjs.map +1 -0
- package/dist/components/SmartTextInput/parser/method-chain/grammar.pegjs +219 -0
- package/dist/components/SmartTextInput/parser/method-chain/parser.d.mts +21 -0
- package/dist/components/SmartTextInput/parser/method-chain/parser.mjs +2 -0
- package/dist/components/SmartTextInput/parser/method-chain/types.d.mts +105 -0
- package/dist/components/SmartTextInput/parser/method-chain/types.mjs +31 -0
- package/dist/components/SmartTextInput/parser/method-chain/types.mjs.map +1 -0
- package/dist/components/SmartTextInput/parser/smart-text/grammar.pegjs +154 -0
- package/dist/components/SmartTextInput/parser/smart-text/parser.d.mts +17 -0
- package/dist/components/SmartTextInput/parser/smart-text/parser.mjs +814 -0
- package/dist/components/SmartTextInput/parser/smart-text/parser.mjs.map +1 -0
- package/dist/components/SmartTextInput/parser/smart-text/types.d.mts +72 -0
- package/dist/components/SmartTextInput/parser/smart-text/types.mjs +38 -0
- package/dist/components/SmartTextInput/parser/smart-text/types.mjs.map +1 -0
- 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 +112 -13
- package/dist/components/StatusIndicator/index.mjs.map +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 +5 -4
- 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 -7
- package/dist/components/Table/index.mjs +1 -1
- package/dist/components/TableBox/index.d.mts +2 -2
- package/dist/components/TableBox/index.mjs +1 -1
- package/dist/components/TechnicalSticker/index.mjs +1 -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 +9 -8
- package/dist/components/Tile/index.mjs.map +1 -1
- package/dist/components/Toast/index.mjs +18 -12
- 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/compound-expression.d.mts +1 -1
- package/dist/{constants-Bs94Jw4y.d.mts → constants-zZyl7QbX.d.mts} +1 -1
- package/dist/constants.d.mts +1 -1
- package/dist/{date-filter-BbWgAXy3.mjs → date-filter-DMZnJwGs.mjs} +1 -1
- package/dist/{date-filter-BbWgAXy3.mjs.map → date-filter-DMZnJwGs.mjs.map} +1 -1
- package/dist/{date-range-rule-value-DBEEWTQp.d.mts → date-range-rule-value-zJaa_jR9.d.mts} +2 -2
- package/dist/date-range-rule-value.d.mts +1 -1
- package/dist/{date-rule-intent-BArNGT2E.d.mts → date-rule-intent-CdWv68my.d.mts} +3 -3
- package/dist/date-rule-intent.d.mts +1 -1
- package/dist/display.d.mts +1 -1
- package/dist/fieldPickerOptions.d.mts +2 -2
- package/dist/fieldSchemaTypes-COEJOqYL.d.mts +39 -0
- package/dist/{filter-size-context-D1UhTwOG.d.mts → filter-size-context-DYkfYMkX.d.mts} +2 -2
- package/dist/filter-size-context.d.mts +1 -1
- package/dist/helpers.d.mts +1 -1
- package/dist/{index-DASkW991.d.mts → index-BX8dSNcy.d.mts} +2 -2
- package/dist/{index-I_Cy3X5R.d.mts → index-CBWvk6Ch.d.mts} +3 -3
- package/dist/index-DxIXll2Z.d.mts +21 -0
- package/dist/index.d.mts +1 -1
- package/dist/index2.d.mts +1 -1
- package/dist/index3.d.mts +3 -3
- package/dist/index4.d.mts +1 -1
- package/dist/index5.d.mts +14 -14
- package/dist/{input-M7BEIewR.d.mts → input-DN_8iHVD.d.mts} +3 -3
- package/dist/inputFields.d.mts +10 -10
- package/dist/{intersperse-CRUnXmnu.mjs → intersperse-vOYvFOfF.mjs} +1 -1
- package/dist/{intersperse-CRUnXmnu.mjs.map → intersperse-vOYvFOfF.mjs.map} +1 -1
- package/dist/jsonSchema-B1VonQij.d.mts +222 -0
- package/dist/lib/GlobalStyles.mjs +1 -1
- package/dist/lib/HeadlessAriaButton.d.mts +1 -2
- package/dist/lib/HeadlessAriaButton.mjs +1 -1
- package/dist/lib/MiddleTruncatedText.mjs +1 -1
- package/dist/lib/PDSProvider.d.mts +1 -1
- package/dist/lib/PDSProvider.mjs +1 -1
- package/dist/lib/TruncatedText.d.mts +1 -1
- package/dist/lib/TruncatedText.mjs +1 -1
- package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
- package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
- package/dist/lib/color.d.mts +2 -0
- package/dist/lib/color.mjs +21 -0
- package/dist/lib/color.mjs.map +1 -0
- package/dist/lib/date-filter/index.d.mts +2 -2
- package/dist/lib/date-filter/index.mjs +1 -1
- package/dist/lib/errorReporter.d.mts +7 -0
- package/dist/lib/errorReporter.mjs +15 -0
- package/dist/lib/errorReporter.mjs.map +1 -0
- package/dist/lib/fieldSchemaTypes.d.mts +2 -0
- package/dist/lib/fieldSchemaTypes.mjs +41 -0
- package/dist/lib/fieldSchemaTypes.mjs.map +1 -0
- package/dist/lib/jsonSchema.d.mts +2 -0
- package/dist/lib/jsonSchema.mjs +260 -0
- package/dist/lib/jsonSchema.mjs.map +1 -0
- package/dist/lib/message.d.mts +1 -1
- package/dist/lib/methodChain.d.mts +66 -0
- package/dist/lib/methodChain.mjs +239 -0
- package/dist/lib/methodChain.mjs.map +1 -0
- package/dist/lib/methodChainNormalize.d.mts +14 -0
- package/dist/lib/methodChainNormalize.mjs +53 -0
- package/dist/lib/methodChainNormalize.mjs.map +1 -0
- package/dist/lib/methodChainTypes.d.mts +23 -0
- package/dist/lib/methodChainTypes.mjs +0 -0
- package/dist/lib/objectSchemaTypes.d.mts +2 -0
- package/dist/lib/objectSchemaTypes.mjs +0 -0
- package/dist/lib/pseudoClass.d.mts +1 -1
- package/dist/lib/selectHelper.mjs.map +1 -1
- package/dist/lib/semanticColor.d.mts +2 -0
- package/dist/lib/semanticColor.mjs +17 -0
- package/dist/lib/semanticColor.mjs.map +1 -0
- package/dist/lib/useControlled.mjs.map +1 -1
- package/dist/lib/useModalInsetRight.mjs +69 -0
- package/dist/lib/useModalInsetRight.mjs.map +1 -0
- package/dist/{message-CyxgAWZl.d.mts → message-DfEpU8lV.d.mts} +1 -1
- package/dist/mixins/focus.d.mts +4 -4
- package/dist/mixins/focus.mjs +7 -5
- package/dist/mixins/focus.mjs.map +1 -1
- package/dist/mixins/hoverable.d.mts +2 -2
- package/dist/mixins/hoverable.mjs +2 -2
- package/dist/mixins/input.d.mts +1 -1
- package/dist/mixins/input.mjs +56 -23
- package/dist/mixins/input.mjs.map +1 -1
- package/dist/mixins/menuItem.d.mts +2 -2
- package/dist/mixins/menuItem.mjs +78 -50
- package/dist/mixins/menuItem.mjs.map +1 -1
- package/dist/mixins/print/index.mjs +4 -2
- package/dist/mixins/print/index.mjs.map +1 -1
- package/dist/mixins/text.d.mts +1 -1
- package/dist/mixins/text.mjs +1 -1
- package/dist/{operators-CXkmvFpP.d.mts → operators-F8X0hyQB.d.mts} +2 -2
- package/dist/operators.d.mts +1 -1
- package/dist/palette-BANY1Xfs.d.mts +21 -0
- package/dist/palette.d.mts +2 -0
- package/dist/parser-Kxos6siN.mjs +2156 -0
- package/dist/parser-Kxos6siN.mjs.map +1 -0
- package/dist/patterns/LayoutLoadingShimmer/index.mjs +6 -6
- package/dist/patterns/LayoutLoadingSpinner/index.mjs +1 -1
- package/dist/patterns/PageLayout/index.mjs +1 -1
- package/dist/relative-date-label.d.mts +1 -1
- package/dist/semantic-Dy7mTyBP.d.mts +133 -0
- package/dist/semanticColor-DkVQjcbc.d.mts +29 -0
- package/dist/{styledComponentsInterop-8zScIQyC.mjs → styledComponentsInterop-NxwFjeA4.mjs} +2 -2
- package/dist/{styledComponentsInterop-8zScIQyC.mjs.map → styledComponentsInterop-NxwFjeA4.mjs.map} +1 -1
- package/dist/{text-DjTGRUM1.d.mts → text-BaQdW8qa.d.mts} +1 -1
- package/dist/{theme-Biwx2eJZ.d.mts → theme-D02MOaH6.d.mts} +22 -5
- package/dist/theme.d.mts +2 -2
- package/dist/theme.mjs +22 -1
- package/dist/theme.mjs.map +1 -1
- package/dist/tone.d.mts +17 -0
- package/dist/{types-V8UJX-rk.d.mts → types-1_JSe9Wr.d.mts} +2 -2
- package/dist/{types-DBBfOCX1.d.mts → types-C2s9yhgO.d.mts} +2 -2
- package/dist/{types-Bsf1VsW6.d.mts → types-COeginAF.d.mts} +1 -1
- package/dist/{types-Df0D37uh.d.mts → types-CtLY82w5.d.mts} +1 -1
- package/dist/{types-Ds43XULD.d.mts → types-Ok2lRZeu.d.mts} +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types2.d.mts +1 -1
- package/dist/types3.d.mts +1 -1
- package/dist/types4.d.mts +1 -1
- package/dist/types5.d.mts +1 -1
- package/dist/{url-state-M64mdtQ2.d.mts → url-state-DP78aDol.d.mts} +2 -2
- package/dist/url-state.d.mts +1 -1
- package/dist/useComboboxFooterAction.d.mts +1 -1
- package/dist/{useFilterStateV2-gALqONXf.d.mts → useFilterStateV2-DC2rGXHK.d.mts} +3 -3
- package/dist/useFilterStateV2.d.mts +1 -1
- package/dist/{useFormField-Bo7oHMof.d.mts → useFormField--_14te0K.d.mts} +2 -2
- package/dist/{useFormField-C-K1lgmv.mjs → useFormField-DhYd6bNn.mjs} +2 -2
- package/dist/{useFormField-C-K1lgmv.mjs.map → useFormField-DhYd6bNn.mjs.map} +1 -1
- package/dist/useFormField.d.mts +1 -1
- package/dist/{useFormGroup-y-duFylq.mjs → useFormGroup-DWVW7A9f.mjs} +1 -1
- package/dist/{useFormGroup-y-duFylq.mjs.map → useFormGroup-DWVW7A9f.mjs.map} +1 -1
- package/dist/{useTableBoxDragAndDrop-BrJFRSaG.d.mts → useTableBoxDragAndDrop-DkCxC7Mi.d.mts} +1 -1
- package/dist/useTableBoxDragAndDrop.d.mts +1 -1
- package/dist/{useToggle-Bo3yd14Y.mjs → useToggle-0zLL1E7s.mjs} +1 -1
- package/dist/{useToggle-Bo3yd14Y.mjs.map → useToggle-0zLL1E7s.mjs.map} +1 -1
- package/dist/useTruncation.d.mts +1 -1
- package/dist/{utilities-BHMNnJ8h.d.mts → utilities-C1hOxjt_.d.mts} +1 -1
- package/dist/utilities.d.mts +1 -1
- package/dist/utils/storybook.mjs +1 -1
- package/dist/utils/storybook.mjs.map +1 -1
- package/dist/utils/testing.mjs.map +1 -1
- package/dist/utils.d.mts +1 -1
- package/dist/{validation-BCBIvN6H.d.mts → validation-CpDsI-TM.d.mts} +3 -3
- package/dist/validation.d.mts +1 -1
- package/dist/{value-control-resolver-qKTH1ErF.d.mts → value-control-resolver-DhaqxKmK.d.mts} +2 -2
- package/dist/value-control-resolver.d.mts +1 -1
- package/dist/variables/effect.d.mts +14 -3
- package/dist/variables/effect.mjs +5 -3
- package/dist/variables/effect.mjs.map +1 -1
- package/dist/variables/keyframes.mjs +1 -1
- package/dist/variables/semantic.d.mts +2 -0
- package/dist/variables/semantic.mjs +241 -0
- package/dist/variables/semantic.mjs.map +1 -0
- package/llms.txt +1 -0
- package/package.json +70 -7
- package/skills/design-system-component-authoring/SKILL.md +79 -0
- package/skills/design-system-component-authoring/clarifying-scope.md +18 -0
- package/skills/design-system-component-authoring/component-conventions.md +70 -0
- package/skills/design-system-component-authoring/prop-interface-patterns.md +30 -0
- package/skills/ui-authoring/COMPONENTS.md +1 -1
- package/skills/ui-authoring/TOKENS.md +1 -1
- package/dist/Breadcrumbs-BEYQlGbW.mjs.map +0 -1
- package/dist/Card-BoGV5tY2.d.mts +0 -52
- package/dist/Card-CKrJtn1f.mjs.map +0 -1
- package/dist/CardV2-B2wx1NE3.mjs.map +0 -1
- package/dist/Checkbox-DwZEsi7x.mjs.map +0 -1
- package/dist/Combobox-CKaVX-32.mjs.map +0 -1
- package/dist/DatePicker-D2SfjS-N.mjs.map +0 -1
- package/dist/FormControl-DQFefbrI.mjs.map +0 -1
- package/dist/IconButton-BnSEV7eR.mjs.map +0 -1
- package/dist/Input-D7of_GtJ.mjs.map +0 -1
- package/dist/ListBox-jzXQDraS.mjs.map +0 -1
- package/dist/LoadingShimmer-a2Hv0kAq.mjs.map +0 -1
- package/dist/Menu-DVI8l-4Q.mjs.map +0 -1
- package/dist/PageHeader-BpGT-BM0.mjs.map +0 -1
- package/dist/Pagination-CVRTcKSG.mjs.map +0 -1
- package/dist/Popover-DlXyKYL5.mjs.map +0 -1
- package/dist/Radio-DYGEt0FT.mjs.map +0 -1
- package/dist/SegmentedControl-DwbltwDQ.mjs.map +0 -1
- package/dist/Select-CBVvPyRJ.mjs.map +0 -1
- package/dist/Spinner-e725Rxkd.mjs.map +0 -1
- package/dist/Sticker-By3F8Aip.mjs.map +0 -1
- package/dist/TabBar-CWF65Tv4.mjs.map +0 -1
- package/dist/Table-nWd5ZVbm.mjs.map +0 -1
- package/dist/TableBox-Bd-H5oyh.mjs.map +0 -1
- package/dist/TableControls-BnesnTue.mjs.map +0 -1
- package/dist/TechnicalSticker-Ct2WnNzJ.mjs.map +0 -1
- package/dist/Text-B0orb-cZ.mjs.map +0 -1
- package/dist/Toggle-Do5z1VcO.mjs.map +0 -1
- package/dist/Tooltip-DSKGD33G.mjs.map +0 -1
- /package/dist/{index-8SLBz2NH.d.mts → index-1-AkepUA.d.mts} +0 -0
- /package/dist/{index-Bt4QNofW.d.mts → index-BFnNtGdX.d.mts} +0 -0
- /package/dist/{index-BwAfCVZH2.d.mts → index-BO_854F2.d.mts} +0 -0
- /package/dist/{index-BwFl_eS0.d.mts → index-BPiqSRRl.d.mts} +0 -0
- /package/dist/{index-CCKHlTA4.d.mts → index-BSVhZrWN.d.mts} +0 -0
- /package/dist/{index-CDGG7lCB.d.mts → index-BYd3Btr1.d.mts} +0 -0
- /package/dist/{index-CRo77wc3.d.mts → index-B_BBnMou.d.mts} +0 -0
- /package/dist/{index-CX869wwk.d.mts → index-BrGZHEgX.d.mts} +0 -0
- /package/dist/{index-D13oYj4_.d.mts → index-Ci-uuV07.d.mts} +0 -0
- /package/dist/{index-D4DUvwPf.d.mts → index-CknANNvQ2.d.mts} +0 -0
- /package/dist/{index-D7UbuJwP.d.mts → index-CtJuGxUp.d.mts} +0 -0
- /package/dist/{index-DA6_cwf8.d.mts → index-CuYZJcK3.d.mts} +0 -0
- /package/dist/{index-DMRtRo7y.d.mts → index-DWfPppPU.d.mts} +0 -0
- /package/dist/{index-Dflz2i1X.d.mts → index-DYX_PQ7T2.d.mts} +0 -0
- /package/dist/{index-DvmLVvRD.d.mts → index-DZlqSwCF.d.mts} +0 -0
- /package/dist/{index-Es5nKSSL.d.mts → index-De7MV8-j.d.mts} +0 -0
- /package/dist/{index-Wc1llEvP.d.mts → index-Deol7ZWO.d.mts} +0 -0
- /package/dist/{index-dhjtMp5F.d.mts → index-N-OgGgfF.d.mts} +0 -0
- /package/dist/{index-e6k85DKM.d.mts → index-VWno75SQ.d.mts} +0 -0
- /package/dist/{index-ehD5GjMH.d.mts → index-hcx6LMSC.d.mts} +0 -0
- /package/dist/{useModalInsetRight.d.mts → lib/useModalInsetRight.d.mts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../components/Slider/SliderThumb.tsx","../../../components/Slider/Slider.tsx","../../../components/Slider/SliderRHF.tsx"],"sourcesContent":["import {\n autoUpdate,\n type ElementProps,\n flip,\n type FloatingContext,\n offset,\n shift,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { useFocusRing } from '@react-aria/focus';\nimport { useSliderThumb } from '@react-aria/slider';\nimport { mergeProps } from '@react-aria/utils';\nimport { VisuallyHidden } from '@react-aria/visually-hidden';\nimport type { SliderState } from '@react-stately/slider';\nimport { debounce } from 'lodash-es';\nimport {\n type OutputHTMLAttributes,\n type RefObject,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport styled from 'styled-components';\n\nimport { Color } from '@persona/design-tokens';\nimport { FloatingTooltip } from 'design-system/components/Tooltip';\nimport { focusStyle } from 'design-system/mixins/focus';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\nconst Tooltip = styled(FloatingTooltip)`\n ${paragraphMixins.sm};\n`;\n\nconst Thumb = styled('div')<{ disabled?: boolean }>`\n /* Note this will break if the element is not on a white background. Variable is provided to be able to override. */\n --background-color-behind-thumb: ${Color.PrimaryWhite};\n box-sizing: border-box;\n width: 16px;\n height: 16px;\n background: ${(props) =>\n props.disabled ? Color.BackgroundInputDisabled : Color.BackgroundInputDefault};\n cursor: ${(props) => (props.disabled ? 'inherit' : 'pointer')};\n border-radius: 50%;\n border: 1px solid ${Color.BorderInputDisabled};\n /* Enable clicks on thumb */\n pointer-events: auto;\n\n &[data-focused] {\n ${focusStyle}\n /* Extra pixel of size to overlap into the outline, fixing a small visual bug */\n box-shadow: 0 0 0 2px var(--background-color-behind-thumb);\n }\n`;\n\ninterface SliderThumbProps {\n state: SliderState;\n trackRef: RefObject<HTMLElement>;\n index: number;\n outputProps: OutputHTMLAttributes<HTMLOutputElement>;\n hideTooltips?: boolean;\n}\n\ninterface UsePressedOptions {\n delay?: number;\n}\n\nconst usePressed = (context: FloatingContext, options?: UsePressedOptions): ElementProps => {\n const closeHandler = useMemo(\n () => debounce(() => context.onOpenChange(false), options?.delay ?? 500),\n [],\n );\n return {\n reference: {\n onPointerDown: () => {\n context.onOpenChange(true);\n },\n onPointerUp: () => {\n closeHandler();\n },\n },\n };\n};\n\nconst SliderThumb = ({ state, trackRef, index, outputProps, hideTooltips }: SliderThumbProps) => {\n const inputRef = useRef(null);\n const { thumbProps, inputProps } = useSliderThumb(\n {\n index,\n trackRef,\n inputRef,\n },\n state,\n );\n\n const { focusProps, isFocused } = useFocusRing();\n\n const [open, setOpen] = useState(false);\n\n const { x, y, refs, strategy, context } = useFloating({\n placement: 'top',\n open,\n onOpenChange: setOpen,\n whileElementsMounted: autoUpdate,\n middleware: [offset(4), flip(), shift({ padding: 4 })],\n });\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useRole(context, { role: 'tooltip' }),\n useDismiss(context),\n usePressed(context),\n ]);\n\n useEffect(() => {\n setOpen(isFocused);\n }, [isFocused]);\n\n return (\n <div\n style={{\n position: 'absolute',\n top: '50%',\n transform: 'translateX(-50%) translateY(-50%)',\n left: `${state.getThumbPercent(index) * 100}%`,\n }}\n >\n {open && !hideTooltips && (\n <Tooltip\n {...mergeProps(\n getFloatingProps({\n ref: refs.setFloating,\n style: {\n position: strategy,\n top: y ?? '',\n left: x ?? '',\n },\n }),\n outputProps,\n )}\n >\n {state.getThumbValueLabel(index)}\n </Tooltip>\n )}\n <Thumb\n {...mergeProps(\n thumbProps,\n getReferenceProps({\n ref: refs.setReference,\n }),\n isFocused ? { 'data-focused': true } : undefined,\n )}\n >\n <VisuallyHidden>\n <input ref={inputRef} {...mergeProps(inputProps, focusProps)} />\n </VisuallyHidden>\n </Thumb>\n </div>\n );\n};\n\nexport default SliderThumb;\n","import type { NumberFormatOptions } from '@internationalized/number';\nimport { useNumberFormatter } from '@react-aria/i18n';\nimport { useSlider } from '@react-aria/slider';\nimport { useSliderState } from '@react-stately/slider';\nimport type { SliderProps as SliderPropsType } from '@react-types/slider';\nimport { type FocusEventHandler, type ReactNode, useRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Color, Spacing } from '@persona/design-tokens';\nimport SliderThumb from 'design-system/components/Slider/SliderThumb';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\nconst SliderContainer = styled.div`\n display: flex;\n align-items: center;\n touch-action: none;\n position: relative;\n`;\n\nconst SliderLabel = styled.div`\n ${paragraphMixins.md};\n &:first-of-type {\n padding-right: ${Spacing[2]};\n }\n\n &:last-of-type {\n padding-left: ${Spacing[2]};\n }\n`;\n\ntype SliderTrackProps = {\n track?: boolean;\n percents: number[];\n disabled?: boolean;\n};\nconst SliderTrack = styled.div<SliderTrackProps>`\n position: relative;\n width: 100%;\n height: 4px;\n border-radius: 4px;\n outline: none;\n transition: background 0.2s;\n\n /* Disable clicks on slide bar */\n pointer-events: none;\n\n ${({ percents, track, disabled }) => {\n const activeColor = disabled ? Color.BorderInputDisabled : Color.CoreBlue700;\n const trackColor = Color.BorderDivider;\n\n if (track === false) {\n return css`\n background: ${Color.BorderDivider};\n `;\n }\n\n if (percents.length === 2) {\n return css`\n background: linear-gradient(\n to right,\n ${trackColor} 0%,\n ${trackColor} ${percents[0] * 100}%,\n ${activeColor} ${percents[0] * 100}%,\n ${activeColor} ${percents[1] * 100}%,\n ${trackColor} ${percents[1] * 100}%,\n ${trackColor} 100%\n );\n `;\n }\n\n const leftColor = activeColor;\n const rightColor = trackColor;\n\n return css`\n background: linear-gradient(\n to right,\n ${leftColor} 0%,\n ${leftColor} ${percents[0] * 100}%,\n ${rightColor} ${percents[0] * 100}%,\n ${rightColor} 100%\n );\n `;\n }}\n`;\n\nexport interface SliderProps<T = number | number[]> {\n min?: number;\n minLabel?: ReactNode;\n max?: number;\n maxLabel?: ReactNode;\n onChange?: (value: T) => void;\n value?: T;\n defaultValue?: T;\n step?: number;\n\n /**\n * Show labels on ends of track\n */\n showLabels?: boolean;\n\n /**\n * Track style\n */\n track?: boolean;\n\n /**\n * Hide tooltips on slider thumbs\n */\n hideTooltips?: boolean;\n width?: number | 'auto';\n disabled?: boolean;\n formatOptions?: NumberFormatOptions;\n\n id?: string;\n className?: string;\n name?: string;\n onBlur?: FocusEventHandler<HTMLDivElement>;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n}\n\nexport const Slider = ({\n minLabel,\n maxLabel,\n showLabels,\n track,\n width,\n hideTooltips,\n className,\n id,\n onBlur,\n ...elemProps\n}: SliderProps) => {\n const { min, max, value, defaultValue, disabled } = elemProps;\n const trackRef = useRef(null);\n const numberFormatter = useNumberFormatter(elemProps.formatOptions);\n\n const ariaElemProps: SliderPropsType = {\n ...elemProps,\n isDisabled: disabled,\n minValue: min,\n maxValue: max,\n value: typeof value === 'number' ? [value] : value,\n defaultValue: typeof defaultValue === 'number' ? [defaultValue] : defaultValue,\n onChange:\n typeof elemProps.onChange !== 'undefined'\n ? (v) => {\n if (Array.isArray(v) && v.length === 1) {\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n return elemProps.onChange(v[0]);\n }\n\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n return elemProps.onChange(v);\n }\n : undefined,\n };\n\n const state = useSliderState({ ...ariaElemProps, numberFormatter });\n const { groupProps, trackProps, outputProps } = useSlider(ariaElemProps, state, trackRef);\n\n return (\n <SliderContainer\n {...groupProps}\n style={{\n position: 'relative',\n alignItems: 'center',\n width: width ?? 300,\n touchAction: 'none',\n }}\n className={className}\n id={id}\n onBlur={onBlur}\n >\n {showLabels && <SliderLabel>{minLabel ?? min}</SliderLabel>}\n <SliderTrack\n {...trackProps}\n track={track}\n ref={trackRef}\n percents={state.values.map((_v, i) => state.getThumbPercent(i))}\n disabled={disabled}\n >\n {state.values.map((_v, i) => (\n <SliderThumb\n key={`${trackProps.id}_thumb${i}`}\n index={i}\n state={state}\n trackRef={trackRef}\n hideTooltips={hideTooltips}\n outputProps={outputProps}\n />\n ))}\n </SliderTrack>\n {showLabels && <SliderLabel>{maxLabel ?? max}</SliderLabel>}\n </SliderContainer>\n );\n};\n\nexport default Slider;\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { type Control, type FieldValues, useController } from 'react-hook-form';\n\nimport Slider from './Slider';\n\ninterface SliderRHFProps extends ComponentPropsWithoutRef<typeof Slider> {\n control: Control<FieldValues, object>;\n name: string;\n}\n\nconst SliderRHF = ({ control, name: nameProp, defaultValue, ...elemProps }: SliderRHFProps) => {\n const {\n field: { onChange, onBlur, name, value },\n } = useController({\n name: nameProp,\n control,\n rules: { required: true },\n defaultValue,\n });\n\n return <Slider {...elemProps} onBlur={onBlur} onChange={onChange} value={value} name={name} />;\n};\n\nexport default SliderRHF;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../components/Slider/SliderThumb.tsx","../../../components/Slider/Slider.tsx","../../../components/Slider/SliderRHF.tsx"],"sourcesContent":["import {\n autoUpdate,\n type ElementProps,\n flip,\n type FloatingContext,\n offset,\n shift,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { useFocusRing } from '@react-aria/focus';\nimport { useSliderThumb } from '@react-aria/slider';\nimport { mergeProps } from '@react-aria/utils';\nimport { VisuallyHidden } from '@react-aria/visually-hidden';\nimport type { SliderState } from '@react-stately/slider';\nimport { debounce } from 'lodash-es';\nimport {\n type OutputHTMLAttributes,\n type RefObject,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport styled from 'styled-components';\n\nimport { Color } from '@persona/design-tokens';\nimport { FloatingTooltip } from 'design-system/components/Tooltip';\nimport { semanticColor } from 'design-system/lib/semanticColor';\nimport { focusStyle } from 'design-system/mixins/focus';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\nconst Tooltip = styled(FloatingTooltip)`\n ${paragraphMixins.sm};\n`;\n\nconst Thumb = styled('div')<{ disabled?: boolean }>`\n /* Note this will break if the element is not on a white background. Variable is provided to be able to override. */\n --background-color-behind-thumb: ${({ theme }) => semanticColor(theme, 'SurfacePrimary', Color.PrimaryWhite)};\n box-sizing: border-box;\n width: 16px;\n height: 16px;\n background: ${({ theme, disabled }) =>\n disabled\n ? semanticColor(theme, 'InputSurfaceDisabled', Color.BackgroundInputDisabled)\n : semanticColor(theme, 'InputSurfaceInverseStatic', Color.BackgroundInputDefault)};\n cursor: ${(props) => (props.disabled ? 'inherit' : 'pointer')};\n border-radius: 50%;\n border: 1px solid\n ${({ theme, disabled }) =>\n disabled\n ? semanticColor(theme, 'InputBorderDisabled', Color.BorderInputDisabled)\n : semanticColor(theme, 'BorderDefault', Color.BorderInputDisabled)};\n /* Enable clicks on thumb */\n pointer-events: auto;\n\n &[data-focused] {\n ${focusStyle}\n /* Extra pixel of size to overlap into the outline, fixing a small visual bug */\n box-shadow: 0 0 0 2px var(--background-color-behind-thumb);\n }\n`;\n\ninterface SliderThumbProps {\n state: SliderState;\n trackRef: RefObject<HTMLElement>;\n index: number;\n outputProps: OutputHTMLAttributes<HTMLOutputElement>;\n hideTooltips?: boolean;\n}\n\ninterface UsePressedOptions {\n delay?: number;\n}\n\nconst usePressed = (context: FloatingContext, options?: UsePressedOptions): ElementProps => {\n const closeHandler = useMemo(\n () => debounce(() => context.onOpenChange(false), options?.delay ?? 500),\n [],\n );\n return {\n reference: {\n onPointerDown: () => {\n context.onOpenChange(true);\n },\n onPointerUp: () => {\n closeHandler();\n },\n },\n };\n};\n\nconst SliderThumb = ({ state, trackRef, index, outputProps, hideTooltips }: SliderThumbProps) => {\n const inputRef = useRef(null);\n const { thumbProps, inputProps } = useSliderThumb(\n {\n index,\n trackRef,\n inputRef,\n },\n state,\n );\n\n const { focusProps, isFocused } = useFocusRing();\n\n const [open, setOpen] = useState(false);\n\n const { x, y, refs, strategy, context } = useFloating({\n placement: 'top',\n open,\n onOpenChange: setOpen,\n whileElementsMounted: autoUpdate,\n middleware: [offset(4), flip(), shift({ padding: 4 })],\n });\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useRole(context, { role: 'tooltip' }),\n useDismiss(context),\n usePressed(context),\n ]);\n\n useEffect(() => {\n setOpen(isFocused);\n }, [isFocused]);\n\n return (\n <div\n style={{\n position: 'absolute',\n top: '50%',\n transform: 'translateX(-50%) translateY(-50%)',\n left: `${state.getThumbPercent(index) * 100}%`,\n }}\n >\n {open && !hideTooltips && (\n <Tooltip\n {...mergeProps(\n getFloatingProps({\n ref: refs.setFloating,\n style: {\n position: strategy,\n top: y ?? '',\n left: x ?? '',\n },\n }),\n outputProps,\n )}\n >\n {state.getThumbValueLabel(index)}\n </Tooltip>\n )}\n <Thumb\n {...mergeProps(\n thumbProps,\n getReferenceProps({\n ref: refs.setReference,\n }),\n isFocused ? { 'data-focused': true } : undefined,\n )}\n >\n <VisuallyHidden>\n <input ref={inputRef} {...mergeProps(inputProps, focusProps)} />\n </VisuallyHidden>\n </Thumb>\n </div>\n );\n};\n\nexport default SliderThumb;\n","import type { NumberFormatOptions } from '@internationalized/number';\nimport { useNumberFormatter } from '@react-aria/i18n';\nimport { useSlider } from '@react-aria/slider';\nimport { useSliderState } from '@react-stately/slider';\nimport type { SliderProps as SliderPropsType } from '@react-types/slider';\nimport { type FocusEventHandler, type ReactNode, useRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Color, Spacing } from '@persona/design-tokens';\nimport SliderThumb from 'design-system/components/Slider/SliderThumb';\nimport { semanticColor, semanticOnly } from 'design-system/lib/semanticColor';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\nconst SliderContainer = styled.div`\n display: flex;\n align-items: center;\n touch-action: none;\n position: relative;\n`;\n\nconst SliderLabel = styled.div<{ $disabled?: boolean }>`\n ${paragraphMixins.md};\n ${({ $disabled }) =>\n semanticOnly((tokens) => `color: ${$disabled ? tokens.FgDisabled : tokens.FgPrimary};`)}\n &:first-of-type {\n padding-right: ${Spacing[2]};\n }\n\n &:last-of-type {\n padding-left: ${Spacing[2]};\n }\n`;\n\ntype SliderTrackProps = {\n track?: boolean;\n percents: number[];\n disabled?: boolean;\n};\nconst SliderTrack = styled.div<SliderTrackProps>`\n position: relative;\n width: 100%;\n height: 4px;\n border-radius: 4px;\n outline: none;\n transition: background 0.2s;\n\n /* Disable clicks on slide bar */\n pointer-events: none;\n\n ${({ theme, percents, track, disabled }) => {\n const activeColor = disabled\n ? semanticColor(theme, 'InputBorderDisabled', Color.BorderInputDisabled)\n : semanticColor(theme, 'InputBorderAccent', Color.CoreBlue700);\n const trackColor = semanticColor(theme, 'BorderDivider', Color.BorderDivider);\n\n if (track === false) {\n return css`\n background: ${trackColor};\n `;\n }\n\n if (percents.length === 2) {\n return css`\n background: linear-gradient(\n to right,\n ${trackColor} 0%,\n ${trackColor} ${percents[0] * 100}%,\n ${activeColor} ${percents[0] * 100}%,\n ${activeColor} ${percents[1] * 100}%,\n ${trackColor} ${percents[1] * 100}%,\n ${trackColor} 100%\n );\n `;\n }\n\n const leftColor = activeColor;\n const rightColor = trackColor;\n\n return css`\n background: linear-gradient(\n to right,\n ${leftColor} 0%,\n ${leftColor} ${percents[0] * 100}%,\n ${rightColor} ${percents[0] * 100}%,\n ${rightColor} 100%\n );\n `;\n }}\n`;\n\nexport interface SliderProps<T = number | number[]> {\n min?: number;\n minLabel?: ReactNode;\n max?: number;\n maxLabel?: ReactNode;\n onChange?: (value: T) => void;\n value?: T;\n defaultValue?: T;\n step?: number;\n\n /**\n * Show labels on ends of track\n */\n showLabels?: boolean;\n\n /**\n * Track style\n */\n track?: boolean;\n\n /**\n * Hide tooltips on slider thumbs\n */\n hideTooltips?: boolean;\n width?: number | 'auto';\n disabled?: boolean;\n formatOptions?: NumberFormatOptions;\n\n id?: string;\n className?: string;\n name?: string;\n onBlur?: FocusEventHandler<HTMLDivElement>;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n}\n\nexport const Slider = ({\n minLabel,\n maxLabel,\n showLabels,\n track,\n width,\n hideTooltips,\n className,\n id,\n onBlur,\n ...elemProps\n}: SliderProps) => {\n const { min, max, value, defaultValue, disabled } = elemProps;\n const trackRef = useRef(null);\n const numberFormatter = useNumberFormatter(elemProps.formatOptions);\n\n const ariaElemProps: SliderPropsType = {\n ...elemProps,\n isDisabled: disabled,\n minValue: min,\n maxValue: max,\n value: typeof value === 'number' ? [value] : value,\n defaultValue: typeof defaultValue === 'number' ? [defaultValue] : defaultValue,\n onChange:\n typeof elemProps.onChange !== 'undefined'\n ? (v) => {\n if (Array.isArray(v) && v.length === 1) {\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n return elemProps.onChange(v[0]);\n }\n\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n return elemProps.onChange(v);\n }\n : undefined,\n };\n\n const state = useSliderState({ ...ariaElemProps, numberFormatter });\n const { groupProps, trackProps, outputProps } = useSlider(ariaElemProps, state, trackRef);\n\n return (\n <SliderContainer\n {...groupProps}\n style={{\n position: 'relative',\n alignItems: 'center',\n width: width ?? 300,\n touchAction: 'none',\n }}\n className={className}\n id={id}\n onBlur={onBlur}\n >\n {showLabels && <SliderLabel $disabled={disabled}>{minLabel ?? min}</SliderLabel>}\n <SliderTrack\n {...trackProps}\n track={track}\n ref={trackRef}\n percents={state.values.map((_v, i) => state.getThumbPercent(i))}\n disabled={disabled}\n >\n {state.values.map((_v, i) => (\n <SliderThumb\n key={`${trackProps.id}_thumb${i}`}\n index={i}\n state={state}\n trackRef={trackRef}\n hideTooltips={hideTooltips}\n outputProps={outputProps}\n />\n ))}\n </SliderTrack>\n {showLabels && <SliderLabel $disabled={disabled}>{maxLabel ?? max}</SliderLabel>}\n </SliderContainer>\n );\n};\n\nexport default Slider;\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { type Control, type FieldValues, useController } from 'react-hook-form';\n\nimport Slider from './Slider';\n\ninterface SliderRHFProps extends ComponentPropsWithoutRef<typeof Slider> {\n control: Control<FieldValues, object>;\n name: string;\n}\n\nconst SliderRHF = ({ control, name: nameProp, defaultValue, ...elemProps }: SliderRHFProps) => {\n const {\n field: { onChange, onBlur, name, value },\n } = useController({\n name: nameProp,\n control,\n rules: { required: true },\n defaultValue,\n });\n\n return <Slider {...elemProps} onBlur={onBlur} onChange={onChange} value={value} name={name} />;\n};\n\nexport default SliderRHF;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as _$styled_components0 from "styled-components";
|
|
2
|
+
|
|
3
|
+
//#region components/SmartTextInput/PillType.d.ts
|
|
4
|
+
declare const PillType: _$styled_components0.StyledComponent<"div", any, {
|
|
5
|
+
purple?: boolean;
|
|
6
|
+
error?: boolean;
|
|
7
|
+
}, never>;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { PillType as default };
|
|
10
|
+
//# sourceMappingURL=PillType.d.mts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { a as styled, r as css } from "../../styledComponentsInterop-NxwFjeA4.mjs";
|
|
2
|
+
import { BorderRadius, Color, Spacing, Typography } from "@persona/design-tokens";
|
|
3
|
+
//#region components/SmartTextInput/PillType.tsx
|
|
4
|
+
const PillType = styled.div`
|
|
5
|
+
padding: 0 ${Spacing[1]};
|
|
6
|
+
height: 16px;
|
|
7
|
+
${Typography.TextExtraSmall};
|
|
8
|
+
font-family: ${({ theme }) => theme.text.fontFamily.mono};
|
|
9
|
+
background: ${Color.CoreSlate100};
|
|
10
|
+
color: ${({ theme }) => theme.color.text.primary};
|
|
11
|
+
border: 1px solid ${Color.CoreSlate300};
|
|
12
|
+
border-radius: ${BorderRadius.Md};
|
|
13
|
+
white-space: nowrap;
|
|
14
|
+
|
|
15
|
+
${({ purple }) => {
|
|
16
|
+
if (purple) return css`
|
|
17
|
+
background: ${Color.CorePurple100};
|
|
18
|
+
border-color: ${Color.CorePurple300};
|
|
19
|
+
`;
|
|
20
|
+
}}
|
|
21
|
+
|
|
22
|
+
${({ error }) => {
|
|
23
|
+
if (error) return css`
|
|
24
|
+
color: ${Color.TextDanger};
|
|
25
|
+
`;
|
|
26
|
+
}}
|
|
27
|
+
`;
|
|
28
|
+
//#endregion
|
|
29
|
+
export { PillType as default };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=PillType.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PillType.mjs","names":[],"sources":["../../../components/SmartTextInput/PillType.tsx"],"sourcesContent":["import styled, { css } from 'styled-components';\n\nimport { BorderRadius, Color, Spacing, Typography } from '@persona/design-tokens';\n\nconst PillType = styled.div<{ purple?: boolean; error?: boolean }>`\n padding: 0 ${Spacing[1]};\n height: 16px;\n ${Typography.TextExtraSmall};\n font-family: ${({ theme }) => theme.text.fontFamily.mono};\n background: ${Color.CoreSlate100};\n color: ${({ theme }) => theme.color.text.primary};\n border: 1px solid ${Color.CoreSlate300};\n border-radius: ${BorderRadius.Md};\n white-space: nowrap;\n\n ${({ purple }) => {\n if (purple) {\n return css`\n background: ${Color.CorePurple100};\n border-color: ${Color.CorePurple300};\n `;\n }\n }}\n\n ${({ error }) => {\n if (error) {\n return css`\n color: ${Color.TextDanger};\n `;\n }\n }}\n`;\n\nexport default PillType;\n"],"mappings":";;;AAIA,MAAM,WAAW,OAAO,GAA0C;eACnD,QAAQ,GAAG;;IAEtB,WAAW,eAAe;kBACZ,EAAE,YAAY,MAAM,KAAK,WAAW,KAAK;gBAC3C,MAAM,aAAa;YACvB,EAAE,YAAY,MAAM,MAAM,KAAK,QAAQ;sBAC7B,MAAM,aAAa;mBACtB,aAAa,GAAG;;;KAG9B,EAAE,aAAa;AAChB,KAAI,OACF,QAAO,GAAG;sBACM,MAAM,cAAc;wBAClB,MAAM,cAAc;;EAGxC;;KAEC,EAAE,YAAY;AACf,KAAI,MACF,QAAO,GAAG;iBACC,MAAM,WAAW;;EAG9B"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ===========================================================================
|
|
3
|
+
* Run bin/method_chain_parser/generate.sh after making change
|
|
4
|
+
* See parser.js in this directory for generated output
|
|
5
|
+
* ===========================================================================
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
{{
|
|
9
|
+
function mkError(start, end, kind, extra) {
|
|
10
|
+
return { type: 'error', start, end, ...(kind ? { kind } : {}), ...(extra || {}) };
|
|
11
|
+
}
|
|
12
|
+
function hasErrors(node) {
|
|
13
|
+
if (!node || typeof node !== 'object') return false;
|
|
14
|
+
if (node.type === 'error') return true;
|
|
15
|
+
const children = node.children || [];
|
|
16
|
+
return children.some(hasErrors);
|
|
17
|
+
}
|
|
18
|
+
}}
|
|
19
|
+
|
|
20
|
+
Chain
|
|
21
|
+
= first:(SymbolIdentifier / InvalidChainStart)
|
|
22
|
+
rest:(Link / ErrorLink)*
|
|
23
|
+
{
|
|
24
|
+
const chain = { type: 'chain', children: [first, ...rest.flat()],
|
|
25
|
+
start: location().start.offset, end: location().end.offset };
|
|
26
|
+
if (options.strict === true && hasErrors(chain)) { error('Invalid chain'); }
|
|
27
|
+
return chain;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Matches a non-identifier chain start. Excludes }, ,, ) to avoid consuming
|
|
31
|
+
// delimiters in Handlebars / param contexts. Also excludes . so trailing-dot
|
|
32
|
+
// ErrorLink handles dot-after-dot rather than producing two separate errors.
|
|
33
|
+
InvalidChainStart
|
|
34
|
+
= !"}" !"," !")" !SymbolIdentifier c:. {
|
|
35
|
+
const s = location().start.offset;
|
|
36
|
+
const e = location().end.offset;
|
|
37
|
+
return mkError(s, e, 'invalidMethodChainSyntax');
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
ErrorLink
|
|
41
|
+
= d:DotNode !. {
|
|
42
|
+
// Dot at absolute end of input — user is still typing (wip).
|
|
43
|
+
const e = location().end.offset;
|
|
44
|
+
return [d, mkError(e, e, 'trailingDot', { wip: true })];
|
|
45
|
+
}
|
|
46
|
+
/ d:DotNode &("}" / "$" / "{") {
|
|
47
|
+
// Dot immediately before a Handlebars/Code delimiter — user is still
|
|
48
|
+
// typing the identifier that will follow (wip).
|
|
49
|
+
const e = location().end.offset;
|
|
50
|
+
return [d, mkError(e, e, 'trailingDot', { wip: true })];
|
|
51
|
+
}
|
|
52
|
+
/ d:DotNode "@" (!. / &("}" / "$" / "{")) {
|
|
53
|
+
// '@' at end of input or before a delimiter — user starting a custom function name (wip).
|
|
54
|
+
const e = location().end.offset;
|
|
55
|
+
return [d, mkError(e, e, 'trailingAtSign', { wip: true })];
|
|
56
|
+
}
|
|
57
|
+
/ d:DotNode !(SymbolIdentifier / "@" / "[") c:. {
|
|
58
|
+
// Dot followed by a character that is not a valid link start — consume
|
|
59
|
+
// the bad character and report it as a syntax error (not wip).
|
|
60
|
+
const s = d.end;
|
|
61
|
+
const e = location().end.offset;
|
|
62
|
+
return [d, mkError(s, e, 'invalidMethodChainSyntax')];
|
|
63
|
+
}
|
|
64
|
+
/ [ \t]+ (!("}" / "$" / "{") .)* {
|
|
65
|
+
return mkError(location().start.offset, location().end.offset, 'invalidMethodChainSyntax');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
Link
|
|
69
|
+
= (d:DotNode link:(CustomFunction / Function / SymbolIdentifier) { return [d, link] })
|
|
70
|
+
/ @LiteralIdentifier
|
|
71
|
+
|
|
72
|
+
DotNode
|
|
73
|
+
= '.' { return { type: 'dot', start: location().start.offset, end: location().end.offset } }
|
|
74
|
+
|
|
75
|
+
CustomFunction
|
|
76
|
+
= '@' name:[a-z0-9_-]i+ po:ParenOpen _ params:Parameters? _ pc:ParenClose
|
|
77
|
+
{ return { type: 'custom_function', name: name.join(''),
|
|
78
|
+
children: [po, ...(params || []), pc],
|
|
79
|
+
start: location().start.offset, end: location().end.offset } }
|
|
80
|
+
/ '@' name:[a-z0-9_-]i+ po:ParenOpen _ params:Parameters _ &{ return options.strict !== true; }
|
|
81
|
+
{
|
|
82
|
+
const s = location().start.offset;
|
|
83
|
+
const e = location().end.offset;
|
|
84
|
+
return { type: 'custom_function', name: name.join(''), start: s, end: e,
|
|
85
|
+
children: [po, ...params.map(p => ({ ...p, end: e })),
|
|
86
|
+
mkError(e, e, 'unclosedFunctionParen', { wip: true })] };
|
|
87
|
+
}
|
|
88
|
+
/ '@' name:[a-z0-9_-]i+ po:ParenOpen _ &{ return options.strict !== true; }
|
|
89
|
+
{
|
|
90
|
+
const e = location().end.offset;
|
|
91
|
+
return { type: 'custom_function', name: name.join(''),
|
|
92
|
+
start: location().start.offset, end: e,
|
|
93
|
+
children: [po, mkError(e, e, 'unclosedFunctionParen', { wip: true })] };
|
|
94
|
+
}
|
|
95
|
+
/ '@' name:[a-z0-9_-]i+
|
|
96
|
+
{ return { type: 'custom_function', name: name.join(''), children: [],
|
|
97
|
+
start: location().start.offset, end: location().end.offset } }
|
|
98
|
+
|
|
99
|
+
Function
|
|
100
|
+
= id:SymbolIdentifier po:ParenOpen _ params:Parameters? _ pc:ParenClose
|
|
101
|
+
{ return { type: 'function', name: id.name,
|
|
102
|
+
children: [po, ...(params || []), pc],
|
|
103
|
+
start: location().start.offset, end: location().end.offset } }
|
|
104
|
+
/ id:SymbolIdentifier po:ParenOpen _ params:Parameters _ "," _ &{ return options.strict !== true; }
|
|
105
|
+
{
|
|
106
|
+
const s = location().start.offset;
|
|
107
|
+
const e = location().end.offset;
|
|
108
|
+
if (params.length === 0) {
|
|
109
|
+
return { type: 'function', name: id.name, start: s, end: e,
|
|
110
|
+
children: [po, mkError(po.end, e, 'emptyFunctionParam')] };
|
|
111
|
+
}
|
|
112
|
+
return { type: 'function', name: id.name, start: s, end: e,
|
|
113
|
+
children: [po, ...params.map(p => ({ ...p, end: e })),
|
|
114
|
+
mkError(po.end, e, 'trailingFunctionComma', { wip: true })] };
|
|
115
|
+
}
|
|
116
|
+
/ id:SymbolIdentifier po:ParenOpen _ ic:InvalidParamContent _ pc:ParenClose &{ return options.strict !== true; }
|
|
117
|
+
{
|
|
118
|
+
return { type: 'function', name: id.name,
|
|
119
|
+
start: location().start.offset, end: location().end.offset,
|
|
120
|
+
children: [po, ic, pc] };
|
|
121
|
+
}
|
|
122
|
+
/ id:SymbolIdentifier po:ParenOpen !. &{ return options.strict !== true; }
|
|
123
|
+
{
|
|
124
|
+
return { type: 'function', name: id.name,
|
|
125
|
+
start: location().start.offset, end: location().end.offset,
|
|
126
|
+
children: [po, mkError(po.end, po.end, 'unclosedFunctionParen', { wip: true })] };
|
|
127
|
+
}
|
|
128
|
+
/ id:SymbolIdentifier po:ParenOpen _ params:Parameters _ &{ return options.strict !== true; }
|
|
129
|
+
{
|
|
130
|
+
const s = location().start.offset;
|
|
131
|
+
const e = location().end.offset;
|
|
132
|
+
return { type: 'function', name: id.name, start: s, end: e,
|
|
133
|
+
children: [po, ...params.map(p => ({ ...p, end: e })),
|
|
134
|
+
mkError(e, e, 'unclosedFunctionParen', { wip: true })] };
|
|
135
|
+
}
|
|
136
|
+
/ id:SymbolIdentifier po:ParenOpen _ &{ return options.strict !== true; }
|
|
137
|
+
{
|
|
138
|
+
const e = location().end.offset;
|
|
139
|
+
return { type: 'function', name: id.name,
|
|
140
|
+
start: location().start.offset, end: e,
|
|
141
|
+
children: [po, mkError(e, e, 'unclosedFunctionParen', { wip: true })] };
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
InvalidParamContent
|
|
145
|
+
= (!ParenClose .)+ {
|
|
146
|
+
return mkError(location().start.offset, location().end.offset, 'invalidMethodChainSyntax');
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
ParenOpen
|
|
150
|
+
= '(' { return { type: 'paren_open', start: location().start.offset, end: location().end.offset } }
|
|
151
|
+
|
|
152
|
+
ParenClose
|
|
153
|
+
= ')' { return { type: 'paren_close', start: location().start.offset, end: location().end.offset } }
|
|
154
|
+
|
|
155
|
+
Parameters
|
|
156
|
+
= Parameter|.., _ ',' _|
|
|
157
|
+
|
|
158
|
+
// Chain is only attempted when the input starts with a valid chain character
|
|
159
|
+
// (SymbolIdentifier first char, @, or [). This ensures non-identifier content
|
|
160
|
+
// (e.g. bare digits) falls through to InvalidParamContent rather than being
|
|
161
|
+
// wrapped in a Chain containing an error node.
|
|
162
|
+
Parameter
|
|
163
|
+
= (str:String { return { type: 'string', value: str, start: location().start.offset, end: location().end.offset}})
|
|
164
|
+
/ (num:Number { return { type: 'number', value: num, start: location().start.offset, end: location().end.offset}})
|
|
165
|
+
/ Array
|
|
166
|
+
/ &(SymbolIdentifier / "@" / LiteralIdentifier) chain:Chain { return chain; }
|
|
167
|
+
|
|
168
|
+
LiteralIdentifier
|
|
169
|
+
= '[' id:NonEmptyString ']' { return { type: 'identifier', name: id,
|
|
170
|
+
start: location().start.offset, end: location().end.offset } }
|
|
171
|
+
|
|
172
|
+
SymbolIdentifier
|
|
173
|
+
= first:[a-zA-Z0-9_] rest:[a-zA-Z0-9_-]* { return { type: 'identifier', name: first + rest.join(''),
|
|
174
|
+
start: location().start.offset, end: location().end.offset } }
|
|
175
|
+
|
|
176
|
+
NonEmptyString
|
|
177
|
+
= "'" chars:StringChar+ "'" { return chars.join('') }
|
|
178
|
+
|
|
179
|
+
String
|
|
180
|
+
= "'" chars:StringChar* "'" { return chars.join('') }
|
|
181
|
+
|
|
182
|
+
Array
|
|
183
|
+
= '[' _ items:ArrayItems? _ ']' {
|
|
184
|
+
return {
|
|
185
|
+
type: 'array',
|
|
186
|
+
children: items || [],
|
|
187
|
+
start: location().start.offset,
|
|
188
|
+
end: location().end.offset
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
ArrayItems
|
|
193
|
+
= ArrayItem|.., _ ',' _|
|
|
194
|
+
|
|
195
|
+
ArrayItem
|
|
196
|
+
= (str:String { return { type: 'string', value: str}})
|
|
197
|
+
/ (num:Number { return { type: 'number', value: num}})
|
|
198
|
+
|
|
199
|
+
StringChar
|
|
200
|
+
= !(Quote / "\\") char:. { return char }
|
|
201
|
+
/ "\\" char:Escapables { return char }
|
|
202
|
+
|
|
203
|
+
Number
|
|
204
|
+
= _ '#'[0-9]+(Dot[0-9]+)? { return parseFloat(text().substr(1)) }
|
|
205
|
+
|
|
206
|
+
Escapables
|
|
207
|
+
= Escape / Quote
|
|
208
|
+
|
|
209
|
+
Escape
|
|
210
|
+
= '\\'
|
|
211
|
+
|
|
212
|
+
Dot
|
|
213
|
+
= '.'
|
|
214
|
+
|
|
215
|
+
Quote
|
|
216
|
+
= "'"
|
|
217
|
+
|
|
218
|
+
_ "whitespace"
|
|
219
|
+
= [ \t\n\r]*
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ASTChain } from './types';
|
|
2
|
+
|
|
3
|
+
export type ParseOptions = {
|
|
4
|
+
/**
|
|
5
|
+
* When true, Chain throws on invalid input instead of returning error nodes.
|
|
6
|
+
* Must be explicitly set to true for workflow/method-chain callers.
|
|
7
|
+
* Defaults to false (error-recovering) — SmartTextInput callers can omit this.
|
|
8
|
+
*/
|
|
9
|
+
strict?: boolean;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export function parse(input: string, options?: ParseOptions): ASTChain;
|
|
13
|
+
|
|
14
|
+
export class SyntaxError extends Error {
|
|
15
|
+
expected: string[];
|
|
16
|
+
found: string;
|
|
17
|
+
location: {
|
|
18
|
+
start: number;
|
|
19
|
+
end: number;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
//#region components/SmartTextInput/parser/method-chain/types.d.ts
|
|
2
|
+
declare enum ASTNodeType {
|
|
3
|
+
Chain = "chain",
|
|
4
|
+
Identifier = "identifier",
|
|
5
|
+
Function = "function",
|
|
6
|
+
CustomFunction = "custom_function",
|
|
7
|
+
String = "string",
|
|
8
|
+
Number = "number",
|
|
9
|
+
Array = "array",
|
|
10
|
+
ParenOpen = "paren_open",
|
|
11
|
+
ParenClose = "paren_close",
|
|
12
|
+
Error = "error",
|
|
13
|
+
Dot = "dot"
|
|
14
|
+
}
|
|
15
|
+
declare enum ErrorKind {
|
|
16
|
+
InvalidMethodChainSyntax = "invalidMethodChainSyntax",
|
|
17
|
+
EmptyFunctionParam = "emptyFunctionParam",
|
|
18
|
+
TrailingFunctionComma = "trailingFunctionComma",
|
|
19
|
+
UnclosedFunctionParen = "unclosedFunctionParen",
|
|
20
|
+
TrailingDot = "trailingDot"
|
|
21
|
+
}
|
|
22
|
+
type ASTMethodChainNode = ASTIdentifierNode | ASTFunctionNode | ASTCustomFunctionNode;
|
|
23
|
+
declare const isASTMethodChainNode: (node: {
|
|
24
|
+
type: string;
|
|
25
|
+
}) => node is ASTMethodChainNode;
|
|
26
|
+
declare const isAnyASTFunctionNode: (node: {
|
|
27
|
+
type: string;
|
|
28
|
+
}) => node is ASTFunctionNode | ASTCustomFunctionNode;
|
|
29
|
+
declare const isASTCustomFunctionNode: (node: {
|
|
30
|
+
type: string;
|
|
31
|
+
}) => node is ASTCustomFunctionNode;
|
|
32
|
+
type ASTFunctionParamType = ASTChain | ASTStringNode | ASTNumberNode | ASTArrayNode | ASTParenOpenNode | ASTParenCloseNode | ASTErrorNode;
|
|
33
|
+
declare const isRealASTFunctionParamType: (node: {
|
|
34
|
+
type: string;
|
|
35
|
+
}) => node is ASTChain | ASTStringNode | ASTNumberNode | ASTArrayNode;
|
|
36
|
+
interface ASTChain {
|
|
37
|
+
type: ASTNodeType.Chain;
|
|
38
|
+
children: (ASTMethodChainNode | ASTDotNode | ASTErrorNode)[];
|
|
39
|
+
start: number;
|
|
40
|
+
end: number;
|
|
41
|
+
}
|
|
42
|
+
interface ASTStringNode {
|
|
43
|
+
type: ASTNodeType.String;
|
|
44
|
+
value: string;
|
|
45
|
+
start: number;
|
|
46
|
+
end: number;
|
|
47
|
+
}
|
|
48
|
+
interface ASTNumberNode {
|
|
49
|
+
type: ASTNodeType.Number;
|
|
50
|
+
value: number;
|
|
51
|
+
start: number;
|
|
52
|
+
end: number;
|
|
53
|
+
}
|
|
54
|
+
interface ASTArrayNode {
|
|
55
|
+
type: ASTNodeType.Array;
|
|
56
|
+
children: (ASTStringNode | ASTNumberNode)[];
|
|
57
|
+
start: number;
|
|
58
|
+
end: number;
|
|
59
|
+
}
|
|
60
|
+
interface ASTIdentifierNode {
|
|
61
|
+
type: ASTNodeType.Identifier;
|
|
62
|
+
name: string;
|
|
63
|
+
prefix?: string;
|
|
64
|
+
start: number;
|
|
65
|
+
end: number;
|
|
66
|
+
}
|
|
67
|
+
interface ASTErrorNode {
|
|
68
|
+
type: ASTNodeType.Error;
|
|
69
|
+
start: number;
|
|
70
|
+
end: number;
|
|
71
|
+
wip?: boolean;
|
|
72
|
+
kind?: 'invalidMethodChainSyntax' | 'emptyFunctionParam' | 'trailingFunctionComma' | 'unclosedFunctionParen' | 'trailingDot' | 'trailingAtSign';
|
|
73
|
+
}
|
|
74
|
+
interface ASTDotNode {
|
|
75
|
+
type: ASTNodeType.Dot;
|
|
76
|
+
start: number;
|
|
77
|
+
end: number;
|
|
78
|
+
}
|
|
79
|
+
interface ASTParenOpenNode {
|
|
80
|
+
type: ASTNodeType.ParenOpen;
|
|
81
|
+
start: number;
|
|
82
|
+
end: number;
|
|
83
|
+
}
|
|
84
|
+
interface ASTParenCloseNode {
|
|
85
|
+
type: ASTNodeType.ParenClose;
|
|
86
|
+
start: number;
|
|
87
|
+
end: number;
|
|
88
|
+
}
|
|
89
|
+
interface ASTFunctionNode {
|
|
90
|
+
type: ASTNodeType.Function;
|
|
91
|
+
name: string;
|
|
92
|
+
children: ASTFunctionParamType[];
|
|
93
|
+
start: number;
|
|
94
|
+
end: number;
|
|
95
|
+
}
|
|
96
|
+
interface ASTCustomFunctionNode {
|
|
97
|
+
type: ASTNodeType.CustomFunction;
|
|
98
|
+
name: string;
|
|
99
|
+
children: ASTFunctionParamType[];
|
|
100
|
+
start: number;
|
|
101
|
+
end: number;
|
|
102
|
+
}
|
|
103
|
+
//#endregion
|
|
104
|
+
export { ASTArrayNode, ASTChain, ASTCustomFunctionNode, ASTDotNode, ASTErrorNode, ASTFunctionNode, ASTFunctionParamType, ASTIdentifierNode, ASTMethodChainNode, ASTNodeType, ASTNumberNode, ASTParenCloseNode, ASTParenOpenNode, ASTStringNode, ErrorKind, isASTCustomFunctionNode, isASTMethodChainNode, isAnyASTFunctionNode, isRealASTFunctionParamType };
|
|
105
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
//#region components/SmartTextInput/parser/method-chain/types.ts
|
|
2
|
+
let ASTNodeType = /* @__PURE__ */ function(ASTNodeType) {
|
|
3
|
+
ASTNodeType["Chain"] = "chain";
|
|
4
|
+
ASTNodeType["Identifier"] = "identifier";
|
|
5
|
+
ASTNodeType["Function"] = "function";
|
|
6
|
+
ASTNodeType["CustomFunction"] = "custom_function";
|
|
7
|
+
ASTNodeType["String"] = "string";
|
|
8
|
+
ASTNodeType["Number"] = "number";
|
|
9
|
+
ASTNodeType["Array"] = "array";
|
|
10
|
+
ASTNodeType["ParenOpen"] = "paren_open";
|
|
11
|
+
ASTNodeType["ParenClose"] = "paren_close";
|
|
12
|
+
ASTNodeType["Error"] = "error";
|
|
13
|
+
ASTNodeType["Dot"] = "dot";
|
|
14
|
+
return ASTNodeType;
|
|
15
|
+
}({});
|
|
16
|
+
let ErrorKind = /* @__PURE__ */ function(ErrorKind) {
|
|
17
|
+
ErrorKind["InvalidMethodChainSyntax"] = "invalidMethodChainSyntax";
|
|
18
|
+
ErrorKind["EmptyFunctionParam"] = "emptyFunctionParam";
|
|
19
|
+
ErrorKind["TrailingFunctionComma"] = "trailingFunctionComma";
|
|
20
|
+
ErrorKind["UnclosedFunctionParen"] = "unclosedFunctionParen";
|
|
21
|
+
ErrorKind["TrailingDot"] = "trailingDot";
|
|
22
|
+
return ErrorKind;
|
|
23
|
+
}({});
|
|
24
|
+
const isASTMethodChainNode = (node) => node.type === "identifier" || node.type === "function" || node.type === "custom_function";
|
|
25
|
+
const isAnyASTFunctionNode = (node) => node.type === "function" || node.type === "custom_function";
|
|
26
|
+
const isASTCustomFunctionNode = (node) => node.type === "custom_function";
|
|
27
|
+
const isRealASTFunctionParamType = (node) => node.type === "chain" || node.type === "string" || node.type === "number" || node.type === "array";
|
|
28
|
+
//#endregion
|
|
29
|
+
export { ASTNodeType, ErrorKind, isASTCustomFunctionNode, isASTMethodChainNode, isAnyASTFunctionNode, isRealASTFunctionParamType };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.mjs","names":[],"sources":["../../../../../components/SmartTextInput/parser/method-chain/types.ts"],"sourcesContent":["export enum ASTNodeType {\n Chain = 'chain',\n Identifier = 'identifier',\n Function = 'function',\n CustomFunction = 'custom_function',\n String = 'string',\n Number = 'number',\n Array = 'array',\n ParenOpen = 'paren_open',\n ParenClose = 'paren_close',\n Error = 'error',\n Dot = 'dot',\n}\n\nexport enum ErrorKind {\n InvalidMethodChainSyntax = 'invalidMethodChainSyntax',\n EmptyFunctionParam = 'emptyFunctionParam',\n TrailingFunctionComma = 'trailingFunctionComma',\n UnclosedFunctionParen = 'unclosedFunctionParen',\n TrailingDot = 'trailingDot',\n}\n\nexport type ASTMethodChainNode = ASTIdentifierNode | ASTFunctionNode | ASTCustomFunctionNode;\n\nexport const isASTMethodChainNode = (node: { type: string }): node is ASTMethodChainNode =>\n node.type === ASTNodeType.Identifier ||\n node.type === ASTNodeType.Function ||\n node.type === ASTNodeType.CustomFunction;\n\nexport const isAnyASTFunctionNode = (node: {\n type: string;\n}): node is ASTFunctionNode | ASTCustomFunctionNode =>\n node.type === ASTNodeType.Function || node.type === ASTNodeType.CustomFunction;\n\nexport const isASTCustomFunctionNode = (node: { type: string }): node is ASTCustomFunctionNode =>\n node.type === ASTNodeType.CustomFunction;\n\nexport type ASTFunctionParamType =\n | ASTChain\n | ASTStringNode\n | ASTNumberNode\n | ASTArrayNode\n | ASTParenOpenNode\n | ASTParenCloseNode\n | ASTErrorNode;\n\nexport const isRealASTFunctionParamType = (node: {\n type: string;\n}): node is ASTChain | ASTStringNode | ASTNumberNode | ASTArrayNode =>\n node.type === ASTNodeType.Chain ||\n node.type === ASTNodeType.String ||\n node.type === ASTNodeType.Number ||\n node.type === ASTNodeType.Array;\n\nexport interface ASTChain {\n type: ASTNodeType.Chain;\n children: (ASTMethodChainNode | ASTDotNode | ASTErrorNode)[];\n start: number;\n end: number;\n}\n\nexport interface ASTStringNode {\n type: ASTNodeType.String;\n value: string;\n start: number;\n end: number;\n}\n\nexport interface ASTNumberNode {\n type: ASTNodeType.Number;\n value: number;\n start: number;\n end: number;\n}\n\nexport interface ASTArrayNode {\n type: ASTNodeType.Array;\n children: (ASTStringNode | ASTNumberNode)[];\n start: number;\n end: number;\n}\n\nexport interface ASTIdentifierNode {\n type: ASTNodeType.Identifier;\n name: string;\n prefix?: string;\n start: number;\n end: number;\n}\n\nexport interface ASTErrorNode {\n type: ASTNodeType.Error;\n start: number;\n end: number;\n wip?: boolean;\n kind?:\n | 'invalidMethodChainSyntax'\n | 'emptyFunctionParam'\n | 'trailingFunctionComma'\n | 'unclosedFunctionParen'\n | 'trailingDot'\n | 'trailingAtSign';\n}\n\nexport interface ASTDotNode {\n type: ASTNodeType.Dot;\n start: number;\n end: number;\n}\n\nexport interface ASTParenOpenNode {\n type: ASTNodeType.ParenOpen;\n start: number;\n end: number;\n}\n\nexport interface ASTParenCloseNode {\n type: ASTNodeType.ParenClose;\n start: number;\n end: number;\n}\n\nexport interface ASTFunctionNode {\n type: ASTNodeType.Function;\n name: string;\n children: ASTFunctionParamType[];\n start: number;\n end: number;\n}\n\nexport interface ASTCustomFunctionNode {\n type: ASTNodeType.CustomFunction;\n name: string;\n children: ASTFunctionParamType[];\n start: number;\n end: number;\n}\n"],"mappings":";AAAA,IAAY,cAAL,yBAAA,aAAA;AACL,aAAA,WAAA;AACA,aAAA,gBAAA;AACA,aAAA,cAAA;AACA,aAAA,oBAAA;AACA,aAAA,YAAA;AACA,aAAA,YAAA;AACA,aAAA,WAAA;AACA,aAAA,eAAA;AACA,aAAA,gBAAA;AACA,aAAA,WAAA;AACA,aAAA,SAAA;;KACD;AAED,IAAY,YAAL,yBAAA,WAAA;AACL,WAAA,8BAAA;AACA,WAAA,wBAAA;AACA,WAAA,2BAAA;AACA,WAAA,2BAAA;AACA,WAAA,iBAAA;;KACD;AAID,MAAa,wBAAwB,SACnC,KAAK,SAAA,gBACL,KAAK,SAAA,cACL,KAAK,SAAA;AAEP,MAAa,wBAAwB,SAGnC,KAAK,SAAA,cAAiC,KAAK,SAAA;AAE7C,MAAa,2BAA2B,SACtC,KAAK,SAAA;AAWP,MAAa,8BAA8B,SAGzC,KAAK,SAAA,WACL,KAAK,SAAA,YACL,KAAK,SAAA,YACL,KAAK,SAAA"}
|