@makeswift/runtime 0.28.10-canary.9 → 0.29.0-canary.19
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/dist/cjs/api/graphql-api-client.js +1 -1
- package/dist/cjs/api/rest-api-client.js +2 -2
- package/dist/cjs/api/rest-api-client.js.map +1 -1
- package/dist/cjs/api-handler/handlers/manifest.js +1 -1
- package/dist/cjs/components/builtin/Box/Box.js +58 -54
- package/dist/cjs/components/builtin/Box/Box.js.map +1 -1
- package/dist/cjs/components/builtin/Box/animations.js +7 -9
- package/dist/cjs/components/builtin/Box/animations.js.map +1 -1
- package/dist/cjs/components/builtin/Box/components/Placeholder/index.js +43 -39
- package/dist/cjs/components/builtin/Box/components/Placeholder/index.js.map +1 -1
- package/dist/cjs/components/builtin/Button/Button.js +165 -176
- package/dist/cjs/components/builtin/Button/Button.js.map +1 -1
- package/dist/cjs/components/builtin/Carousel/Carousel.js +168 -142
- package/dist/cjs/components/builtin/Carousel/Carousel.js.map +1 -1
- package/dist/cjs/components/builtin/Countdown/Countdown.js +165 -171
- package/dist/cjs/components/builtin/Countdown/Countdown.js.map +1 -1
- package/dist/cjs/components/builtin/Divider/Divider.js +56 -64
- package/dist/cjs/components/builtin/Divider/Divider.js.map +1 -1
- package/dist/cjs/components/builtin/Embed/Embed.js +14 -12
- package/dist/cjs/components/builtin/Embed/Embed.js.map +1 -1
- package/dist/cjs/components/builtin/Form/Form.js +65 -74
- package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
- package/dist/cjs/components/builtin/Form/components/Field/components/Checkbox/index.js +113 -121
- package/dist/cjs/components/builtin/Form/components/Field/components/Checkbox/index.js.map +1 -1
- package/dist/cjs/components/builtin/Form/components/Field/components/CheckboxTableField/index.js +29 -31
- package/dist/cjs/components/builtin/Form/components/Field/components/CheckboxTableField/index.js.map +1 -1
- package/dist/cjs/components/builtin/Form/components/Field/components/Input/index.js +14 -18
- package/dist/cjs/components/builtin/Form/components/Field/components/Input/index.js.map +1 -1
- package/dist/cjs/components/builtin/Form/components/Field/components/Label/index.js +17 -20
- package/dist/cjs/components/builtin/Form/components/Field/components/Label/index.js.map +1 -1
- package/dist/cjs/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.js +23 -18
- package/dist/cjs/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.js.map +1 -1
- package/dist/cjs/components/builtin/Form/components/Field/components/PlaceholderTableField/index.js +43 -46
- package/dist/cjs/components/builtin/Form/components/Field/components/PlaceholderTableField/index.js.map +1 -1
- package/dist/cjs/components/builtin/Form/components/Field/components/RadioButton/index.js +96 -105
- package/dist/cjs/components/builtin/Form/components/Field/components/RadioButton/index.js.map +1 -1
- package/dist/cjs/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.js +20 -19
- package/dist/cjs/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.js.map +1 -1
- package/dist/cjs/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.js +48 -54
- package/dist/cjs/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.js.map +1 -1
- package/dist/cjs/components/builtin/Form/components/Field/components/TextArea/index.js +8 -13
- package/dist/cjs/components/builtin/Form/components/Field/components/TextArea/index.js.map +1 -1
- package/dist/cjs/components/builtin/Form/components/Field/services/responsiveField.js +2 -2
- package/dist/cjs/components/builtin/Form/components/Field/services/responsiveField.js.map +1 -1
- package/dist/cjs/components/builtin/Form/components/Placeholder/index.js +57 -64
- package/dist/cjs/components/builtin/Form/components/Placeholder/index.js.map +1 -1
- package/dist/cjs/components/builtin/Form/components/Spinner/index.js +19 -19
- package/dist/cjs/components/builtin/Form/components/Spinner/index.js.map +1 -1
- package/dist/cjs/components/builtin/Image/Image.js +33 -17
- package/dist/cjs/components/builtin/Image/Image.js.map +1 -1
- package/dist/cjs/components/builtin/Image/register.js +11 -0
- package/dist/cjs/components/builtin/Image/register.js.map +1 -1
- package/dist/cjs/components/builtin/Navigation/Navigation.js +60 -68
- package/dist/cjs/components/builtin/Navigation/Navigation.js.map +1 -1
- package/dist/cjs/components/builtin/Navigation/components/DropDownButton/index.js +91 -97
- package/dist/cjs/components/builtin/Navigation/components/DropDownButton/index.js.map +1 -1
- package/dist/cjs/components/builtin/Navigation/components/LinksPlaceholder/index.js +12 -13
- package/dist/cjs/components/builtin/Navigation/components/LinksPlaceholder/index.js.map +1 -1
- package/dist/cjs/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.js +44 -33
- package/dist/cjs/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.js.map +1 -1
- package/dist/cjs/components/builtin/Navigation/components/MobileMenu/index.js +67 -70
- package/dist/cjs/components/builtin/Navigation/components/MobileMenu/index.js.map +1 -1
- package/dist/cjs/components/builtin/Root/Root.js +30 -21
- package/dist/cjs/components/builtin/Root/Root.js.map +1 -1
- package/dist/cjs/components/builtin/Root/components/Placeholder/index.js +33 -36
- package/dist/cjs/components/builtin/Root/components/Placeholder/index.js.map +1 -1
- package/dist/cjs/components/builtin/SocialLinks/SocialLinks.js +72 -79
- package/dist/cjs/components/builtin/SocialLinks/SocialLinks.js.map +1 -1
- package/dist/cjs/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.js +11 -12
- package/dist/cjs/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.js.map +1 -1
- package/dist/cjs/components/builtin/Text/Text.js +12 -2
- package/dist/cjs/components/builtin/Text/Text.js.map +1 -1
- package/dist/cjs/components/builtin/Video/Video.js +23 -28
- package/dist/cjs/components/builtin/Video/Video.js.map +1 -1
- package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +30 -35
- package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
- package/dist/cjs/components/shared/BackgroundsContainer/components/Backgrounds/index.js +84 -66
- package/dist/cjs/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
- package/dist/cjs/components/shared/BackgroundsContainer/index.js +31 -27
- package/dist/cjs/components/shared/BackgroundsContainer/index.js.map +1 -1
- package/dist/cjs/components/shared/FallbackComponent/FallbackComponent.js +27 -26
- package/dist/cjs/components/shared/FallbackComponent/FallbackComponent.js.map +1 -1
- package/dist/cjs/components/shared/GutterContainer/index.js +13 -16
- package/dist/cjs/components/shared/GutterContainer/index.js.map +1 -1
- package/dist/cjs/components/shared/grid-item.js +27 -11
- package/dist/cjs/components/shared/grid-item.js.map +1 -1
- package/dist/cjs/controls/index.js.map +1 -1
- package/dist/cjs/controls/rich-text-v2/rich-text-v2.js +24 -13
- package/dist/cjs/controls/rich-text-v2/rich-text-v2.js.map +1 -1
- package/dist/cjs/controls/serialization/base/visitor.js +5 -3
- package/dist/cjs/controls/serialization/base/visitor.js.map +1 -1
- package/dist/cjs/controls/visitors/merge-translations-visitor.js +1 -1
- package/dist/cjs/controls/visitors/merge-translations-visitor.js.map +1 -1
- package/dist/cjs/next/components/page.js +14 -1
- package/dist/cjs/next/components/page.js.map +1 -1
- package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +3 -3
- package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
- package/dist/cjs/next/document.js +39 -10
- package/dist/cjs/next/document.js.map +1 -1
- package/dist/cjs/next/root-style-registry.js +2 -9
- package/dist/cjs/next/root-style-registry.js.map +1 -1
- package/dist/cjs/react/server/index.js +0 -2
- package/dist/cjs/react/server/index.js.map +1 -1
- package/dist/cjs/runtimes/react/components/ElementData.js +11 -2
- package/dist/cjs/runtimes/react/components/ElementData.js.map +1 -1
- package/dist/cjs/runtimes/react/components/GoogleFontLink.js +2 -1
- package/dist/cjs/runtimes/react/components/GoogleFontLink.js.map +1 -1
- package/dist/cjs/runtimes/react/components/framework-context.js.map +1 -1
- package/dist/cjs/runtimes/react/components/page/PageHead.js +0 -8
- package/dist/cjs/runtimes/react/components/page/PageHead.js.map +1 -1
- package/dist/cjs/runtimes/react/components/page/head-tags.js +0 -6
- package/dist/cjs/runtimes/react/components/page/head-tags.js.map +1 -1
- package/dist/cjs/runtimes/react/components/resolve-props.js +24 -5
- package/dist/cjs/runtimes/react/components/resolve-props.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/control.js +22 -8
- package/dist/cjs/runtimes/react/controls/control.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/editable-text.js +20 -17
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/editable-text.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/ReadOnlyText.js +98 -42
- package/dist/cjs/runtimes/react/controls/rich-text/ReadOnlyText.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/block.js +87 -20
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/block.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/inline.js +17 -3
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/inline.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/components/Leaf/leaf.js +5 -2
- package/dist/cjs/runtimes/react/controls/rich-text/components/Leaf/leaf.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js +74 -32
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/index.js +2 -18
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/index.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js +36 -3
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js +27 -3
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js +4 -4
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js +91 -31
- package/dist/cjs/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/index.js +9 -3
- package/dist/cjs/runtimes/react/controls/rich-text-v2/index.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/render-rich-text-v2.js +59 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/render-rich-text-v2.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/{rich-text-v2.js → rich-text-v2-value.js} +20 -15
- package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2-value.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/slot/slot-value.js +52 -34
- package/dist/cjs/runtimes/react/controls/slot/slot-value.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/typography.js +6 -5
- package/dist/cjs/runtimes/react/controls/typography.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/use-slate-reset.js +1 -1
- package/dist/cjs/runtimes/react/controls/use-slate-reset.js.map +1 -1
- package/dist/cjs/runtimes/react/css-runtime/browser-dynamic-styles-bridge.js +55 -0
- package/dist/cjs/runtimes/react/css-runtime/browser-dynamic-styles-bridge.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/components/controlled-styles.js +76 -0
- package/dist/cjs/runtimes/react/css-runtime/components/controlled-styles.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/components/makeswift-style.js +42 -0
- package/dist/cjs/runtimes/react/css-runtime/components/makeswift-style.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/components/rsc-emitted-style.js +46 -0
- package/dist/cjs/runtimes/react/css-runtime/components/rsc-emitted-style.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/components/styles-context-provider.js +54 -0
- package/dist/cjs/runtimes/react/css-runtime/components/styles-context-provider.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/constants.js +39 -0
- package/dist/cjs/runtimes/react/css-runtime/constants.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-base-styles.js +67 -0
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-base-styles.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-controlled-styles.js +79 -0
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-controlled-styles.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-css-reset.js +70 -0
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-css-reset.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-dynamic-browser-style-updates.js +41 -0
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-dynamic-browser-style-updates.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-keyframes.js +64 -0
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-keyframes.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-legacy-controlled-style.js +78 -0
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-legacy-controlled-style.js.map +1 -0
- package/dist/cjs/runtimes/react/{use-style.js → css-runtime/hooks/use-style.js} +49 -30
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-style.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-styles-context.js +39 -0
- package/dist/cjs/runtimes/react/css-runtime/hooks/use-styles-context.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/serialize-css.js +51 -0
- package/dist/cjs/runtimes/react/css-runtime/serialize-css.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/style-element-updater.js +56 -0
- package/dist/cjs/runtimes/react/css-runtime/style-element-updater.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/styles-registry.js +283 -0
- package/dist/cjs/runtimes/react/css-runtime/styles-registry.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/stylesheet-engine.js +89 -0
- package/dist/cjs/runtimes/react/css-runtime/stylesheet-engine.js.map +1 -0
- package/dist/cjs/runtimes/react/{hooks/use-css-id.js → css-runtime/types.js} +12 -10
- package/dist/cjs/runtimes/react/css-runtime/types.js.map +1 -0
- package/dist/cjs/runtimes/react/css-runtime/utils.js +53 -0
- package/dist/cjs/runtimes/react/css-runtime/utils.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-resolved-props.js +10 -9
- package/dist/cjs/runtimes/react/hooks/use-resolved-props.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-resolved-value.js +2 -2
- package/dist/cjs/runtimes/react/hooks/use-resolved-value.js.map +1 -1
- package/dist/cjs/runtimes/react/legacy-controls.js +91 -21
- package/dist/cjs/runtimes/react/legacy-controls.js.map +1 -1
- package/dist/cjs/runtimes/react/poll-box-model.js +2 -1
- package/dist/cjs/runtimes/react/poll-box-model.js.map +1 -1
- package/dist/cjs/runtimes/react/root-style-registry.js +32 -75
- package/dist/cjs/runtimes/react/root-style-registry.js.map +1 -1
- package/dist/cjs/runtimes/react/server/components/editable-server-element.js +7 -4
- package/dist/cjs/runtimes/react/server/components/editable-server-element.js.map +1 -1
- package/dist/cjs/runtimes/react/server/components/element-data.js +16 -8
- package/dist/cjs/runtimes/react/server/components/element-data.js.map +1 -1
- package/dist/cjs/runtimes/react/server/components/server-elements-cache.js +1 -2
- package/dist/cjs/runtimes/react/server/components/server-elements-cache.js.map +1 -1
- package/dist/cjs/runtimes/react/server/index.js +0 -3
- package/dist/cjs/runtimes/react/server/index.js.map +1 -1
- package/dist/cjs/runtimes/react/server/render-context.js.map +1 -1
- package/dist/cjs/slate/BlockPlugin/index.js +101 -21
- package/dist/cjs/slate/BlockPlugin/index.js.map +1 -1
- package/dist/cjs/slate/LinkPlugin/index.js +32 -17
- package/dist/cjs/slate/LinkPlugin/index.js.map +1 -1
- package/dist/cjs/slate/TypographyPlugin/index.js +12 -2
- package/dist/cjs/slate/TypographyPlugin/index.js.map +1 -1
- package/dist/cjs/testing/jest-snapshot-serializer.js +134 -0
- package/dist/cjs/testing/jest-snapshot-serializer.js.map +1 -0
- package/dist/cjs/unstable-framework-support/index.js +4 -5
- package/dist/cjs/unstable-framework-support/index.js.map +1 -1
- package/dist/esm/api/graphql-api-client.js +1 -1
- package/dist/esm/api/rest-api-client.js +2 -2
- package/dist/esm/api/rest-api-client.js.map +1 -1
- package/dist/esm/api-handler/handlers/manifest.js +1 -1
- package/dist/esm/components/builtin/Box/Box.js +59 -55
- package/dist/esm/components/builtin/Box/Box.js.map +1 -1
- package/dist/esm/components/builtin/Box/animations.js +7 -9
- package/dist/esm/components/builtin/Box/animations.js.map +1 -1
- package/dist/esm/components/builtin/Box/components/Placeholder/index.js +44 -40
- package/dist/esm/components/builtin/Box/components/Placeholder/index.js.map +1 -1
- package/dist/esm/components/builtin/Button/Button.js +166 -177
- package/dist/esm/components/builtin/Button/Button.js.map +1 -1
- package/dist/esm/components/builtin/Carousel/Carousel.js +169 -143
- package/dist/esm/components/builtin/Carousel/Carousel.js.map +1 -1
- package/dist/esm/components/builtin/Countdown/Countdown.js +166 -172
- package/dist/esm/components/builtin/Countdown/Countdown.js.map +1 -1
- package/dist/esm/components/builtin/Divider/Divider.js +54 -62
- package/dist/esm/components/builtin/Divider/Divider.js.map +1 -1
- package/dist/esm/components/builtin/Embed/Embed.js +15 -13
- package/dist/esm/components/builtin/Embed/Embed.js.map +1 -1
- package/dist/esm/components/builtin/Form/Form.js +65 -74
- package/dist/esm/components/builtin/Form/Form.js.map +1 -1
- package/dist/esm/components/builtin/Form/components/Field/components/Checkbox/index.js +117 -122
- package/dist/esm/components/builtin/Form/components/Field/components/Checkbox/index.js.map +1 -1
- package/dist/esm/components/builtin/Form/components/Field/components/CheckboxTableField/index.js +33 -32
- package/dist/esm/components/builtin/Form/components/Field/components/CheckboxTableField/index.js.map +1 -1
- package/dist/esm/components/builtin/Form/components/Field/components/Input/index.js +18 -19
- package/dist/esm/components/builtin/Form/components/Field/components/Input/index.js.map +1 -1
- package/dist/esm/components/builtin/Form/components/Field/components/Label/index.js +21 -21
- package/dist/esm/components/builtin/Form/components/Field/components/Label/index.js.map +1 -1
- package/dist/esm/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.js +27 -19
- package/dist/esm/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.js.map +1 -1
- package/dist/esm/components/builtin/Form/components/Field/components/PlaceholderTableField/index.js +46 -46
- package/dist/esm/components/builtin/Form/components/Field/components/PlaceholderTableField/index.js.map +1 -1
- package/dist/esm/components/builtin/Form/components/Field/components/RadioButton/index.js +100 -106
- package/dist/esm/components/builtin/Form/components/Field/components/RadioButton/index.js.map +1 -1
- package/dist/esm/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.js +24 -20
- package/dist/esm/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.js.map +1 -1
- package/dist/esm/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.js +51 -54
- package/dist/esm/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.js.map +1 -1
- package/dist/esm/components/builtin/Form/components/Field/components/TextArea/index.js +12 -14
- package/dist/esm/components/builtin/Form/components/Field/components/TextArea/index.js.map +1 -1
- package/dist/esm/components/builtin/Form/components/Field/services/responsiveField.js +2 -2
- package/dist/esm/components/builtin/Form/components/Field/services/responsiveField.js.map +1 -1
- package/dist/esm/components/builtin/Form/components/Placeholder/index.js +58 -65
- package/dist/esm/components/builtin/Form/components/Placeholder/index.js.map +1 -1
- package/dist/esm/components/builtin/Form/components/Spinner/index.js +20 -20
- package/dist/esm/components/builtin/Form/components/Spinner/index.js.map +1 -1
- package/dist/esm/components/builtin/Image/Image.js +34 -18
- package/dist/esm/components/builtin/Image/Image.js.map +1 -1
- package/dist/esm/components/builtin/Image/register.js +12 -0
- package/dist/esm/components/builtin/Image/register.js.map +1 -1
- package/dist/esm/components/builtin/Navigation/Navigation.js +61 -69
- package/dist/esm/components/builtin/Navigation/Navigation.js.map +1 -1
- package/dist/esm/components/builtin/Navigation/components/DropDownButton/index.js +92 -98
- package/dist/esm/components/builtin/Navigation/components/DropDownButton/index.js.map +1 -1
- package/dist/esm/components/builtin/Navigation/components/LinksPlaceholder/index.js +13 -14
- package/dist/esm/components/builtin/Navigation/components/LinksPlaceholder/index.js.map +1 -1
- package/dist/esm/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.js +44 -33
- package/dist/esm/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.js.map +1 -1
- package/dist/esm/components/builtin/Navigation/components/MobileMenu/index.js +70 -73
- package/dist/esm/components/builtin/Navigation/components/MobileMenu/index.js.map +1 -1
- package/dist/esm/components/builtin/Root/Root.js +31 -22
- package/dist/esm/components/builtin/Root/Root.js.map +1 -1
- package/dist/esm/components/builtin/Root/components/Placeholder/index.js +34 -37
- package/dist/esm/components/builtin/Root/components/Placeholder/index.js.map +1 -1
- package/dist/esm/components/builtin/SocialLinks/SocialLinks.js +73 -80
- package/dist/esm/components/builtin/SocialLinks/SocialLinks.js.map +1 -1
- package/dist/esm/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.js +12 -13
- package/dist/esm/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.js.map +1 -1
- package/dist/esm/components/builtin/Text/Text.js +2 -2
- package/dist/esm/components/builtin/Text/Text.js.map +1 -1
- package/dist/esm/components/builtin/Video/Video.js +24 -29
- package/dist/esm/components/builtin/Video/Video.js.map +1 -1
- package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +30 -35
- package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
- package/dist/esm/components/shared/BackgroundsContainer/components/Backgrounds/index.js +85 -67
- package/dist/esm/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
- package/dist/esm/components/shared/BackgroundsContainer/index.js +32 -28
- package/dist/esm/components/shared/BackgroundsContainer/index.js.map +1 -1
- package/dist/esm/components/shared/FallbackComponent/FallbackComponent.js +28 -27
- package/dist/esm/components/shared/FallbackComponent/FallbackComponent.js.map +1 -1
- package/dist/esm/components/shared/GutterContainer/index.js +14 -17
- package/dist/esm/components/shared/GutterContainer/index.js.map +1 -1
- package/dist/esm/components/shared/grid-item.js +18 -12
- package/dist/esm/components/shared/grid-item.js.map +1 -1
- package/dist/esm/controls/index.js.map +1 -1
- package/dist/esm/controls/rich-text-v2/rich-text-v2.js +24 -13
- package/dist/esm/controls/rich-text-v2/rich-text-v2.js.map +1 -1
- package/dist/esm/controls/serialization/base/visitor.js +5 -3
- package/dist/esm/controls/serialization/base/visitor.js.map +1 -1
- package/dist/esm/controls/visitors/merge-translations-visitor.js +1 -1
- package/dist/esm/controls/visitors/merge-translations-visitor.js.map +1 -1
- package/dist/esm/next/components/page.js +15 -2
- package/dist/esm/next/components/page.js.map +1 -1
- package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +3 -3
- package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
- package/dist/esm/next/document.js +42 -10
- package/dist/esm/next/document.js.map +1 -1
- package/dist/esm/next/root-style-registry.js +3 -12
- package/dist/esm/next/root-style-registry.js.map +1 -1
- package/dist/esm/react/server/index.js +0 -2
- package/dist/esm/react/server/index.js.map +1 -1
- package/dist/esm/runtimes/react/components/ElementData.js +12 -3
- package/dist/esm/runtimes/react/components/ElementData.js.map +1 -1
- package/dist/esm/runtimes/react/components/GoogleFontLink.js +2 -1
- package/dist/esm/runtimes/react/components/GoogleFontLink.js.map +1 -1
- package/dist/esm/runtimes/react/components/framework-context.js.map +1 -1
- package/dist/esm/runtimes/react/components/page/PageHead.js +1 -9
- package/dist/esm/runtimes/react/components/page/PageHead.js.map +1 -1
- package/dist/esm/runtimes/react/components/page/head-tags.js +0 -5
- package/dist/esm/runtimes/react/components/page/head-tags.js.map +1 -1
- package/dist/esm/runtimes/react/components/resolve-props.js +24 -5
- package/dist/esm/runtimes/react/components/resolve-props.js.map +1 -1
- package/dist/esm/runtimes/react/controls/control.js +22 -8
- package/dist/esm/runtimes/react/controls/control.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/editable-text.js +21 -18
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/editable-text.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/ReadOnlyText.js +100 -44
- package/dist/esm/runtimes/react/controls/rich-text/ReadOnlyText.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/block.js +78 -21
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/block.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/inline.js +8 -4
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/inline.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/components/Leaf/leaf.js +7 -4
- package/dist/esm/runtimes/react/controls/rich-text/components/Leaf/leaf.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js +78 -33
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/index.js +2 -3
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/index.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js +36 -3
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js +27 -3
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js +4 -4
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js +97 -34
- package/dist/esm/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/index.js +4 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/index.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/render-rich-text-v2.js +25 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/render-rich-text-v2.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2-value.js +26 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2-value.js.map +1 -0
- package/dist/esm/runtimes/react/controls/slot/slot-value.js +43 -35
- package/dist/esm/runtimes/react/controls/slot/slot-value.js.map +1 -1
- package/dist/esm/runtimes/react/controls/typography.js +5 -4
- package/dist/esm/runtimes/react/controls/typography.js.map +1 -1
- package/dist/esm/runtimes/react/controls/use-slate-reset.js +1 -1
- package/dist/esm/runtimes/react/controls/use-slate-reset.js.map +1 -1
- package/dist/esm/runtimes/react/css-runtime/browser-dynamic-styles-bridge.js +31 -0
- package/dist/esm/runtimes/react/css-runtime/browser-dynamic-styles-bridge.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/components/controlled-styles.js +51 -0
- package/dist/esm/runtimes/react/css-runtime/components/controlled-styles.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/components/makeswift-style.js +18 -0
- package/dist/esm/runtimes/react/css-runtime/components/makeswift-style.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/components/rsc-emitted-style.js +22 -0
- package/dist/esm/runtimes/react/css-runtime/components/rsc-emitted-style.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/components/styles-context-provider.js +29 -0
- package/dist/esm/runtimes/react/css-runtime/components/styles-context-provider.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/constants.js +12 -0
- package/dist/esm/runtimes/react/css-runtime/constants.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-base-styles.js +33 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-base-styles.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-controlled-styles.js +45 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-controlled-styles.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-css-reset.js +36 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-css-reset.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-dynamic-browser-style-updates.js +17 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-dynamic-browser-style-updates.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-keyframes.js +30 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-keyframes.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-legacy-controlled-style.js +44 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-legacy-controlled-style.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-style.js +56 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-style.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-styles-context.js +15 -0
- package/dist/esm/runtimes/react/css-runtime/hooks/use-styles-context.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/serialize-css.js +25 -0
- package/dist/esm/runtimes/react/css-runtime/serialize-css.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/style-element-updater.js +32 -0
- package/dist/esm/runtimes/react/css-runtime/style-element-updater.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/styles-registry.js +261 -0
- package/dist/esm/runtimes/react/css-runtime/styles-registry.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/stylesheet-engine.js +65 -0
- package/dist/esm/runtimes/react/css-runtime/stylesheet-engine.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/types.js +10 -0
- package/dist/esm/runtimes/react/css-runtime/types.js.map +1 -0
- package/dist/esm/runtimes/react/css-runtime/utils.js +26 -0
- package/dist/esm/runtimes/react/css-runtime/utils.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-resolved-props.js +10 -9
- package/dist/esm/runtimes/react/hooks/use-resolved-props.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-resolved-value.js +2 -2
- package/dist/esm/runtimes/react/hooks/use-resolved-value.js.map +1 -1
- package/dist/esm/runtimes/react/legacy-controls.js +92 -22
- package/dist/esm/runtimes/react/legacy-controls.js.map +1 -1
- package/dist/esm/runtimes/react/poll-box-model.js +2 -1
- package/dist/esm/runtimes/react/poll-box-model.js.map +1 -1
- package/dist/esm/runtimes/react/root-style-registry.js +36 -60
- package/dist/esm/runtimes/react/root-style-registry.js.map +1 -1
- package/dist/esm/runtimes/react/server/components/editable-server-element.js +8 -5
- package/dist/esm/runtimes/react/server/components/editable-server-element.js.map +1 -1
- package/dist/esm/runtimes/react/server/components/element-data.js +16 -12
- package/dist/esm/runtimes/react/server/components/element-data.js.map +1 -1
- package/dist/esm/runtimes/react/server/components/server-elements-cache.js +1 -2
- package/dist/esm/runtimes/react/server/components/server-elements-cache.js.map +1 -1
- package/dist/esm/runtimes/react/server/index.js +0 -2
- package/dist/esm/runtimes/react/server/index.js.map +1 -1
- package/dist/esm/runtimes/react/server/render-context.js.map +1 -1
- package/dist/esm/slate/BlockPlugin/index.js +102 -22
- package/dist/esm/slate/BlockPlugin/index.js.map +1 -1
- package/dist/esm/slate/LinkPlugin/index.js +23 -18
- package/dist/esm/slate/LinkPlugin/index.js.map +1 -1
- package/dist/esm/slate/TypographyPlugin/index.js +2 -2
- package/dist/esm/slate/TypographyPlugin/index.js.map +1 -1
- package/dist/esm/testing/jest-snapshot-serializer.js +100 -0
- package/dist/esm/testing/jest-snapshot-serializer.js.map +1 -0
- package/dist/esm/unstable-framework-support/index.js +3 -6
- package/dist/esm/unstable-framework-support/index.js.map +1 -1
- package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
- package/dist/types/components/builtin/Box/animations.d.ts +3 -2
- package/dist/types/components/builtin/Box/animations.d.ts.map +1 -1
- package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Button/Button.d.ts.map +1 -1
- package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
- package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
- package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -1
- package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Spinner/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Image/Image.d.ts +3 -1
- package/dist/types/components/builtin/Image/Image.d.ts.map +1 -1
- package/dist/types/components/builtin/Image/register.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Root/Root.d.ts.map +1 -1
- package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -1
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
- package/dist/types/components/builtin/Text/Text.d.ts.map +1 -1
- package/dist/types/components/builtin/Video/Video.d.ts.map +1 -1
- package/dist/types/components/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
- package/dist/types/components/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -1
- package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -1
- package/dist/types/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
- package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -1
- package/dist/types/components/shared/GutterContainer/index.d.ts.map +1 -1
- package/dist/types/components/shared/grid-item.d.ts.map +1 -1
- package/dist/types/controls/__tests__/fixtures/list.d.ts +1 -0
- package/dist/types/controls/__tests__/fixtures/list.d.ts.map +1 -1
- package/dist/types/controls/__tests__/fixtures/shape.d.ts +2 -0
- package/dist/types/controls/__tests__/fixtures/shape.d.ts.map +1 -1
- package/dist/types/controls/index.d.ts +1 -1
- package/dist/types/controls/index.d.ts.map +1 -1
- package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +161 -24
- package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
- package/dist/types/controls/serialization/base/visitor.d.ts.map +1 -1
- package/dist/types/next/components/page.d.ts.map +1 -1
- package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
- package/dist/types/next/document.d.ts.map +1 -1
- package/dist/types/next/root-style-registry.d.ts +1 -1
- package/dist/types/next/root-style-registry.d.ts.map +1 -1
- package/dist/types/react/server/index.d.ts +1 -1
- package/dist/types/react/server/index.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/GoogleFontLink.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/framework-context.d.ts +1 -0
- package/dist/types/runtimes/react/components/framework-context.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/page/PageHead.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/page/head-tags.d.ts +0 -6
- package/dist/types/runtimes/react/components/page/head-tags.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/resolve-props.d.ts.map +1 -1
- package/dist/types/{controls/__tests__/slot.test.d.ts → runtimes/react/controls/__tests__/react-node-controls.test.d.ts} +1 -1
- package/dist/types/runtimes/react/controls/__tests__/react-node-controls.test.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/control.d.ts +3 -1
- package/dist/types/runtimes/react/controls/control.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text/ReadOnlyText.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text/components/Element/block.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text/components/Element/inline.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text/components/Leaf/leaf.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts +7 -10
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/index.d.ts +2 -3
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/index.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts +3 -3
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts +3 -3
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.d.ts +2 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +9 -6
- package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/index.d.ts +7 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/index.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/render-rich-text-v2.d.ts +10 -0
- package/dist/types/runtimes/react/controls/rich-text-v2/render-rich-text-v2.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text-v2/rich-text-v2-value.d.ts +9 -0
- package/dist/types/runtimes/react/controls/rich-text-v2/rich-text-v2-value.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/slot/slot-value.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/typography.d.ts +8 -1
- package/dist/types/runtimes/react/controls/typography.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/use-slate-reset.d.ts +8 -1
- package/dist/types/runtimes/react/controls/use-slate-reset.d.ts.map +1 -1
- package/dist/types/runtimes/react/css-runtime/__tests__/__fixtures__/sample-js-styles-objects.d.ts +7 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/__fixtures__/sample-js-styles-objects.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/__fixtures__/sample-stylev1-data.d.ts +9 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/__fixtures__/sample-stylev1-data.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/__fixtures__/sample-stylev2-data.d.ts +10 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/__fixtures__/sample-stylev2-data.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/controlled-styles-integration.test.d.ts +3 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/controlled-styles-integration.test.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/utils.d.ts +24 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/runtime-integration/utils.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/serialize-css.test.d.ts +2 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/serialize-css.test.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/styles-registry.test.d.ts +2 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/styles-registry.test.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/utils.d.ts +6 -0
- package/dist/types/runtimes/react/css-runtime/__tests__/utils.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/browser-dynamic-styles-bridge.d.ts +16 -0
- package/dist/types/runtimes/react/css-runtime/browser-dynamic-styles-bridge.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/components/controlled-styles.d.ts +12 -0
- package/dist/types/runtimes/react/css-runtime/components/controlled-styles.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/components/makeswift-style.d.ts +6 -0
- package/dist/types/runtimes/react/css-runtime/components/makeswift-style.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/components/rsc-emitted-style.d.ts +30 -0
- package/dist/types/runtimes/react/css-runtime/components/rsc-emitted-style.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/components/styles-context-provider.d.ts +20 -0
- package/dist/types/runtimes/react/css-runtime/components/styles-context-provider.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/constants.d.ts +5 -0
- package/dist/types/runtimes/react/css-runtime/constants.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-base-styles.d.ts +12 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-base-styles.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-controlled-styles.d.ts +11 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-controlled-styles.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-css-reset.d.ts +14 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-css-reset.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-dynamic-browser-style-updates.d.ts +3 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-dynamic-browser-style-updates.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-keyframes.d.ts +6 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-keyframes.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-legacy-controlled-style.d.ts +10 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-legacy-controlled-style.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-style.d.ts +62 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-style.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-styles-context.d.ts +3 -0
- package/dist/types/runtimes/react/css-runtime/hooks/use-styles-context.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/serialize-css.d.ts +40 -0
- package/dist/types/runtimes/react/css-runtime/serialize-css.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/style-element-updater.d.ts +10 -0
- package/dist/types/runtimes/react/css-runtime/style-element-updater.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/styles-registry.d.ts +66 -0
- package/dist/types/runtimes/react/css-runtime/styles-registry.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/stylesheet-engine.d.ts +23 -0
- package/dist/types/runtimes/react/css-runtime/stylesheet-engine.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/types.d.ts +52 -0
- package/dist/types/runtimes/react/css-runtime/types.d.ts.map +1 -0
- package/dist/types/runtimes/react/css-runtime/utils.d.ts +20 -0
- package/dist/types/runtimes/react/css-runtime/utils.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-resolved-props.d.ts +3 -3
- package/dist/types/runtimes/react/hooks/use-resolved-props.d.ts.map +1 -1
- package/dist/types/runtimes/react/hooks/use-resolved-value.d.ts +1 -1
- package/dist/types/runtimes/react/hooks/use-resolved-value.d.ts.map +1 -1
- package/dist/types/runtimes/react/legacy-controls.d.ts +1 -1
- package/dist/types/runtimes/react/legacy-controls.d.ts.map +1 -1
- package/dist/types/runtimes/react/poll-box-model.d.ts +2 -2
- package/dist/types/runtimes/react/poll-box-model.d.ts.map +1 -1
- package/dist/types/runtimes/react/root-style-registry.d.ts +9 -30
- package/dist/types/runtimes/react/root-style-registry.d.ts.map +1 -1
- package/dist/types/runtimes/react/server/components/element-data.d.ts.map +1 -1
- package/dist/types/runtimes/react/server/components/server-elements-cache.d.ts.map +1 -1
- package/dist/types/runtimes/react/server/index.d.ts +0 -1
- package/dist/types/runtimes/react/server/index.d.ts.map +1 -1
- package/dist/types/runtimes/react/server/render-context.d.ts +2 -0
- package/dist/types/runtimes/react/server/render-context.d.ts.map +1 -1
- package/dist/types/slate/BlockPlugin/index.d.ts +13 -1
- package/dist/types/slate/BlockPlugin/index.d.ts.map +1 -1
- package/dist/types/slate/InlinePlugin/index.d.ts +13 -1
- package/dist/types/slate/InlinePlugin/index.d.ts.map +1 -1
- package/dist/types/slate/LinkPlugin/index.d.ts.map +1 -1
- package/dist/types/slate/TextAlignPlugin/index.d.ts +13 -1
- package/dist/types/slate/TextAlignPlugin/index.d.ts.map +1 -1
- package/dist/types/slate/TypographyPlugin/index.d.ts.map +1 -1
- package/dist/types/testing/jest-snapshot-serializer.d.ts +2 -0
- package/dist/types/testing/jest-snapshot-serializer.d.ts.map +1 -0
- package/dist/types/unstable-framework-support/index.d.ts +3 -1
- package/dist/types/unstable-framework-support/index.d.ts.map +1 -1
- package/package.json +14 -14
- package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +0 -1
- package/dist/cjs/runtimes/react/hooks/use-css-id.js.map +0 -1
- package/dist/cjs/runtimes/react/hooks/use-editable-element-stylesheet-factory.js +0 -58
- package/dist/cjs/runtimes/react/hooks/use-editable-element-stylesheet-factory.js.map +0 -1
- package/dist/cjs/runtimes/react/hooks/use-stylesheet-factory.js +0 -87
- package/dist/cjs/runtimes/react/hooks/use-stylesheet-factory.js.map +0 -1
- package/dist/cjs/runtimes/react/server/css/client-css.js +0 -112
- package/dist/cjs/runtimes/react/server/css/client-css.js.map +0 -1
- package/dist/cjs/runtimes/react/server/css/css-runtime.js +0 -102
- package/dist/cjs/runtimes/react/server/css/css-runtime.js.map +0 -1
- package/dist/cjs/runtimes/react/server/css/server-css.js +0 -71
- package/dist/cjs/runtimes/react/server/css/server-css.js.map +0 -1
- package/dist/cjs/runtimes/react/stylesheet-factory.js +0 -17
- package/dist/cjs/runtimes/react/stylesheet-factory.js.map +0 -1
- package/dist/cjs/runtimes/react/use-global-style.js +0 -101
- package/dist/cjs/runtimes/react/use-global-style.js.map +0 -1
- package/dist/cjs/runtimes/react/use-style.js.map +0 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js +0 -23
- package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +0 -1
- package/dist/esm/runtimes/react/hooks/use-css-id.js +0 -8
- package/dist/esm/runtimes/react/hooks/use-css-id.js.map +0 -1
- package/dist/esm/runtimes/react/hooks/use-editable-element-stylesheet-factory.js +0 -34
- package/dist/esm/runtimes/react/hooks/use-editable-element-stylesheet-factory.js.map +0 -1
- package/dist/esm/runtimes/react/hooks/use-stylesheet-factory.js +0 -65
- package/dist/esm/runtimes/react/hooks/use-stylesheet-factory.js.map +0 -1
- package/dist/esm/runtimes/react/server/css/client-css.js +0 -87
- package/dist/esm/runtimes/react/server/css/client-css.js.map +0 -1
- package/dist/esm/runtimes/react/server/css/css-runtime.js +0 -77
- package/dist/esm/runtimes/react/server/css/css-runtime.js.map +0 -1
- package/dist/esm/runtimes/react/server/css/server-css.js +0 -45
- package/dist/esm/runtimes/react/server/css/server-css.js.map +0 -1
- package/dist/esm/runtimes/react/stylesheet-factory.js +0 -1
- package/dist/esm/runtimes/react/stylesheet-factory.js.map +0 -1
- package/dist/esm/runtimes/react/use-global-style.js +0 -67
- package/dist/esm/runtimes/react/use-global-style.js.map +0 -1
- package/dist/esm/runtimes/react/use-style.js +0 -36
- package/dist/esm/runtimes/react/use-style.js.map +0 -1
- package/dist/types/controls/__tests__/slot.test.d.ts.map +0 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts +0 -9
- package/dist/types/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts.map +0 -1
- package/dist/types/runtimes/react/hooks/use-css-id.d.ts +0 -2
- package/dist/types/runtimes/react/hooks/use-css-id.d.ts.map +0 -1
- package/dist/types/runtimes/react/hooks/use-editable-element-stylesheet-factory.d.ts +0 -5
- package/dist/types/runtimes/react/hooks/use-editable-element-stylesheet-factory.d.ts.map +0 -1
- package/dist/types/runtimes/react/hooks/use-stylesheet-factory.d.ts +0 -3
- package/dist/types/runtimes/react/hooks/use-stylesheet-factory.d.ts.map +0 -1
- package/dist/types/runtimes/react/server/css/client-css.d.ts +0 -10
- package/dist/types/runtimes/react/server/css/client-css.d.ts.map +0 -1
- package/dist/types/runtimes/react/server/css/css-runtime.d.ts +0 -16
- package/dist/types/runtimes/react/server/css/css-runtime.d.ts.map +0 -1
- package/dist/types/runtimes/react/server/css/server-css.d.ts +0 -14
- package/dist/types/runtimes/react/server/css/server-css.d.ts.map +0 -1
- package/dist/types/runtimes/react/stylesheet-factory.d.ts +0 -6
- package/dist/types/runtimes/react/stylesheet-factory.d.ts.map +0 -1
- package/dist/types/runtimes/react/use-global-style.d.ts +0 -3
- package/dist/types/runtimes/react/use-global-style.d.ts.map +0 -1
- package/dist/types/runtimes/react/use-style.d.ts +0 -7
- package/dist/types/runtimes/react/use-style.d.ts.map +0 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { serializeStyles as emotionSerializeStyles } from "@emotion/serialize";
|
|
2
|
+
import { serialize, compile, stringify, prefixer, middleware } from "stylis";
|
|
3
|
+
function toCssStatements(stylesObject, className) {
|
|
4
|
+
const { content: rawCssContent, contentHash } = toRawCss([stylesObject]);
|
|
5
|
+
const classNameRawCss = `.${className} {${rawCssContent}}`;
|
|
6
|
+
const css = processCss({ content: classNameRawCss });
|
|
7
|
+
return { css, contentHash };
|
|
8
|
+
}
|
|
9
|
+
function processCss({ content }) {
|
|
10
|
+
const cssElementTree = compile(content);
|
|
11
|
+
return serialize(cssElementTree, middleware([prefixer, stringify]));
|
|
12
|
+
}
|
|
13
|
+
function toRawCss(styles) {
|
|
14
|
+
const emotionSerializationResult = emotionSerializeStyles(styles);
|
|
15
|
+
return {
|
|
16
|
+
content: emotionSerializationResult.styles,
|
|
17
|
+
contentHash: emotionSerializationResult.name
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
processCss,
|
|
22
|
+
toCssStatements,
|
|
23
|
+
toRawCss
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=serialize-css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/css-runtime/serialize-css.ts"],"sourcesContent":["import { CSSObject, serializeStyles as emotionSerializeStyles } from '@emotion/serialize'\nimport { serialize, compile, stringify, prefixer, middleware } from 'stylis'\n\n/**\n * Creates a css string from the styles object and provided class name.\n *\n * The output of this function is the \"final\" css that is intended to be used directly\n * as `<style>` content, constructible stylesheet content, etc.\n *\n * For \"controlled\" styles, this represents the last step in the conversion of:\n * Makeswift prop data -> JS styles object -> css string\n *\n * For \"uncontrolled\" styles, this is used to convert an inline JS styles object\n * into a css string.\n */\nexport function toCssStatements(\n stylesObject: CSSObject,\n className: string,\n): { css: string; contentHash: string } {\n const { content: rawCssContent, contentHash } = toRawCss([stylesObject])\n const classNameRawCss = `.${className} {${rawCssContent}}`\n const css = processCss({ content: classNameRawCss })\n return { css, contentHash }\n}\n\n/**\n * This is a layer in the css pipeline that uses a css preprocessor\n * to apply select transformations to \"raw\" css input.\n *\n * Converts the inputted css content into an abstract syntax tree for manipulation\n * (performing unnesting, applying vendor prefixes, etc.). Re-serializes and returns\n * the transformed css string.\n */\nexport function processCss({ content }: { content: string }): string {\n const cssElementTree = compile(content)\n return serialize(cssElementTree, middleware([prefixer, stringify]))\n}\n\n/**\n * Uses Emotion's `serializeStyles` function to create a css string\n * which is returned along with a content hash.\n *\n * The resulting css content is \"raw\" in the sense that it hasn't been passed\n * through our css preprocessing layer.\n */\nexport function toRawCss(styles: Array<CSSObject>): { content: string; contentHash: string } {\n const emotionSerializationResult = emotionSerializeStyles(styles)\n return {\n content: emotionSerializationResult.styles,\n contentHash: emotionSerializationResult.name,\n }\n}\n"],"mappings":"AAAA,SAAoB,mBAAmB,8BAA8B;AACrE,SAAS,WAAW,SAAS,WAAW,UAAU,kBAAkB;AAc7D,SAAS,gBACd,cACA,WACsC;AACtC,QAAM,EAAE,SAAS,eAAe,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC;AACvE,QAAM,kBAAkB,IAAI,SAAS,KAAK,aAAa;AACvD,QAAM,MAAM,WAAW,EAAE,SAAS,gBAAgB,CAAC;AACnD,SAAO,EAAE,KAAK,YAAY;AAC5B;AAUO,SAAS,WAAW,EAAE,QAAQ,GAAgC;AACnE,QAAM,iBAAiB,QAAQ,OAAO;AACtC,SAAO,UAAU,gBAAgB,WAAW,CAAC,UAAU,SAAS,CAAC,CAAC;AACpE;AASO,SAAS,SAAS,QAAoE;AAC3F,QAAM,6BAA6B,uBAAuB,MAAM;AAChE,SAAO;AAAA,IACL,SAAS,2BAA2B;AAAA,IACpC,aAAa,2BAA2B;AAAA,EAC1C;AACF;","names":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
class StyleElementUpdater {
|
|
2
|
+
constructor() {
|
|
3
|
+
}
|
|
4
|
+
apply({ className, css }) {
|
|
5
|
+
const styleElement = this.findStyleElement(className);
|
|
6
|
+
if (styleElement) {
|
|
7
|
+
styleElement.textContent = css;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
findStyleElement(className) {
|
|
11
|
+
const matchingStyleElements = document.querySelectorAll(
|
|
12
|
+
`style[data-href="${className}"]`
|
|
13
|
+
);
|
|
14
|
+
if (matchingStyleElements.length === 0) {
|
|
15
|
+
console.warn(
|
|
16
|
+
`Attempted to remove stale style rules for an editable Makeswift class '${className}', but found no corresponding style element`
|
|
17
|
+
);
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
if (matchingStyleElements.length > 1) {
|
|
21
|
+
console.warn(
|
|
22
|
+
`Attempted to remove stale style rules for an editable Makeswift class '${className}', but found multiple corresponding style elements`
|
|
23
|
+
);
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return matchingStyleElements[0];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
StyleElementUpdater
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=style-element-updater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/css-runtime/style-element-updater.ts"],"sourcesContent":["import { BrowserStyleApplier } from './types'\n\nexport class StyleElementUpdater implements BrowserStyleApplier {\n constructor() {}\n\n apply({ className, css }: { className: string; css: string }): void {\n const styleElement = this.findStyleElement(className)\n if (styleElement) {\n styleElement.textContent = css\n }\n }\n\n private findStyleElement(className: string): HTMLStyleElement | null {\n const matchingStyleElements = document.querySelectorAll<HTMLStyleElement>(\n `style[data-href=\"${className}\"]`,\n )\n if (matchingStyleElements.length === 0) {\n console.warn(\n `Attempted to remove stale style rules for an editable Makeswift class '${className}', but found no corresponding style element`,\n )\n return null\n }\n if (matchingStyleElements.length > 1) {\n console.warn(\n `Attempted to remove stale style rules for an editable Makeswift class '${className}', but found multiple corresponding style elements`,\n )\n return null\n }\n return matchingStyleElements[0]\n }\n}\n"],"mappings":"AAEO,MAAM,oBAAmD;AAAA,EAC9D,cAAc;AAAA,EAAC;AAAA,EAEf,MAAM,EAAE,WAAW,IAAI,GAA6C;AAClE,UAAM,eAAe,KAAK,iBAAiB,SAAS;AACpD,QAAI,cAAc;AAChB,mBAAa,cAAc;AAAA,IAC7B;AAAA,EACF;AAAA,EAEQ,iBAAiB,WAA4C;AACnE,UAAM,wBAAwB,SAAS;AAAA,MACrC,oBAAoB,SAAS;AAAA,IAC/B;AACA,QAAI,sBAAsB,WAAW,GAAG;AACtC,cAAQ;AAAA,QACN,0EAA0E,SAAS;AAAA,MACrF;AACA,aAAO;AAAA,IACT;AACA,QAAI,sBAAsB,SAAS,GAAG;AACpC,cAAQ;AAAA,QACN,0EAA0E,SAAS;AAAA,MACrF;AACA,aAAO;AAAA,IACT;AACA,WAAO,sBAAsB,CAAC;AAAA,EAChC;AACF;","names":[]}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import { getControlledStylePrecedence, styleTagHtml } from "./utils";
|
|
2
|
+
import {
|
|
3
|
+
MakeswiftStylePrecedence
|
|
4
|
+
} from "./types";
|
|
5
|
+
class StylesRegistry {
|
|
6
|
+
// Keyed by class name
|
|
7
|
+
uncontrolledClassStyles;
|
|
8
|
+
// Outer map keyed by namespace, inner map keyed by class name
|
|
9
|
+
namespaceControlledStyles;
|
|
10
|
+
// Keyed by keyframes name
|
|
11
|
+
keyframes;
|
|
12
|
+
// Keyed by content hash
|
|
13
|
+
cssResets;
|
|
14
|
+
// Keyed by content hash
|
|
15
|
+
baseStyles;
|
|
16
|
+
// Keyed by class name
|
|
17
|
+
controlledStylesInitialData;
|
|
18
|
+
controlledStyleWriteListeners;
|
|
19
|
+
constructor() {
|
|
20
|
+
this.uncontrolledClassStyles = /* @__PURE__ */ new Map();
|
|
21
|
+
this.namespaceControlledStyles = /* @__PURE__ */ new Map();
|
|
22
|
+
this.keyframes = /* @__PURE__ */ new Map();
|
|
23
|
+
this.cssResets = /* @__PURE__ */ new Map();
|
|
24
|
+
this.baseStyles = /* @__PURE__ */ new Map();
|
|
25
|
+
this.controlledStyleWriteListeners = /* @__PURE__ */ new Set();
|
|
26
|
+
this.controlledStylesInitialData = /* @__PURE__ */ new Map();
|
|
27
|
+
}
|
|
28
|
+
/*
|
|
29
|
+
Getters
|
|
30
|
+
*/
|
|
31
|
+
getUncontrolledClassStyles() {
|
|
32
|
+
return this.uncontrolledClassStyles;
|
|
33
|
+
}
|
|
34
|
+
getControlledStyles(namespace) {
|
|
35
|
+
return this.getOrCreateControlledStylesMapForNamespace(namespace);
|
|
36
|
+
}
|
|
37
|
+
getKeyframes() {
|
|
38
|
+
return this.keyframes;
|
|
39
|
+
}
|
|
40
|
+
getCssResets() {
|
|
41
|
+
return this.cssResets;
|
|
42
|
+
}
|
|
43
|
+
getBaseStyles() {
|
|
44
|
+
return this.baseStyles;
|
|
45
|
+
}
|
|
46
|
+
/*
|
|
47
|
+
Setters
|
|
48
|
+
*/
|
|
49
|
+
setControlledStyle({
|
|
50
|
+
namespace,
|
|
51
|
+
className,
|
|
52
|
+
data
|
|
53
|
+
}) {
|
|
54
|
+
const namespaceControlledStyleData = this.getOrCreateControlledStylesMapForNamespace(namespace);
|
|
55
|
+
const previousData = namespaceControlledStyleData.get(className);
|
|
56
|
+
if (previousData != null && previousData.contentHash === data.contentHash) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
namespaceControlledStyleData.set(className, data);
|
|
60
|
+
let initialData = this.controlledStylesInitialData.get(className);
|
|
61
|
+
if (initialData == null) {
|
|
62
|
+
initialData = data;
|
|
63
|
+
this.controlledStylesInitialData.set(className, data);
|
|
64
|
+
}
|
|
65
|
+
this.notifyOnControlledStyleWrite({
|
|
66
|
+
className,
|
|
67
|
+
currentData: data,
|
|
68
|
+
initialData
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
setUncontrolledClassStyle(data) {
|
|
72
|
+
this.uncontrolledClassStyles.set(data.className, data);
|
|
73
|
+
}
|
|
74
|
+
setKeyframes(data) {
|
|
75
|
+
this.keyframes.set(data.keyframesName, data);
|
|
76
|
+
}
|
|
77
|
+
setCssReset(data) {
|
|
78
|
+
this.cssResets.set(data.contentHash, data);
|
|
79
|
+
}
|
|
80
|
+
setBaseStyles(data) {
|
|
81
|
+
this.baseStyles.set(data.contentHash, data);
|
|
82
|
+
}
|
|
83
|
+
/*
|
|
84
|
+
Serialization
|
|
85
|
+
*/
|
|
86
|
+
/**
|
|
87
|
+
* Creates an HTML string containing `<style>` elements for the contents of the
|
|
88
|
+
* registry, ordered by precedence (lower precedences first).
|
|
89
|
+
*
|
|
90
|
+
* This is intended to be used server-side in scenarios where we can't
|
|
91
|
+
* depend on React's hoisting behavior to place `<style>` elements in the page
|
|
92
|
+
* `<head>`.
|
|
93
|
+
*
|
|
94
|
+
* When using this for SSR, the `RootStyleRegistry` should be configured so that
|
|
95
|
+
* it does not render `<style>` elements alongside components (to avoid creating
|
|
96
|
+
* duplicates).
|
|
97
|
+
*
|
|
98
|
+
* There's an argument for providing these as an array of raw style data so
|
|
99
|
+
* that applications which render multiple React roots can deduplicate styles
|
|
100
|
+
* between them.
|
|
101
|
+
*/
|
|
102
|
+
serializeToHtmlStyleTags() {
|
|
103
|
+
return this.serializeToStyleProps().map((stylePropsForPrecedence) => styleTagHtml(stylePropsForPrecedence)).join("");
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Returns an array of `MakeswiftStyle` component props for the contents of the
|
|
107
|
+
* registry, ordered by precedence (lower precedences first).
|
|
108
|
+
*
|
|
109
|
+
* It might be desirable in some cases to avoid filtering out empty data, since
|
|
110
|
+
* an empty `<style>` tag in the page `<head>` can still serve as an anchor to
|
|
111
|
+
* which client-side React can hoist `<style>`s added after page load.
|
|
112
|
+
*/
|
|
113
|
+
serializeToStyleProps(includeEmpty = false) {
|
|
114
|
+
const resetPrecedenceStylesProps = this.getPropsForResetPrecedenceStyles();
|
|
115
|
+
const mediumPrecedenceStylesProps = this.getPropsForMediumPrecedenceStyles();
|
|
116
|
+
const highPrecedenceStylesProps = this.getPropsForHighPrecedenceStyles();
|
|
117
|
+
const perPrecedenceProps = [
|
|
118
|
+
resetPrecedenceStylesProps,
|
|
119
|
+
mediumPrecedenceStylesProps,
|
|
120
|
+
highPrecedenceStylesProps,
|
|
121
|
+
...this.getPropsForCustomPrecedenceStyles()
|
|
122
|
+
];
|
|
123
|
+
return includeEmpty ? perPrecedenceProps : perPrecedenceProps.filter((props) => props.href.length > 0);
|
|
124
|
+
}
|
|
125
|
+
/*
|
|
126
|
+
Subscriptions
|
|
127
|
+
*/
|
|
128
|
+
subscribeToControlledStyleWrites(listener) {
|
|
129
|
+
this.controlledStyleWriteListeners.add(listener);
|
|
130
|
+
const unsubscribe = () => {
|
|
131
|
+
this.controlledStyleWriteListeners.delete(listener);
|
|
132
|
+
};
|
|
133
|
+
return unsubscribe;
|
|
134
|
+
}
|
|
135
|
+
notifyOnControlledStyleWrite({
|
|
136
|
+
className,
|
|
137
|
+
currentData,
|
|
138
|
+
initialData
|
|
139
|
+
}) {
|
|
140
|
+
if (this.controlledStyleWriteListeners.size > 0) {
|
|
141
|
+
queueMicrotask(() => {
|
|
142
|
+
for (const listener of this.controlledStyleWriteListeners) {
|
|
143
|
+
try {
|
|
144
|
+
listener({ className, currentData, initialData });
|
|
145
|
+
} catch (e) {
|
|
146
|
+
console.error(`Error notifying listener for className ${className}:`, e);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/*
|
|
153
|
+
Helpers
|
|
154
|
+
*/
|
|
155
|
+
getOrCreateControlledStylesMapForNamespace(namespace) {
|
|
156
|
+
let namespaceControlledStyles = this.namespaceControlledStyles.get(namespace);
|
|
157
|
+
if (namespaceControlledStyles == null) {
|
|
158
|
+
namespaceControlledStyles = /* @__PURE__ */ new Map();
|
|
159
|
+
this.namespaceControlledStyles.set(namespace, namespaceControlledStyles);
|
|
160
|
+
}
|
|
161
|
+
return namespaceControlledStyles;
|
|
162
|
+
}
|
|
163
|
+
getAllControlledStyles() {
|
|
164
|
+
const result = /* @__PURE__ */ new Map();
|
|
165
|
+
const controlledStyleNamespaces = Array.from(this.namespaceControlledStyles.keys());
|
|
166
|
+
for (const namespace of controlledStyleNamespaces) {
|
|
167
|
+
const namespaceControlledStyles = this.namespaceControlledStyles.get(namespace);
|
|
168
|
+
if (namespaceControlledStyles == null)
|
|
169
|
+
continue;
|
|
170
|
+
for (const [className, data] of namespaceControlledStyles.entries()) {
|
|
171
|
+
result.set(className, data);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return result;
|
|
175
|
+
}
|
|
176
|
+
getPropsForResetPrecedenceStyles() {
|
|
177
|
+
const cssResets = this.getCssResets();
|
|
178
|
+
const hrefValues = new Array();
|
|
179
|
+
const allCss = new Array();
|
|
180
|
+
for (const [contentHash, cssResetData] of cssResets.entries()) {
|
|
181
|
+
hrefValues.push(`makeswift-css-reset-${contentHash}`);
|
|
182
|
+
allCss.push(cssResetData.css);
|
|
183
|
+
}
|
|
184
|
+
const combinedHref = hrefValues.join(" ");
|
|
185
|
+
const combinedCss = allCss.join("");
|
|
186
|
+
return {
|
|
187
|
+
href: combinedHref,
|
|
188
|
+
css: combinedCss,
|
|
189
|
+
precedence: MakeswiftStylePrecedence.RESET
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
getPropsForMediumPrecedenceStyles() {
|
|
193
|
+
const styles = this.getUncontrolledClassStyles();
|
|
194
|
+
const keyframes = this.getKeyframes();
|
|
195
|
+
const hrefValues = new Array();
|
|
196
|
+
const allCss = new Array();
|
|
197
|
+
for (const [className, uncontrolledStyleData] of styles.entries()) {
|
|
198
|
+
hrefValues.push(className);
|
|
199
|
+
allCss.push(uncontrolledStyleData.css);
|
|
200
|
+
}
|
|
201
|
+
for (const [keyframesName, keyframesData] of keyframes.entries()) {
|
|
202
|
+
hrefValues.push(keyframesName);
|
|
203
|
+
allCss.push(keyframesData.css);
|
|
204
|
+
}
|
|
205
|
+
const combinedHref = hrefValues.join(" ");
|
|
206
|
+
const combinedCss = allCss.join("");
|
|
207
|
+
return {
|
|
208
|
+
href: combinedHref,
|
|
209
|
+
css: combinedCss,
|
|
210
|
+
precedence: MakeswiftStylePrecedence.MEDIUM
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
getPropsForHighPrecedenceStyles() {
|
|
214
|
+
const baseStyles = this.getBaseStyles();
|
|
215
|
+
const hrefValues = new Array();
|
|
216
|
+
const allCss = new Array();
|
|
217
|
+
for (const [contentHash, baseStylesData] of baseStyles.entries()) {
|
|
218
|
+
hrefValues.push(`makeswift-base-styles-${contentHash}`);
|
|
219
|
+
allCss.push(baseStylesData.css);
|
|
220
|
+
}
|
|
221
|
+
const combinedHref = hrefValues.join(" ");
|
|
222
|
+
const combinedCss = allCss.join("");
|
|
223
|
+
return {
|
|
224
|
+
href: combinedHref,
|
|
225
|
+
css: combinedCss,
|
|
226
|
+
precedence: MakeswiftStylePrecedence.HIGH
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
getPropsForCustomPrecedenceStyles() {
|
|
230
|
+
const controlledStyles = this.getAllControlledStyles();
|
|
231
|
+
const customPrecedenceValues = /* @__PURE__ */ new Set();
|
|
232
|
+
const customPrecedenceToHrefValues = /* @__PURE__ */ new Map();
|
|
233
|
+
const customPrecedenceToCss = /* @__PURE__ */ new Map();
|
|
234
|
+
for (const [className, controlledStyleData] of controlledStyles.entries()) {
|
|
235
|
+
const precedence = getControlledStylePrecedence(controlledStyleData);
|
|
236
|
+
customPrecedenceValues.add(precedence);
|
|
237
|
+
const hrefValues = customPrecedenceToHrefValues.get(precedence) ?? [];
|
|
238
|
+
const css = customPrecedenceToCss.get(precedence) ?? [];
|
|
239
|
+
hrefValues.push(className);
|
|
240
|
+
css.push(controlledStyleData.css);
|
|
241
|
+
customPrecedenceToHrefValues.set(precedence, hrefValues);
|
|
242
|
+
customPrecedenceToCss.set(precedence, css);
|
|
243
|
+
}
|
|
244
|
+
return Array.from(customPrecedenceValues.values()).map((customPrecedenceValue) => {
|
|
245
|
+
const hrefValues = customPrecedenceToHrefValues.get(customPrecedenceValue) ?? [];
|
|
246
|
+
const allCss = customPrecedenceToCss.get(customPrecedenceValue) ?? [];
|
|
247
|
+
const combinedHref = hrefValues.join(" ");
|
|
248
|
+
const combinedCss = allCss.join("");
|
|
249
|
+
const propsForCustomPrecedence = {
|
|
250
|
+
href: combinedHref,
|
|
251
|
+
css: combinedCss,
|
|
252
|
+
precedence: customPrecedenceValue
|
|
253
|
+
};
|
|
254
|
+
return propsForCustomPrecedence;
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
export {
|
|
259
|
+
StylesRegistry
|
|
260
|
+
};
|
|
261
|
+
//# sourceMappingURL=styles-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/css-runtime/styles-registry.ts"],"sourcesContent":["import { getControlledStylePrecedence, styleTagHtml } from './utils'\nimport {\n BaseStylesData,\n ClassStyleData,\n ControlledStyleData,\n CssResetData,\n KeyframesData,\n MakeswiftStylePrecedence,\n OnControlledStyleDataWrite,\n} from './types'\nimport { ComponentProps } from 'react'\nimport { MakeswiftStyle } from './components/makeswift-style'\n\nexport class StylesRegistry {\n // Keyed by class name\n private uncontrolledClassStyles: Map<string, ClassStyleData>\n\n // Outer map keyed by namespace, inner map keyed by class name\n private namespaceControlledStyles: Map<string, Map<string, ControlledStyleData>>\n\n // Keyed by keyframes name\n private keyframes: Map<string, KeyframesData>\n\n // Keyed by content hash\n private cssResets: Map<string, CssResetData>\n\n // Keyed by content hash\n private baseStyles: Map<string, BaseStylesData>\n\n // Keyed by class name\n private controlledStylesInitialData: Map<string, ControlledStyleData>\n private controlledStyleWriteListeners: Set<OnControlledStyleDataWrite>\n\n constructor() {\n this.uncontrolledClassStyles = new Map()\n this.namespaceControlledStyles = new Map()\n this.keyframes = new Map()\n this.cssResets = new Map()\n this.baseStyles = new Map()\n this.controlledStyleWriteListeners = new Set()\n this.controlledStylesInitialData = new Map()\n }\n\n /*\n Getters\n */\n\n getUncontrolledClassStyles(): ReadonlyMap<string, ClassStyleData> {\n return this.uncontrolledClassStyles\n }\n\n getControlledStyles(namespace: string): ReadonlyMap<string, ControlledStyleData> {\n return this.getOrCreateControlledStylesMapForNamespace(namespace)\n }\n\n getKeyframes(): ReadonlyMap<string, KeyframesData> {\n return this.keyframes\n }\n\n getCssResets(): ReadonlyMap<string, CssResetData> {\n return this.cssResets\n }\n\n getBaseStyles(): ReadonlyMap<string, BaseStylesData> {\n return this.baseStyles\n }\n\n /*\n Setters\n */\n\n setControlledStyle({\n namespace,\n className,\n data,\n }: {\n namespace: string\n className: string\n data: ControlledStyleData\n }) {\n const namespaceControlledStyleData = this.getOrCreateControlledStylesMapForNamespace(namespace)\n\n const previousData = namespaceControlledStyleData.get(className)\n if (previousData != null && previousData.contentHash === data.contentHash) {\n return\n }\n\n namespaceControlledStyleData.set(className, data)\n\n let initialData = this.controlledStylesInitialData.get(className)\n if (initialData == null) {\n initialData = data\n this.controlledStylesInitialData.set(className, data)\n }\n this.notifyOnControlledStyleWrite({\n className,\n currentData: data,\n initialData,\n })\n }\n\n setUncontrolledClassStyle(data: ClassStyleData) {\n this.uncontrolledClassStyles.set(data.className, data)\n }\n\n setKeyframes(data: KeyframesData) {\n this.keyframes.set(data.keyframesName, data)\n }\n\n setCssReset(data: CssResetData) {\n this.cssResets.set(data.contentHash, data)\n }\n\n setBaseStyles(data: BaseStylesData) {\n this.baseStyles.set(data.contentHash, data)\n }\n\n /*\n Serialization\n */\n\n /**\n * Creates an HTML string containing `<style>` elements for the contents of the\n * registry, ordered by precedence (lower precedences first).\n *\n * This is intended to be used server-side in scenarios where we can't\n * depend on React's hoisting behavior to place `<style>` elements in the page\n * `<head>`.\n *\n * When using this for SSR, the `RootStyleRegistry` should be configured so that\n * it does not render `<style>` elements alongside components (to avoid creating\n * duplicates).\n *\n * There's an argument for providing these as an array of raw style data so\n * that applications which render multiple React roots can deduplicate styles\n * between them.\n */\n serializeToHtmlStyleTags(): string {\n return this.serializeToStyleProps()\n .map(stylePropsForPrecedence => styleTagHtml(stylePropsForPrecedence))\n .join('')\n }\n\n /**\n * Returns an array of `MakeswiftStyle` component props for the contents of the\n * registry, ordered by precedence (lower precedences first).\n *\n * It might be desirable in some cases to avoid filtering out empty data, since\n * an empty `<style>` tag in the page `<head>` can still serve as an anchor to\n * which client-side React can hoist `<style>`s added after page load.\n */\n serializeToStyleProps(\n includeEmpty: boolean = false,\n ): Array<ComponentProps<typeof MakeswiftStyle>> {\n const resetPrecedenceStylesProps = this.getPropsForResetPrecedenceStyles()\n const mediumPrecedenceStylesProps = this.getPropsForMediumPrecedenceStyles()\n const highPrecedenceStylesProps = this.getPropsForHighPrecedenceStyles()\n\n const perPrecedenceProps = [\n resetPrecedenceStylesProps,\n mediumPrecedenceStylesProps,\n highPrecedenceStylesProps,\n ...this.getPropsForCustomPrecedenceStyles(),\n ]\n return includeEmpty\n ? perPrecedenceProps\n : perPrecedenceProps.filter(props => props.href.length > 0)\n }\n\n /*\n Subscriptions\n */\n subscribeToControlledStyleWrites(listener: OnControlledStyleDataWrite): () => void {\n this.controlledStyleWriteListeners.add(listener)\n const unsubscribe = () => {\n this.controlledStyleWriteListeners.delete(listener)\n }\n return unsubscribe\n }\n\n notifyOnControlledStyleWrite({\n className,\n currentData,\n initialData,\n }: {\n className: string\n currentData: ControlledStyleData\n initialData: ControlledStyleData\n }) {\n if (this.controlledStyleWriteListeners.size > 0) {\n queueMicrotask(() => {\n for (const listener of this.controlledStyleWriteListeners) {\n try {\n listener({ className, currentData, initialData })\n } catch (e) {\n console.error(`Error notifying listener for className ${className}:`, e)\n }\n }\n })\n }\n }\n\n /*\n Helpers\n */\n\n private getOrCreateControlledStylesMapForNamespace(\n namespace: string,\n ): Map<string, ControlledStyleData> {\n let namespaceControlledStyles = this.namespaceControlledStyles.get(namespace)\n if (namespaceControlledStyles == null) {\n namespaceControlledStyles = new Map()\n this.namespaceControlledStyles.set(namespace, namespaceControlledStyles)\n }\n return namespaceControlledStyles\n }\n\n private getAllControlledStyles(): Map<string, ControlledStyleData> {\n const result = new Map<string, ControlledStyleData>()\n const controlledStyleNamespaces = Array.from(this.namespaceControlledStyles.keys())\n for (const namespace of controlledStyleNamespaces) {\n const namespaceControlledStyles = this.namespaceControlledStyles.get(namespace)\n if (namespaceControlledStyles == null) continue\n for (const [className, data] of namespaceControlledStyles.entries()) {\n result.set(className, data)\n }\n }\n return result\n }\n\n private getPropsForResetPrecedenceStyles(): ComponentProps<typeof MakeswiftStyle> {\n const cssResets = this.getCssResets()\n const hrefValues = new Array<string>()\n const allCss = new Array<string>()\n for (const [contentHash, cssResetData] of cssResets.entries()) {\n hrefValues.push(`makeswift-css-reset-${contentHash}`)\n allCss.push(cssResetData.css)\n }\n const combinedHref = hrefValues.join(' ')\n const combinedCss = allCss.join('')\n return {\n href: combinedHref,\n css: combinedCss,\n precedence: MakeswiftStylePrecedence.RESET,\n }\n }\n\n private getPropsForMediumPrecedenceStyles(): ComponentProps<typeof MakeswiftStyle> {\n const styles = this.getUncontrolledClassStyles()\n const keyframes = this.getKeyframes()\n\n const hrefValues = new Array<string>()\n const allCss = new Array<string>()\n for (const [className, uncontrolledStyleData] of styles.entries()) {\n hrefValues.push(className)\n allCss.push(uncontrolledStyleData.css)\n }\n for (const [keyframesName, keyframesData] of keyframes.entries()) {\n hrefValues.push(keyframesName)\n allCss.push(keyframesData.css)\n }\n const combinedHref = hrefValues.join(' ')\n const combinedCss = allCss.join('')\n return {\n href: combinedHref,\n css: combinedCss,\n precedence: MakeswiftStylePrecedence.MEDIUM,\n }\n }\n\n private getPropsForHighPrecedenceStyles(): ComponentProps<typeof MakeswiftStyle> {\n const baseStyles = this.getBaseStyles()\n const hrefValues = new Array<string>()\n const allCss = new Array<string>()\n for (const [contentHash, baseStylesData] of baseStyles.entries()) {\n hrefValues.push(`makeswift-base-styles-${contentHash}`)\n allCss.push(baseStylesData.css)\n }\n const combinedHref = hrefValues.join(' ')\n const combinedCss = allCss.join('')\n return {\n href: combinedHref,\n css: combinedCss,\n precedence: MakeswiftStylePrecedence.HIGH,\n }\n }\n\n private getPropsForCustomPrecedenceStyles(): Array<ComponentProps<typeof MakeswiftStyle>> {\n const controlledStyles = this.getAllControlledStyles()\n const customPrecedenceValues = new Set<string>()\n const customPrecedenceToHrefValues = new Map<string, Array<string>>()\n const customPrecedenceToCss = new Map<string, Array<string>>()\n for (const [className, controlledStyleData] of controlledStyles.entries()) {\n const precedence = getControlledStylePrecedence(controlledStyleData)\n customPrecedenceValues.add(precedence)\n\n const hrefValues = customPrecedenceToHrefValues.get(precedence) ?? []\n const css = customPrecedenceToCss.get(precedence) ?? []\n\n hrefValues.push(className)\n css.push(controlledStyleData.css)\n\n customPrecedenceToHrefValues.set(precedence, hrefValues)\n customPrecedenceToCss.set(precedence, css)\n }\n\n return Array.from(customPrecedenceValues.values()).map(customPrecedenceValue => {\n const hrefValues = customPrecedenceToHrefValues.get(customPrecedenceValue) ?? []\n const allCss = customPrecedenceToCss.get(customPrecedenceValue) ?? []\n const combinedHref = hrefValues.join(' ')\n const combinedCss = allCss.join('')\n const propsForCustomPrecedence: ComponentProps<typeof MakeswiftStyle> = {\n href: combinedHref,\n css: combinedCss,\n precedence: customPrecedenceValue,\n }\n return propsForCustomPrecedence\n })\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { generateClassName } from "./utils";
|
|
2
|
+
import { resolvedStyleToCss } from "../lib/resolved-style-to-css";
|
|
3
|
+
import { toCssStatements } from "./serialize-css";
|
|
4
|
+
class StylesheetEngine {
|
|
5
|
+
breakpointsData;
|
|
6
|
+
documentKey;
|
|
7
|
+
elementKey;
|
|
8
|
+
propPathComponents;
|
|
9
|
+
onDefineStyle;
|
|
10
|
+
classNamePrefix;
|
|
11
|
+
constructor({
|
|
12
|
+
breakpointsData,
|
|
13
|
+
documentKey,
|
|
14
|
+
elementKey,
|
|
15
|
+
propPathComponents,
|
|
16
|
+
onDefineStyle,
|
|
17
|
+
classNamePrefix
|
|
18
|
+
}) {
|
|
19
|
+
this.breakpointsData = breakpointsData;
|
|
20
|
+
this.documentKey = documentKey;
|
|
21
|
+
this.elementKey = elementKey;
|
|
22
|
+
this.propPathComponents = propPathComponents;
|
|
23
|
+
this.onDefineStyle = onDefineStyle;
|
|
24
|
+
this.classNamePrefix = classNamePrefix;
|
|
25
|
+
}
|
|
26
|
+
breakpoints() {
|
|
27
|
+
return this.breakpointsData;
|
|
28
|
+
}
|
|
29
|
+
defineStyle(resolvedStyle, onBoxModelChange) {
|
|
30
|
+
const joinedPropPath = this.propPathComponents.join(".");
|
|
31
|
+
const className = generateClassName({
|
|
32
|
+
data: this.key(),
|
|
33
|
+
classNamePrefix: this.classNamePrefix
|
|
34
|
+
});
|
|
35
|
+
const cssObject = resolvedStyleToCss(this.breakpointsData, resolvedStyle);
|
|
36
|
+
const { css, contentHash } = toCssStatements(cssObject, className);
|
|
37
|
+
this.onDefineStyle?.({
|
|
38
|
+
className,
|
|
39
|
+
css,
|
|
40
|
+
cssObject,
|
|
41
|
+
contentHash,
|
|
42
|
+
elementKey: this.elementKey,
|
|
43
|
+
joinedPropPath,
|
|
44
|
+
onBoxModelChange
|
|
45
|
+
});
|
|
46
|
+
return className;
|
|
47
|
+
}
|
|
48
|
+
child(propName) {
|
|
49
|
+
return new StylesheetEngine({
|
|
50
|
+
breakpointsData: this.breakpointsData,
|
|
51
|
+
documentKey: this.documentKey,
|
|
52
|
+
elementKey: this.elementKey,
|
|
53
|
+
propPathComponents: [...this.propPathComponents, propName],
|
|
54
|
+
onDefineStyle: this.onDefineStyle,
|
|
55
|
+
classNamePrefix: this.classNamePrefix
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
key() {
|
|
59
|
+
return `${this.documentKey}-${this.elementKey}-${this.propPathComponents.join(".")}`;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export {
|
|
63
|
+
StylesheetEngine
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=stylesheet-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/css-runtime/stylesheet-engine.ts"],"sourcesContent":["import { BoxDisplayModel, Breakpoints, ResolvedStyle, Stylesheet } from '@makeswift/controls'\nimport { generateClassName } from './utils'\nimport { ControlledStyleData } from './types'\nimport { resolvedStyleToCss } from '../lib/resolved-style-to-css'\nimport { toCssStatements } from './serialize-css'\n\nexport class StylesheetEngine implements Stylesheet {\n private breakpointsData: Breakpoints\n private documentKey: string\n private elementKey: string\n private propPathComponents: readonly string[]\n private onDefineStyle: (data: ControlledStyleData) => void\n private classNamePrefix?: string\n\n constructor({\n breakpointsData,\n documentKey,\n elementKey,\n propPathComponents,\n onDefineStyle,\n classNamePrefix,\n }: {\n breakpointsData: Breakpoints\n documentKey: string\n elementKey: string\n propPathComponents: readonly string[]\n onDefineStyle: (data: ControlledStyleData) => void\n classNamePrefix?: string\n }) {\n this.breakpointsData = breakpointsData\n this.documentKey = documentKey\n this.elementKey = elementKey\n this.propPathComponents = propPathComponents\n this.onDefineStyle = onDefineStyle\n this.classNamePrefix = classNamePrefix\n }\n\n breakpoints(): Breakpoints {\n return this.breakpointsData\n }\n\n defineStyle(\n resolvedStyle: ResolvedStyle,\n onBoxModelChange?: (boxModel: BoxDisplayModel | null) => void,\n ): string {\n const joinedPropPath = this.propPathComponents.join('.')\n const className = generateClassName({\n data: this.key(),\n classNamePrefix: this.classNamePrefix,\n })\n const cssObject = resolvedStyleToCss(this.breakpointsData, resolvedStyle)\n const { css, contentHash } = toCssStatements(cssObject, className)\n\n this.onDefineStyle?.({\n className,\n css,\n cssObject,\n contentHash,\n elementKey: this.elementKey,\n joinedPropPath,\n onBoxModelChange,\n })\n return className\n }\n\n child(propName: string): Stylesheet {\n return new StylesheetEngine({\n breakpointsData: this.breakpointsData,\n documentKey: this.documentKey,\n elementKey: this.elementKey,\n propPathComponents: [...this.propPathComponents, propName],\n onDefineStyle: this.onDefineStyle,\n classNamePrefix: this.classNamePrefix,\n })\n }\n\n key(): string {\n return `${this.documentKey}-${this.elementKey}-${this.propPathComponents.join('.')}`\n }\n}\n"],"mappings":"AACA,SAAS,yBAAyB;AAElC,SAAS,0BAA0B;AACnC,SAAS,uBAAuB;AAEzB,MAAM,iBAAuC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAOG;AACD,SAAK,kBAAkB;AACvB,SAAK,cAAc;AACnB,SAAK,aAAa;AAClB,SAAK,qBAAqB;AAC1B,SAAK,gBAAgB;AACrB,SAAK,kBAAkB;AAAA,EACzB;AAAA,EAEA,cAA2B;AACzB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,YACE,eACA,kBACQ;AACR,UAAM,iBAAiB,KAAK,mBAAmB,KAAK,GAAG;AACvD,UAAM,YAAY,kBAAkB;AAAA,MAClC,MAAM,KAAK,IAAI;AAAA,MACf,iBAAiB,KAAK;AAAA,IACxB,CAAC;AACD,UAAM,YAAY,mBAAmB,KAAK,iBAAiB,aAAa;AACxE,UAAM,EAAE,KAAK,YAAY,IAAI,gBAAgB,WAAW,SAAS;AAEjE,SAAK,gBAAgB;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY,KAAK;AAAA,MACjB;AAAA,MACA;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UAA8B;AAClC,WAAO,IAAI,iBAAiB;AAAA,MAC1B,iBAAiB,KAAK;AAAA,MACtB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK;AAAA,MACjB,oBAAoB,CAAC,GAAG,KAAK,oBAAoB,QAAQ;AAAA,MACzD,eAAe,KAAK;AAAA,MACpB,iBAAiB,KAAK;AAAA,IACxB,CAAC;AAAA,EACH;AAAA,EAEA,MAAc;AACZ,WAAO,GAAG,KAAK,WAAW,IAAI,KAAK,UAAU,IAAI,KAAK,mBAAmB,KAAK,GAAG,CAAC;AAAA,EACpF;AACF;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/css-runtime/types.ts"],"sourcesContent":["import { CSSObject } from '@emotion/serialize'\nimport { BoxDisplayModel, Breakpoints, Stylesheet } from '@makeswift/controls'\n\n/*\n Per React's `<style>` documentation:\n \"React will infer that precedence values it discovers first are 'lower' and precedence\n values it discovers later are 'higher'\"\n*/\nexport const MakeswiftStylePrecedence = {\n RESET: 'reset',\n LOW: 'low',\n MEDIUM: 'medium',\n HIGH: 'high',\n} as const\nexport type MakeswiftStylePrecedence =\n (typeof MakeswiftStylePrecedence)[keyof typeof MakeswiftStylePrecedence]\n\nexport interface BrowserStyleApplier {\n apply({ className, css }: { className: string; css: string }): void\n dispose?(): void\n}\n\nexport type GetStylesheet = ({\n breakpointsData,\n elementKey,\n propPathComponents,\n}: {\n breakpointsData: Breakpoints\n elementKey: string\n propPathComponents: readonly string[]\n}) => Stylesheet\n\nexport type ClassStyleData = {\n className: string\n css: string\n cssObject: CSSObject\n}\n\nexport type ControlledStyleData = ClassStyleData & {\n contentHash: string\n elementKey: string\n joinedPropPath: string\n onBoxModelChange?: (boxModel: BoxDisplayModel | null) => void\n}\n\nexport type OnControlledStyleDataWrite = ({\n className,\n currentData,\n initialData,\n}: {\n className: string\n currentData: ControlledStyleData\n initialData: ControlledStyleData\n}) => void\n\nexport type CssResetData = {\n css: string\n contentHash: string\n\n // This array type is to accommodate our use of `normalize` from `polished`\n cssObjects: Array<CSSObject>\n}\n\nexport type KeyframesData = {\n keyframesName: string\n css: string\n}\n\nexport type BaseStylesData = {\n css: string\n contentHash: string\n cssObject: CSSObject\n}\n"],"mappings":"AAQO,MAAM,2BAA2B;AAAA,EACtC,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AACR;","names":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { murmur3 } from "murmurhash-js";
|
|
2
|
+
import { DEFAULT_CSS_CLASS_NAME_PREFIX, DEFAULT_CSS_PRECEDENCE } from "./constants";
|
|
3
|
+
import { StylesRegistry } from "./styles-registry";
|
|
4
|
+
function generateClassName({
|
|
5
|
+
data,
|
|
6
|
+
classNamePrefix
|
|
7
|
+
}) {
|
|
8
|
+
const prefix = classNamePrefix ?? DEFAULT_CSS_CLASS_NAME_PREFIX;
|
|
9
|
+
return `${prefix}-${murmur3(data).toString(36)}`;
|
|
10
|
+
}
|
|
11
|
+
function createMakeswiftStylesRegistry() {
|
|
12
|
+
return new StylesRegistry();
|
|
13
|
+
}
|
|
14
|
+
function styleTagHtml({ href, precedence, css }) {
|
|
15
|
+
return `<style data-href="${href}" data-precedence="${precedence ?? DEFAULT_CSS_PRECEDENCE}">${css}</style>`;
|
|
16
|
+
}
|
|
17
|
+
function getControlledStylePrecedence(styleData) {
|
|
18
|
+
return styleData.className;
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
createMakeswiftStylesRegistry,
|
|
22
|
+
generateClassName,
|
|
23
|
+
getControlledStylePrecedence,
|
|
24
|
+
styleTagHtml
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/css-runtime/utils.ts"],"sourcesContent":["import { murmur3 } from 'murmurhash-js'\nimport { DEFAULT_CSS_CLASS_NAME_PREFIX, DEFAULT_CSS_PRECEDENCE } from './constants'\nimport { StylesRegistry } from './styles-registry'\nimport { MakeswiftStyle } from './components/makeswift-style'\nimport { ComponentProps } from 'react'\nimport { ControlledStyleData } from './types'\n\nexport function generateClassName({\n data,\n classNamePrefix,\n}: {\n data: string\n classNamePrefix?: string\n}): string {\n const prefix = classNamePrefix ?? DEFAULT_CSS_CLASS_NAME_PREFIX\n return `${prefix}-${murmur3(data).toString(36)}`\n}\n\nexport function createMakeswiftStylesRegistry(): StylesRegistry {\n return new StylesRegistry()\n}\n\n/**\n * Creates an html string of a style element in the format that React's hoisting mechanism\n * would create.\n *\n * If that format is not matched, then client-side React will not recognize\n * the `<style>` elements derived from the string returned below, and will hoist new\n * (duplicate) `<style>` elements during hydration.\n */\nexport function styleTagHtml({ href, precedence, css }: ComponentProps<typeof MakeswiftStyle>) {\n return `<style data-href=\"${href}\" data-precedence=\"${precedence ?? DEFAULT_CSS_PRECEDENCE}\">${css}</style>`\n}\n\nexport function getControlledStylePrecedence(styleData: ControlledStyleData): string {\n return styleData.className\n}\n"],"mappings":"AAAA,SAAS,eAAe;AACxB,SAAS,+BAA+B,8BAA8B;AACtE,SAAS,sBAAsB;AAKxB,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AACF,GAGW;AACT,QAAM,SAAS,mBAAmB;AAClC,SAAO,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,SAAS,EAAE,CAAC;AAChD;AAEO,SAAS,gCAAgD;AAC9D,SAAO,IAAI,eAAe;AAC5B;AAUO,SAAS,aAAa,EAAE,MAAM,YAAY,IAAI,GAA0C;AAC7F,SAAO,qBAAqB,IAAI,sBAAsB,cAAc,sBAAsB,KAAK,GAAG;AACpG;AAEO,SAAS,6BAA6B,WAAwC;AACnF,SAAO,UAAU;AACnB;","names":[]}
|
|
@@ -4,14 +4,16 @@ import {
|
|
|
4
4
|
} from "@makeswift/controls";
|
|
5
5
|
import { useResourceResolver } from "./use-resource-resolver";
|
|
6
6
|
import { propErrorHandlingProxy } from "../utils/prop-error-handling-proxy";
|
|
7
|
+
import { useBreakpoints } from "./use-breakpoints";
|
|
7
8
|
import { useResolvableRecord } from "./use-resolvable-record";
|
|
8
9
|
function useResolvedProps({
|
|
9
10
|
elementKey,
|
|
10
11
|
propDefs,
|
|
11
12
|
propData,
|
|
12
13
|
controlInstances,
|
|
13
|
-
|
|
14
|
+
getStylesheet
|
|
14
15
|
}) {
|
|
16
|
+
const breakpoints = useBreakpoints();
|
|
15
17
|
const resourceResolver = useResourceResolver();
|
|
16
18
|
const cache = useRef({}).current;
|
|
17
19
|
const resolveProp = useCallback(
|
|
@@ -21,16 +23,16 @@ function useResolvedProps({
|
|
|
21
23
|
if (cache[propName] != null && data === cache[propName].data && control === cache[propName].control) {
|
|
22
24
|
return cache[propName].resolvedValue;
|
|
23
25
|
}
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
);
|
|
26
|
+
const stylesheet = getStylesheet({
|
|
27
|
+
breakpointsData: breakpoints,
|
|
28
|
+
elementKey,
|
|
29
|
+
propPathComponents: [propName]
|
|
30
|
+
});
|
|
31
|
+
const resolvedValue = def.resolveValue(data, resourceResolver, stylesheet, control);
|
|
30
32
|
cache[propName] = { data, control, resolvedValue };
|
|
31
33
|
return resolvedValue;
|
|
32
34
|
},
|
|
33
|
-
[propData, cache, resourceResolver, controlInstances,
|
|
35
|
+
[propData, cache, resourceResolver, controlInstances, breakpoints, elementKey, getStylesheet]
|
|
34
36
|
);
|
|
35
37
|
const resolvables = useMemo(
|
|
36
38
|
() => mapValues(propDefs, (def, propName) => {
|
|
@@ -51,7 +53,6 @@ function useResolvedProps({
|
|
|
51
53
|
});
|
|
52
54
|
}, [props, elementKey]);
|
|
53
55
|
const resolvedProps = useSyncExternalStore(props.subscribe, props.readStable, props.readStable);
|
|
54
|
-
stylesheetFactory.useDefinedStyles();
|
|
55
56
|
return resolvedProps;
|
|
56
57
|
}
|
|
57
58
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resolved-props.ts"],"sourcesContent":["import { useMemo, useEffect, useRef, useSyncExternalStore, useCallback } from 'react'\nimport {\n ControlDefinition,\n ControlInstance,\n mapValues,\n type Data,\n type Resolvable,\n} from '@makeswift/controls'\n\nimport { useResourceResolver } from './use-resource-resolver'\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resolved-props.ts"],"sourcesContent":["import { useMemo, useEffect, useRef, useSyncExternalStore, useCallback } from 'react'\nimport {\n ControlDefinition,\n ControlInstance,\n mapValues,\n type Data,\n type Resolvable,\n} from '@makeswift/controls'\n\nimport { useResourceResolver } from './use-resource-resolver'\n\nimport { propErrorHandlingProxy } from '../utils/prop-error-handling-proxy'\nimport { useBreakpoints } from './use-breakpoints'\n\nimport { useResolvableRecord } from './use-resolvable-record'\nimport { GetStylesheet } from '../css-runtime/types'\n\ntype CacheItem = {\n data: Data\n control: ControlInstance | undefined\n resolvedValue: Resolvable<unknown>\n}\n\n/**\n * Client-side prop resolution. See `resolveProps` for server-side counterpart.\n */\nexport function useResolvedProps({\n elementKey,\n propDefs,\n propData,\n controlInstances,\n getStylesheet,\n}: {\n elementKey: string\n propDefs: Record<string, ControlDefinition>\n propData: Record<string, Data>\n controlInstances: Record<string, ControlInstance> | null\n getStylesheet: GetStylesheet\n}): Record<string, unknown> {\n const breakpoints = useBreakpoints()\n const resourceResolver = useResourceResolver()\n\n const cache = useRef<Record<string, CacheItem>>({}).current\n const resolveProp = useCallback(\n (def: ControlDefinition, propName: string) => {\n const data = propData[propName]\n const control = controlInstances?.[propName]\n\n if (\n cache[propName] != null &&\n data === cache[propName].data &&\n control === cache[propName].control\n ) {\n return cache[propName].resolvedValue\n }\n\n const stylesheet = getStylesheet({\n breakpointsData: breakpoints,\n elementKey,\n propPathComponents: [propName],\n })\n\n const resolvedValue = def.resolveValue(data, resourceResolver, stylesheet, control)\n\n cache[propName] = { data, control, resolvedValue }\n return resolvedValue\n },\n [propData, cache, resourceResolver, controlInstances, breakpoints, elementKey, getStylesheet],\n )\n\n const resolvables = useMemo<Record<string, Resolvable<unknown>>>(\n () =>\n mapValues(propDefs, (def, propName) => {\n const defaultValue = (def.config as any)?.defaultValue\n return propErrorHandlingProxy(resolveProp(def, propName), defaultValue, error => {\n console.warn(\n `Error reading value for prop \"${propName}\" of element ${elementKey}, falling back to \\`${defaultValue}\\`.`,\n { control: def, error },\n )\n })\n }),\n [propDefs, resolveProp, elementKey],\n )\n\n const props = useResolvableRecord(resolvables)\n\n // no need to call `triggerResolve` on the server, all the resources should already be in\n // the host API client's cache (populated from the snapshot's cache)\n useEffect(() => {\n props.triggerResolve().catch(err => {\n console.log(`Error while resolving props for element ${elementKey}`, err)\n })\n }, [props, elementKey])\n\n const resolvedProps = useSyncExternalStore(props.subscribe, props.readStable, props.readStable)\n\n return resolvedProps\n}\n"],"mappings":"AAAA,SAAS,SAAS,WAAW,QAAQ,sBAAsB,mBAAmB;AAC9E;AAAA,EAGE;AAAA,OAGK;AAEP,SAAS,2BAA2B;AAEpC,SAAS,8BAA8B;AACvC,SAAS,sBAAsB;AAE/B,SAAS,2BAA2B;AAY7B,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAM4B;AAC1B,QAAM,cAAc,eAAe;AACnC,QAAM,mBAAmB,oBAAoB;AAE7C,QAAM,QAAQ,OAAkC,CAAC,CAAC,EAAE;AACpD,QAAM,cAAc;AAAA,IAClB,CAAC,KAAwB,aAAqB;AAC5C,YAAM,OAAO,SAAS,QAAQ;AAC9B,YAAM,UAAU,mBAAmB,QAAQ;AAE3C,UACE,MAAM,QAAQ,KAAK,QACnB,SAAS,MAAM,QAAQ,EAAE,QACzB,YAAY,MAAM,QAAQ,EAAE,SAC5B;AACA,eAAO,MAAM,QAAQ,EAAE;AAAA,MACzB;AAEA,YAAM,aAAa,cAAc;AAAA,QAC/B,iBAAiB;AAAA,QACjB;AAAA,QACA,oBAAoB,CAAC,QAAQ;AAAA,MAC/B,CAAC;AAED,YAAM,gBAAgB,IAAI,aAAa,MAAM,kBAAkB,YAAY,OAAO;AAElF,YAAM,QAAQ,IAAI,EAAE,MAAM,SAAS,cAAc;AACjD,aAAO;AAAA,IACT;AAAA,IACA,CAAC,UAAU,OAAO,kBAAkB,kBAAkB,aAAa,YAAY,aAAa;AAAA,EAC9F;AAEA,QAAM,cAAc;AAAA,IAClB,MACE,UAAU,UAAU,CAAC,KAAK,aAAa;AACrC,YAAM,eAAgB,IAAI,QAAgB;AAC1C,aAAO,uBAAuB,YAAY,KAAK,QAAQ,GAAG,cAAc,WAAS;AAC/E,gBAAQ;AAAA,UACN,iCAAiC,QAAQ,gBAAgB,UAAU,uBAAuB,YAAY;AAAA,UACtG,EAAE,SAAS,KAAK,MAAM;AAAA,QACxB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,IACH,CAAC,UAAU,aAAa,UAAU;AAAA,EACpC;AAEA,QAAM,QAAQ,oBAAoB,WAAW;AAI7C,YAAU,MAAM;AACd,UAAM,eAAe,EAAE,MAAM,SAAO;AAClC,cAAQ,IAAI,2CAA2C,UAAU,IAAI,GAAG;AAAA,IAC1E,CAAC;AAAA,EACH,GAAG,CAAC,OAAO,UAAU,CAAC;AAEtB,QAAM,gBAAgB,qBAAqB,MAAM,WAAW,MAAM,YAAY,MAAM,UAAU;AAE9F,SAAO;AACT;","names":[]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { useMemo, useEffect, useSyncExternalStore } from "react";
|
|
2
2
|
import { useResourceResolver } from "./use-resource-resolver";
|
|
3
3
|
import { propErrorHandlingProxy } from "../utils/prop-error-handling-proxy";
|
|
4
|
-
function useResolvedValue(data, resolver, defaultValue) {
|
|
4
|
+
function useResolvedValue(data, resolver, defaultValue, extraDeps = []) {
|
|
5
5
|
const resourceResolver = useResourceResolver();
|
|
6
6
|
const resolvable = useMemo(() => {
|
|
7
7
|
return propErrorHandlingProxy(resolver(data, resourceResolver), defaultValue, (error) => {
|
|
8
8
|
console.warn(`Error resolving data, falling back to \`${defaultValue}\`.`, { error, data });
|
|
9
9
|
});
|
|
10
|
-
}, [data, resourceResolver, defaultValue]);
|
|
10
|
+
}, [data, resourceResolver, defaultValue, ...extraDeps]);
|
|
11
11
|
useEffect(() => {
|
|
12
12
|
resolvable.triggerResolve();
|
|
13
13
|
}, [resolvable]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resolved-value.ts"],"sourcesContent":["import { useMemo, useEffect, useSyncExternalStore } from 'react'\nimport { Resolvable, ResourceResolver } from '@makeswift/controls'\n\nimport { useResourceResolver } from './use-resource-resolver'\nimport { propErrorHandlingProxy } from '../utils/prop-error-handling-proxy'\n\nexport function useResolvedValue<D, T>(\n data: D,\n resolver: (data: D, resourceResolver: ResourceResolver) => Resolvable<T>,\n defaultValue?: T,\n): T | undefined {\n const resourceResolver = useResourceResolver()\n const resolvable = useMemo(() => {\n return propErrorHandlingProxy(resolver(data, resourceResolver), defaultValue, error => {\n console.warn(`Error resolving data, falling back to \\`${defaultValue}\\`.`, { error, data })\n })\n }, [data, resourceResolver, defaultValue])\n\n useEffect(() => {\n resolvable.triggerResolve()\n }, [resolvable])\n\n return useSyncExternalStore(resolvable.subscribe, resolvable.readStable, resolvable.readStable)\n}\n"],"mappings":"AAAA,SAAS,SAAS,WAAW,4BAA4B;AAGzD,SAAS,2BAA2B;AACpC,SAAS,8BAA8B;AAEhC,SAAS,iBACd,MACA,UACA,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resolved-value.ts"],"sourcesContent":["import { useMemo, useEffect, useSyncExternalStore } from 'react'\nimport { Resolvable, ResourceResolver } from '@makeswift/controls'\n\nimport { useResourceResolver } from './use-resource-resolver'\nimport { propErrorHandlingProxy } from '../utils/prop-error-handling-proxy'\n\nexport function useResolvedValue<D, T>(\n data: D,\n resolver: (data: D, resourceResolver: ResourceResolver) => Resolvable<T>,\n defaultValue?: T,\n extraDeps: readonly unknown[] = [],\n): T | undefined {\n const resourceResolver = useResourceResolver()\n const resolvable = useMemo(() => {\n return propErrorHandlingProxy(resolver(data, resourceResolver), defaultValue, error => {\n console.warn(`Error resolving data, falling back to \\`${defaultValue}\\`.`, { error, data })\n })\n }, [data, resourceResolver, defaultValue, ...extraDeps])\n\n useEffect(() => {\n resolvable.triggerResolve()\n }, [resolvable])\n\n return useSyncExternalStore(resolvable.subscribe, resolvable.readStable, resolvable.readStable)\n}\n"],"mappings":"AAAA,SAAS,SAAS,WAAW,4BAA4B;AAGzD,SAAS,2BAA2B;AACpC,SAAS,8BAA8B;AAEhC,SAAS,iBACd,MACA,UACA,cACA,YAAgC,CAAC,GAClB;AACf,QAAM,mBAAmB,oBAAoB;AAC7C,QAAM,aAAa,QAAQ,MAAM;AAC/B,WAAO,uBAAuB,SAAS,MAAM,gBAAgB,GAAG,cAAc,WAAS;AACrF,cAAQ,KAAK,2CAA2C,YAAY,OAAO,EAAE,OAAO,KAAK,CAAC;AAAA,IAC5F,CAAC;AAAA,EACH,GAAG,CAAC,MAAM,kBAAkB,cAAc,GAAG,SAAS,CAAC;AAEvD,YAAU,MAAM;AACd,eAAW,eAAe;AAAA,EAC5B,GAAG,CAAC,UAAU,CAAC;AAEf,SAAO,qBAAqB,WAAW,WAAW,WAAW,YAAY,WAAW,UAAU;AAChG;","names":[]}
|