marko 5.37.2 → 6.0.0-3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/attr-tag.d.ts +8 -0
- package/dist/common/compat-meta.d.ts +2 -0
- package/dist/common/for.d.ts +5 -0
- package/dist/common/helpers.d.ts +7 -0
- package/dist/common/meta.d.ts +2 -0
- package/dist/common/types.d.ts +105 -0
- package/dist/debug/dom.js +2112 -0
- package/dist/debug/dom.mjs +2089 -0
- package/dist/debug/html.js +2740 -0
- package/dist/debug/html.mjs +2663 -0
- package/dist/dom/abort-signal.d.ts +3 -0
- package/dist/dom/compat.d.ts +20 -0
- package/dist/dom/control-flow.d.ts +14 -0
- package/dist/dom/controllable.d.ts +12 -0
- package/dist/dom/dom.d.ts +19 -0
- package/dist/dom/event.d.ts +4 -0
- package/dist/dom/parse-html.d.ts +5 -0
- package/dist/dom/queue.d.ts +10 -0
- package/dist/dom/reconcile.d.ts +2 -0
- package/dist/dom/renderer.d.ts +21 -0
- package/dist/dom/resolve-cursor-position.d.ts +1 -0
- package/dist/dom/resume.d.ts +9 -0
- package/dist/dom/schedule.d.ts +2 -0
- package/dist/dom/scope.d.ts +7 -0
- package/dist/dom/signals.d.ts +39 -0
- package/dist/dom/template.d.ts +3 -0
- package/dist/dom/walker.d.ts +4 -0
- package/dist/dom.d.ts +15 -0
- package/dist/dom.js +1370 -0
- package/dist/dom.mjs +1350 -0
- package/dist/html/attrs.d.ts +14 -0
- package/dist/html/compat.d.ts +14 -0
- package/dist/html/content.d.ts +5 -0
- package/dist/html/dynamic-tag.d.ts +12 -0
- package/dist/html/for.d.ts +4 -0
- package/dist/html/inlined-runtimes.d.ts +2 -0
- package/dist/html/serializer.d.ts +14 -0
- package/dist/html/template.d.ts +3 -0
- package/dist/html/writer.d.ts +114 -0
- package/dist/html.d.ts +9 -0
- package/dist/html.js +1818 -0
- package/dist/html.mjs +1744 -0
- package/dist/translator/core/attrs.d.ts +3 -0
- package/dist/translator/core/client.d.ts +14 -0
- package/dist/translator/core/const.d.ts +3 -0
- package/dist/translator/core/debug.d.ts +3 -0
- package/dist/translator/core/define.d.ts +3 -0
- package/dist/translator/core/effect.d.ts +3 -0
- package/dist/translator/core/export.d.ts +3 -0
- package/dist/translator/core/for.d.ts +67 -0
- package/dist/translator/core/html-comment.d.ts +12 -0
- package/dist/translator/core/html-script.d.ts +9 -0
- package/dist/translator/core/html-style.d.ts +9 -0
- package/dist/translator/core/id.d.ts +3 -0
- package/dist/translator/core/if.d.ts +53 -0
- package/dist/translator/core/import.d.ts +3 -0
- package/dist/translator/core/index.d.ts +152 -0
- package/dist/translator/core/let.d.ts +8 -0
- package/dist/translator/core/lifecycle.d.ts +10 -0
- package/dist/translator/core/log.d.ts +3 -0
- package/dist/translator/core/return.d.ts +6 -0
- package/dist/translator/core/script.d.ts +3 -0
- package/dist/translator/core/server.d.ts +14 -0
- package/dist/translator/core/static.d.ts +14 -0
- package/dist/translator/core/style.d.ts +3 -0
- package/dist/translator/index.d.ts +201 -0
- package/dist/translator/index.js +9143 -489
- package/dist/translator/util/assert.d.ts +3 -0
- package/dist/translator/util/binding-has-downstream-expressions.d.ts +2 -0
- package/dist/translator/util/entry-builder.d.ts +19 -0
- package/dist/translator/util/evaluate.d.ts +11 -0
- package/dist/translator/util/for-each-identifier.d.ts +2 -0
- package/dist/translator/util/get-defined-binding-expression.d.ts +3 -0
- package/dist/translator/util/get-known-attr-values.d.ts +2 -0
- package/dist/translator/util/get-parent-tag.d.ts +2 -0
- package/dist/translator/util/get-root.d.ts +7 -0
- package/dist/translator/util/get-tag-name.d.ts +2 -0
- package/dist/translator/util/is-core-tag.d.ts +10 -0
- package/dist/translator/util/is-stateful.d.ts +3 -0
- package/dist/translator/util/is-static.d.ts +2 -0
- package/dist/translator/util/marko-config.d.ts +4 -0
- package/dist/translator/util/nested-attribute-tags.d.ts +17 -0
- package/dist/translator/util/normalize-string-expression.d.ts +3 -0
- package/dist/translator/util/optional.d.ts +20 -0
- package/dist/translator/util/plugin-hooks.d.ts +4 -0
- package/dist/translator/util/references.d.ts +84 -0
- package/dist/translator/util/runtime-info.d.ts +5 -0
- package/dist/translator/util/runtime.d.ts +15 -0
- package/dist/translator/util/scope-read.d.ts +6 -0
- package/dist/translator/util/sections.d.ts +51 -0
- package/dist/translator/util/signals.d.ts +61 -0
- package/dist/translator/util/simplify-fn.d.ts +5 -0
- package/dist/translator/util/state.d.ts +3 -0
- package/dist/translator/util/tag-name-type.d.ts +16 -0
- package/dist/translator/util/to-first-expression-or-block.d.ts +3 -0
- package/dist/translator/util/to-first-statement-or-block.d.ts +2 -0
- package/dist/translator/util/to-property-name.d.ts +7 -0
- package/dist/translator/util/translate-attrs.d.ts +12 -0
- package/dist/translator/util/translate-var.d.ts +2 -0
- package/dist/translator/util/traverse.d.ts +9 -0
- package/dist/translator/util/visitors.d.ts +11 -0
- package/dist/translator/util/walks.d.ts +15 -0
- package/dist/translator/util/with-previous-location.d.ts +2 -0
- package/dist/translator/util/writer.d.ts +13 -0
- package/dist/translator/visitors/cdata.d.ts +7 -0
- package/dist/translator/visitors/comment.d.ts +7 -0
- package/dist/translator/visitors/declaration.d.ts +7 -0
- package/dist/translator/visitors/document-type.d.ts +7 -0
- package/dist/translator/visitors/function.d.ts +19 -0
- package/dist/translator/visitors/import-declaration.d.ts +8 -0
- package/dist/translator/visitors/placeholder.d.ts +22 -0
- package/dist/translator/visitors/program/dom.d.ts +7 -0
- package/dist/translator/visitors/program/html.d.ts +8 -0
- package/dist/translator/visitors/program/index.d.ts +39 -0
- package/dist/translator/visitors/referenced-identifier.d.ts +7 -0
- package/dist/translator/visitors/scriptlet.d.ts +8 -0
- package/dist/translator/visitors/tag/attribute-tag.d.ts +11 -0
- package/dist/translator/visitors/tag/custom-tag.d.ts +19 -0
- package/dist/translator/visitors/tag/dynamic-tag.d.ts +18 -0
- package/dist/translator/visitors/tag/index.d.ts +15 -0
- package/dist/translator/visitors/tag/native-tag.d.ts +25 -0
- package/dist/translator/visitors/text.d.ts +7 -0
- package/package.json +32 -74
- package/README.md +0 -161
- package/bin/markoc +0 -2
- package/bin/markoc.js +0 -441
- package/browser-refresh.js +0 -5
- package/compiler-browser.marko +0 -15
- package/compiler.js +0 -7
- package/components-browser.marko +0 -15
- package/components.js +0 -7
- package/dist/build.json +0 -3
- package/dist/compiler/config.js +0 -45
- package/dist/compiler/index.js +0 -164
- package/dist/compiler/modules.js +0 -5
- package/dist/core-tags/components/init-components-tag.js +0 -54
- package/dist/core-tags/components/preferred-script-location-tag.js +0 -25
- package/dist/core-tags/components/preserve-tag.js +0 -1
- package/dist/core-tags/core/__flush_here_and_after__.js +0 -44
- package/dist/core-tags/core/await/AsyncValue.js +0 -121
- package/dist/core-tags/core/await/client-reorder-runtime.js +0 -51
- package/dist/core-tags/core/await/index.d.marko +0 -10
- package/dist/core-tags/core/await/renderer.js +0 -249
- package/dist/core-tags/core/await/reorderer-renderer.js +0 -156
- package/dist/index.js +0 -4
- package/dist/node-require/browser-refresh.js +0 -18
- package/dist/node-require/hot-reload.js +0 -45
- package/dist/node-require/index.js +0 -103
- package/dist/node_modules/@internal/components-beginComponent/index-browser.js +0 -23
- package/dist/node_modules/@internal/components-beginComponent/index.js +0 -84
- package/dist/node_modules/@internal/components-beginComponent/package.json +0 -11
- package/dist/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -335
- package/dist/node_modules/@internal/components-define-widget-legacy/index.js +0 -18
- package/dist/node_modules/@internal/components-define-widget-legacy/package.json +0 -11
- package/dist/node_modules/@internal/components-endComponent/index-browser.js +0 -5
- package/dist/node_modules/@internal/components-endComponent/index.js +0 -11
- package/dist/node_modules/@internal/components-endComponent/package.json +0 -11
- package/dist/node_modules/@internal/components-entry/index-browser.js +0 -11
- package/dist/node_modules/@internal/components-entry/index.js +0 -301
- package/dist/node_modules/@internal/components-entry/package.json +0 -11
- package/dist/node_modules/@internal/components-entry-legacy/index-browser.js +0 -76
- package/dist/node_modules/@internal/components-entry-legacy/index.js +0 -16
- package/dist/node_modules/@internal/components-entry-legacy/package.json +0 -11
- package/dist/node_modules/@internal/components-registry/index-browser.js +0 -586
- package/dist/node_modules/@internal/components-registry/index.js +0 -44
- package/dist/node_modules/@internal/components-registry/package.json +0 -11
- package/dist/node_modules/@internal/components-util/index-browser.js +0 -152
- package/dist/node_modules/@internal/components-util/index.js +0 -75
- package/dist/node_modules/@internal/components-util/package.json +0 -11
- package/dist/node_modules/@internal/create-readable/index-browser.js +0 -30
- package/dist/node_modules/@internal/create-readable/index.js +0 -57
- package/dist/node_modules/@internal/create-readable/package.json +0 -11
- package/dist/node_modules/@internal/loader/fallback-node.js +0 -89
- package/dist/node_modules/@internal/loader/index-browser.js +0 -2
- package/dist/node_modules/@internal/loader/index.js +0 -23
- package/dist/node_modules/@internal/loader/package.json +0 -10
- package/dist/node_modules/@internal/preserve-tag/index-browser.js +0 -46
- package/dist/node_modules/@internal/preserve-tag/index.js +0 -34
- package/dist/node_modules/@internal/preserve-tag/package.json +0 -11
- package/dist/node_modules/@internal/require/index-browser.js +0 -15
- package/dist/node_modules/@internal/require/index-legacy-browser.js +0 -20
- package/dist/node_modules/@internal/require/index-webpack.js +0 -16
- package/dist/node_modules/@internal/require/index.js +0 -15
- package/dist/node_modules/@internal/require/package.json +0 -11
- package/dist/node_modules/@internal/set-immediate/index-browser.js +0 -19
- package/dist/node_modules/@internal/set-immediate/index-worker.js +0 -31
- package/dist/node_modules/@internal/set-immediate/index.js +0 -3
- package/dist/node_modules/@internal/set-immediate/package.json +0 -11
- package/dist/node_modules/@internal/set-immediate/queueMicrotask.js +0 -8
- package/dist/runtime/RenderResult.js +0 -112
- package/dist/runtime/components/Component.js +0 -663
- package/dist/runtime/components/ComponentDef.js +0 -169
- package/dist/runtime/components/ComponentsContext.js +0 -59
- package/dist/runtime/components/GlobalComponentsContext.js +0 -10
- package/dist/runtime/components/KeySequence.js +0 -16
- package/dist/runtime/components/ServerComponent.js +0 -73
- package/dist/runtime/components/State.js +0 -101
- package/dist/runtime/components/attach-detach.js +0 -60
- package/dist/runtime/components/defineComponent.js +0 -60
- package/dist/runtime/components/dom-data.js +0 -8
- package/dist/runtime/components/event-delegation.js +0 -144
- package/dist/runtime/components/index.js +0 -1
- package/dist/runtime/components/legacy/browser.json +0 -9
- package/dist/runtime/components/legacy/defineComponent-legacy.js +0 -27
- package/dist/runtime/components/legacy/defineRenderer-legacy.js +0 -171
- package/dist/runtime/components/legacy/defineWidget-legacy.js +0 -1
- package/dist/runtime/components/legacy/dependencies/html.js +0 -3
- package/dist/runtime/components/legacy/dependencies/index.js +0 -177
- package/dist/runtime/components/legacy/dependencies/vdom.js +0 -3
- package/dist/runtime/components/legacy/index.js +0 -1
- package/dist/runtime/components/legacy/jquery.js +0 -52
- package/dist/runtime/components/legacy/ready.js +0 -152
- package/dist/runtime/components/legacy/renderer-legacy.js +0 -231
- package/dist/runtime/components/registry.js +0 -1
- package/dist/runtime/components/renderer.js +0 -236
- package/dist/runtime/components/update-manager.js +0 -94
- package/dist/runtime/createOut.js +0 -13
- package/dist/runtime/dom-insert.js +0 -77
- package/dist/runtime/events.js +0 -2
- package/dist/runtime/helpers/_change-case.js +0 -45
- package/dist/runtime/helpers/assign.js +0 -21
- package/dist/runtime/helpers/attr-tag.js +0 -43
- package/dist/runtime/helpers/class-value.js +0 -30
- package/dist/runtime/helpers/dynamic-tag.js +0 -181
- package/dist/runtime/helpers/empty-component.js +0 -1
- package/dist/runtime/helpers/merge.js +0 -13
- package/dist/runtime/helpers/of-fallback.js +0 -4
- package/dist/runtime/helpers/render-tag.js +0 -20
- package/dist/runtime/helpers/serialize-noop.js +0 -5
- package/dist/runtime/helpers/style-value.js +0 -45
- package/dist/runtime/helpers/tags-compat/dom-debug.js +0 -1
- package/dist/runtime/helpers/tags-compat/dom-debug.mjs +0 -4
- package/dist/runtime/helpers/tags-compat/dom.js +0 -1
- package/dist/runtime/helpers/tags-compat/dom.mjs +0 -4
- package/dist/runtime/helpers/tags-compat/html-debug.js +0 -3
- package/dist/runtime/helpers/tags-compat/html-debug.mjs +0 -4
- package/dist/runtime/helpers/tags-compat/html.js +0 -3
- package/dist/runtime/helpers/tags-compat/html.mjs +0 -4
- package/dist/runtime/helpers/tags-compat/runtime-dom.js +0 -239
- package/dist/runtime/helpers/tags-compat/runtime-html.js +0 -136
- package/dist/runtime/helpers/to-string.js +0 -5
- package/dist/runtime/html/AsyncStream.js +0 -805
- package/dist/runtime/html/BufferedWriter.js +0 -52
- package/dist/runtime/html/StringWriter.js +0 -73
- package/dist/runtime/html/helpers/_dynamic-attr.js +0 -35
- package/dist/runtime/html/helpers/attr.js +0 -80
- package/dist/runtime/html/helpers/attrs.js +0 -26
- package/dist/runtime/html/helpers/class-attr.js +0 -8
- package/dist/runtime/html/helpers/data-marko.js +0 -36
- package/dist/runtime/html/helpers/escape-quotes.js +0 -35
- package/dist/runtime/html/helpers/escape-script-placeholder.js +0 -24
- package/dist/runtime/html/helpers/escape-style-placeholder.js +0 -22
- package/dist/runtime/html/helpers/escape-xml.js +0 -21
- package/dist/runtime/html/helpers/merge-attrs.js +0 -55
- package/dist/runtime/html/helpers/props-script.js +0 -32
- package/dist/runtime/html/helpers/style-attr.js +0 -8
- package/dist/runtime/html/hot-reload.js +0 -26
- package/dist/runtime/html/index.js +0 -33
- package/dist/runtime/html/marko-namespace.js +0 -3
- package/dist/runtime/renderable.js +0 -194
- package/dist/runtime/vdom/AsyncVDOMBuilder.js +0 -456
- package/dist/runtime/vdom/VComment.js +0 -24
- package/dist/runtime/vdom/VComponent.js +0 -17
- package/dist/runtime/vdom/VDocumentFragment.js +0 -34
- package/dist/runtime/vdom/VElement.js +0 -375
- package/dist/runtime/vdom/VFragment.js +0 -26
- package/dist/runtime/vdom/VNode.js +0 -100
- package/dist/runtime/vdom/VText.js +0 -25
- package/dist/runtime/vdom/helpers/attrs.js +0 -62
- package/dist/runtime/vdom/helpers/const-element.js +0 -25
- package/dist/runtime/vdom/helpers/merge-attrs.js +0 -16
- package/dist/runtime/vdom/hot-reload.js +0 -115
- package/dist/runtime/vdom/index.js +0 -30
- package/dist/runtime/vdom/is-text-only.js +0 -10
- package/dist/runtime/vdom/marko-namespace.js +0 -3
- package/dist/runtime/vdom/morphdom/fragment.js +0 -95
- package/dist/runtime/vdom/morphdom/helpers.js +0 -42
- package/dist/runtime/vdom/morphdom/index.js +0 -741
- package/dist/runtime/vdom/parse-html.js +0 -18
- package/dist/runtime/vdom/vdom.js +0 -88
- package/dist/taglib/index.js +0 -51
- package/dist/translator/cdata/index.js +0 -15
- package/dist/translator/cdata/index[html].js +0 -15
- package/dist/translator/cdata/index[vdom].js +0 -12
- package/dist/translator/class.js +0 -65
- package/dist/translator/comment/index.js +0 -15
- package/dist/translator/comment/index[html].js +0 -17
- package/dist/translator/comment/index[vdom].js +0 -3
- package/dist/translator/declaration/index.js +0 -15
- package/dist/translator/declaration/index[html].js +0 -12
- package/dist/translator/declaration/index[vdom].js +0 -3
- package/dist/translator/document-type/index.js +0 -15
- package/dist/translator/document-type/index[html].js +0 -12
- package/dist/translator/document-type/index[vdom].js +0 -3
- package/dist/translator/placeholder/index.js +0 -15
- package/dist/translator/placeholder/index[html].js +0 -93
- package/dist/translator/placeholder/index[vdom].js +0 -22
- package/dist/translator/scriptlet.js +0 -4
- package/dist/translator/tag/attribute/directives/class.js +0 -42
- package/dist/translator/tag/attribute/directives/index.js +0 -15
- package/dist/translator/tag/attribute/directives/no-update-body-if.js +0 -15
- package/dist/translator/tag/attribute/directives/no-update-body.js +0 -10
- package/dist/translator/tag/attribute/directives/no-update-if.js +0 -12
- package/dist/translator/tag/attribute/directives/no-update.js +0 -48
- package/dist/translator/tag/attribute/directives/style.js +0 -42
- package/dist/translator/tag/attribute/index.js +0 -150
- package/dist/translator/tag/attribute/modifiers/index.js +0 -7
- package/dist/translator/tag/attribute/modifiers/no-update.js +0 -14
- package/dist/translator/tag/attribute/modifiers/scoped.js +0 -23
- package/dist/translator/tag/attribute-tag.js +0 -149
- package/dist/translator/tag/custom-tag.js +0 -146
- package/dist/translator/tag/dynamic-tag.js +0 -74
- package/dist/translator/tag/index.js +0 -287
- package/dist/translator/tag/macro-tag.js +0 -7
- package/dist/translator/tag/native-tag.js +0 -27
- package/dist/translator/tag/native-tag[html]/attributes.js +0 -151
- package/dist/translator/tag/native-tag[html]/index.js +0 -221
- package/dist/translator/tag/native-tag[vdom]/attributes.js +0 -105
- package/dist/translator/tag/native-tag[vdom]/index.js +0 -189
- package/dist/translator/tag/util.js +0 -246
- package/dist/translator/taglib/core/conditional/translate-else-if.js +0 -20
- package/dist/translator/taglib/core/conditional/translate-else.js +0 -20
- package/dist/translator/taglib/core/conditional/translate-if.js +0 -8
- package/dist/translator/taglib/core/conditional/util.js +0 -41
- package/dist/translator/taglib/core/index.js +0 -474
- package/dist/translator/taglib/core/macro/parse.js +0 -17
- package/dist/translator/taglib/core/macro/translate.js +0 -48
- package/dist/translator/taglib/core/parse-class.js +0 -79
- package/dist/translator/taglib/core/parse-export.js +0 -14
- package/dist/translator/taglib/core/parse-import.js +0 -14
- package/dist/translator/taglib/core/parse-module-code.js +0 -18
- package/dist/translator/taglib/core/parse-static.js +0 -18
- package/dist/translator/taglib/core/transform-style.js +0 -66
- package/dist/translator/taglib/core/translate-await.js +0 -41
- package/dist/translator/taglib/core/translate-body.js +0 -17
- package/dist/translator/taglib/core/translate-for.js +0 -156
- package/dist/translator/taglib/core/translate-html-comment.js +0 -52
- package/dist/translator/taglib/core/translate-include-content.js +0 -53
- package/dist/translator/taglib/core/translate-server-only.js +0 -5
- package/dist/translator/taglib/core/translate-while.js +0 -32
- package/dist/translator/taglib/index.js +0 -6
- package/dist/translator/taglib/migrate/all-templates.js +0 -46
- package/dist/translator/taglib/migrate/index.js +0 -5
- package/dist/translator/text/index.js +0 -10
- package/dist/translator/text/index[html].js +0 -12
- package/dist/translator/text/index[vdom].js +0 -20
- package/dist/translator/util/add-dependencies.js +0 -329
- package/dist/translator/util/escape-regexp.js +0 -4
- package/dist/translator/util/get-component-files.js +0 -86
- package/dist/translator/util/html-out-write.js +0 -15
- package/dist/translator/util/key-manager.js +0 -176
- package/dist/translator/util/optimize-html-writes.js +0 -52
- package/dist/translator/util/optimize-vdom-create.js +0 -164
- package/dist/translator/util/plugin-hooks.js +0 -22
- package/dist/translator/util/runtime-flags.js +0 -3
- package/dist/translator/util/vdom-out-write.js +0 -10
- package/dist/translator/util/with-previous-location.js +0 -6
- package/docs/10-awesome-marko-features.md +0 -291
- package/docs/body-content.md +0 -355
- package/docs/class-components.md +0 -1001
- package/docs/cloudflare-workers.md +0 -32
- package/docs/compiler-hooks.png +0 -0
- package/docs/compiler.md +0 -473
- package/docs/component-diagram.afdesign +0 -0
- package/docs/component-diagram.svg +0 -87
- package/docs/concise.md +0 -141
- package/docs/conditionals-and-lists.md +0 -72
- package/docs/core-tags.md +0 -325
- package/docs/custom-tags.md +0 -201
- package/docs/editor-plugins.md +0 -45
- package/docs/events.md +0 -131
- package/docs/express.md +0 -66
- package/docs/fastify.md +0 -65
- package/docs/getting-started.md +0 -95
- package/docs/http.md +0 -34
- package/docs/icons/js.svg +0 -4
- package/docs/icons/marko.svg +0 -1
- package/docs/icons/ts.svg +0 -1
- package/docs/installing.md +0 -51
- package/docs/koa.md +0 -35
- package/docs/lasso.md +0 -196
- package/docs/marko-5-upgrade.md +0 -59
- package/docs/marko-json.md +0 -248
- package/docs/marko-vs-react.md +0 -854
- package/docs/redux.md +0 -61
- package/docs/rendering.md +0 -268
- package/docs/rollup.md +0 -352
- package/docs/state.md +0 -105
- package/docs/structure.json +0 -49
- package/docs/styles.md +0 -29
- package/docs/syntax.md +0 -601
- package/docs/troubleshooting-streaming.md +0 -68
- package/docs/typescript.md +0 -406
- package/docs/vite.md +0 -86
- package/docs/webpack.md +0 -205
- package/docs/why-is-marko-fast.md +0 -239
- package/env.js +0 -7
- package/helpers/README.md +0 -3
- package/helpers/empty.js +0 -4
- package/helpers/notEmpty.js +0 -11
- package/index-browser.marko +0 -15
- package/index.d.ts +0 -375
- package/index.js +0 -7
- package/legacy-components-browser.marko +0 -15
- package/legacy-components.js +0 -7
- package/node-require.js +0 -8
- package/src/build.json +0 -3
- package/src/compiler/config.js +0 -45
- package/src/compiler/index.js +0 -164
- package/src/compiler/modules.js +0 -5
- package/src/core-tags/.eslintrc +0 -5
- package/src/core-tags/components/init-components-tag.js +0 -54
- package/src/core-tags/components/preferred-script-location-tag.js +0 -25
- package/src/core-tags/components/preserve-tag.js +0 -1
- package/src/core-tags/core/__flush_here_and_after__.js +0 -44
- package/src/core-tags/core/await/AsyncValue.js +0 -121
- package/src/core-tags/core/await/client-reorder-runtime.js +0 -51
- package/src/core-tags/core/await/index.d.marko +0 -10
- package/src/core-tags/core/await/renderer.js +0 -249
- package/src/core-tags/core/await/reorderer-renderer.js +0 -156
- package/src/index.js +0 -4
- package/src/node-require/browser-refresh.js +0 -18
- package/src/node-require/hot-reload.js +0 -45
- package/src/node-require/index.js +0 -103
- package/src/node_modules/@internal/components-beginComponent/index-browser.js +0 -23
- package/src/node_modules/@internal/components-beginComponent/index.js +0 -84
- package/src/node_modules/@internal/components-beginComponent/package.json +0 -11
- package/src/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -335
- package/src/node_modules/@internal/components-define-widget-legacy/index.js +0 -18
- package/src/node_modules/@internal/components-define-widget-legacy/package.json +0 -11
- package/src/node_modules/@internal/components-endComponent/index-browser.js +0 -5
- package/src/node_modules/@internal/components-endComponent/index.js +0 -11
- package/src/node_modules/@internal/components-endComponent/package.json +0 -11
- package/src/node_modules/@internal/components-entry/index-browser.js +0 -11
- package/src/node_modules/@internal/components-entry/index.js +0 -301
- package/src/node_modules/@internal/components-entry/package.json +0 -11
- package/src/node_modules/@internal/components-entry-legacy/index-browser.js +0 -76
- package/src/node_modules/@internal/components-entry-legacy/index.js +0 -16
- package/src/node_modules/@internal/components-entry-legacy/package.json +0 -11
- package/src/node_modules/@internal/components-registry/index-browser.js +0 -586
- package/src/node_modules/@internal/components-registry/index.js +0 -44
- package/src/node_modules/@internal/components-registry/package.json +0 -11
- package/src/node_modules/@internal/components-util/index-browser.js +0 -152
- package/src/node_modules/@internal/components-util/index.js +0 -75
- package/src/node_modules/@internal/components-util/package.json +0 -11
- package/src/node_modules/@internal/create-readable/index-browser.js +0 -30
- package/src/node_modules/@internal/create-readable/index.js +0 -57
- package/src/node_modules/@internal/create-readable/package.json +0 -11
- package/src/node_modules/@internal/loader/fallback-node.js +0 -89
- package/src/node_modules/@internal/loader/index-browser.js +0 -2
- package/src/node_modules/@internal/loader/index.js +0 -23
- package/src/node_modules/@internal/loader/package.json +0 -10
- package/src/node_modules/@internal/preserve-tag/index-browser.js +0 -46
- package/src/node_modules/@internal/preserve-tag/index.js +0 -34
- package/src/node_modules/@internal/preserve-tag/package.json +0 -11
- package/src/node_modules/@internal/require/index-browser.js +0 -15
- package/src/node_modules/@internal/require/index-legacy-browser.js +0 -20
- package/src/node_modules/@internal/require/index-webpack.js +0 -16
- package/src/node_modules/@internal/require/index.js +0 -15
- package/src/node_modules/@internal/require/package.json +0 -11
- package/src/node_modules/@internal/set-immediate/index-browser.js +0 -19
- package/src/node_modules/@internal/set-immediate/index-worker.js +0 -31
- package/src/node_modules/@internal/set-immediate/index.js +0 -3
- package/src/node_modules/@internal/set-immediate/package.json +0 -11
- package/src/node_modules/@internal/set-immediate/queueMicrotask.js +0 -8
- package/src/runtime/.eslintrc +0 -5
- package/src/runtime/RenderResult.js +0 -112
- package/src/runtime/components/Component.js +0 -663
- package/src/runtime/components/ComponentDef.js +0 -169
- package/src/runtime/components/ComponentsContext.js +0 -59
- package/src/runtime/components/GlobalComponentsContext.js +0 -10
- package/src/runtime/components/KeySequence.js +0 -16
- package/src/runtime/components/ServerComponent.js +0 -73
- package/src/runtime/components/State.js +0 -101
- package/src/runtime/components/attach-detach.js +0 -60
- package/src/runtime/components/defineComponent.js +0 -60
- package/src/runtime/components/dom-data.js +0 -8
- package/src/runtime/components/event-delegation.js +0 -144
- package/src/runtime/components/index.js +0 -1
- package/src/runtime/components/legacy/browser.json +0 -9
- package/src/runtime/components/legacy/defineComponent-legacy.js +0 -27
- package/src/runtime/components/legacy/defineRenderer-legacy.js +0 -171
- package/src/runtime/components/legacy/defineWidget-legacy.js +0 -1
- package/src/runtime/components/legacy/dependencies/html.js +0 -3
- package/src/runtime/components/legacy/dependencies/index.js +0 -177
- package/src/runtime/components/legacy/dependencies/vdom.js +0 -3
- package/src/runtime/components/legacy/index.js +0 -1
- package/src/runtime/components/legacy/jquery.js +0 -52
- package/src/runtime/components/legacy/ready.js +0 -152
- package/src/runtime/components/legacy/renderer-legacy.js +0 -231
- package/src/runtime/components/registry.js +0 -1
- package/src/runtime/components/renderer.js +0 -236
- package/src/runtime/components/update-manager.js +0 -94
- package/src/runtime/createOut.js +0 -13
- package/src/runtime/dom-insert.js +0 -77
- package/src/runtime/events.js +0 -2
- package/src/runtime/helpers/_change-case.js +0 -45
- package/src/runtime/helpers/assign.js +0 -21
- package/src/runtime/helpers/attr-tag.js +0 -43
- package/src/runtime/helpers/class-value.js +0 -30
- package/src/runtime/helpers/dynamic-tag.js +0 -181
- package/src/runtime/helpers/empty-component.js +0 -1
- package/src/runtime/helpers/merge.js +0 -13
- package/src/runtime/helpers/of-fallback.js +0 -4
- package/src/runtime/helpers/render-tag.js +0 -20
- package/src/runtime/helpers/serialize-noop.js +0 -5
- package/src/runtime/helpers/style-value.js +0 -45
- package/src/runtime/helpers/tags-compat/dom-debug.js +0 -1
- package/src/runtime/helpers/tags-compat/dom-debug.mjs +0 -4
- package/src/runtime/helpers/tags-compat/dom.js +0 -1
- package/src/runtime/helpers/tags-compat/dom.mjs +0 -4
- package/src/runtime/helpers/tags-compat/html-debug.js +0 -3
- package/src/runtime/helpers/tags-compat/html-debug.mjs +0 -4
- package/src/runtime/helpers/tags-compat/html.js +0 -3
- package/src/runtime/helpers/tags-compat/html.mjs +0 -4
- package/src/runtime/helpers/tags-compat/runtime-dom.js +0 -239
- package/src/runtime/helpers/tags-compat/runtime-html.js +0 -136
- package/src/runtime/helpers/to-string.js +0 -5
- package/src/runtime/html/AsyncStream.js +0 -805
- package/src/runtime/html/BufferedWriter.js +0 -52
- package/src/runtime/html/StringWriter.js +0 -73
- package/src/runtime/html/helpers/_dynamic-attr.js +0 -35
- package/src/runtime/html/helpers/attr.js +0 -80
- package/src/runtime/html/helpers/attrs.js +0 -26
- package/src/runtime/html/helpers/class-attr.js +0 -8
- package/src/runtime/html/helpers/data-marko.js +0 -36
- package/src/runtime/html/helpers/escape-quotes.js +0 -35
- package/src/runtime/html/helpers/escape-script-placeholder.js +0 -24
- package/src/runtime/html/helpers/escape-style-placeholder.js +0 -22
- package/src/runtime/html/helpers/escape-xml.js +0 -21
- package/src/runtime/html/helpers/merge-attrs.js +0 -55
- package/src/runtime/html/helpers/props-script.js +0 -32
- package/src/runtime/html/helpers/style-attr.js +0 -8
- package/src/runtime/html/hot-reload.js +0 -26
- package/src/runtime/html/index.js +0 -33
- package/src/runtime/html/marko-namespace.js +0 -3
- package/src/runtime/renderable.js +0 -194
- package/src/runtime/vdom/AsyncVDOMBuilder.js +0 -456
- package/src/runtime/vdom/VComment.js +0 -24
- package/src/runtime/vdom/VComponent.js +0 -17
- package/src/runtime/vdom/VDocumentFragment.js +0 -34
- package/src/runtime/vdom/VElement.js +0 -375
- package/src/runtime/vdom/VFragment.js +0 -26
- package/src/runtime/vdom/VNode.js +0 -100
- package/src/runtime/vdom/VText.js +0 -25
- package/src/runtime/vdom/helpers/attrs.js +0 -62
- package/src/runtime/vdom/helpers/const-element.js +0 -25
- package/src/runtime/vdom/helpers/merge-attrs.js +0 -16
- package/src/runtime/vdom/hot-reload.js +0 -115
- package/src/runtime/vdom/index.js +0 -30
- package/src/runtime/vdom/is-text-only.js +0 -10
- package/src/runtime/vdom/marko-namespace.js +0 -3
- package/src/runtime/vdom/morphdom/fragment.js +0 -95
- package/src/runtime/vdom/morphdom/helpers.js +0 -42
- package/src/runtime/vdom/morphdom/index.js +0 -741
- package/src/runtime/vdom/parse-html.js +0 -18
- package/src/runtime/vdom/vdom.js +0 -88
- package/src/taglib/index.js +0 -51
- package/src/translator/cdata/index.js +0 -15
- package/src/translator/cdata/index[html].js +0 -15
- package/src/translator/cdata/index[vdom].js +0 -12
- package/src/translator/class.js +0 -65
- package/src/translator/comment/index.js +0 -15
- package/src/translator/comment/index[html].js +0 -17
- package/src/translator/comment/index[vdom].js +0 -3
- package/src/translator/declaration/index.js +0 -15
- package/src/translator/declaration/index[html].js +0 -12
- package/src/translator/declaration/index[vdom].js +0 -3
- package/src/translator/document-type/index.js +0 -15
- package/src/translator/document-type/index[html].js +0 -12
- package/src/translator/document-type/index[vdom].js +0 -3
- package/src/translator/index.js +0 -551
- package/src/translator/placeholder/index.js +0 -15
- package/src/translator/placeholder/index[html].js +0 -93
- package/src/translator/placeholder/index[vdom].js +0 -22
- package/src/translator/scriptlet.js +0 -4
- package/src/translator/tag/attribute/directives/class.js +0 -42
- package/src/translator/tag/attribute/directives/index.js +0 -15
- package/src/translator/tag/attribute/directives/no-update-body-if.js +0 -15
- package/src/translator/tag/attribute/directives/no-update-body.js +0 -10
- package/src/translator/tag/attribute/directives/no-update-if.js +0 -12
- package/src/translator/tag/attribute/directives/no-update.js +0 -48
- package/src/translator/tag/attribute/directives/style.js +0 -42
- package/src/translator/tag/attribute/index.js +0 -150
- package/src/translator/tag/attribute/modifiers/index.js +0 -7
- package/src/translator/tag/attribute/modifiers/no-update.js +0 -14
- package/src/translator/tag/attribute/modifiers/scoped.js +0 -23
- package/src/translator/tag/attribute-tag.js +0 -149
- package/src/translator/tag/custom-tag.js +0 -146
- package/src/translator/tag/dynamic-tag.js +0 -74
- package/src/translator/tag/index.js +0 -287
- package/src/translator/tag/macro-tag.js +0 -7
- package/src/translator/tag/native-tag.js +0 -27
- package/src/translator/tag/native-tag[html]/attributes.js +0 -151
- package/src/translator/tag/native-tag[html]/index.js +0 -221
- package/src/translator/tag/native-tag[vdom]/attributes.js +0 -105
- package/src/translator/tag/native-tag[vdom]/index.js +0 -189
- package/src/translator/tag/util.js +0 -246
- package/src/translator/taglib/core/conditional/translate-else-if.js +0 -20
- package/src/translator/taglib/core/conditional/translate-else.js +0 -20
- package/src/translator/taglib/core/conditional/translate-if.js +0 -8
- package/src/translator/taglib/core/conditional/util.js +0 -41
- package/src/translator/taglib/core/index.js +0 -474
- package/src/translator/taglib/core/macro/parse.js +0 -17
- package/src/translator/taglib/core/macro/translate.js +0 -48
- package/src/translator/taglib/core/parse-class.js +0 -79
- package/src/translator/taglib/core/parse-export.js +0 -14
- package/src/translator/taglib/core/parse-import.js +0 -14
- package/src/translator/taglib/core/parse-module-code.js +0 -18
- package/src/translator/taglib/core/parse-static.js +0 -18
- package/src/translator/taglib/core/transform-style.js +0 -66
- package/src/translator/taglib/core/translate-await.js +0 -41
- package/src/translator/taglib/core/translate-body.js +0 -17
- package/src/translator/taglib/core/translate-for.js +0 -156
- package/src/translator/taglib/core/translate-html-comment.js +0 -52
- package/src/translator/taglib/core/translate-include-content.js +0 -53
- package/src/translator/taglib/core/translate-server-only.js +0 -5
- package/src/translator/taglib/core/translate-while.js +0 -32
- package/src/translator/taglib/index.js +0 -7
- package/src/translator/taglib/migrate/all-templates.js +0 -46
- package/src/translator/taglib/migrate/index.js +0 -5
- package/src/translator/text/index.js +0 -10
- package/src/translator/text/index[html].js +0 -12
- package/src/translator/text/index[vdom].js +0 -20
- package/src/translator/util/add-dependencies.js +0 -329
- package/src/translator/util/escape-regexp.js +0 -4
- package/src/translator/util/get-component-files.js +0 -86
- package/src/translator/util/html-out-write.js +0 -15
- package/src/translator/util/key-manager.js +0 -176
- package/src/translator/util/optimize-html-writes.js +0 -52
- package/src/translator/util/optimize-vdom-create.js +0 -164
- package/src/translator/util/plugin-hooks.js +0 -22
- package/src/translator/util/runtime-flags.js +0 -3
- package/src/translator/util/vdom-out-write.js +0 -10
- package/src/translator/util/with-previous-location.js +0 -6
- package/tags-html.d.ts +0 -3855
- package/translator/index.d.ts +0 -7
- package/translator/package.json +0 -5
package/docs/custom-tags.md
DELETED
@@ -1,201 +0,0 @@
|
|
1
|
-
# Custom tags
|
2
|
-
|
3
|
-
Custom tags allow you to break up your application UI into encapsulated, reusable components.
|
4
|
-
|
5
|
-
## Your first custom tag
|
6
|
-
|
7
|
-
Let's say we have a page with the following content:
|
8
|
-
|
9
|
-
_page.marko_
|
10
|
-
|
11
|
-
```marko
|
12
|
-
<!doctype html>
|
13
|
-
<html>
|
14
|
-
<body>
|
15
|
-
<h1>Hello World!</h1>
|
16
|
-
</body>
|
17
|
-
</html>
|
18
|
-
```
|
19
|
-
|
20
|
-
However, this page is getting pretty complex and unmaintainable. Let's split out the content into a separate component. To do this, we'll create a `components/` folder and inside it a `hello.marko` file:
|
21
|
-
|
22
|
-
_components/hello.marko_
|
23
|
-
|
24
|
-
```marko
|
25
|
-
<h1>Hello World!</h1>
|
26
|
-
```
|
27
|
-
|
28
|
-
Marko [automatically discovers](#how-tags-are-discovered) `.marko` files under a `components/` directory, so we can now use the `<hello>` tag in our page:
|
29
|
-
|
30
|
-
_page.marko_
|
31
|
-
|
32
|
-
```marko
|
33
|
-
<!doctype html>
|
34
|
-
<html>
|
35
|
-
<body>
|
36
|
-
<hello/>
|
37
|
-
</body>
|
38
|
-
</html>
|
39
|
-
```
|
40
|
-
|
41
|
-
Now this `<hello>` tag can be used multiple times, and even on multiple pages. But what if we don't only want to say hello to the world? Let's pass some attributes.
|
42
|
-
|
43
|
-
_page.marko_
|
44
|
-
|
45
|
-
```marko
|
46
|
-
<!doctype html>
|
47
|
-
<html>
|
48
|
-
<body>
|
49
|
-
<hello name="World"/>
|
50
|
-
</body>
|
51
|
-
</html>
|
52
|
-
```
|
53
|
-
|
54
|
-
The component will receive these attributes as `input`:
|
55
|
-
|
56
|
-
_components/hello.marko_
|
57
|
-
|
58
|
-
```marko
|
59
|
-
<h1>Hello ${input.name}!</h1>
|
60
|
-
```
|
61
|
-
|
62
|
-
Nice.
|
63
|
-
|
64
|
-
## How tags are discovered
|
65
|
-
|
66
|
-
Marko discovers components relative to the `.marko` file where a custom tag is used. From this file, Marko walks up directories until it finds a `components/` folder which contains a component matching the name of the custom tag. If it reaches the project root without finding anything, it will then check installed packages for the component.
|
67
|
-
|
68
|
-
Let's take a look at an example directory structure to better understand this:
|
69
|
-
|
70
|
-
```dir
|
71
|
-
components/
|
72
|
-
app-header.marko
|
73
|
-
app-footer.marko
|
74
|
-
pages/
|
75
|
-
about/
|
76
|
-
components/
|
77
|
-
team-members.marko
|
78
|
-
page.marko
|
79
|
-
home/
|
80
|
-
components/
|
81
|
-
home-banner.marko
|
82
|
-
page.marko
|
83
|
-
```
|
84
|
-
|
85
|
-
The file `pages/home/page.marko` can use the following tags:
|
86
|
-
|
87
|
-
- `<app-header>`
|
88
|
-
- `<app-footer>`
|
89
|
-
- `<home-banner>`
|
90
|
-
|
91
|
-
And the file `pages/about/page.marko` can use the following tags:
|
92
|
-
|
93
|
-
- `<app-header>`
|
94
|
-
- `<app-footer>`
|
95
|
-
- `<team-members>`
|
96
|
-
|
97
|
-
The home page can't see `<team-members>` and the about page can't see `<home-banner>`. By using nested `component/` directories, we've scoped our page-specific components to their respective pages.
|
98
|
-
|
99
|
-
## Tag directories
|
100
|
-
|
101
|
-
In addition to a Marko template, the children of `components/` can be a directory with an `index.marko` template:
|
102
|
-
|
103
|
-
```dir
|
104
|
-
components/
|
105
|
-
app-header/
|
106
|
-
index.marko
|
107
|
-
logo.png
|
108
|
-
style.css
|
109
|
-
app-footer/
|
110
|
-
index.marko
|
111
|
-
```
|
112
|
-
|
113
|
-
Or a directory with a template whose name matches its parent directory:
|
114
|
-
|
115
|
-
```dir
|
116
|
-
components/
|
117
|
-
app-header/
|
118
|
-
app-header.marko
|
119
|
-
app-header.style.css
|
120
|
-
logo.png
|
121
|
-
app-footer/
|
122
|
-
app-footer.marko
|
123
|
-
```
|
124
|
-
|
125
|
-
This allows you to create components that have other files associated with them and keep those files together in the directory structure.
|
126
|
-
|
127
|
-
> **ProTip:**
|
128
|
-
> You can take advantage of nested `components/` directories to create "subcomponents" that are only available to the component that contains them.
|
129
|
-
>
|
130
|
-
> ```dir
|
131
|
-
> components/
|
132
|
-
> app-header/
|
133
|
-
> components/
|
134
|
-
> navigation.marko
|
135
|
-
> user-info.marko
|
136
|
-
> app-header.marko
|
137
|
-
> app-footer/
|
138
|
-
> app-footer.marko
|
139
|
-
> ```
|
140
|
-
|
141
|
-
## Using tags from npm
|
142
|
-
|
143
|
-
To use [tags from npm](https://www.npmjs.com/search?q=keywords%3Amarko%20components), ensure that the package is installed and listed in your `package.json` dependencies:
|
144
|
-
|
145
|
-
```
|
146
|
-
npm install --save @marko-tags/match-media
|
147
|
-
```
|
148
|
-
|
149
|
-
Marko discover tags from packages defined in your `package.json`, so you can start using them right away:
|
150
|
-
|
151
|
-
```marko
|
152
|
-
<div>
|
153
|
-
<match-media|{ mobile }| mobile="max-width:30em">
|
154
|
-
<!-- nice -->
|
155
|
-
</match-media>
|
156
|
-
</div>
|
157
|
-
```
|
158
|
-
|
159
|
-
## Publishing tags to npm
|
160
|
-
|
161
|
-
We saw above that tags from npm are automatically discovered. In order to make this work, your package must include a [`marko.json`](./marko-json.md) at the root.
|
162
|
-
|
163
|
-
_marko.json_
|
164
|
-
|
165
|
-
```json
|
166
|
-
{
|
167
|
-
"tags-dir": "./dist/components"
|
168
|
-
}
|
169
|
-
```
|
170
|
-
|
171
|
-
This example file tells Marko to expose all components directly under the `dist/components/` directory to the application using your package.
|
172
|
-
|
173
|
-
We recommend adding the `marko` and `components` keywords to your `package.json` so others can find your components. Then `npm publish`!
|
174
|
-
|
175
|
-
# Macros
|
176
|
-
|
177
|
-
The [`<macro>`](./core-tags.md#macro) tag allows you to create custom tags in the same file that they are used in.
|
178
|
-
|
179
|
-
```marko
|
180
|
-
<macro|{ name }| name="welcome-message">
|
181
|
-
<h1>Hello ${name}!</h1>
|
182
|
-
</macro>
|
183
|
-
|
184
|
-
<welcome-message name="Patrick"/>
|
185
|
-
<welcome-message name="Austin"/>
|
186
|
-
```
|
187
|
-
|
188
|
-
# From Variables
|
189
|
-
|
190
|
-
If no other tag would be discovered Marko will check for an in scope variable that matches the tag name.
|
191
|
-
|
192
|
-
```marko
|
193
|
-
import SomeTag from "./somewhere.marko"
|
194
|
-
|
195
|
-
$ const { renderBody } = input;
|
196
|
-
$ const MyTag = input.href ? "a" : "button";
|
197
|
-
|
198
|
-
<SomeTag/>
|
199
|
-
<MyTag/>
|
200
|
-
<renderBody/>
|
201
|
-
```
|
package/docs/editor-plugins.md
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
# Editor Plugins
|
2
|
-
|
3
|
-
## Visual Studio Code
|
4
|
-
|
5
|
-
[Documentation](https://marketplace.visualstudio.com/items?itemName=Marko-JS.marko-vscode)
|
6
|
-
|
7
|
-
- Syntax highlighting
|
8
|
-
- Tag matching
|
9
|
-
- Tag, attribute and css autocompletion
|
10
|
-
- Hyperclick (clickable tags and attributes)
|
11
|
-
- Surfaces errors within the templates.
|
12
|
-
- Prettyprinting ([marko-prettyprint](https://github.com/marko-js/marko-prettyprint) is used internally)
|
13
|
-
|
14
|
-
## Atom
|
15
|
-
|
16
|
-
[Documentation](https://atom.io/packages/language-marko)
|
17
|
-
|
18
|
-
- Syntax highlighting
|
19
|
-
- Tag matching
|
20
|
-
- Tag and attribute autocompletion
|
21
|
-
- Code snippets
|
22
|
-
- Hyperclick (clickable tags and attributes)
|
23
|
-
- Prettyprinting ([marko-prettyprint](https://github.com/marko-js/marko-prettyprint) is used internally)
|
24
|
-
|
25
|
-
## Sublime
|
26
|
-
|
27
|
-
[Documentation](https://github.com/merwan7/sublime-marko)
|
28
|
-
|
29
|
-
- Syntax highlighting
|
30
|
-
|
31
|
-
## WebStorm
|
32
|
-
|
33
|
-
[Documentation](https://github.com/marko-js/marko-tmbundle)
|
34
|
-
|
35
|
-
- Syntax highlighting
|
36
|
-
|
37
|
-
## TextMate
|
38
|
-
|
39
|
-
[Documentation](https://github.com/marko-js/marko-tmbundle)
|
40
|
-
|
41
|
-
- Syntax highlighting
|
42
|
-
|
43
|
-
## CodeMirror
|
44
|
-
|
45
|
-
[codemirror-atom-modes](https://github.com/patrick-steele-idem/codemirror-atom-modes) + [atom-language-marko](https://github.com/marko-js/atom-language-marko)
|
package/docs/events.md
DELETED
@@ -1,131 +0,0 @@
|
|
1
|
-
# Events
|
2
|
-
|
3
|
-
Marko’s event API supports:
|
4
|
-
|
5
|
-
- [Browser events](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Events) on native tags
|
6
|
-
- Custom events from [custom tags](./custom-tags.md)
|
7
|
-
|
8
|
-
Note that **you can’t mix event targets and event types**: custom tags can only listen for custom events, and native tags can only listen for native events.
|
9
|
-
|
10
|
-
## Listening to events
|
11
|
-
|
12
|
-
Both kinds of events are received with an `on-*` attribute and the [attribute arguments syntax](./syntax.md#arguments):
|
13
|
-
|
14
|
-
```marko
|
15
|
-
<input type="checkbox"
|
16
|
-
on-change(event => console.info(`Checked? ${event.target.checked}`))
|
17
|
-
/>
|
18
|
-
```
|
19
|
-
|
20
|
-
The [first argument for the attribute can be a function](#function-handler), or [a string matching a method name](#method-handler) on the [component’s `class` declaration](./class-components.md).
|
21
|
-
|
22
|
-
### Function handler
|
23
|
-
|
24
|
-
If you provide a function as the first argument of the `on-*` attribute, the function is called whenever the event fires, like standard event listeners.
|
25
|
-
|
26
|
-
Below we use the [`static` prefix](./syntax.md#static-javascript) to define a function, then use it as a `click` handler:
|
27
|
-
|
28
|
-
```marko
|
29
|
-
static function handleClick(event) {
|
30
|
-
event.preventDefault();
|
31
|
-
console.log("Clicked!");
|
32
|
-
}
|
33
|
-
|
34
|
-
<button on-click(handleClick)>
|
35
|
-
Log click
|
36
|
-
</button>
|
37
|
-
```
|
38
|
-
|
39
|
-
In the above example, any time the `<button>` is clicked the `handleClick` function is called.
|
40
|
-
|
41
|
-
You can also use an inline arrow function:
|
42
|
-
|
43
|
-
```marko
|
44
|
-
<button on-click(() => alert("Clicked! 🎉"))>
|
45
|
-
Celebrate click
|
46
|
-
</button>
|
47
|
-
```
|
48
|
-
|
49
|
-
…or anything that evaluates to a function:
|
50
|
-
|
51
|
-
```marko
|
52
|
-
$ const handler = (
|
53
|
-
input.dontBreakMyApp ?
|
54
|
-
() => console.error("Clicked!") :
|
55
|
-
() => { throw Error("Clicked!") }
|
56
|
-
);
|
57
|
-
|
58
|
-
<button on-click(handler)>
|
59
|
-
Do not click
|
60
|
-
</button>
|
61
|
-
```
|
62
|
-
|
63
|
-
### Method handler
|
64
|
-
|
65
|
-
When a string is the first argument, Marko calls a matching method on the component's `class`.
|
66
|
-
|
67
|
-
```marko
|
68
|
-
class {
|
69
|
-
logChange(newTab) {
|
70
|
-
console.log(`changed to: ${newTab}`);
|
71
|
-
}
|
72
|
-
}
|
73
|
-
|
74
|
-
<my-tabs on-switch-tab("logChange")>
|
75
|
-
…
|
76
|
-
</my-tabs>
|
77
|
-
```
|
78
|
-
|
79
|
-
When `<my-tabs>` emits the `switch-tab` event, it will call its `logChange` method.
|
80
|
-
|
81
|
-
Within the handler you can access the current component instance, read data, emit events, update state, etc.
|
82
|
-
|
83
|
-
### Binding additional arguments
|
84
|
-
|
85
|
-
Arguments after the handler are prepended when the handler is called:
|
86
|
-
|
87
|
-
```marko
|
88
|
-
static function removeFriend(friendId, event) {
|
89
|
-
event.preventDefault();
|
90
|
-
window.myAPI.unfriend(friendId);
|
91
|
-
}
|
92
|
-
|
93
|
-
<for|friend| of=input.friends>
|
94
|
-
<button on-click(removeFriend, friend.id)>
|
95
|
-
Unfriend ${friend.name}
|
96
|
-
</button>
|
97
|
-
</for>
|
98
|
-
```
|
99
|
-
|
100
|
-
Here we share the logic for `removeFriend()` with each `friend` in the `friends` array. When the `<button>` is clicked, the `id` of the removed `friend` is passed to the `removeFriend()`, handler followed by the DOM `click` event.
|
101
|
-
|
102
|
-
## Emitting custom events
|
103
|
-
|
104
|
-
The recommended way for a [custom tag](./custom-tags.md) to communicate with its parent is through **custom events**.
|
105
|
-
|
106
|
-
All components implement a [Node.js-style event emitter](https://nodejs.org/api/events.html#events_class_eventemitter) to send events to parent components.
|
107
|
-
|
108
|
-
_email-input.marko_
|
109
|
-
|
110
|
-
```marko
|
111
|
-
class {
|
112
|
-
handleChange(event) {
|
113
|
-
if (event.target.validity.valid) {
|
114
|
-
// Only emit email-changes if they are valid.
|
115
|
-
this.emit("email-change", { email: event.target.value });
|
116
|
-
}
|
117
|
-
}
|
118
|
-
}
|
119
|
-
|
120
|
-
<input type="email" name=input.name on-change("handleChange")/>
|
121
|
-
```
|
122
|
-
|
123
|
-
The above code listens to native `change` events from the `<input>` element, and then emits its own `email-change` event if the change was valid.
|
124
|
-
|
125
|
-
```marko
|
126
|
-
<form>
|
127
|
-
<email-input name="email" on-email-change("...")/>
|
128
|
-
</form>
|
129
|
-
```
|
130
|
-
|
131
|
-
> **Note:** Events are not received as `input`; you cannot access `input.onEmailChange`. Instead, they set up subscriptions.
|
package/docs/express.md
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
# Marko + Express
|
2
|
-
|
3
|
-
## Quick Start
|
4
|
-
|
5
|
-
```sh
|
6
|
-
npm init marko -- --template vite-express
|
7
|
-
# Or `npx create-marko --template vite-express`
|
8
|
-
```
|
9
|
-
|
10
|
-
See [Marko’s example projects](https://github.com/marko-js/examples) for working [Express](https://expressjs.com/) integration code, such as:
|
11
|
-
|
12
|
-
- [`examples/vite-express`](https://github.com/marko-js/examples/tree/master/examples/vite-express)
|
13
|
-
- [`examples/rollup-express`](https://github.com/marko-js/examples/tree/master/examples/rollup-express)
|
14
|
-
- [`examples/webpack-express`](https://github.com/marko-js/examples/tree/master/examples/webpack-express)
|
15
|
-
|
16
|
-
But if you want to do things the hard way…
|
17
|
-
|
18
|
-
## Doing things the hard way
|
19
|
-
|
20
|
-
First, install Marko, Express, and the glue to hold them together:
|
21
|
-
|
22
|
-
```sh
|
23
|
-
npm install marko express @marko/express --save
|
24
|
-
```
|
25
|
-
|
26
|
-
### Skip the view engine
|
27
|
-
|
28
|
-
Express’s builtin view engine may be asynchronous, but it doesn’t support streaming — see [Rediscovering Progressive HTML Rendering](https://tech.ebayinc.com/engineering/async-fragments-rediscovering-progressive-html-rendering-with-marko/) for why that’s important. So instead, we [bypass Express’s view engine](https://strongloop.com/strongblog/bypassing-express-view-rendering-for-speed-and-modularity/) to use `@marko/express` instead.
|
29
|
-
|
30
|
-
[The `@marko/express` package](https://www.npmjs.com/package/@marko/express) adds a `res.marko()` method to [Express’s response object](https://expressjs.com/en/api.html#res). This method works like [`res.render()`](https://expressjs.com/en/api.html#res.render), but without the restrictions of Express’s view engine, letting you take full advantage of Marko’s streaming and modular template organization.
|
31
|
-
|
32
|
-
> **ProTip**: By using `res.marko()`, properties from [`app.locals`](https://expressjs.com/en/api.html#app.locals) and [`res.locals`](https://expressjs.com/en/api.html#res.locals) are automatically [available on `$global`](https://markojs.com/docs/rendering/#global-data).
|
33
|
-
|
34
|
-
```js
|
35
|
-
import express from "express";
|
36
|
-
import markoPlugin from "@marko/express";
|
37
|
-
import template from "./template.marko";
|
38
|
-
|
39
|
-
const app = express();
|
40
|
-
app.use(markoPlugin()); // Enables `res.marko(template, input)`
|
41
|
-
|
42
|
-
app.get("/", function (req, res) {
|
43
|
-
res.marko(template, {
|
44
|
-
name: "Frank",
|
45
|
-
count: 30,
|
46
|
-
colors: ["red", "green", "blue"],
|
47
|
-
});
|
48
|
-
});
|
49
|
-
|
50
|
-
app.listen(8080);
|
51
|
-
```
|
52
|
-
|
53
|
-
> **Note**: Older versions of `@marko/express` used to also attach Express’s `app`, `req`, and `res` objects onto `$global`. This meant uncontrolled network data could cause new and exciting surprises in your app code. Nowadays we recommend explicitly accessing the specific pieces of the HTTP exchange you’re interested in, like this:
|
54
|
-
>
|
55
|
-
> ```js
|
56
|
-
> app.get("/", function (req, res) {
|
57
|
-
> res.marko(template, {
|
58
|
-
> params: req.params,
|
59
|
-
> submitted: req.method === "POST" && req.body,
|
60
|
-
> });
|
61
|
-
> });
|
62
|
-
> ```
|
63
|
-
|
64
|
-
### BYOB (Bring Your Own Bundler)
|
65
|
-
|
66
|
-
Most of Marko’s API requires a bundler: the example code above assumes that `.marko` files can be `import`ed in your environment. [Check out Marko’s supported bundlers](https://markojs.com/docs/bundler-integrations-overview/) to see what works best for you.
|
package/docs/fastify.md
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
# Marko + Fastify
|
2
|
-
|
3
|
-
## Quick Start
|
4
|
-
|
5
|
-
```terminal
|
6
|
-
npm init marko -- --template vite-fastify
|
7
|
-
```
|
8
|
-
|
9
|
-
See the [the fastify sample](https://github.com/marko-js/examples/tree/master/examples/vite-fastify)
|
10
|
-
project for a working example.
|
11
|
-
|
12
|
-
## From Scratch
|
13
|
-
|
14
|
-
First install Marko and the fastify related dependencies:
|
15
|
-
|
16
|
-
```terminal
|
17
|
-
npm install marko @marko/fastify fastify --save
|
18
|
-
```
|
19
|
-
|
20
|
-
### Usage
|
21
|
-
|
22
|
-
The [`@marko/fastify`](https://github.com/marko-js/fastify/) adds a `reply.marko` decorator to the `reply` object. This function allows us to pass in a Marko template and supports Marko's streaming and modular approach to templates.
|
23
|
-
|
24
|
-
By using `reply.marko` you'll automatically have access to `app.locals`, and `reply.locals` from within your Marko template and custom tags. These values are added to `$global`.
|
25
|
-
|
26
|
-
```javascript
|
27
|
-
import fastify from "fastify";
|
28
|
-
import markoPlugin from "@marko/fastify";
|
29
|
-
import Template from "./template.marko";
|
30
|
-
|
31
|
-
const app = fastify();
|
32
|
-
|
33
|
-
app.register(markoPlugin);
|
34
|
-
|
35
|
-
app.get("/", (request, reply) => {
|
36
|
-
// Streams Marko template into the response.
|
37
|
-
// Forwards errors into fa error handler.
|
38
|
-
reply.marko(Template, { hello: "world" });
|
39
|
-
});
|
40
|
-
|
41
|
-
await fastify.listen(3000);
|
42
|
-
```
|
43
|
-
|
44
|
-
### Global Outputs
|
45
|
-
|
46
|
-
We can add global outputs from the server side using the reply object or fastify instance.
|
47
|
-
|
48
|
-
```javascript
|
49
|
-
reply.locals.newProperty = "Your value";
|
50
|
-
```
|
51
|
-
|
52
|
-
To use this in marko components we just need to refer out.global
|
53
|
-
|
54
|
-
```marko
|
55
|
-
$ const { newProperty } = $global;
|
56
|
-
```
|
57
|
-
|
58
|
-
To know more about sending the data to the browser checkout:
|
59
|
-
|
60
|
-
### [Sending global data to browsers](https://markojs.com/docs/rendering/#sending-global-data-to-browsers)
|
61
|
-
|
62
|
-
### BYOB (Bring your own bundler)
|
63
|
-
|
64
|
-
For the large portion of Marko's API a bundler is required. The example code above assumes that Marko templates can be loaded in your environment.
|
65
|
-
Marko supports a number of bundlers, [take a look through our supported bundlers](https://markojs.com/docs/bundler-integrations-overview/) and pick what works best for you.
|
package/docs/getting-started.md
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
# Getting started
|
2
|
-
|
3
|
-
## Setup
|
4
|
-
|
5
|
-
### Marko Run (Recommended)
|
6
|
-
|
7
|
-
[Marko Run](https://github.com/marko-js/run) makes it easy to get started with little to no config and is the recommended starting point for a new Marko project.
|
8
|
-
|
9
|
-
To set up your project:
|
10
|
-
|
11
|
-
1. `npm init marko -- -t basic`
|
12
|
-
2. `cd ./<PROJECT_NAME>`
|
13
|
-
3. `npm run dev`
|
14
|
-
|
15
|
-
Open `src/routes/_index/+page.marko` in your editor to change the index page. See the [routing documentation](https://github.com/marko-js/run#file-based-routing) to learn how to add additional pages to your project.
|
16
|
-
|
17
|
-
### Other setups
|
18
|
-
|
19
|
-
If you just want to test out Marko in your browser, use the [Try Online](https://markojs.com/try-online) feature. You can open it in another tab and follow along. For other setups, check out the [Installation](./installing.md) page.
|
20
|
-
|
21
|
-
## Hello world
|
22
|
-
|
23
|
-
Marko makes it easy to represent your UI using a [syntax](./syntax.md) that is like HTML:
|
24
|
-
|
25
|
-
_hello.marko_
|
26
|
-
|
27
|
-
```marko
|
28
|
-
<h1>Hello World</h1>
|
29
|
-
```
|
30
|
-
|
31
|
-
In fact, Marko is so much like HTML, that you can use it as a replacement for a templating language like handlebars, mustache, or pug:
|
32
|
-
|
33
|
-
_template.marko_
|
34
|
-
|
35
|
-
```marko
|
36
|
-
<!doctype html>
|
37
|
-
<html>
|
38
|
-
<head>
|
39
|
-
<title>Hello World</title>
|
40
|
-
</head>
|
41
|
-
<body>
|
42
|
-
<h1>Hello World</h1>
|
43
|
-
</body>
|
44
|
-
</html>
|
45
|
-
```
|
46
|
-
|
47
|
-
However, Marko is much more than a templating language. It's a language that allows you to declaratively build an application by describing how the application view changes over time and in response to user actions.
|
48
|
-
|
49
|
-
In the browser, when the data representing your UI changes, Marko will automatically and efficiently update the DOM to reflect the changes.
|
50
|
-
|
51
|
-
## A simple component
|
52
|
-
|
53
|
-
Let's say we want to perform an action once a `<button>` is clicked:
|
54
|
-
|
55
|
-
_button.marko_
|
56
|
-
|
57
|
-
```marko
|
58
|
-
<button>Click me!</button>
|
59
|
-
```
|
60
|
-
|
61
|
-
Marko makes this really easy, allowing you to define a `class` for a component right in the `.marko` view and call methods of that class with `on-` attributes:
|
62
|
-
|
63
|
-
_button.marko_
|
64
|
-
|
65
|
-
```marko
|
66
|
-
class {
|
67
|
-
sayHi() {
|
68
|
-
alert("Hi!");
|
69
|
-
}
|
70
|
-
}
|
71
|
-
|
72
|
-
<button on-click("sayHi")>Click me!</button>
|
73
|
-
```
|
74
|
-
|
75
|
-
### Adding state
|
76
|
-
|
77
|
-
Alerting when a button is clicked is great, but what about updating your UI in response to an action? Marko's stateful components make this easy. All you need to do is set `this.state` from inside your component's class. This makes a new `state` variable available to your view. When a value in `this.state` is changed, the view will automatically re-render and only update the part of the DOM that changed.
|
78
|
-
|
79
|
-
_counter.marko_
|
80
|
-
|
81
|
-
```marko
|
82
|
-
class {
|
83
|
-
onCreate() {
|
84
|
-
this.state = {
|
85
|
-
count: 0
|
86
|
-
};
|
87
|
-
}
|
88
|
-
increment() {
|
89
|
-
this.state.count++;
|
90
|
-
}
|
91
|
-
}
|
92
|
-
|
93
|
-
<div>The current count is ${state.count}</div>
|
94
|
-
<button on-click("increment")>Click me!</button>
|
95
|
-
```
|
package/docs/http.md
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
# Marko + HTTP Server
|
2
|
-
|
3
|
-
See the [the http sample](https://github.com/marko-js/examples/tree/master/examples/vite-http)
|
4
|
-
project for a working example.
|
5
|
-
|
6
|
-
## Usage
|
7
|
-
|
8
|
-
```js
|
9
|
-
import http from "http";
|
10
|
-
import Template from "./index.marko";
|
11
|
-
|
12
|
-
const port = 8080;
|
13
|
-
const server = http.createServer();
|
14
|
-
|
15
|
-
server.on("request", (req, res) => {
|
16
|
-
Template.render(
|
17
|
-
{
|
18
|
-
name: "Frank",
|
19
|
-
count: 30,
|
20
|
-
colors: ["red", "green", "blue"],
|
21
|
-
},
|
22
|
-
res,
|
23
|
-
);
|
24
|
-
});
|
25
|
-
|
26
|
-
server.listen(port, () => {
|
27
|
-
console.log(`Successfully started server on port ${port}`);
|
28
|
-
});
|
29
|
-
```
|
30
|
-
|
31
|
-
### BYOB (Bring your own bundler)
|
32
|
-
|
33
|
-
For the large portion of Marko's API a bundler is required. The example code above assumes that Marko templates can be loaded in your environment.
|
34
|
-
Marko supports a number of bundlers, [take a look through our supported bundlers](https://markojs.com/docs/bundler-integrations-overview/) and pick what works best for you.
|
package/docs/icons/js.svg
DELETED
@@ -1,4 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 630 630">
|
2
|
-
<rect width="630" height="630" fill="#f7df1e"/>
|
3
|
-
<path d="m423.2 492.19c12.69 20.72 29.2 35.95 58.4 35.95 24.53 0 40.2-12.26 40.2-29.2 0-20.3-16.1-27.49-43.1-39.3l-14.8-6.35c-42.72-18.2-71.1-41-71.1-89.2 0-44.4 33.83-78.2 86.7-78.2 37.64 0 64.7 13.1 84.2 47.4l-46.1 29.6c-10.15-18.2-21.1-25.37-38.1-25.37-17.34 0-28.33 11-28.33 25.37 0 17.76 11 24.95 36.4 35.95l14.8 6.34c50.3 21.57 78.7 43.56 78.7 93 0 53.3-41.87 82.5-98.1 82.5-54.98 0-90.5-26.2-107.88-60.54zm-209.13 5.13c9.3 16.5 17.76 30.45 38.1 30.45 19.45 0 31.72-7.61 31.72-37.2v-201.3h59.2v202.1c0 61.3-35.94 89.2-88.4 89.2-47.4 0-74.85-24.53-88.81-54.075z"/>
|
4
|
-
</svg>
|
package/docs/icons/marko.svg
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="512" viewBox="0 0 2560 1400"><path fill="url(#a)" d="M427 0h361L361 697l427 697H427L0 698z"/><linearGradient id="a" x2="0" y2="1"><stop offset="0" stop-color="hsl(181, 96.3%, 38.8%)"/><stop offset=".25" stop-color="hsl(186, 94.9%, 46.1%)"/><stop offset=".5" stop-color="hsl(191, 93.3%, 60.8%)"/><stop offset=".5" stop-color="hsl(195, 94.3%, 50.8%)"/><stop offset=".75" stop-color="hsl(199, 95.9%, 48.0%)"/><stop offset="1" stop-color="hsl(203, 94.9%, 38.6%)"/></linearGradient><path fill="url(#b)" d="M854 697h361L788 0H427z"/><linearGradient id="b" x2="0" y2="1"><stop offset="0" stop-color="hsl(170, 80.3%, 50.8%)"/><stop offset=".5" stop-color="hsl(161, 79.1%, 47.3%)"/><stop offset="1" stop-color="hsl(157, 78.1%, 38.9%)"/></linearGradient><path fill="url(#c)" d="M1281 0h361l-427 697H854z"/><linearGradient id="c" x2="0" y2="1"><stop offset="0" stop-color="hsl(86, 95.9%, 37.1%)"/><stop offset=".5" stop-color="hsl(86, 91.9%, 45.0%)"/><stop offset="1" stop-color="hsl(90, 82.1%, 51.2%)"/></linearGradient><path fill="url(#d)" d="M1642 0h-361l428 697-428 697h361l428-697z"/><linearGradient id="d" x2="0" y2="1"><stop offset="0" stop-color="hsl(55, 99.9%, 53.1%)"/><stop offset=".25" stop-color="hsl(51, 99.9%, 50.0%)"/><stop offset=".5" stop-color="hsl(47, 99.2%, 49.8%)"/><stop offset=".5" stop-color="hsl(39, 99.9%, 50.0%)"/><stop offset=".75" stop-color="hsl(35, 99.9%, 50.0%)"/><stop offset="1" stop-color="hsl(29, 99.9%, 46.9%)"/></linearGradient><path fill="url(#e)" d="M2132 0h-361l427 697-428 697h361l428-697z"/><linearGradient id="e" x2="0" y2="1"><stop offset="0" stop-color="hsl(352, 99.9%, 62.9%)"/><stop offset=".25" stop-color="hsl(345, 90.3%, 51.8%)"/><stop offset=".5" stop-color="hsl(341, 88.3%, 51.8%)"/><stop offset=".5" stop-color="hsl(336, 80.9%, 45.4%)"/><stop offset=".75" stop-color="hsl(332, 80.3%, 44.8%)"/><stop offset="1.1" stop-color="hsl(328, 78.1%, 35.9%)"/></linearGradient></svg>
|
package/docs/icons/ts.svg
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
<svg fill="none" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><rect fill="#3178c6" height="512" rx="50" width="512"/><rect fill="#3178c6" height="512" rx="50" width="512"/><path clip-rule="evenodd" d="m316.939 407.424v50.061c8.138 4.172 17.763 7.3 28.875 9.386s22.823 3.129 35.135 3.129c11.999 0 23.397-1.147 34.196-3.442 10.799-2.294 20.268-6.075 28.406-11.342 8.138-5.266 14.581-12.15 19.328-20.65s7.121-19.007 7.121-31.522c0-9.074-1.356-17.026-4.069-23.857s-6.625-12.906-11.738-18.225c-5.112-5.319-11.242-10.091-18.389-14.315s-15.207-8.213-24.18-11.967c-6.573-2.712-12.468-5.345-17.685-7.9-5.217-2.556-9.651-5.163-13.303-7.822-3.652-2.66-6.469-5.476-8.451-8.448-1.982-2.973-2.974-6.336-2.974-10.091 0-3.441.887-6.544 2.661-9.308s4.278-5.136 7.512-7.118c3.235-1.981 7.199-3.52 11.894-4.615 4.696-1.095 9.912-1.642 15.651-1.642 4.173 0 8.581.313 13.224.938 4.643.626 9.312 1.591 14.008 2.894 4.695 1.304 9.259 2.947 13.694 4.928 4.434 1.982 8.529 4.276 12.285 6.884v-46.776c-7.616-2.92-15.937-5.084-24.962-6.492s-19.381-2.112-31.066-2.112c-11.895 0-23.163 1.278-33.805 3.833s-20.006 6.544-28.093 11.967c-8.086 5.424-14.476 12.333-19.171 20.729-4.695 8.395-7.043 18.433-7.043 30.114 0 14.914 4.304 27.638 12.912 38.172 8.607 10.533 21.675 19.45 39.204 26.751 6.886 2.816 13.303 5.579 19.25 8.291s11.086 5.528 15.415 8.448c4.33 2.92 7.747 6.101 10.252 9.543 2.504 3.441 3.756 7.352 3.756 11.733 0 3.233-.783 6.231-2.348 8.995s-3.939 5.162-7.121 7.196-7.147 3.624-11.894 4.771c-4.748 1.148-10.303 1.721-16.668 1.721-10.851 0-21.597-1.903-32.24-5.71-10.642-3.806-20.502-9.516-29.579-17.13zm-84.159-123.342h64.22v-41.082h-179v41.082h63.906v182.918h50.874z" fill="#fff" fill-rule="evenodd"/></svg>
|