@supersoniks/concorde 4.9.98-visual-stack.0 → 4.9.98-visual-stack.2
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/.gitlab-ci.yml +0 -13
- package/build-infos.json +1 -1
- package/concorde-3d.bundle.js +201 -152
- package/concorde-3d.es.js +14688 -13906
- package/concorde-core.bundle.js +557 -622
- package/concorde-core.es.js +6025 -5575
- package/concorde-hugging-face-infer.bundle.js +1 -1
- package/concorde-hugging-face-infer.es.js +1 -1
- package/concorde-interactive.bundle.js +1162 -0
- package/concorde-interactive.es.js +10723 -0
- package/concorde-shader.bundle.js +31 -20
- package/concorde-shader.es.js +2773 -2547
- package/concorde-webgpu.bundle.js +43 -32
- package/concorde-webgpu.es.js +1819 -1553
- package/dist/concorde-3d.bundle.js +201 -152
- package/dist/concorde-3d.es.js +14688 -13906
- package/dist/concorde-core.bundle.js +557 -622
- package/dist/concorde-core.es.js +6025 -5575
- package/dist/concorde-hugging-face-infer.bundle.js +1 -1
- package/dist/concorde-hugging-face-infer.es.js +1 -1
- package/dist/concorde-interactive.bundle.js +1162 -0
- package/dist/concorde-interactive.es.js +10723 -0
- package/dist/concorde-shader.bundle.js +31 -20
- package/dist/concorde-shader.es.js +2773 -2547
- package/dist/concorde-webgpu.bundle.js +43 -32
- package/dist/concorde-webgpu.es.js +1819 -1553
- package/dist/docs-mock-api-sw.js +5 -1
- package/dist/docs-mock-api-sw.js.map +2 -2
- package/dist/js/addons/interactive.js +6 -0
- package/dist/js/addons/interactive.js.map +1 -0
- package/dist/js/core/components/functional/3d/3d.js +90 -2
- package/dist/js/core/components/functional/3d/3d.js.map +1 -1
- package/dist/js/core/components/functional/3d/constants.js +1 -0
- package/dist/js/core/components/functional/3d/constants.js.map +1 -1
- package/dist/js/core/components/functional/3d/ensure.js +6 -3
- package/dist/js/core/components/functional/3d/ensure.js.map +1 -1
- package/dist/js/core/components/functional/3d/form-params.js +2 -0
- package/dist/js/core/components/functional/3d/form-params.js.map +1 -1
- package/dist/js/core/components/functional/3d/life.js +2 -1
- package/dist/js/core/components/functional/3d/life.js.map +1 -1
- package/dist/js/core/components/functional/3d/out-publish.js +3 -2
- package/dist/js/core/components/functional/3d/out-publish.js.map +1 -1
- package/dist/js/core/components/functional/3d/playback.js +6 -1
- package/dist/js/core/components/functional/3d/playback.js.map +1 -1
- package/dist/js/core/components/functional/3d/post-bind.js +207 -0
- package/dist/js/core/components/functional/3d/post-bind.js.map +1 -0
- package/dist/js/core/components/functional/3d/post-channels.js +39 -0
- package/dist/js/core/components/functional/3d/post-channels.js.map +1 -0
- package/dist/js/core/components/functional/3d/post-fx.js +495 -0
- package/dist/js/core/components/functional/3d/post-fx.js.map +1 -0
- package/dist/js/core/components/functional/3d/props.js +142 -0
- package/dist/js/core/components/functional/3d/props.js.map +1 -1
- package/dist/js/core/components/functional/3d/reload.js +2 -0
- package/dist/js/core/components/functional/3d/reload.js.map +1 -1
- package/dist/js/core/components/functional/3d/runtime.js +80 -3
- package/dist/js/core/components/functional/3d/runtime.js.map +1 -1
- package/dist/js/core/components/functional/3d/scene-runtime.js +1 -1
- package/dist/js/core/components/functional/3d/scene-runtime.js.map +1 -1
- package/dist/js/core/components/functional/3d/tune.js +21 -0
- package/dist/js/core/components/functional/3d/tune.js.map +1 -1
- package/dist/js/core/components/functional/3d/updated.js +13 -1
- package/dist/js/core/components/functional/3d/updated.js.map +1 -1
- package/dist/js/core/components/functional/if/if.js +65 -7
- package/dist/js/core/components/functional/if/if.js.map +1 -1
- package/dist/js/core/components/functional/interactive/action.js +96 -0
- package/dist/js/core/components/functional/interactive/action.js.map +1 -0
- package/dist/js/core/components/functional/interactive/gamepad.js +206 -0
- package/dist/js/core/components/functional/interactive/gamepad.js.map +1 -0
- package/dist/js/core/components/functional/interactive/gesture.js +148 -0
- package/dist/js/core/components/functional/interactive/gesture.js.map +1 -0
- package/dist/js/core/components/functional/interactive/helpers.js +82 -0
- package/dist/js/core/components/functional/interactive/helpers.js.map +1 -0
- package/dist/js/core/components/functional/interactive/index.js +20 -0
- package/dist/js/core/components/functional/interactive/index.js.map +1 -0
- package/dist/js/core/components/functional/interactive/keyboard.js +183 -0
- package/dist/js/core/components/functional/interactive/keyboard.js.map +1 -0
- package/dist/js/core/components/functional/interactive/matrix.js +201 -0
- package/dist/js/core/components/functional/interactive/matrix.js.map +1 -0
- package/dist/js/core/components/functional/interactive/registry.js +28 -0
- package/dist/js/core/components/functional/interactive/registry.js.map +1 -0
- package/dist/js/core/components/functional/interactive/store.js +264 -0
- package/dist/js/core/components/functional/interactive/store.js.map +1 -0
- package/dist/js/core/components/functional/interactive/ticker.js +182 -0
- package/dist/js/core/components/functional/interactive/ticker.js.map +1 -0
- package/dist/js/core/components/functional/shader/gl-runtime.js +128 -14
- package/dist/js/core/components/functional/shader/gl-runtime.js.map +1 -1
- package/dist/js/core/components/functional/shader/shader.js +154 -57
- package/dist/js/core/components/functional/shader/shader.js.map +1 -1
- package/dist/js/core/components/functional/shader/shadertoy-prelude.js +39 -5
- package/dist/js/core/components/functional/shader/shadertoy-prelude.js.map +1 -1
- package/dist/js/core/components/functional/shader/types.js +58 -7
- package/dist/js/core/components/functional/shader/types.js.map +1 -1
- package/dist/js/core/components/functional/value/value.js +49 -4
- package/dist/js/core/components/functional/value/value.js.map +1 -1
- package/dist/js/core/components/functional/webgpu/gl-fallback.js +27 -6
- package/dist/js/core/components/functional/webgpu/gl-fallback.js.map +1 -1
- package/dist/js/core/components/functional/webgpu/gpu-runtime.js +115 -13
- package/dist/js/core/components/functional/webgpu/gpu-runtime.js.map +1 -1
- package/dist/js/core/components/functional/webgpu/helpers.js +8 -2
- package/dist/js/core/components/functional/webgpu/helpers.js.map +1 -1
- package/dist/js/core/components/functional/webgpu/webgpu.js +34 -1
- package/dist/js/core/components/functional/webgpu/webgpu.js.map +1 -1
- package/dist/js/core/components/ui/_css/rounded.js +34 -0
- package/dist/js/core/components/ui/_css/rounded.js.map +1 -0
- package/dist/js/core/components/ui/_css/type.js +44 -0
- package/dist/js/core/components/ui/_css/type.js.map +1 -1
- package/dist/js/core/components/ui/_i18n/ui-aria-labels.js +95 -0
- package/dist/js/core/components/ui/_i18n/ui-aria-labels.js.map +1 -0
- package/dist/js/core/components/ui/alert/alert.js +72 -87
- package/dist/js/core/components/ui/alert/alert.js.map +1 -1
- package/dist/js/core/components/ui/alert-messages/alert-messages.js +1 -0
- package/dist/js/core/components/ui/alert-messages/alert-messages.js.map +1 -1
- package/dist/js/core/components/ui/badge/badge.js +29 -80
- package/dist/js/core/components/ui/badge/badge.js.map +1 -1
- package/dist/js/core/components/ui/button/button.js +8 -7
- package/dist/js/core/components/ui/button/button.js.map +1 -1
- package/dist/js/core/components/ui/card/card-header.js +7 -2
- package/dist/js/core/components/ui/card/card-header.js.map +1 -1
- package/dist/js/core/components/ui/divider/divider.js +1 -1
- package/dist/js/core/components/ui/divider/divider.js.map +1 -1
- package/dist/js/core/components/ui/form/checkbox/checkbox.js +4 -20
- package/dist/js/core/components/ui/form/checkbox/checkbox.js.map +1 -1
- package/dist/js/core/components/ui/form/fieldset/legend-description.js +1 -1
- package/dist/js/core/components/ui/form/fieldset/legend.js +1 -1
- package/dist/js/core/components/ui/form/input/input.js +12 -15
- package/dist/js/core/components/ui/form/input/input.js.map +1 -1
- package/dist/js/core/components/ui/form/input-autocomplete/input-autocomplete.js +363 -158
- package/dist/js/core/components/ui/form/input-autocomplete/input-autocomplete.js.map +1 -1
- package/dist/js/core/components/ui/form/radio/radio.js +1 -1
- package/dist/js/core/components/ui/form/select/select.js +3 -6
- package/dist/js/core/components/ui/form/select/select.js.map +1 -1
- package/dist/js/core/components/ui/form/textarea/textarea.js +1 -2
- package/dist/js/core/components/ui/form/textarea/textarea.js.map +1 -1
- package/dist/js/core/components/ui/image/image.js +9 -37
- package/dist/js/core/components/ui/image/image.js.map +1 -1
- package/dist/js/core/components/ui/link/link.js +25 -26
- package/dist/js/core/components/ui/link/link.js.map +1 -1
- package/dist/js/core/components/ui/modal/modal-close.js +3 -12
- package/dist/js/core/components/ui/modal/modal-close.js.map +1 -1
- package/dist/js/core/components/ui/modal/modal.js +18 -18
- package/dist/js/core/components/ui/modal/modal.js.map +1 -1
- package/dist/js/core/components/ui/pop/pop.js +131 -112
- package/dist/js/core/components/ui/pop/pop.js.map +1 -1
- package/dist/js/core/components/ui/table/table.js.map +1 -1
- package/dist/js/core/components/ui/theme/theme.js +1 -1
- package/dist/js/core/components/ui/toast/dismissed.js +9 -0
- package/dist/js/core/components/ui/toast/dismissed.js.map +1 -0
- package/dist/js/core/components/ui/toast/render-content.js +14 -0
- package/dist/js/core/components/ui/toast/render-content.js.map +1 -0
- package/dist/js/core/components/ui/toast/toast-item.js +150 -96
- package/dist/js/core/components/ui/toast/toast-item.js.map +1 -1
- package/dist/js/core/components/ui/toast/toast.js +41 -13
- package/dist/js/core/components/ui/toast/toast.js.map +1 -1
- package/dist/js/core/components/ui/tooltip/tooltip.js +144 -143
- package/dist/js/core/components/ui/tooltip/tooltip.js.map +1 -1
- package/dist/js/core/decorators/subscriber/ancestorAttribute.js.map +1 -1
- package/dist/js/core/decorators/subscriber/derive.js +3 -1
- package/dist/js/core/decorators/subscriber/derive.js.map +1 -1
- package/dist/js/core/mixins/Fetcher.js.map +1 -1
- package/dist/js/core/mixins/FormCheckable.js +1 -8
- package/dist/js/core/mixins/FormCheckable.js.map +1 -1
- package/dist/js/core/mixins/FormElement.js +26 -53
- package/dist/js/core/mixins/FormElement.js.map +1 -1
- package/dist/js/core/utils/AncestorAttributeObserver.js +130 -55
- package/dist/js/core/utils/AncestorAttributeObserver.js.map +1 -1
- package/dist/js/core/utils/LocationHandler.js +1 -1
- package/dist/js/core/utils/LocationHandler.js.map +1 -1
- package/dist/js/core/utils/dismissed.js +23 -0
- package/dist/js/core/utils/dismissed.js.map +1 -0
- package/dist/js/core/utils/mediaRef.js +37 -0
- package/dist/js/core/utils/mediaRef.js.map +1 -1
- package/dist/js/core/utils/positioning.js +110 -0
- package/dist/js/core/utils/positioning.js.map +1 -0
- package/dist/js/directives.js +1 -2
- package/dist/js/directives.js.map +1 -1
- package/dist/types/addons/interactive.d.ts +6 -0
- package/dist/types/addons/interactive.d.ts.map +1 -0
- package/dist/types/core/components/functional/3d/3d.d.ts +26 -3
- package/dist/types/core/components/functional/3d/3d.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/constants.d.ts +1 -1
- package/dist/types/core/components/functional/3d/constants.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/ensure.d.ts +3 -0
- package/dist/types/core/components/functional/3d/ensure.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/form-params.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/life.d.ts +2 -0
- package/dist/types/core/components/functional/3d/life.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/out-publish.d.ts +1 -0
- package/dist/types/core/components/functional/3d/out-publish.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/playback.d.ts +9 -0
- package/dist/types/core/components/functional/3d/playback.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/post-bind.d.ts +52 -0
- package/dist/types/core/components/functional/3d/post-bind.d.ts.map +1 -0
- package/dist/types/core/components/functional/3d/post-channels.d.ts +40 -0
- package/dist/types/core/components/functional/3d/post-channels.d.ts.map +1 -0
- package/dist/types/core/components/functional/3d/post-fx.d.ts +73 -0
- package/dist/types/core/components/functional/3d/post-fx.d.ts.map +1 -0
- package/dist/types/core/components/functional/3d/props.d.ts +42 -0
- package/dist/types/core/components/functional/3d/props.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/reload.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/runtime.d.ts +16 -1
- package/dist/types/core/components/functional/3d/runtime.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/scene-runtime.d.ts +1 -1
- package/dist/types/core/components/functional/3d/scene-runtime.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/tune.d.ts +5 -0
- package/dist/types/core/components/functional/3d/tune.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/types.d.ts +9 -0
- package/dist/types/core/components/functional/3d/types.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/updated.d.ts.map +1 -1
- package/dist/types/core/components/functional/if/if.d.ts +14 -5
- package/dist/types/core/components/functional/if/if.d.ts.map +1 -1
- package/dist/types/core/components/functional/interactive/action.d.ts +22 -0
- package/dist/types/core/components/functional/interactive/action.d.ts.map +1 -0
- package/dist/types/core/components/functional/interactive/gamepad.d.ts +37 -0
- package/dist/types/core/components/functional/interactive/gamepad.d.ts.map +1 -0
- package/dist/types/core/components/functional/interactive/gesture.d.ts +26 -0
- package/dist/types/core/components/functional/interactive/gesture.d.ts.map +1 -0
- package/dist/types/core/components/functional/interactive/helpers.d.ts +23 -0
- package/dist/types/core/components/functional/interactive/helpers.d.ts.map +1 -0
- package/dist/types/core/components/functional/interactive/index.d.ts +20 -0
- package/dist/types/core/components/functional/interactive/index.d.ts.map +1 -0
- package/dist/types/core/components/functional/interactive/keyboard.d.ts +37 -0
- package/dist/types/core/components/functional/interactive/keyboard.d.ts.map +1 -0
- package/dist/types/core/components/functional/interactive/matrix.d.ts +31 -0
- package/dist/types/core/components/functional/interactive/matrix.d.ts.map +1 -0
- package/dist/types/core/components/functional/interactive/registry.d.ts +23 -0
- package/dist/types/core/components/functional/interactive/registry.d.ts.map +1 -0
- package/dist/types/core/components/functional/interactive/store.d.ts +46 -0
- package/dist/types/core/components/functional/interactive/store.d.ts.map +1 -0
- package/dist/types/core/components/functional/interactive/ticker.d.ts +33 -0
- package/dist/types/core/components/functional/interactive/ticker.d.ts.map +1 -0
- package/dist/types/core/components/functional/shader/gl-runtime.d.ts +33 -1
- package/dist/types/core/components/functional/shader/gl-runtime.d.ts.map +1 -1
- package/dist/types/core/components/functional/shader/shader.d.ts +28 -7
- package/dist/types/core/components/functional/shader/shader.d.ts.map +1 -1
- package/dist/types/core/components/functional/shader/shadertoy-prelude.d.ts +16 -2
- package/dist/types/core/components/functional/shader/shadertoy-prelude.d.ts.map +1 -1
- package/dist/types/core/components/functional/shader/types.d.ts +29 -5
- package/dist/types/core/components/functional/shader/types.d.ts.map +1 -1
- package/dist/types/core/components/functional/value/value.d.ts +6 -0
- package/dist/types/core/components/functional/value/value.d.ts.map +1 -1
- package/dist/types/core/components/functional/webgpu/gl-fallback.d.ts +4 -0
- package/dist/types/core/components/functional/webgpu/gl-fallback.d.ts.map +1 -1
- package/dist/types/core/components/functional/webgpu/gpu-runtime.d.ts +14 -0
- package/dist/types/core/components/functional/webgpu/gpu-runtime.d.ts.map +1 -1
- package/dist/types/core/components/functional/webgpu/helpers.d.ts +1 -0
- package/dist/types/core/components/functional/webgpu/helpers.d.ts.map +1 -1
- package/dist/types/core/components/functional/webgpu/webgpu.d.ts +7 -1
- package/dist/types/core/components/functional/webgpu/webgpu.d.ts.map +1 -1
- package/dist/types/core/components/ui/_css/rounded.d.ts +3 -0
- package/dist/types/core/components/ui/_css/rounded.d.ts.map +1 -0
- package/dist/types/core/components/ui/_css/type.d.ts +13 -0
- package/dist/types/core/components/ui/_css/type.d.ts.map +1 -1
- package/dist/types/core/components/ui/_i18n/ui-aria-labels.d.ts +83 -0
- package/dist/types/core/components/ui/_i18n/ui-aria-labels.d.ts.map +1 -0
- package/dist/types/core/components/ui/alert/alert.d.ts +14 -12
- package/dist/types/core/components/ui/alert/alert.d.ts.map +1 -1
- package/dist/types/core/components/ui/alert-messages/alert-messages.d.ts.map +1 -1
- package/dist/types/core/components/ui/badge/badge.d.ts +1 -1
- package/dist/types/core/components/ui/badge/badge.d.ts.map +1 -1
- package/dist/types/core/components/ui/button/button.d.ts +13 -29
- package/dist/types/core/components/ui/button/button.d.ts.map +1 -1
- package/dist/types/core/components/ui/card/card-header.d.ts.map +1 -1
- package/dist/types/core/components/ui/divider/divider.d.ts +2 -1
- package/dist/types/core/components/ui/divider/divider.d.ts.map +1 -1
- package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts +25 -73
- package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts.map +1 -1
- package/dist/types/core/components/ui/form/input/input.d.ts +14 -29
- package/dist/types/core/components/ui/form/input/input.d.ts.map +1 -1
- package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts +63 -65
- package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts.map +1 -1
- package/dist/types/core/components/ui/form/radio/radio.d.ts +1 -1
- package/dist/types/core/components/ui/form/select/select.d.ts +3 -5
- package/dist/types/core/components/ui/form/select/select.d.ts.map +1 -1
- package/dist/types/core/components/ui/form/textarea/textarea.d.ts +12 -28
- package/dist/types/core/components/ui/form/textarea/textarea.d.ts.map +1 -1
- package/dist/types/core/components/ui/image/image.d.ts +2 -1
- package/dist/types/core/components/ui/image/image.d.ts.map +1 -1
- package/dist/types/core/components/ui/link/link.d.ts +10 -9
- package/dist/types/core/components/ui/link/link.d.ts.map +1 -1
- package/dist/types/core/components/ui/modal/modal-close.d.ts +2 -2
- package/dist/types/core/components/ui/modal/modal-close.d.ts.map +1 -1
- package/dist/types/core/components/ui/pop/pop.d.ts +12 -4
- package/dist/types/core/components/ui/pop/pop.d.ts.map +1 -1
- package/dist/types/core/components/ui/table/table.d.ts +2 -1
- package/dist/types/core/components/ui/table/table.d.ts.map +1 -1
- package/dist/types/core/components/ui/toast/dismissed.d.ts +3 -0
- package/dist/types/core/components/ui/toast/dismissed.d.ts.map +1 -0
- package/dist/types/core/components/ui/toast/render-content.d.ts +7 -0
- package/dist/types/core/components/ui/toast/render-content.d.ts.map +1 -0
- package/dist/types/core/components/ui/toast/toast-item.d.ts +26 -9
- package/dist/types/core/components/ui/toast/toast-item.d.ts.map +1 -1
- package/dist/types/core/components/ui/toast/toast.d.ts +6 -3
- package/dist/types/core/components/ui/toast/toast.d.ts.map +1 -1
- package/dist/types/core/components/ui/toast/types.d.ts +12 -2
- package/dist/types/core/components/ui/toast/types.d.ts.map +1 -1
- package/dist/types/core/components/ui/tooltip/tooltip.d.ts +19 -11
- package/dist/types/core/components/ui/tooltip/tooltip.d.ts.map +1 -1
- package/dist/types/core/decorators/subscriber/ancestorAttribute.d.ts +3 -4
- package/dist/types/core/decorators/subscriber/ancestorAttribute.d.ts.map +1 -1
- package/dist/types/core/decorators/subscriber/derive.d.ts.map +1 -1
- package/dist/types/core/mixins/FormCheckable.d.ts +10 -27
- package/dist/types/core/mixins/FormCheckable.d.ts.map +1 -1
- package/dist/types/core/mixins/FormElement.d.ts +21 -10
- package/dist/types/core/mixins/FormElement.d.ts.map +1 -1
- package/dist/types/core/mixins/FormInput.d.ts +11 -27
- package/dist/types/core/mixins/FormInput.d.ts.map +1 -1
- package/dist/types/core/utils/AncestorAttributeObserver.d.ts +17 -9
- package/dist/types/core/utils/AncestorAttributeObserver.d.ts.map +1 -1
- package/dist/types/core/utils/LocationHandler.d.ts +3 -2
- package/dist/types/core/utils/LocationHandler.d.ts.map +1 -1
- package/dist/types/core/utils/dismissed.d.ts +3 -0
- package/dist/types/core/utils/dismissed.d.ts.map +1 -0
- package/dist/types/core/utils/mediaRef.d.ts +15 -0
- package/dist/types/core/utils/mediaRef.d.ts.map +1 -1
- package/dist/types/core/utils/positioning.d.ts +44 -0
- package/dist/types/core/utils/positioning.d.ts.map +1 -0
- package/dist/types/directives.d.ts +1 -3
- package/dist/types/directives.d.ts.map +1 -1
- package/dist/types/mixins.d.ts +22 -55
- package/dist/types/mixins.d.ts.map +1 -1
- package/docs/assets/{index-FmK4JaIM.js → index-D8MVWqY6.js} +946 -687
- package/docs/assets/index-DiD0qYvE.css +1 -0
- package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +17 -85
- package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +1 -1
- package/docs/crawl/hubs/form-components.html +13 -11
- package/docs/docs-mock-api-sw.js +5 -1
- package/docs/docs-mock-api-sw.js.map +2 -2
- package/docs/index.html +2 -2
- package/docs/llms-full.txt +12 -38
- package/docs/llms.txt +1 -1
- package/docs/src/core/components/functional/sdui/sdui.md +0 -0
- package/docs/src/core/components/ui/form/checkbox/checkbox.md +0 -0
- package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +14 -118
- package/docs/src/docs/_getting-started/create-a-component.md +0 -0
- package/docs/src/docs/_misc/formelement-subscriber-removal.md +1 -1
- package/docs/src/docs/search/docs-search.json +195 -200
- package/docs/src/tsconfig.json +324 -0
- package/gitlab/job_tests.sh +25 -12
- package/index.html +3 -3
- package/package.json +217 -9
- package/public/docs-mock-api-sw.js +5 -1
- package/public/docs-mock-api-sw.js.map +2 -2
- package/scripts/build-addons.mjs +2 -2
- package/scripts/post-build.mjs +9 -0
- package/src/addons/interactive.ts +5 -0
- package/src/core/components/functional/3d/3d.md +34 -1
- package/src/core/components/functional/3d/3d.spec.ts +42 -0
- package/src/core/components/functional/3d/3d.ts +101 -3
- package/src/core/components/functional/3d/constants.ts +1 -0
- package/src/core/components/functional/3d/ensure.ts +11 -3
- package/src/core/components/functional/3d/form-params.ts +2 -0
- package/src/core/components/functional/3d/life.ts +4 -1
- package/src/core/components/functional/3d/out-publish.ts +4 -3
- package/src/core/components/functional/3d/playback.ts +13 -1
- package/src/core/components/functional/3d/post-bind.ts +262 -0
- package/src/core/components/functional/3d/post-channels.spec.ts +36 -0
- package/src/core/components/functional/3d/post-channels.ts +69 -0
- package/src/core/components/functional/3d/post-fx.ts +594 -0
- package/src/core/components/functional/3d/props.ts +45 -0
- package/src/core/components/functional/3d/reload.ts +2 -0
- package/src/core/components/functional/3d/runtime.ts +93 -4
- package/src/core/components/functional/3d/scene-runtime.ts +3 -0
- package/src/core/components/functional/3d/tune.ts +21 -0
- package/src/core/components/functional/3d/types.ts +9 -0
- package/src/core/components/functional/3d/updated.ts +17 -1
- package/src/core/components/functional/if/if.ts +54 -7
- package/src/core/components/functional/interactive/action.ts +84 -0
- package/src/core/components/functional/interactive/gamepad.ts +197 -0
- package/src/core/components/functional/interactive/gesture.ts +136 -0
- package/src/core/components/functional/interactive/helpers.spec.ts +50 -0
- package/src/core/components/functional/interactive/helpers.ts +97 -0
- package/src/core/components/functional/interactive/index.ts +25 -0
- package/src/core/components/functional/interactive/interactive.md +33 -0
- package/src/core/components/functional/interactive/keyboard.ts +171 -0
- package/src/core/components/functional/interactive/matrix.ts +185 -0
- package/src/core/components/functional/interactive/registry.ts +46 -0
- package/src/core/components/functional/interactive/store.ts +264 -0
- package/src/core/components/functional/interactive/ticker.ts +171 -0
- package/src/core/components/functional/list/list.ts +0 -0
- package/src/core/components/functional/shader/gl-runtime.ts +169 -12
- package/src/core/components/functional/shader/shader.md +27 -4
- package/src/core/components/functional/shader/shader.spec.ts +267 -0
- package/src/core/components/functional/shader/shader.ts +177 -55
- package/src/core/components/functional/shader/shadertoy-prelude.ts +49 -5
- package/src/core/components/functional/shader/types.ts +89 -12
- package/src/core/components/functional/subscriber/subscriber.ts +0 -0
- package/src/core/components/functional/value/value.ts +44 -4
- package/src/core/components/functional/webgpu/gl-fallback.ts +28 -4
- package/src/core/components/functional/webgpu/gpu-runtime.ts +154 -18
- package/src/core/components/functional/webgpu/helpers.ts +8 -2
- package/src/core/components/functional/webgpu/webgpu.md +13 -2
- package/src/core/components/functional/webgpu/webgpu.spec.ts +37 -0
- package/src/core/components/functional/webgpu/webgpu.ts +39 -1
- package/src/core/components/ui/_css/rounded.ts +36 -0
- package/src/core/components/ui/_css/type.ts +49 -0
- package/src/core/components/ui/_i18n/ui-aria-labels.ts +104 -0
- package/src/core/components/ui/alert/alert.md +128 -72
- package/src/core/components/ui/alert/alert.spec.ts +145 -0
- package/src/core/components/ui/alert/alert.ts +86 -91
- package/src/core/components/ui/alert-messages/alert-messages.ts +1 -1
- package/src/core/components/ui/badge/badge.md +126 -78
- package/src/core/components/ui/badge/badge.ts +29 -81
- package/src/core/components/ui/button/button.md +1 -0
- package/src/core/components/ui/button/button.ts +12 -10
- package/src/core/components/ui/card/card-header.ts +7 -2
- package/src/core/components/ui/card/card.md +120 -65
- package/src/core/components/ui/divider/divider.ts +4 -9
- package/src/core/components/ui/form/checkbox/checkbox.md +1 -1
- package/src/core/components/ui/form/checkbox/checkbox.ts +4 -20
- package/src/core/components/ui/form/fieldset/legend-description.ts +1 -1
- package/src/core/components/ui/form/fieldset/legend.ts +1 -1
- package/src/core/components/ui/form/input/input.md +1 -1
- package/src/core/components/ui/form/input/input.ts +25 -27
- package/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +14 -118
- package/src/core/components/ui/form/input-autocomplete/input-autocomplete.ts +419 -187
- package/src/core/components/ui/form/radio/radio.ts +1 -1
- package/src/core/components/ui/form/select/select.ts +3 -6
- package/src/core/components/ui/form/textarea/textarea.md +1 -1
- package/src/core/components/ui/form/textarea/textarea.ts +1 -2
- package/src/core/components/ui/image/image.md +147 -53
- package/src/core/components/ui/image/image.ts +10 -44
- package/src/core/components/ui/link/link.md +2 -2
- package/src/core/components/ui/link/link.ts +42 -37
- package/src/core/components/ui/modal/modal-close.ts +8 -12
- package/src/core/components/ui/modal/modal.ts +18 -18
- package/src/core/components/ui/pop/pop.md +105 -1
- package/src/core/components/ui/pop/pop.ts +145 -141
- package/src/core/components/ui/table/table.ts +2 -8
- package/src/core/components/ui/theme/theme.ts +1 -1
- package/src/core/components/ui/toast/dismissed.ts +14 -0
- package/src/core/components/ui/toast/render-content.ts +13 -0
- package/src/core/components/ui/toast/toast-item.ts +179 -103
- package/src/core/components/ui/toast/toast.ts +58 -21
- package/src/core/components/ui/toast/types.ts +14 -2
- package/src/core/components/ui/tooltip/tooltip.ts +176 -154
- package/src/core/decorators/subscriber/ancestorAttribute.spec.ts +26 -0
- package/src/core/decorators/subscriber/ancestorAttribute.ts +3 -4
- package/src/core/decorators/subscriber/derive.ts +3 -3
- package/src/core/mixins/Fetcher.ts +1 -1
- package/src/core/mixins/FormCheckable.ts +1 -8
- package/src/core/mixins/FormElement.ts +74 -76
- package/src/core/mixins/Subscriber.ts +0 -0
- package/src/core/utils/AncestorAttributeObserver.ts +183 -70
- package/src/core/utils/DataBindObserver.ts +0 -0
- package/src/core/utils/LocationHandler.ts +12 -5
- package/src/core/utils/Objects.ts +0 -0
- package/src/core/utils/dismissed.ts +22 -0
- package/src/core/utils/mediaRef.spec.ts +25 -0
- package/src/core/utils/mediaRef.ts +45 -0
- package/src/core/utils/positioning.spec.ts +208 -0
- package/src/core/utils/positioning.ts +183 -0
- package/src/directives.ts +1 -3
- package/src/docs/_core-concept/dataFlow.md +1 -1
- package/src/docs/_decorators/ancestor-attribute.md +3 -2
- package/src/docs/_getting-started/concorde-outside.md +3 -3
- package/src/docs/_misc/formelement-subscriber-removal.md +115 -0
- package/src/docs/_misc/html-integration.md +2 -0
- package/src/docs/_misc/visual-stack.md +19 -1
- package/src/docs/code.ts +3 -1
- package/src/docs/components/docs-demo-sources.ts +88 -0
- package/src/docs/docs.ts +3 -0
- package/src/docs/example/docs-3d-post-depth-demo.ts +68 -0
- package/src/docs/example/docs-3d-webgpu-live-demo.ts +83 -0
- package/src/docs/example/docs-harris-webgpu-demo.ts +53 -55
- package/src/docs/example/docs-input-autocomplete-demos.ts +110 -0
- package/src/docs/mock-api/router.ts +17 -1
- package/src/docs/navigation/navigation.ts +4 -0
- package/src/docs/search/docs-search.json +922 -1762
- package/src/docs/tailwind/css/tailwind.css +13 -6
- package/src/tsconfig.json +162 -6
- package/src/tsconfig.tsbuildinfo +1 -1
- package/tailwind.config.js +50 -3
- package/vite/config.js +23 -35
- package/vite.config.mts +5 -0
- package/vitest.setup.ts +49 -13
- package/docs/assets/index-BZiZXMU-.css +0 -1
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Some hosts (legacy PHP pages, static HTML) embed Concorde components **without** a Lit build step. They can use HTML attributes such as **`data-bind`**, **`dataProvider`**, and **`formDataProvider`** on tags directly in the page.
|
|
4
4
|
|
|
5
|
+
**Form fields** (`sonic-input`, checkbox, select, …) bind only via **`formDataProvider` + `name`**. They do not autofill from ancestor `dataProvider` (Subscriber was removed from FormElement — see [FormElement without Subscriber](#docs/_misc/formelement-subscriber-removal.md/formelement-subscriber-removal)).
|
|
6
|
+
|
|
5
7
|
That style is **not** what we demonstrate in this doc site: live examples are **Lit components** under `src/docs/example/`, registered once and reused from Markdown via tags like `<docs-joke-search-demo>`.
|
|
6
8
|
|
|
7
9
|
| Goal | Use |
|
|
@@ -44,9 +44,27 @@ Also accepted: `<img>`, `<video>`, `<canvas>`, or another Concorde host that imp
|
|
|
44
44
|
|
|
45
45
|
<docs-lit-demo for="docs-3d-shader-live-demo"></docs-lit-demo>
|
|
46
46
|
|
|
47
|
+
## 3D → WebGPU live
|
|
48
|
+
|
|
49
|
+
Same `#id` bridge as the shader: `sonic-webgpu channel0="#plateau-gpu"` copies the 3D canvas each `frameSeq` via `copyExternalImageToTexture` (persistent texture — no recreate when size is stable).
|
|
50
|
+
|
|
51
|
+
<docs-lit-demo for="docs-3d-webgpu-live-demo"></docs-lit-demo>
|
|
52
|
+
|
|
53
|
+
## Post FX + depth (in sonic-3d)
|
|
54
|
+
|
|
55
|
+
Scene → offscreen color + depth → GLSL passes (`post-*`) in the same WebGL context. Use `post-image-ch1="depth"` for edge / DoF-style effects without a second component.
|
|
56
|
+
|
|
57
|
+
<docs-lit-demo for="docs-3d-post-depth-demo"></docs-lit-demo>
|
|
58
|
+
|
|
47
59
|
## Harris → patches → WebGPU
|
|
48
60
|
|
|
49
|
-
`sonic-shader` detects corners (Harris) and extracts patches → `channel0…3` on `sonic-webgpu` (`kernel="image"`): GPU mosaic.
|
|
61
|
+
`sonic-shader` detects corners (Harris, `buffer-format="rgba16f"` + NMS 5×5 / shape filter) and extracts patches → `channel0…3` on `sonic-webgpu` (`kernel="image"`): GPU mosaic.
|
|
62
|
+
|
|
63
|
+
Use `buffer-format="rgba16f"` so signed `IxIy` / non-clamped `Ix²` survive the buffer (RGBA8 zeros negatives and saturates). See [Shader — buffer precision](#core/components/functional/shader/shader.md/shader).
|
|
64
|
+
|
|
65
|
+
Channel rebinds and `release-offscreen="auto"` (keep FBO state when a pass uses `self`) : [Shader — état et visibilité](#core/components/functional/shader/shader.md/shader).
|
|
66
|
+
|
|
67
|
+
`sonic-3d` live sources keep playing off-screen when a `#id` consumer is registered (or `play-offscreen`) — see [3D — bridging](#core/components/functional/3d/3d.md/3d).
|
|
50
68
|
|
|
51
69
|
<docs-lit-demo for="docs-harris-webgpu-demo"></docs-lit-demo>
|
|
52
70
|
|
package/src/docs/code.ts
CHANGED
|
@@ -36,6 +36,8 @@ export class DocsCode extends LitElement {
|
|
|
36
36
|
pre {
|
|
37
37
|
font-size: 13px !important;
|
|
38
38
|
padding-right: 5rem !important;
|
|
39
|
+
border: 1px solid var(--sc-base-200);
|
|
40
|
+
border-radius: var(--sc-rounded);
|
|
39
41
|
}
|
|
40
42
|
.custom-scroll {
|
|
41
43
|
overflow: auto !important;
|
|
@@ -239,7 +241,7 @@ export class DocsCode extends LitElement {
|
|
|
239
241
|
return html`
|
|
240
242
|
<div
|
|
241
243
|
class="relative ${this.language === "markup"
|
|
242
|
-
? "border border-neutral-
|
|
244
|
+
? "rounded-md border border-neutral-200 bg-neutral-50/80 dark:border-neutral-700/80 dark:bg-neutral-900/40 p-4"
|
|
243
245
|
: ""}"
|
|
244
246
|
>
|
|
245
247
|
${this.language === "markup" && !this.noOutput
|
|
@@ -96,6 +96,42 @@ export const DOCS_LIT_DEMO_REGISTRY: Record<string, DocsLitDemoConfig> = {
|
|
|
96
96
|
{ path: "src/docs/example/docs-queue-demos.ts", line: 38, label: "geo" },
|
|
97
97
|
],
|
|
98
98
|
},
|
|
99
|
+
"docs-input-autocomplete-basic-demo": {
|
|
100
|
+
sources: [
|
|
101
|
+
{
|
|
102
|
+
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
103
|
+
line: 11,
|
|
104
|
+
label: "basic",
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
"docs-input-autocomplete-code-demo": {
|
|
109
|
+
sources: [
|
|
110
|
+
{
|
|
111
|
+
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
112
|
+
line: 36,
|
|
113
|
+
label: "code",
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
"docs-input-autocomplete-select-demo": {
|
|
118
|
+
sources: [
|
|
119
|
+
{
|
|
120
|
+
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
121
|
+
line: 63,
|
|
122
|
+
label: "select",
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
},
|
|
126
|
+
"docs-input-autocomplete-keyboard-demo": {
|
|
127
|
+
sources: [
|
|
128
|
+
{
|
|
129
|
+
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
130
|
+
line: 91,
|
|
131
|
+
label: "keyboard",
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
},
|
|
99
135
|
"docs-users-list": {
|
|
100
136
|
sources: [
|
|
101
137
|
{
|
|
@@ -223,6 +259,22 @@ export const DOCS_LIT_DEMO_REGISTRY: Record<string, DocsLitDemoConfig> = {
|
|
|
223
259
|
},
|
|
224
260
|
],
|
|
225
261
|
},
|
|
262
|
+
"docs-3d-webgpu-live-demo": {
|
|
263
|
+
sources: [
|
|
264
|
+
{
|
|
265
|
+
path: "src/docs/example/docs-3d-webgpu-live-demo.ts",
|
|
266
|
+
label: "3D → webgpu live",
|
|
267
|
+
},
|
|
268
|
+
],
|
|
269
|
+
},
|
|
270
|
+
"docs-3d-post-depth-demo": {
|
|
271
|
+
sources: [
|
|
272
|
+
{
|
|
273
|
+
path: "src/docs/example/docs-3d-post-depth-demo.ts",
|
|
274
|
+
label: "3D post depth edges",
|
|
275
|
+
},
|
|
276
|
+
],
|
|
277
|
+
},
|
|
226
278
|
"docs-webgpu-demo": {
|
|
227
279
|
sources: [
|
|
228
280
|
{
|
|
@@ -506,6 +558,18 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
|
|
|
506
558
|
label: "3d → shader live",
|
|
507
559
|
},
|
|
508
560
|
],
|
|
561
|
+
"docs-3d-webgpu-live-demo": [
|
|
562
|
+
{
|
|
563
|
+
path: "src/docs/example/docs-3d-webgpu-live-demo.ts",
|
|
564
|
+
label: "3d → webgpu live",
|
|
565
|
+
},
|
|
566
|
+
],
|
|
567
|
+
"docs-3d-post-depth-demo": [
|
|
568
|
+
{
|
|
569
|
+
path: "src/docs/example/docs-3d-post-depth-demo.ts",
|
|
570
|
+
label: "3d post depth",
|
|
571
|
+
},
|
|
572
|
+
],
|
|
509
573
|
"docs-webgpu-demo": [
|
|
510
574
|
{ path: "src/docs/example/docs-webgpu-demo.ts", label: "webgpu demo" },
|
|
511
575
|
],
|
|
@@ -530,6 +594,30 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
|
|
|
530
594
|
"docs-queue-geo-demo": [
|
|
531
595
|
{ path: "src/docs/example/docs-queue-demos.ts", label: "queue demos" },
|
|
532
596
|
],
|
|
597
|
+
"docs-input-autocomplete-basic-demo": [
|
|
598
|
+
{
|
|
599
|
+
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
600
|
+
label: "autocomplete demos",
|
|
601
|
+
},
|
|
602
|
+
],
|
|
603
|
+
"docs-input-autocomplete-code-demo": [
|
|
604
|
+
{
|
|
605
|
+
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
606
|
+
label: "autocomplete demos",
|
|
607
|
+
},
|
|
608
|
+
],
|
|
609
|
+
"docs-input-autocomplete-select-demo": [
|
|
610
|
+
{
|
|
611
|
+
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
612
|
+
label: "autocomplete demos",
|
|
613
|
+
},
|
|
614
|
+
],
|
|
615
|
+
"docs-input-autocomplete-keyboard-demo": [
|
|
616
|
+
{
|
|
617
|
+
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
618
|
+
label: "autocomplete demos",
|
|
619
|
+
},
|
|
620
|
+
],
|
|
533
621
|
"docs-queue-users-demo": [
|
|
534
622
|
{ path: "src/docs/example/docs-queue-demos.ts", label: "queue demos" },
|
|
535
623
|
],
|
package/src/docs/docs.ts
CHANGED
|
@@ -13,6 +13,7 @@ import "./example/docs-users-list";
|
|
|
13
13
|
import "./example/docs-user-two-scopes";
|
|
14
14
|
import "./example/docs-joke-demos";
|
|
15
15
|
import "./example/docs-queue-demos";
|
|
16
|
+
import "./example/docs-input-autocomplete-demos";
|
|
16
17
|
import "./example/docs-toggle-demos";
|
|
17
18
|
import "./example/docs-list-demos";
|
|
18
19
|
import "./example/docs-jsonata-demos";
|
|
@@ -22,6 +23,8 @@ import "./example/docs-shader-demos";
|
|
|
22
23
|
import "./example/docs-webgpu-demo";
|
|
23
24
|
import "./example/docs-visual-stack-demo";
|
|
24
25
|
import "./example/docs-3d-shader-live-demo";
|
|
26
|
+
import "./example/docs-3d-webgpu-live-demo";
|
|
27
|
+
import "./example/docs-3d-post-depth-demo";
|
|
25
28
|
import "./example/docs-harris-webgpu-demo";
|
|
26
29
|
import "./example/docs-router-demos";
|
|
27
30
|
import "./example/docs-submit-demos";
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Démo Lot 2 : post FX dans sonic-3d avec canal depth (contours).
|
|
3
|
+
*/
|
|
4
|
+
import { css, html, LitElement } from "lit";
|
|
5
|
+
import { customElement } from "lit/decorators.js";
|
|
6
|
+
import { tailwind } from "../tailwind";
|
|
7
|
+
import "../../core/components/functional/3d/3d";
|
|
8
|
+
import { DEMO_3D_STYLES, HELMET_GLB } from "./docs-3d-shared";
|
|
9
|
+
|
|
10
|
+
const DEPTH_EDGE = `
|
|
11
|
+
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
|
|
12
|
+
vec2 uv = fragCoord / iResolution.xy;
|
|
13
|
+
vec2 px = 1.0 / max(iResolution.xy, vec2(1.0));
|
|
14
|
+
vec3 col = texture(iChannel0, uv).rgb;
|
|
15
|
+
|
|
16
|
+
float dC = texture(iChannel1, uv).r;
|
|
17
|
+
float dL = texture(iChannel1, uv - px * vec2(1.0, 0.0)).r;
|
|
18
|
+
float dR = texture(iChannel1, uv + px * vec2(1.0, 0.0)).r;
|
|
19
|
+
float dU = texture(iChannel1, uv + px * vec2(0.0, 1.0)).r;
|
|
20
|
+
float dD = texture(iChannel1, uv - px * vec2(0.0, 1.0)).r;
|
|
21
|
+
float edge = length(vec2(dR - dL, dU - dD));
|
|
22
|
+
edge = smoothstep(0.002 + uParam0 * 0.02, 0.02 + uParam0 * 0.05, edge);
|
|
23
|
+
|
|
24
|
+
vec3 ink = vec3(0.05, 0.95, 1.0);
|
|
25
|
+
col = mix(col, ink, edge * 0.85);
|
|
26
|
+
col *= 0.92 + 0.08 * sin(iTime * 1.5);
|
|
27
|
+
fragColor = vec4(col, 1.0);
|
|
28
|
+
}
|
|
29
|
+
`;
|
|
30
|
+
|
|
31
|
+
@customElement("docs-3d-post-depth-demo")
|
|
32
|
+
export class Docs3dPostDepthDemo extends LitElement {
|
|
33
|
+
static styles = [
|
|
34
|
+
tailwind,
|
|
35
|
+
DEMO_3D_STYLES,
|
|
36
|
+
css`
|
|
37
|
+
sonic-3d {
|
|
38
|
+
width: 100%;
|
|
39
|
+
}
|
|
40
|
+
`,
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
render() {
|
|
44
|
+
return html`
|
|
45
|
+
<div class="flex flex-col gap-2">
|
|
46
|
+
<sonic-3d
|
|
47
|
+
src=${HELMET_GLB}
|
|
48
|
+
camera="orbit"
|
|
49
|
+
auto-rotate
|
|
50
|
+
play
|
|
51
|
+
pick
|
|
52
|
+
min-distance="1"
|
|
53
|
+
max-distance="10"
|
|
54
|
+
aspect-ratio="16/10"
|
|
55
|
+
post-image=${DEPTH_EDGE}
|
|
56
|
+
post-image-ch0="scene"
|
|
57
|
+
post-image-ch1="depth"
|
|
58
|
+
param0="0.55"
|
|
59
|
+
></sonic-3d>
|
|
60
|
+
<p class="text-sm text-neutral-500">
|
|
61
|
+
Post FX interne (<code>post-image</code>) : couleur
|
|
62
|
+
<code>scene</code> + discontinuités sur <code>depth</code> — pas de
|
|
63
|
+
copie vers un second composant.
|
|
64
|
+
</p>
|
|
65
|
+
</div>
|
|
66
|
+
`;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Démo pont live : sonic-3d → sonic-webgpu via channel0="#plateau-gpu"
|
|
3
|
+
* (copyExternalImageToTexture chaque frameSeq, texture réutilisée).
|
|
4
|
+
*/
|
|
5
|
+
import { css, html, LitElement } from "lit";
|
|
6
|
+
import { customElement } from "lit/decorators.js";
|
|
7
|
+
import { tailwind } from "../tailwind";
|
|
8
|
+
import "../../core/components/functional/3d/3d";
|
|
9
|
+
import "../../core/components/functional/webgpu/webgpu";
|
|
10
|
+
import { DEMO_3D_STYLES, HELMET_GLB } from "./docs-3d-shared";
|
|
11
|
+
|
|
12
|
+
/** Tint + vignette — prouve le sampling live du canvas 3D. */
|
|
13
|
+
const LIVE_WGSL = `
|
|
14
|
+
fn mainImage(uv: vec2f, fragCoord: vec2f) -> vec4f {
|
|
15
|
+
_ = fragCoord;
|
|
16
|
+
let c = iChannel0(uv).rgb;
|
|
17
|
+
let mid = uv - vec2f(0.5);
|
|
18
|
+
let vig = smoothstep(1.1, 0.35, length(mid));
|
|
19
|
+
let pulse = 0.92 + 0.08 * sin(u.time * 2.0);
|
|
20
|
+
let tint = vec3f(0.15, 0.85, 1.0);
|
|
21
|
+
let edge = length(c - iChannel0(uv + mid * 0.012).rgb);
|
|
22
|
+
var col = mix(c, c * tint * 1.15, clamp(edge * 4.0, 0.0, 0.55));
|
|
23
|
+
col *= vig * pulse;
|
|
24
|
+
return vec4f(col, 1.0);
|
|
25
|
+
}
|
|
26
|
+
`;
|
|
27
|
+
|
|
28
|
+
@customElement("docs-3d-webgpu-live-demo")
|
|
29
|
+
export class Docs3dWebgpuLiveDemo extends LitElement {
|
|
30
|
+
static styles = [
|
|
31
|
+
tailwind,
|
|
32
|
+
DEMO_3D_STYLES,
|
|
33
|
+
css`
|
|
34
|
+
.grid {
|
|
35
|
+
display: grid;
|
|
36
|
+
gap: 0.75rem;
|
|
37
|
+
grid-template-columns: 1fr;
|
|
38
|
+
}
|
|
39
|
+
@media (min-width: 720px) {
|
|
40
|
+
.grid {
|
|
41
|
+
grid-template-columns: 1fr 1fr;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
sonic-3d,
|
|
45
|
+
sonic-webgpu {
|
|
46
|
+
width: 100%;
|
|
47
|
+
border-radius: 0.5rem;
|
|
48
|
+
overflow: hidden;
|
|
49
|
+
}
|
|
50
|
+
`,
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
render() {
|
|
54
|
+
return html`
|
|
55
|
+
<div class="flex flex-col gap-2">
|
|
56
|
+
<div class="grid">
|
|
57
|
+
<sonic-3d
|
|
58
|
+
id="plateau-gpu"
|
|
59
|
+
src=${HELMET_GLB}
|
|
60
|
+
camera="orbit"
|
|
61
|
+
auto-rotate
|
|
62
|
+
play
|
|
63
|
+
min-distance="1"
|
|
64
|
+
max-distance="10"
|
|
65
|
+
aspect-ratio="16/10"
|
|
66
|
+
></sonic-3d>
|
|
67
|
+
<sonic-webgpu
|
|
68
|
+
play
|
|
69
|
+
kernel="image"
|
|
70
|
+
channel0="#plateau-gpu"
|
|
71
|
+
.shader=${LIVE_WGSL}
|
|
72
|
+
aspect-ratio="16/10"
|
|
73
|
+
></sonic-webgpu>
|
|
74
|
+
</div>
|
|
75
|
+
<p class="text-sm text-neutral-500">
|
|
76
|
+
Live bridge: <code>channel0="#plateau-gpu"</code> →
|
|
77
|
+
<code>copyExternalImageToTexture</code> (texture persistante, pas de
|
|
78
|
+
JPEG). Gauche = <code>sonic-3d</code>, droite = tint / edge WebGPU.
|
|
79
|
+
</p>
|
|
80
|
+
</div>
|
|
81
|
+
`;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -17,6 +17,7 @@ const sample = (file: string) =>
|
|
|
17
17
|
new URL(`/docs/shader-samples/${file}`, location.origin).href;
|
|
18
18
|
|
|
19
19
|
const HARRIS_BUFFER_A = `
|
|
20
|
+
// Tenseur structure (Ix², Iy², IxIy) — nécessite buffer-format=rgba16f (IxIy signé).
|
|
20
21
|
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
|
|
21
22
|
vec2 uv = fragCoord / iResolution.xy;
|
|
22
23
|
vec2 px = 1.0 / iResolution.xy;
|
|
@@ -30,11 +31,12 @@ void mainImage(out vec4 fragColor, in vec2 fragCoord) {
|
|
|
30
31
|
float br = dot(texture(iChannel0, uv + px * vec2( 1.0, -1.0)).rgb, vec3(0.299, 0.587, 0.114));
|
|
31
32
|
float Ix = (tr + 2.0 * r + br) - (tl + 2.0 * l + bl);
|
|
32
33
|
float Iy = (tl + 2.0 * t + tr) - (bl + 2.0 * b + br);
|
|
33
|
-
fragColor = vec4(Ix * Ix, Iy * Iy, Ix * Iy, 1.0)
|
|
34
|
+
fragColor = vec4(Ix * Ix, Iy * Iy, Ix * Iy, 1.0);
|
|
34
35
|
}
|
|
35
36
|
`;
|
|
36
37
|
|
|
37
38
|
const HARRIS_BUFFER_B = `
|
|
39
|
+
// Lissage gaussien 5×5 du tenseur (σ ≈ 1.26).
|
|
38
40
|
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
|
|
39
41
|
vec2 uv = fragCoord / iResolution.xy;
|
|
40
42
|
vec2 px = 1.0 / iResolution.xy;
|
|
@@ -51,58 +53,50 @@ void mainImage(out vec4 fragColor, in vec2 fragCoord) {
|
|
|
51
53
|
}
|
|
52
54
|
`;
|
|
53
55
|
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
+
const HARRIS_EXTRACT_MASK = `
|
|
57
|
+
// Réponse Harris + filtre de forme + max local STRICT 5×5 (départage par position).
|
|
58
|
+
float harrisAt(vec2 uv) {
|
|
56
59
|
vec3 t = texture(iChannel0, uv).rgb;
|
|
57
60
|
float k = max(uParam1, 0.001);
|
|
58
61
|
float det = t.x * t.y - t.z * t.z;
|
|
59
62
|
float trace = t.x + t.y;
|
|
60
|
-
|
|
63
|
+
float R = det - k * trace * trace;
|
|
64
|
+
// Forme ≈ 4 det / trace² ∈ [0,1] : ~1 coin isotropique, ~0 bord.
|
|
65
|
+
float shape = (trace > 1e-5) ? clamp(4.0 * det / (trace * trace), 0.0, 1.0) : 0.0;
|
|
66
|
+
if (R < max(uParam0, 1e-6) || shape < 0.45) return 0.0;
|
|
67
|
+
return R;
|
|
61
68
|
}
|
|
62
69
|
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
|
|
63
70
|
vec2 uv = fragCoord / iResolution.xy;
|
|
64
71
|
vec2 px = 1.0 / iResolution.xy;
|
|
65
|
-
|
|
66
|
-
float
|
|
67
|
-
float
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
float R = harrisAt(uv);
|
|
73
|
+
float thr = max(uParam0, 1e-6);
|
|
74
|
+
float isMax = step(thr, R);
|
|
75
|
+
for (int j = -2; j <= 2; j++) {
|
|
76
|
+
for (int i = -2; i <= 2; i++) {
|
|
77
|
+
if (i == 0 && j == 0) continue;
|
|
78
|
+
float n = harrisAt(uv + px * vec2(float(i), float(j)));
|
|
79
|
+
bool before = j < 0 || (j == 0 && i < 0);
|
|
80
|
+
if (n > R || (before && abs(n - R) < 1e-8)) isMax = 0.0;
|
|
73
81
|
}
|
|
74
82
|
}
|
|
75
|
-
float
|
|
76
|
-
float
|
|
77
|
-
|
|
78
|
-
col = mix(col, vec3(0.15, 1.0, 0.45), isCorner * overlay);
|
|
79
|
-
fragColor = vec4(col, 1.0);
|
|
83
|
+
float Rp = max(R, 0.0);
|
|
84
|
+
float score = isMax * (Rp / (Rp + thr * 4.0));
|
|
85
|
+
fragColor = vec4(vec3(score), 1.0);
|
|
80
86
|
}
|
|
81
87
|
`;
|
|
82
88
|
|
|
83
|
-
const
|
|
84
|
-
float harrisR(vec2 uv) {
|
|
85
|
-
vec3 t = texture(iChannel0, uv).rgb;
|
|
86
|
-
float k = max(uParam1, 0.001);
|
|
87
|
-
float det = t.x * t.y - t.z * t.z;
|
|
88
|
-
float trace = t.x + t.y;
|
|
89
|
-
return det - k * trace * trace;
|
|
90
|
-
}
|
|
89
|
+
const HARRIS_IMAGE = `
|
|
91
90
|
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
|
|
92
91
|
vec2 uv = fragCoord / iResolution.xy;
|
|
93
|
-
|
|
94
|
-
float
|
|
95
|
-
float
|
|
96
|
-
float
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
float isCorner = step(thr, R) * step(Rmax - 1e-6, R);
|
|
103
|
-
float Rp = max(R, 0.0);
|
|
104
|
-
float score = isCorner * (Rp / (Rp + thr * 3.0));
|
|
105
|
-
fragColor = vec4(vec3(score), 1.0);
|
|
92
|
+
vec3 video = texture(iChannel1, uv).rgb;
|
|
93
|
+
float score = texture(iChannel0, uv).r;
|
|
94
|
+
float overlay = clamp(uParam2, 0.0, 1.0);
|
|
95
|
+
float heat = smoothstep(0.05, 0.55, score);
|
|
96
|
+
vec3 col = mix(video, video * vec3(1.12, 0.4, 1.05) + vec3(0.28, 0.04, 0.35) * heat, heat * overlay * 0.55);
|
|
97
|
+
// Points isolés (pas de traînées de bords).
|
|
98
|
+
col = mix(col, vec3(0.12, 1.0, 0.42), step(0.08, score) * overlay);
|
|
99
|
+
fragColor = vec4(col, 1.0);
|
|
106
100
|
}
|
|
107
101
|
`;
|
|
108
102
|
|
|
@@ -285,9 +279,9 @@ export class DocsHarrisWebgpuDemo extends LitElement {
|
|
|
285
279
|
if (this.active) return;
|
|
286
280
|
this.active = true;
|
|
287
281
|
set(shaderKey, {
|
|
288
|
-
param0: 0.
|
|
289
|
-
param1: 0.
|
|
290
|
-
param2: 0.
|
|
282
|
+
param0: 0.015,
|
|
283
|
+
param1: 0.05,
|
|
284
|
+
param2: 0.9,
|
|
291
285
|
extractCount: 0,
|
|
292
286
|
extractSeq: 0,
|
|
293
287
|
extracts: [],
|
|
@@ -299,7 +293,7 @@ export class DocsHarrisWebgpuDemo extends LitElement {
|
|
|
299
293
|
.map((it) => it.blobUrl || it.url)
|
|
300
294
|
.filter((u): u is string => typeof u === "string" && u.length > 0)
|
|
301
295
|
.slice(0, 4);
|
|
302
|
-
this.patches = items.slice(0,
|
|
296
|
+
this.patches = items.slice(0, 8);
|
|
303
297
|
set(gpuKey, {
|
|
304
298
|
param0: 0.55,
|
|
305
299
|
param1: Math.max(1, urls.length),
|
|
@@ -331,7 +325,7 @@ export class DocsHarrisWebgpuDemo extends LitElement {
|
|
|
331
325
|
.map((it) => it.blobUrl || it.url)
|
|
332
326
|
.filter((u): u is string => typeof u === "string" && u.length > 0)
|
|
333
327
|
.slice(0, 4);
|
|
334
|
-
this.patches = items.slice(0,
|
|
328
|
+
this.patches = items.slice(0, 8);
|
|
335
329
|
set(gpuKey, {
|
|
336
330
|
param0: 0.55,
|
|
337
331
|
param1: Math.max(1, urls.length),
|
|
@@ -355,8 +349,8 @@ export class DocsHarrisWebgpuDemo extends LitElement {
|
|
|
355
349
|
<span class="text-neutral-400">(mosaïque)</span>
|
|
356
350
|
</div>
|
|
357
351
|
<p class="m-0 text-sm text-neutral-600">
|
|
358
|
-
Vidéo →
|
|
359
|
-
|
|
352
|
+
Vidéo → Harris (<code>rgba16f</code>, NMS 5×5 + filtre forme) →
|
|
353
|
+
crops → collage GPU. Coins isolés, pas de traînées sur les bords.
|
|
360
354
|
</p>
|
|
361
355
|
<sonic-button type="primary" size="sm" @click=${this.start}
|
|
362
356
|
>Try</sonic-button
|
|
@@ -388,8 +382,8 @@ export class DocsHarrisWebgpuDemo extends LitElement {
|
|
|
388
382
|
type="range"
|
|
389
383
|
name="param0"
|
|
390
384
|
min="0.002"
|
|
391
|
-
max="0.
|
|
392
|
-
step="0.
|
|
385
|
+
max="0.06"
|
|
386
|
+
step="0.001"
|
|
393
387
|
class="flex-1"
|
|
394
388
|
></sonic-input>
|
|
395
389
|
</div>
|
|
@@ -399,7 +393,7 @@ export class DocsHarrisWebgpuDemo extends LitElement {
|
|
|
399
393
|
type="range"
|
|
400
394
|
name="param1"
|
|
401
395
|
min="0.02"
|
|
402
|
-
max="0.
|
|
396
|
+
max="0.12"
|
|
403
397
|
step="0.005"
|
|
404
398
|
class="flex-1"
|
|
405
399
|
></sonic-input>
|
|
@@ -409,19 +403,21 @@ export class DocsHarrisWebgpuDemo extends LitElement {
|
|
|
409
403
|
<div class="stack">
|
|
410
404
|
<div class="label-bar">
|
|
411
405
|
<span
|
|
412
|
-
><code>sonic-shader</code> Harris
|
|
406
|
+
><code>sonic-shader</code> Harris
|
|
407
|
+
<code>rgba16f</code> + extract</span
|
|
413
408
|
>
|
|
414
|
-
<span class="text-neutral-400">coins → peaks</span>
|
|
409
|
+
<span class="text-neutral-400">coins isolés → peaks</span>
|
|
415
410
|
</div>
|
|
416
411
|
<sonic-shader
|
|
417
412
|
play
|
|
413
|
+
buffer-format="rgba16f"
|
|
418
414
|
.mouse=${false}
|
|
419
415
|
extract
|
|
420
416
|
extract-bitmaps
|
|
421
417
|
extract-mask="buffer-c"
|
|
422
418
|
extract-source="image"
|
|
423
|
-
extract-threshold="0.
|
|
424
|
-
extract-max="
|
|
419
|
+
extract-threshold="0.08"
|
|
420
|
+
extract-max="8"
|
|
425
421
|
extract-patch="56"
|
|
426
422
|
extract-interval="400"
|
|
427
423
|
extract-data-provider=${shaderKey.path}
|
|
@@ -430,7 +426,7 @@ export class DocsHarrisWebgpuDemo extends LitElement {
|
|
|
430
426
|
buffer-a-ch0=${video}
|
|
431
427
|
buffer-b-ch0="buffer-a"
|
|
432
428
|
buffer-c-ch0="buffer-b"
|
|
433
|
-
image-ch0="buffer-
|
|
429
|
+
image-ch0="buffer-c"
|
|
434
430
|
image-ch1=${video}
|
|
435
431
|
.bufferA=${HARRIS_BUFFER_A}
|
|
436
432
|
.bufferB=${HARRIS_BUFFER_B}
|
|
@@ -473,8 +469,10 @@ export class DocsHarrisWebgpuDemo extends LitElement {
|
|
|
473
469
|
</div>
|
|
474
470
|
|
|
475
471
|
<p class="m-0 text-xs text-neutral-500">
|
|
476
|
-
|
|
477
|
-
|
|
472
|
+
<code>buffer-format="rgba16f"</code> conserve
|
|
473
|
+
<code>IxIy</code> signé ; NMS 5×5 + forme
|
|
474
|
+
<code>4·det/trace²</code> → points isolés. Extract → DP →
|
|
475
|
+
<code>channel0…3</code>.
|
|
478
476
|
</p>
|
|
479
477
|
</div>
|
|
480
478
|
`;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { html, LitElement } from "lit";
|
|
2
|
+
import { customElement } from "lit/decorators.js";
|
|
3
|
+
import { DOCS_MOCK_GEO_SERVICE } from "../mock-api/urls";
|
|
4
|
+
|
|
5
|
+
import "../../core/components/ui/form/input-autocomplete/input-autocomplete";
|
|
6
|
+
import "../../core/components/ui/menu/menu-item";
|
|
7
|
+
|
|
8
|
+
type CommuneRow = { nom: string; code: string };
|
|
9
|
+
|
|
10
|
+
/** Ligne suggestion : pas de radio/name (évite d'écrire dans le form au render). */
|
|
11
|
+
const communeItem =
|
|
12
|
+
(valueKey: "nom" | "code") => (item: CommuneRow) =>
|
|
13
|
+
html`<sonic-menu-item
|
|
14
|
+
data-autocomplete-value=${item[valueKey]}
|
|
15
|
+
data-autocomplete-label=${item.nom}
|
|
16
|
+
>${item.nom}</sonic-menu-item
|
|
17
|
+
>`;
|
|
18
|
+
|
|
19
|
+
@customElement("docs-input-autocomplete-basic-demo")
|
|
20
|
+
export class DocsInputAutocompleteBasicDemo extends LitElement {
|
|
21
|
+
private items = communeItem("nom");
|
|
22
|
+
|
|
23
|
+
render() {
|
|
24
|
+
return html`
|
|
25
|
+
<sonic-input-autocomplete
|
|
26
|
+
class="w-64"
|
|
27
|
+
label="Ville"
|
|
28
|
+
formDataProvider="autoComplete-example-base"
|
|
29
|
+
name="nom"
|
|
30
|
+
placeholder="Paris, Lyon, Tours, ..."
|
|
31
|
+
serviceURL=${DOCS_MOCK_GEO_SERVICE}
|
|
32
|
+
dataProviderExpression="communes?limit=5"
|
|
33
|
+
.items=${this.items}
|
|
34
|
+
></sonic-input-autocomplete>
|
|
35
|
+
`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@customElement("docs-input-autocomplete-code-demo")
|
|
40
|
+
export class DocsInputAutocompleteCodeDemo extends LitElement {
|
|
41
|
+
private items = communeItem("code");
|
|
42
|
+
|
|
43
|
+
render() {
|
|
44
|
+
return html`
|
|
45
|
+
<sonic-input-autocomplete
|
|
46
|
+
class="w-64"
|
|
47
|
+
label="Ville (code INSEE)"
|
|
48
|
+
formDataProvider="autoComplete-example"
|
|
49
|
+
name="code"
|
|
50
|
+
value="13055"
|
|
51
|
+
placeholder="Paris, Lyon, Tours, ..."
|
|
52
|
+
serviceURL=${DOCS_MOCK_GEO_SERVICE}
|
|
53
|
+
dataProviderExpression="communes?limit=5"
|
|
54
|
+
searchParameter="nom"
|
|
55
|
+
.items=${this.items}
|
|
56
|
+
></sonic-input-autocomplete>
|
|
57
|
+
`;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@customElement("docs-input-autocomplete-select-demo")
|
|
62
|
+
export class DocsInputAutocompleteSelectDemo extends LitElement {
|
|
63
|
+
private items = communeItem("code");
|
|
64
|
+
|
|
65
|
+
render() {
|
|
66
|
+
return html`
|
|
67
|
+
<sonic-input-autocomplete
|
|
68
|
+
select
|
|
69
|
+
class="w-64"
|
|
70
|
+
label="Ville (select)"
|
|
71
|
+
formDataProvider="autoComplete-example2"
|
|
72
|
+
name="code"
|
|
73
|
+
value="69123"
|
|
74
|
+
placeholder="Paris, Lyon, Tours, ..."
|
|
75
|
+
serviceURL=${DOCS_MOCK_GEO_SERVICE}
|
|
76
|
+
dataProviderExpression="communes?limit=5"
|
|
77
|
+
searchParameter="nom"
|
|
78
|
+
.items=${this.items}
|
|
79
|
+
></sonic-input-autocomplete>
|
|
80
|
+
`;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
@customElement("docs-input-autocomplete-keyboard-demo")
|
|
85
|
+
export class DocsInputAutocompleteKeyboardDemo extends LitElement {
|
|
86
|
+
private items = (item: CommuneRow) =>
|
|
87
|
+
html`<sonic-menu-item
|
|
88
|
+
data-keyboard-nav="nav-autocomplete"
|
|
89
|
+
data-autocomplete-value=${item.nom}
|
|
90
|
+
data-autocomplete-label=${item.nom}
|
|
91
|
+
>${item.nom}</sonic-menu-item
|
|
92
|
+
>`;
|
|
93
|
+
|
|
94
|
+
render() {
|
|
95
|
+
return html`
|
|
96
|
+
<sonic-input-autocomplete
|
|
97
|
+
class="w-64"
|
|
98
|
+
label="Ville"
|
|
99
|
+
formDataProvider="autoComplete-example-keyboard"
|
|
100
|
+
name="nom"
|
|
101
|
+
data-keyboard-nav="nav-autocomplete"
|
|
102
|
+
placeholder="Paris, Lyon, Tours, ..."
|
|
103
|
+
serviceURL=${DOCS_MOCK_GEO_SERVICE}
|
|
104
|
+
dataProviderExpression="communes?limit=60"
|
|
105
|
+
minSearchLength="1"
|
|
106
|
+
.items=${this.items}
|
|
107
|
+
></sonic-input-autocomplete>
|
|
108
|
+
`;
|
|
109
|
+
}
|
|
110
|
+
}
|