dash-splash-plugin 0.1.0__py3-none-any.whl
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.
- dash_splash_plugin/__init__.py +26 -0
- dash_splash_plugin/_catalog.py +538 -0
- dash_splash_plugin/plugin.py +524 -0
- dash_splash_plugin/py.typed +0 -0
- dash_splash_plugin/resources/licenses/SOURCES.json +4 -0
- dash_splash_plugin/resources/licenses/UPSTREAM-INVENTORY.md +44 -0
- dash_splash_plugin/resources/licenses/dash-loading-components-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/dash-loading-components-NOTICE.txt +51 -0
- dash_splash_plugin/resources/licenses/loading-ui-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__alerix_m3-loading-indicator-LICENSE.txt +202 -0
- dash_splash_plugin/resources/licenses/node_modules__alerix_m3-loading-indicator-NOTICE.txt +16 -0
- dash_splash_plugin/resources/licenses/node_modules__ant-design_colors-LICENSE.txt +22 -0
- dash_splash_plugin/resources/licenses/node_modules__ant-design_cssinjs-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__ant-design_cssinjs-utils-LICENSE.txt +20 -0
- dash_splash_plugin/resources/licenses/node_modules__ant-design_fast-color-LICENSE.txt +20 -0
- dash_splash_plugin/resources/licenses/node_modules__ant-design_icons-LICENSE.txt +22 -0
- dash_splash_plugin/resources/licenses/node_modules__ant-design_react-slick-LICENSE.txt +22 -0
- dash_splash_plugin/resources/licenses/node_modules__babel_runtime-LICENSE.txt +22 -0
- dash_splash_plugin/resources/licenses/node_modules__emotion_hash-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__emotion_is-prop-valid-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__emotion_memoize-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__emotion_unitless-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_async-validator-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_cascader-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_cascader-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_checkbox-LICENSE.md.txt +7 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_collapse-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_color-picker-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_context-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_dialog-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_drawer-LICENSE.txt +22 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_dropdown-LICENSE.txt +20 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_form-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_image-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_image-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_input-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_input-number-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_listy-LICENSE.txt +20 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_mentions-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_mentions-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_menu-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_menu-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_mini-decimal-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_motion-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_mutate-observer-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_notification-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_notification-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_overflow-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_pagination-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_picker-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_picker-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_portal-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_progress-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_progress-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_qrcode-LICENSE.txt +20 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_rate-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_resize-observer-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_segmented-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_segmented-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_segmented_node_modules__babel_runtime-LICENSE.txt +22 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_select-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_select-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_slider-LICENSE.txt +20 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_steps-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_steps-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_switch-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_table-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_table-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_tabs-LICENSE.md.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_tabs-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_tooltip-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_tour-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_tree-LICENSE.md.txt +22 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_tree-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_tree-select-LICENSE.md.txt +22 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_tree-select-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_trigger-LICENSE.txt +20 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_upload-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_util-LICENSE.txt +22 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_util_node_modules_react-is-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_virtual-list-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__rc-component_virtual-list_node_modules__babel_runtime-LICENSE.txt +22 -0
- dash_splash_plugin/resources/licenses/node_modules__types_prop-types-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__types_react-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules__types_react-dom-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_antd-LICENSE.txt +22 -0
- dash_splash_plugin/resources/licenses/node_modules_camelize-LICENSE.txt +18 -0
- dash_splash_plugin/resources/licenses/node_modules_clsx-license.txt +9 -0
- dash_splash_plugin/resources/licenses/node_modules_compute-scroll-into-view-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_css-color-keywords-LICENSE.txt +15 -0
- dash_splash_plugin/resources/licenses/node_modules_css-to-react-native-LICENSE.md.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_csstype-LICENSE.txt +19 -0
- dash_splash_plugin/resources/licenses/node_modules_dayjs-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_flicker-dot-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_framer-motion-LICENSE.md.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_gridora-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_js-tokens-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_json2mq-LICENSE.txt +22 -0
- dash_splash_plugin/resources/licenses/node_modules_ldrs-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_loadersz-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_loose-envify-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_motion-LICENSE.md.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_motion-dom-LICENSE.md.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_motion-utils-LICENSE.md.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_object-assign-license.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_postcss-value-parser-LICENSE.txt +22 -0
- dash_splash_plugin/resources/licenses/node_modules_premium-react-loaders-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_prop-types-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_react-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_react-dom-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_react-epic-spinners-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_react-is-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_react-loader-spinner-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_react-loading-indicators-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_react-spinners-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_scheduler-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_scroll-into-view-if-needed-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_spinners-react-LICENSE.md.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_string-convert-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_styled-components-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_stylis-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_thinking-orbs-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/node_modules_throttle-debounce-LICENSE.md.txt +45 -0
- dash_splash_plugin/resources/licenses/node_modules_tinycolor2-LICENSE.txt +20 -0
- dash_splash_plugin/resources/licenses/node_modules_tslib-LICENSE.txt.txt +12 -0
- dash_splash_plugin/resources/licenses/scripts_react19_node_modules_loading-dev-LICENSE.md.txt +21 -0
- dash_splash_plugin/resources/licenses/scripts_react19_node_modules_react-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/scripts_react19_node_modules_react-dom-LICENSE.txt +21 -0
- dash_splash_plugin/resources/licenses/scripts_react19_node_modules_scheduler-LICENSE.txt +21 -0
- dash_splash_plugin/resources/manifest.json +57430 -0
- dash_splash_plugin/resources/react/loader-0-VIVLENDE.js +1 -0
- dash_splash_plugin/resources/react/loader-1-N6KHCHAU.js +1 -0
- dash_splash_plugin/resources/react/loader-10-5FIMCSU3.js +1 -0
- dash_splash_plugin/resources/react/loader-10-JOPQFXQB.css +1 -0
- dash_splash_plugin/resources/react/loader-100-WRPTEIAR.js +1 -0
- dash_splash_plugin/resources/react/loader-101-NI35QNCM.js +1 -0
- dash_splash_plugin/resources/react/loader-102-UMSTUCRX.js +1 -0
- dash_splash_plugin/resources/react/loader-103-BOBNXEEG.js +3 -0
- dash_splash_plugin/resources/react/loader-104-MA6WLBJR.js +1 -0
- dash_splash_plugin/resources/react/loader-105-WOMPW7RH.js +1 -0
- dash_splash_plugin/resources/react/loader-106-IMARWTEC.js +1 -0
- dash_splash_plugin/resources/react/loader-107-LUWABWK6.js +1 -0
- dash_splash_plugin/resources/react/loader-108-ALXCFGTW.js +1 -0
- dash_splash_plugin/resources/react/loader-109-LFFUH2CF.js +1 -0
- dash_splash_plugin/resources/react/loader-11-PKKDWJRW.js +1 -0
- dash_splash_plugin/resources/react/loader-110-L5RJNRTQ.js +1 -0
- dash_splash_plugin/resources/react/loader-111-O5TGLCOW.js +1 -0
- dash_splash_plugin/resources/react/loader-112-UHUPVKDM.js +1 -0
- dash_splash_plugin/resources/react/loader-113-TSXKK7JO.js +1 -0
- dash_splash_plugin/resources/react/loader-114-3AGVXVMG.css +2 -0
- dash_splash_plugin/resources/react/loader-114-JFR43WMS.js +12 -0
- dash_splash_plugin/resources/react/loader-115-4AOU5LIY.css +2 -0
- dash_splash_plugin/resources/react/loader-115-JUNV44H3.js +1 -0
- dash_splash_plugin/resources/react/loader-116-IA72555N.js +7 -0
- dash_splash_plugin/resources/react/loader-116-M5G5ZWNB.css +2 -0
- dash_splash_plugin/resources/react/loader-117-IZO5H5HG.css +2 -0
- dash_splash_plugin/resources/react/loader-117-WNOM5ONN.js +14 -0
- dash_splash_plugin/resources/react/loader-118-Z5F3ZKYN.css +2 -0
- dash_splash_plugin/resources/react/loader-118-ZPRC2GR4.js +1 -0
- dash_splash_plugin/resources/react/loader-119-QGX6IEPZ.js +14 -0
- dash_splash_plugin/resources/react/loader-119-TVNBITTY.css +2 -0
- dash_splash_plugin/resources/react/loader-12-ICB6VE5X.js +1 -0
- dash_splash_plugin/resources/react/loader-120-QNU4QFYU.css +2 -0
- dash_splash_plugin/resources/react/loader-120-SDYITMFR.js +11 -0
- dash_splash_plugin/resources/react/loader-121-SR3BHIPG.js +11 -0
- dash_splash_plugin/resources/react/loader-121-V7XJDX5B.css +2 -0
- dash_splash_plugin/resources/react/loader-122-2TBCSNHY.js +69 -0
- dash_splash_plugin/resources/react/loader-122-MZNWTUSI.css +2 -0
- dash_splash_plugin/resources/react/loader-123-F26LQLHM.css +2 -0
- dash_splash_plugin/resources/react/loader-123-PBKMZKOZ.js +11 -0
- dash_splash_plugin/resources/react/loader-124-DY7LOBRX.css +2 -0
- dash_splash_plugin/resources/react/loader-124-IXIMKQXG.js +11 -0
- dash_splash_plugin/resources/react/loader-125-BVM7HDP6.js +1 -0
- dash_splash_plugin/resources/react/loader-125-VGO2NOYM.css +2 -0
- dash_splash_plugin/resources/react/loader-126-ENRK7M2D.css +2 -0
- dash_splash_plugin/resources/react/loader-126-MMEBIXD6.js +15 -0
- dash_splash_plugin/resources/react/loader-127-EOJQ3GDC.js +24 -0
- dash_splash_plugin/resources/react/loader-127-NRBOYTQX.css +2 -0
- dash_splash_plugin/resources/react/loader-128-O44KASJ3.css +2 -0
- dash_splash_plugin/resources/react/loader-128-QZM5SS4J.js +12 -0
- dash_splash_plugin/resources/react/loader-129-FUVAS2EW.css +2 -0
- dash_splash_plugin/resources/react/loader-129-XNESF23S.js +7 -0
- dash_splash_plugin/resources/react/loader-13-OGPEPMHP.js +1 -0
- dash_splash_plugin/resources/react/loader-130-IG76RIX6.css +2 -0
- dash_splash_plugin/resources/react/loader-130-J3ZU3UCU.js +7 -0
- dash_splash_plugin/resources/react/loader-131-2NRSM7YT.css +2 -0
- dash_splash_plugin/resources/react/loader-131-VBJOI6PC.js +36 -0
- dash_splash_plugin/resources/react/loader-132-AHYS3RQB.js +36 -0
- dash_splash_plugin/resources/react/loader-132-CVKNKKTR.css +2 -0
- dash_splash_plugin/resources/react/loader-133-4BZWZD4R.js +7 -0
- dash_splash_plugin/resources/react/loader-133-ZZWERVBI.css +2 -0
- dash_splash_plugin/resources/react/loader-134-S646LD5W.js +1 -0
- dash_splash_plugin/resources/react/loader-134-WNPGKWWH.css +2 -0
- dash_splash_plugin/resources/react/loader-135-5K76CEXY.css +2 -0
- dash_splash_plugin/resources/react/loader-135-C76B27AJ.js +11 -0
- dash_splash_plugin/resources/react/loader-136-CPHFELRF.css +2 -0
- dash_splash_plugin/resources/react/loader-136-ZXXWTVQ7.js +1 -0
- dash_splash_plugin/resources/react/loader-137-QBFF7PQZ.css +2 -0
- dash_splash_plugin/resources/react/loader-137-QXRJ4QHZ.js +14 -0
- dash_splash_plugin/resources/react/loader-138-BPN66P6S.js +14 -0
- dash_splash_plugin/resources/react/loader-138-YGIX7XHL.css +2 -0
- dash_splash_plugin/resources/react/loader-139-NMYASBUV.js +11 -0
- dash_splash_plugin/resources/react/loader-139-XWF76VQV.css +2 -0
- dash_splash_plugin/resources/react/loader-14-4PJXLU65.js +1 -0
- dash_splash_plugin/resources/react/loader-140-2QKVKL25.js +7 -0
- dash_splash_plugin/resources/react/loader-140-F4ANSRIX.css +2 -0
- dash_splash_plugin/resources/react/loader-141-47RWLHAH.css +2 -0
- dash_splash_plugin/resources/react/loader-141-XHQW3GPT.js +1 -0
- dash_splash_plugin/resources/react/loader-142-AESXWIJ6.css +2 -0
- dash_splash_plugin/resources/react/loader-142-AHNDS455.js +11 -0
- dash_splash_plugin/resources/react/loader-143-LNNXCCBI.css +2 -0
- dash_splash_plugin/resources/react/loader-143-RAXC7BTL.js +7 -0
- dash_splash_plugin/resources/react/loader-144-3QQXO26K.css +2 -0
- dash_splash_plugin/resources/react/loader-144-6LWBRZL6.js +1 -0
- dash_splash_plugin/resources/react/loader-145-ANZRJTRO.css +2 -0
- dash_splash_plugin/resources/react/loader-145-CX6FLPVZ.js +7 -0
- dash_splash_plugin/resources/react/loader-146-3QLYGVOV.js +27 -0
- dash_splash_plugin/resources/react/loader-146-W6SFKVSG.css +2 -0
- dash_splash_plugin/resources/react/loader-147-2E5XPW3B.js +20 -0
- dash_splash_plugin/resources/react/loader-147-3J4XXY5G.css +2 -0
- dash_splash_plugin/resources/react/loader-148-EKP32VYK.js +20 -0
- dash_splash_plugin/resources/react/loader-148-MLBKU4QZ.css +2 -0
- dash_splash_plugin/resources/react/loader-149-ODUAWE2P.js +29 -0
- dash_splash_plugin/resources/react/loader-149-X33ZBH62.css +2 -0
- dash_splash_plugin/resources/react/loader-15-2CWOANG7.js +1 -0
- dash_splash_plugin/resources/react/loader-150-OAXTT45M.js +125 -0
- dash_splash_plugin/resources/react/loader-150-UTVKYMPK.css +2 -0
- dash_splash_plugin/resources/react/loader-151-L4LA7DHB.css +2 -0
- dash_splash_plugin/resources/react/loader-151-P2XRI7UY.js +12 -0
- dash_splash_plugin/resources/react/loader-152-D43ENW6P.js +12 -0
- dash_splash_plugin/resources/react/loader-152-YDSTDXQN.css +2 -0
- dash_splash_plugin/resources/react/loader-153-E4N33ZSC.css +2 -0
- dash_splash_plugin/resources/react/loader-153-SJVD2NXK.js +12 -0
- dash_splash_plugin/resources/react/loader-154-5HOCADYH.js +1 -0
- dash_splash_plugin/resources/react/loader-154-7ZF4FE6D.css +2 -0
- dash_splash_plugin/resources/react/loader-155-6CMVY3TK.js +1 -0
- dash_splash_plugin/resources/react/loader-155-FX4OWGZH.css +2 -0
- dash_splash_plugin/resources/react/loader-156-4JVVBJ47.css +2 -0
- dash_splash_plugin/resources/react/loader-156-JSCUTCGO.js +11 -0
- dash_splash_plugin/resources/react/loader-157-E3MQQJ5X.css +2 -0
- dash_splash_plugin/resources/react/loader-157-SZMAIMOP.js +7 -0
- dash_splash_plugin/resources/react/loader-158-6D356NAL.js +14 -0
- dash_splash_plugin/resources/react/loader-158-QEM6VMOX.css +2 -0
- dash_splash_plugin/resources/react/loader-159-5GFRRJOM.css +2 -0
- dash_splash_plugin/resources/react/loader-159-6DD4SISK.js +58 -0
- dash_splash_plugin/resources/react/loader-16-CVXIONBI.js +1 -0
- dash_splash_plugin/resources/react/loader-160-NIAX6LED.css +2 -0
- dash_splash_plugin/resources/react/loader-160-X74UYDJ2.js +12 -0
- dash_splash_plugin/resources/react/loader-161-ABHCEFP6.js +1 -0
- dash_splash_plugin/resources/react/loader-162-AN6BZBQB.js +1 -0
- dash_splash_plugin/resources/react/loader-163-NH3ACH4W.js +1 -0
- dash_splash_plugin/resources/react/loader-164-M73MCOG3.js +1 -0
- dash_splash_plugin/resources/react/loader-17-AG7TGQF2.js +1 -0
- dash_splash_plugin/resources/react/loader-18-3KF773I7.js +1 -0
- dash_splash_plugin/resources/react/loader-19-JIKMJBN7.js +1 -0
- dash_splash_plugin/resources/react/loader-2-7YJXQGW6.js +1 -0
- dash_splash_plugin/resources/react/loader-20-PLYWEIU6.js +1 -0
- dash_splash_plugin/resources/react/loader-21-MEBUVUUU.js +1 -0
- dash_splash_plugin/resources/react/loader-22-DI6BOVIP.js +13 -0
- dash_splash_plugin/resources/react/loader-23-MTQFH5PW.js +10 -0
- dash_splash_plugin/resources/react/loader-24-MVP5LKW5.css +1 -0
- dash_splash_plugin/resources/react/loader-24-RS5CFIPI.js +1 -0
- dash_splash_plugin/resources/react/loader-25-SCTH6VT4.js +1 -0
- dash_splash_plugin/resources/react/loader-25-ZBA4MKRO.css +1 -0
- dash_splash_plugin/resources/react/loader-26-FWYXWHYH.js +1 -0
- dash_splash_plugin/resources/react/loader-26-QILU6ILC.css +1 -0
- dash_splash_plugin/resources/react/loader-27-LRLVQGSI.css +1 -0
- dash_splash_plugin/resources/react/loader-27-RH3FHF3U.js +1 -0
- dash_splash_plugin/resources/react/loader-28-A3AGDK7B.js +1 -0
- dash_splash_plugin/resources/react/loader-28-CKZOQQDB.css +1 -0
- dash_splash_plugin/resources/react/loader-29-GCCFXSJ7.js +1 -0
- dash_splash_plugin/resources/react/loader-29-GTOT4JLS.css +1 -0
- dash_splash_plugin/resources/react/loader-3-KPQ7YCBX.js +1 -0
- dash_splash_plugin/resources/react/loader-30-CNFGA4NX.css +1 -0
- dash_splash_plugin/resources/react/loader-30-HMBETZJ4.js +1 -0
- dash_splash_plugin/resources/react/loader-31-UN4H6YET.js +1 -0
- dash_splash_plugin/resources/react/loader-31-W5FAZ4RZ.css +1 -0
- dash_splash_plugin/resources/react/loader-32-TT3DGPLC.css +1 -0
- dash_splash_plugin/resources/react/loader-32-WBSAN3EJ.js +1 -0
- dash_splash_plugin/resources/react/loader-33-C7YIISXL.css +1 -0
- dash_splash_plugin/resources/react/loader-33-DKO3ZGKQ.js +1 -0
- dash_splash_plugin/resources/react/loader-34-2DHRQV36.css +1 -0
- dash_splash_plugin/resources/react/loader-34-UDKOX3JI.js +1 -0
- dash_splash_plugin/resources/react/loader-35-744HJYFH.js +1 -0
- dash_splash_plugin/resources/react/loader-35-LGLJHECS.css +1 -0
- dash_splash_plugin/resources/react/loader-36-RLYKAFPR.js +1 -0
- dash_splash_plugin/resources/react/loader-37-QQC6XOSK.js +1 -0
- dash_splash_plugin/resources/react/loader-38-7DKIWWZZ.js +1 -0
- dash_splash_plugin/resources/react/loader-39-2ZOVK4YT.js +1 -0
- dash_splash_plugin/resources/react/loader-4-6CJNMM6V.js +1 -0
- dash_splash_plugin/resources/react/loader-40-XOAV5FLU.js +1 -0
- dash_splash_plugin/resources/react/loader-41-56MLHYWY.js +1 -0
- dash_splash_plugin/resources/react/loader-42-OBXKNERE.js +1 -0
- dash_splash_plugin/resources/react/loader-43-YR2YDW34.js +1 -0
- dash_splash_plugin/resources/react/loader-44-DUAP4PI3.js +1 -0
- dash_splash_plugin/resources/react/loader-45-FUCLV3WS.js +1 -0
- dash_splash_plugin/resources/react/loader-46-UJRZZQGL.js +1 -0
- dash_splash_plugin/resources/react/loader-47-O5BJ4DLB.js +1 -0
- dash_splash_plugin/resources/react/loader-48-27EKGSW2.js +1 -0
- dash_splash_plugin/resources/react/loader-49-MWPJI5VQ.js +1 -0
- dash_splash_plugin/resources/react/loader-5-MU5WX5KQ.js +1 -0
- dash_splash_plugin/resources/react/loader-50-3PLGR2BL.js +1 -0
- dash_splash_plugin/resources/react/loader-51-DUJJAZ3M.js +1 -0
- dash_splash_plugin/resources/react/loader-52-OL2FYZOE.js +1 -0
- dash_splash_plugin/resources/react/loader-53-KE6TNF6E.js +1 -0
- dash_splash_plugin/resources/react/loader-54-2HBOXFQ5.js +1 -0
- dash_splash_plugin/resources/react/loader-55-5JR3YOGL.js +1 -0
- dash_splash_plugin/resources/react/loader-56-JVGIEY53.js +1 -0
- dash_splash_plugin/resources/react/loader-57-2ZE6XKVB.js +1 -0
- dash_splash_plugin/resources/react/loader-58-VQ3SI25Y.js +1 -0
- dash_splash_plugin/resources/react/loader-59-M2H4SIRS.js +1 -0
- dash_splash_plugin/resources/react/loader-6-T2P6WVKH.js +1 -0
- dash_splash_plugin/resources/react/loader-60-VO73T4UM.js +1 -0
- dash_splash_plugin/resources/react/loader-61-LJ7ABJQC.js +1 -0
- dash_splash_plugin/resources/react/loader-62-B7MDXETP.js +1 -0
- dash_splash_plugin/resources/react/loader-63-5NMGSUDN.js +1 -0
- dash_splash_plugin/resources/react/loader-64-F4Q5RTWG.js +1 -0
- dash_splash_plugin/resources/react/loader-65-FNVCTY4J.js +1 -0
- dash_splash_plugin/resources/react/loader-66-ZZ5O4W2O.js +1 -0
- dash_splash_plugin/resources/react/loader-67-XBA5L4X3.js +1 -0
- dash_splash_plugin/resources/react/loader-68-QVUCBKOF.js +1 -0
- dash_splash_plugin/resources/react/loader-69-AIJEJEO6.js +1 -0
- dash_splash_plugin/resources/react/loader-7-KE7L4VXE.js +1 -0
- dash_splash_plugin/resources/react/loader-70-OGBEL5GC.js +1 -0
- dash_splash_plugin/resources/react/loader-71-M2FCUV3J.js +1 -0
- dash_splash_plugin/resources/react/loader-72-IDBVXT76.js +1 -0
- dash_splash_plugin/resources/react/loader-73-TJLWSPXL.js +1 -0
- dash_splash_plugin/resources/react/loader-74-C554ITRF.js +1 -0
- dash_splash_plugin/resources/react/loader-75-JTWPTLDK.js +1 -0
- dash_splash_plugin/resources/react/loader-76-X3HP7RLI.js +1 -0
- dash_splash_plugin/resources/react/loader-77-DYKEJYBY.css +1 -0
- dash_splash_plugin/resources/react/loader-77-WR3UJMBR.js +1 -0
- dash_splash_plugin/resources/react/loader-78-MLWRE2JV.js +1 -0
- dash_splash_plugin/resources/react/loader-78-VKXHIZHP.css +1 -0
- dash_splash_plugin/resources/react/loader-79-73FAPICC.css +1 -0
- dash_splash_plugin/resources/react/loader-79-K522YKKP.js +1 -0
- dash_splash_plugin/resources/react/loader-8-H73ZS7JQ.js +1 -0
- dash_splash_plugin/resources/react/loader-80-27RREQWF.js +1 -0
- dash_splash_plugin/resources/react/loader-80-PMZJW4FZ.css +1 -0
- dash_splash_plugin/resources/react/loader-81-TRNQR24L.js +1 -0
- dash_splash_plugin/resources/react/loader-81-X7VCUG5X.css +1 -0
- dash_splash_plugin/resources/react/loader-82-BQ67HOV5.js +1 -0
- dash_splash_plugin/resources/react/loader-82-LWMA6VG7.css +1 -0
- dash_splash_plugin/resources/react/loader-83-2OPWV33W.js +1 -0
- dash_splash_plugin/resources/react/loader-83-EXUNGU3F.css +1 -0
- dash_splash_plugin/resources/react/loader-84-BVRH4R32.js +1 -0
- dash_splash_plugin/resources/react/loader-84-EV5BENJ2.css +1 -0
- dash_splash_plugin/resources/react/loader-85-AFXFTL2E.css +1 -0
- dash_splash_plugin/resources/react/loader-85-VX2U5H5F.js +1 -0
- dash_splash_plugin/resources/react/loader-86-EGJR2DWT.css +1 -0
- dash_splash_plugin/resources/react/loader-86-HJL5HLMA.js +1 -0
- dash_splash_plugin/resources/react/loader-87-7AYEMRUD.js +1 -0
- dash_splash_plugin/resources/react/loader-87-L4CCQJ7P.css +1 -0
- dash_splash_plugin/resources/react/loader-88-F7ZCN44M.css +1 -0
- dash_splash_plugin/resources/react/loader-88-PLMBEHYL.js +1 -0
- dash_splash_plugin/resources/react/loader-89-5DSCZ2OZ.js +1 -0
- dash_splash_plugin/resources/react/loader-89-OD6HYQ3C.css +1 -0
- dash_splash_plugin/resources/react/loader-9-B7RZLFPR.css +1 -0
- dash_splash_plugin/resources/react/loader-9-KHQJC77U.js +1 -0
- dash_splash_plugin/resources/react/loader-90-3CILX6GU.css +1 -0
- dash_splash_plugin/resources/react/loader-90-DXRIW5OL.js +1 -0
- dash_splash_plugin/resources/react/loader-91-KL5FYOY6.css +1 -0
- dash_splash_plugin/resources/react/loader-91-OBFM6LY7.js +1 -0
- dash_splash_plugin/resources/react/loader-92-3TJT2CDJ.js +1 -0
- dash_splash_plugin/resources/react/loader-93-GAKYP5EW.js +1 -0
- dash_splash_plugin/resources/react/loader-94-GE4G6CZU.js +1 -0
- dash_splash_plugin/resources/react/loader-95-CGT4O7R7.js +1 -0
- dash_splash_plugin/resources/react/loader-96-IT2QKHDJ.js +1 -0
- dash_splash_plugin/resources/react/loader-97-HUBSXKOK.js +7 -0
- dash_splash_plugin/resources/react/loader-98-G2OCRSD7.js +1 -0
- dash_splash_plugin/resources/react/loader-99-AO2FTACY.js +17 -0
- dash_splash_plugin/resources/react/shared-5VWDGKKA.js +0 -0
- dash_splash_plugin/resources/react/shared-ABZUEXK7.js +97 -0
- dash_splash_plugin/resources/react/shared-BZJBV7O6.js +161 -0
- dash_splash_plugin/resources/react/shared-C2IJTFMR.js +1 -0
- dash_splash_plugin/resources/react/shared-CSCKHORP.js +1 -0
- dash_splash_plugin/resources/react/shared-EGKPPMO6.js +5 -0
- dash_splash_plugin/resources/react/shared-GR5T7NKZ.js +1 -0
- dash_splash_plugin/resources/react/shared-HPSJGR7V.js +302 -0
- dash_splash_plugin/resources/react/shared-KXBAZB5M.js +0 -0
- dash_splash_plugin/resources/react/shared-L47IMDW5.js +5 -0
- dash_splash_plugin/resources/react/shared-M6WLEZ7J.js +898 -0
- dash_splash_plugin/resources/react/shared-MDXWYKGH.js +1 -0
- dash_splash_plugin/resources/react/shared-OLHKCM4W.js +1 -0
- dash_splash_plugin/resources/react/shared-P5MJTN4V.js +2322 -0
- dash_splash_plugin/resources/react/shared-P6CDZGRU.js +1312 -0
- dash_splash_plugin/resources/react/shared-QQL2K63A.js +77 -0
- dash_splash_plugin/resources/react/shared-SOIMXQE5.js +1 -0
- dash_splash_plugin/resources/splash.js +110 -0
- dash_splash_plugin/resources/static-loaders.json +1 -0
- dash_splash_plugin-0.1.0.dist-info/METADATA +513 -0
- dash_splash_plugin-0.1.0.dist-info/RECORD +521 -0
- dash_splash_plugin-0.1.0.dist-info/WHEEL +5 -0
- dash_splash_plugin-0.1.0.dist-info/entry_points.txt +2 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/LICENSE +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/SOURCES.json +4 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/UPSTREAM-INVENTORY.md +44 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/dash-loading-components-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/dash-loading-components-NOTICE.txt +51 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/loading-ui-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__alerix_m3-loading-indicator-LICENSE.txt +202 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__alerix_m3-loading-indicator-NOTICE.txt +16 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__ant-design_colors-LICENSE.txt +22 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__ant-design_cssinjs-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__ant-design_cssinjs-utils-LICENSE.txt +20 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__ant-design_fast-color-LICENSE.txt +20 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__ant-design_icons-LICENSE.txt +22 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__ant-design_react-slick-LICENSE.txt +22 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__babel_runtime-LICENSE.txt +22 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__emotion_hash-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__emotion_is-prop-valid-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__emotion_memoize-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__emotion_unitless-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_async-validator-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_cascader-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_cascader-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_checkbox-LICENSE.md.txt +7 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_collapse-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_color-picker-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_context-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_dialog-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_drawer-LICENSE.txt +22 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_dropdown-LICENSE.txt +20 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_form-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_image-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_image-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_input-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_input-number-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_listy-LICENSE.txt +20 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_mentions-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_mentions-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_menu-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_menu-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_mini-decimal-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_motion-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_mutate-observer-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_notification-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_notification-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_overflow-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_pagination-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_picker-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_picker-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_portal-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_progress-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_progress-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_qrcode-LICENSE.txt +20 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_rate-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_resize-observer-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_segmented-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_segmented-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_segmented_node_modules__babel_runtime-LICENSE.txt +22 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_select-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_select-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_slider-LICENSE.txt +20 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_steps-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_steps-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_switch-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_table-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_table-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_tabs-LICENSE.md.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_tabs-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_tooltip-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_tour-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_tree-LICENSE.md.txt +22 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_tree-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_tree-select-LICENSE.md.txt +22 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_tree-select-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_trigger-LICENSE.txt +20 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_upload-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_util-LICENSE.txt +22 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_util_node_modules_react-is-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_virtual-list-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__rc-component_virtual-list_node_modules__babel_runtime-LICENSE.txt +22 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__types_prop-types-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__types_react-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules__types_react-dom-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_antd-LICENSE.txt +22 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_camelize-LICENSE.txt +18 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_clsx-license.txt +9 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_compute-scroll-into-view-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_css-color-keywords-LICENSE.txt +15 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_css-to-react-native-LICENSE.md.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_csstype-LICENSE.txt +19 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_dayjs-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_flicker-dot-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_framer-motion-LICENSE.md.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_gridora-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_js-tokens-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_json2mq-LICENSE.txt +22 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_ldrs-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_loadersz-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_loose-envify-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_motion-LICENSE.md.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_motion-dom-LICENSE.md.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_motion-utils-LICENSE.md.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_object-assign-license.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_postcss-value-parser-LICENSE.txt +22 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_premium-react-loaders-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_prop-types-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_react-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_react-dom-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_react-epic-spinners-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_react-is-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_react-loader-spinner-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_react-loading-indicators-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_react-spinners-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_scheduler-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_scroll-into-view-if-needed-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_spinners-react-LICENSE.md.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_string-convert-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_styled-components-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_stylis-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_thinking-orbs-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_throttle-debounce-LICENSE.md.txt +45 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_tinycolor2-LICENSE.txt +20 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/node_modules_tslib-LICENSE.txt.txt +12 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/scripts_react19_node_modules_loading-dev-LICENSE.md.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/scripts_react19_node_modules_react-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/scripts_react19_node_modules_react-dom-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/licenses/src/dash_splash_plugin/resources/licenses/scripts_react19_node_modules_scheduler-LICENSE.txt +21 -0
- dash_splash_plugin-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,524 @@
|
|
|
1
|
+
"""Dash Hooks registration and startup-overlay configuration."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import json
|
|
6
|
+
import math
|
|
7
|
+
import re
|
|
8
|
+
from copy import deepcopy
|
|
9
|
+
from dataclasses import dataclass, fields, replace
|
|
10
|
+
from difflib import get_close_matches
|
|
11
|
+
from functools import cache
|
|
12
|
+
from html import escape
|
|
13
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
14
|
+
from importlib.resources import files
|
|
15
|
+
from threading import RLock
|
|
16
|
+
from typing import Any, Literal, NamedTuple, TypedDict, cast
|
|
17
|
+
from weakref import WeakKeyDictionary, ref
|
|
18
|
+
|
|
19
|
+
from dash import get_app, hooks
|
|
20
|
+
from flask import abort, current_app, has_request_context, request
|
|
21
|
+
from typing_extensions import Unpack
|
|
22
|
+
|
|
23
|
+
from ._catalog import LoaderId, LoaderLibrary
|
|
24
|
+
|
|
25
|
+
try:
|
|
26
|
+
__version__ = version("dash-splash-plugin")
|
|
27
|
+
except PackageNotFoundError: # pragma: no cover - source tree fallback
|
|
28
|
+
__version__ = "0.1.0"
|
|
29
|
+
|
|
30
|
+
_SPLASH_MARKER = "data-dash-splash"
|
|
31
|
+
_BODY_PATTERN = re.compile(r"<body(?:\s[^>]*)?>", flags=re.IGNORECASE)
|
|
32
|
+
_HEAD_END_PATTERN = re.compile(r"</head\s*>", flags=re.IGNORECASE)
|
|
33
|
+
_START_SCRIPT = (
|
|
34
|
+
"<script>if (window.__dashSplashStart){window.__dashSplashStart()}</script>"
|
|
35
|
+
)
|
|
36
|
+
_ASSET_CACHE_CONTROL = "public, max-age=31536000, immutable"
|
|
37
|
+
_DEFAULT_PATHNAME_PREFIX = "/"
|
|
38
|
+
|
|
39
|
+
_CONFIG_LOCK = RLock()
|
|
40
|
+
_dash_server: WeakKeyDictionary[Any, list[Any]] = WeakKeyDictionary()
|
|
41
|
+
|
|
42
|
+
_DEFAULT_SIZE = 32
|
|
43
|
+
_MANIFEST = json.loads(
|
|
44
|
+
files(__package__).joinpath("resources/manifest.json").read_text(encoding="utf-8")
|
|
45
|
+
)
|
|
46
|
+
_LOADER_NAMES = frozenset(_MANIFEST["loaders"])
|
|
47
|
+
_COLOR_OPTIONS = (
|
|
48
|
+
"color",
|
|
49
|
+
"dark_color",
|
|
50
|
+
"text_color",
|
|
51
|
+
"dark_text_color",
|
|
52
|
+
)
|
|
53
|
+
_SPLASH_ROUTE = "_dash-splash-plugin"
|
|
54
|
+
Theme = Literal["light", "dark", "auto", "system"]
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
@hooks.setup(priority=100)
|
|
58
|
+
def _register_dash_app(app: Any) -> None:
|
|
59
|
+
registered = _dash_server.setdefault(app.server, [])
|
|
60
|
+
registered[:] = [app_ref for app_ref in registered if app_ref() is not None]
|
|
61
|
+
registered.append(ref(app))
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def _current_app() -> Any:
|
|
65
|
+
"""Return the Dash app serving the current request, or ``None`` outside one."""
|
|
66
|
+
|
|
67
|
+
if has_request_context():
|
|
68
|
+
server = cast(Any, current_app)._get_current_object()
|
|
69
|
+
apps = [
|
|
70
|
+
app
|
|
71
|
+
for app in (app_ref() for app_ref in _dash_server.get(server, ()))
|
|
72
|
+
if app is not None
|
|
73
|
+
]
|
|
74
|
+
if apps:
|
|
75
|
+
matches = [
|
|
76
|
+
app
|
|
77
|
+
for app in apps
|
|
78
|
+
if request.path.startswith(app.config.routes_pathname_prefix)
|
|
79
|
+
]
|
|
80
|
+
return max(
|
|
81
|
+
matches or apps, key=lambda app: len(app.config.routes_pathname_prefix)
|
|
82
|
+
)
|
|
83
|
+
# Dash 4 binds plugin routes and index hooks to their app's context, including
|
|
84
|
+
# non-Flask backends. Only accept it during a request, not its global fallback.
|
|
85
|
+
try:
|
|
86
|
+
app = get_app()
|
|
87
|
+
except Exception: # Dash 3 raises a plain Exception when no app exists.
|
|
88
|
+
return None
|
|
89
|
+
backend = getattr(app, "backend", None)
|
|
90
|
+
if backend is not None and backend.has_request_context():
|
|
91
|
+
return app
|
|
92
|
+
return None
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def _requests_pathname_prefix() -> str:
|
|
96
|
+
app = _current_app()
|
|
97
|
+
if app is None:
|
|
98
|
+
return _DEFAULT_PATHNAME_PREFIX
|
|
99
|
+
return app.config.requests_pathname_prefix
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
class SetupOptions(TypedDict, total=False):
|
|
103
|
+
enabled: bool
|
|
104
|
+
theme: Theme
|
|
105
|
+
aria_label: str
|
|
106
|
+
z_index: int
|
|
107
|
+
background: str
|
|
108
|
+
dark_background: str
|
|
109
|
+
color: str | None
|
|
110
|
+
dark_color: str | None
|
|
111
|
+
text_color: str | None
|
|
112
|
+
dark_text_color: str | None
|
|
113
|
+
loader: LoaderId
|
|
114
|
+
text: str
|
|
115
|
+
size: int | float | None
|
|
116
|
+
stroke: int | float | None
|
|
117
|
+
rate: int | float
|
|
118
|
+
playing: bool
|
|
119
|
+
font_size: int | float | None
|
|
120
|
+
custom_loader_html: str | None
|
|
121
|
+
loader_options: dict[str, Any] | None
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
@dataclass(frozen=True)
|
|
125
|
+
class SplashConfig:
|
|
126
|
+
"""Configuration serialized into the startup overlay.
|
|
127
|
+
|
|
128
|
+
``custom_loader_html`` is inserted verbatim and must only contain trusted
|
|
129
|
+
HTML supplied by the application author.
|
|
130
|
+
"""
|
|
131
|
+
|
|
132
|
+
enabled: bool = True
|
|
133
|
+
theme: Theme = "auto"
|
|
134
|
+
aria_label: str = "Loading"
|
|
135
|
+
z_index: int = 9999
|
|
136
|
+
background: str = "#f5f5f5"
|
|
137
|
+
dark_background: str = "#000"
|
|
138
|
+
color: str | None = "#1890ff"
|
|
139
|
+
dark_color: str | None = None
|
|
140
|
+
text_color: str | None = None
|
|
141
|
+
dark_text_color: str | None = None
|
|
142
|
+
loader: LoaderId = "loading-ui:fade-arc"
|
|
143
|
+
text: str = "Loading"
|
|
144
|
+
size: int | float | None = None
|
|
145
|
+
stroke: int | float | None = None
|
|
146
|
+
rate: int | float = 1.0
|
|
147
|
+
playing: bool = True
|
|
148
|
+
font_size: int | float | None = None
|
|
149
|
+
custom_loader_html: str | None = None
|
|
150
|
+
loader_options: dict[str, Any] | None = None
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
_DEFAULT_CONFIG = SplashConfig()
|
|
154
|
+
_config = _DEFAULT_CONFIG
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
def _validate_color(name: str, value: str | None) -> None:
|
|
158
|
+
if value is not None and (not isinstance(value, str) or not value.strip()):
|
|
159
|
+
raise ValueError(f"{name} must be None or a non-empty CSS color")
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
def _validate_length(name: str, value: float) -> None:
|
|
163
|
+
if isinstance(value, bool) or not isinstance(value, (int, float)):
|
|
164
|
+
raise TypeError(f"{name} must be an int or float")
|
|
165
|
+
if not math.isfinite(value) or value < 0:
|
|
166
|
+
raise ValueError(f"{name} must be finite and greater than or equal to zero")
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
def _validate(config: SplashConfig) -> SplashConfig:
|
|
170
|
+
if not isinstance(config.theme, str) or config.theme not in (
|
|
171
|
+
"light", "dark", "auto", "system"
|
|
172
|
+
):
|
|
173
|
+
raise ValueError("theme must be 'light', 'dark', 'auto' or 'system'")
|
|
174
|
+
if not isinstance(config.aria_label, str) or not config.aria_label.strip():
|
|
175
|
+
raise ValueError("aria_label must be a non-empty string")
|
|
176
|
+
if isinstance(config.z_index, bool) or not isinstance(config.z_index, int):
|
|
177
|
+
raise TypeError("z_index must be an int")
|
|
178
|
+
if config.custom_loader_html is not None and not isinstance(
|
|
179
|
+
config.custom_loader_html, str
|
|
180
|
+
):
|
|
181
|
+
raise TypeError("custom_loader_html must be None or a string")
|
|
182
|
+
if not isinstance(config.enabled, bool):
|
|
183
|
+
raise TypeError("enabled must be a boolean")
|
|
184
|
+
if not isinstance(config.playing, bool):
|
|
185
|
+
raise TypeError("playing must be a boolean")
|
|
186
|
+
_validate_length("rate", config.rate)
|
|
187
|
+
if config.rate == 0:
|
|
188
|
+
raise ValueError("rate must be greater than zero; use playing=False to pause")
|
|
189
|
+
if not isinstance(config.loader, str) or config.loader not in _LOADER_NAMES:
|
|
190
|
+
message = (
|
|
191
|
+
f"Unknown loader: {config.loader!r}. "
|
|
192
|
+
"Use a qualified 'library:name' identifier."
|
|
193
|
+
)
|
|
194
|
+
if isinstance(config.loader, str):
|
|
195
|
+
matches = get_close_matches(
|
|
196
|
+
config.loader, sorted(_LOADER_NAMES), n=3, cutoff=0.5
|
|
197
|
+
)
|
|
198
|
+
if matches:
|
|
199
|
+
message += f" Did you mean {', '.join(repr(name) for name in matches)}?"
|
|
200
|
+
raise ValueError(message)
|
|
201
|
+
if config.loader_options is not None:
|
|
202
|
+
if not isinstance(config.loader_options, dict):
|
|
203
|
+
raise TypeError("loader_options must be a JSON object")
|
|
204
|
+
try:
|
|
205
|
+
json.dumps(config.loader_options, allow_nan=False)
|
|
206
|
+
except (TypeError, ValueError) as error:
|
|
207
|
+
raise ValueError(
|
|
208
|
+
"loader_options must contain only finite JSON values"
|
|
209
|
+
) from error
|
|
210
|
+
if not _json_value(config.loader_options):
|
|
211
|
+
raise ValueError(
|
|
212
|
+
"loader_options must contain only JSON objects, arrays and scalar values"
|
|
213
|
+
)
|
|
214
|
+
schema = _MANIFEST["loaders"][config.loader]["options"]
|
|
215
|
+
if schema:
|
|
216
|
+
unknown = set(config.loader_options) - set(schema)
|
|
217
|
+
if unknown:
|
|
218
|
+
raise ValueError(
|
|
219
|
+
f"Unknown loader_options for {config.loader}: {', '.join(sorted(unknown))}"
|
|
220
|
+
)
|
|
221
|
+
for name, value in config.loader_options.items():
|
|
222
|
+
if not _matches_schema(value, schema[name]):
|
|
223
|
+
raise ValueError(
|
|
224
|
+
f"Invalid loader_options.{name} for {config.loader}"
|
|
225
|
+
)
|
|
226
|
+
if not isinstance(config.text, str) or not config.text.strip():
|
|
227
|
+
raise ValueError("text must be a non-empty string")
|
|
228
|
+
for name in ("background", "dark_background"):
|
|
229
|
+
value = getattr(config, name)
|
|
230
|
+
if not isinstance(value, str) or not value.strip():
|
|
231
|
+
raise ValueError(f"{name} must be a non-empty CSS color")
|
|
232
|
+
for name in _COLOR_OPTIONS:
|
|
233
|
+
_validate_color(name, getattr(config, name))
|
|
234
|
+
for name in ("size", "stroke", "font_size"):
|
|
235
|
+
value = getattr(config, name)
|
|
236
|
+
if value is not None:
|
|
237
|
+
_validate_length(name, value)
|
|
238
|
+
return config
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
def _json_value(value: Any) -> bool:
|
|
242
|
+
if isinstance(value, dict):
|
|
243
|
+
return all(
|
|
244
|
+
isinstance(key, str) and _json_value(item) for key, item in value.items()
|
|
245
|
+
)
|
|
246
|
+
if isinstance(value, list):
|
|
247
|
+
return all(_json_value(item) for item in value)
|
|
248
|
+
return value is None or isinstance(value, (str, bool, int, float))
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
def _matches_schema(value: Any, schema: dict[str, Any]) -> bool:
|
|
252
|
+
if value is None:
|
|
253
|
+
return not schema.get("required", False)
|
|
254
|
+
kind = schema.get("type")
|
|
255
|
+
if kind == "oneOf":
|
|
256
|
+
return value in schema["values"]
|
|
257
|
+
if kind == "oneOfType":
|
|
258
|
+
return any(_matches_schema(value, option) for option in schema["values"])
|
|
259
|
+
if kind == "arrayOf":
|
|
260
|
+
return isinstance(value, list) and all(
|
|
261
|
+
_matches_schema(item, schema["items"]) for item in value
|
|
262
|
+
)
|
|
263
|
+
if kind == "objectOf":
|
|
264
|
+
return isinstance(value, dict) and all(
|
|
265
|
+
_matches_schema(item, schema["items"]) for item in value.values()
|
|
266
|
+
)
|
|
267
|
+
if kind in {"shape", "exact"}:
|
|
268
|
+
return isinstance(value, dict) and all(
|
|
269
|
+
_matches_schema(value.get(key), item)
|
|
270
|
+
for key, item in schema["properties"].items()
|
|
271
|
+
)
|
|
272
|
+
expected = {
|
|
273
|
+
"string": str,
|
|
274
|
+
"bool": bool,
|
|
275
|
+
"array": list,
|
|
276
|
+
"arrayOf": list,
|
|
277
|
+
"object": dict,
|
|
278
|
+
"objectOf": dict,
|
|
279
|
+
}
|
|
280
|
+
if kind == "number":
|
|
281
|
+
return (
|
|
282
|
+
not isinstance(value, bool)
|
|
283
|
+
and isinstance(value, (int, float))
|
|
284
|
+
and math.isfinite(value)
|
|
285
|
+
)
|
|
286
|
+
return isinstance(value, expected[kind]) if kind in expected else True
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
def list_libraries() -> tuple[LoaderLibrary, ...]:
|
|
290
|
+
"""Return the available kebab-case animation library names."""
|
|
291
|
+
return tuple(sorted({item["family"] for item in _MANIFEST["loaders"].values()}))
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
def list_loaders(library: LoaderLibrary | None = None) -> tuple[LoaderId, ...]:
|
|
295
|
+
"""Return qualified identifiers accepted by setup, optionally filtered by library."""
|
|
296
|
+
if library is not None and library not in list_libraries():
|
|
297
|
+
raise ValueError(f"Unknown loader library: {library}")
|
|
298
|
+
return tuple(
|
|
299
|
+
name
|
|
300
|
+
for name, item in _MANIFEST["loaders"].items()
|
|
301
|
+
if library is None or item["family"] == library
|
|
302
|
+
)
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
def setup(**changes: Unpack[SetupOptions]) -> SplashConfig:
|
|
306
|
+
"""Update the process-wide plugin configuration.
|
|
307
|
+
|
|
308
|
+
Call this before creating ``dash.Dash``. The Dash hooks registry is
|
|
309
|
+
process-wide, so one configuration is shared by all apps in the process.
|
|
310
|
+
Use ``setup(loader="flicker:mail")``. Loader identifiers always include
|
|
311
|
+
their library; omitted options keep their current values.
|
|
312
|
+
"""
|
|
313
|
+
|
|
314
|
+
valid_names = {field.name for field in fields(SplashConfig)}
|
|
315
|
+
unknown = set(changes).difference(valid_names)
|
|
316
|
+
if unknown:
|
|
317
|
+
names = ", ".join(sorted(unknown))
|
|
318
|
+
raise TypeError(f"Unknown splash option(s): {names}")
|
|
319
|
+
global _config
|
|
320
|
+
with _CONFIG_LOCK:
|
|
321
|
+
if changes.get("loader", _config.loader) != _config.loader:
|
|
322
|
+
changes.setdefault("loader_options", None)
|
|
323
|
+
_config = _validate(deepcopy(replace(_config, **changes)))
|
|
324
|
+
return deepcopy(_config)
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
def get_config() -> SplashConfig:
|
|
328
|
+
"""Return the active immutable configuration."""
|
|
329
|
+
|
|
330
|
+
with _CONFIG_LOCK:
|
|
331
|
+
return deepcopy(_config)
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
def reset_config() -> SplashConfig:
|
|
335
|
+
"""Restore the default configuration, primarily for tests."""
|
|
336
|
+
|
|
337
|
+
global _config
|
|
338
|
+
with _CONFIG_LOCK:
|
|
339
|
+
_config = _DEFAULT_CONFIG
|
|
340
|
+
return _config
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
class _Visuals(NamedTuple):
|
|
344
|
+
color: str
|
|
345
|
+
dark_color: str
|
|
346
|
+
text_color: str
|
|
347
|
+
dark_text_color: str
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
def _resolved_visuals(config: SplashConfig) -> _Visuals:
|
|
351
|
+
color = config.color
|
|
352
|
+
return _Visuals(
|
|
353
|
+
color=color or "inherit",
|
|
354
|
+
dark_color=config.dark_color or color or "inherit",
|
|
355
|
+
text_color=config.text_color or config.color or "inherit",
|
|
356
|
+
dark_text_color=config.dark_text_color
|
|
357
|
+
or config.text_color
|
|
358
|
+
or config.dark_color
|
|
359
|
+
or config.color
|
|
360
|
+
or "inherit",
|
|
361
|
+
)
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
def _overlay_styles(config: SplashConfig) -> dict[str, str]:
|
|
365
|
+
visuals = _resolved_visuals(config)
|
|
366
|
+
size = _DEFAULT_SIZE if config.size is None else config.size
|
|
367
|
+
styles = {
|
|
368
|
+
"--dash-splash-background": config.background,
|
|
369
|
+
"--dash-splash-dark-background": config.dark_background,
|
|
370
|
+
"--dash-splash-color": visuals.color,
|
|
371
|
+
"--dash-splash-dark-color": visuals.dark_color,
|
|
372
|
+
"--dash-splash-text-color": visuals.text_color,
|
|
373
|
+
"--dash-splash-dark-text-color": visuals.dark_text_color,
|
|
374
|
+
"--dash-splash-size": f"{size:g}px",
|
|
375
|
+
"--dash-splash-display": "none" if size == 0 else "inline-flex",
|
|
376
|
+
"--dash-splash-z-index": str(config.z_index),
|
|
377
|
+
"--dash-splash-rate": f"{config.rate:g}",
|
|
378
|
+
"--dash-splash-play-state": "running" if config.playing else "paused",
|
|
379
|
+
}
|
|
380
|
+
if config.stroke is not None:
|
|
381
|
+
styles["--dash-splash-stroke"] = f"{config.stroke:g}px"
|
|
382
|
+
return styles
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
def _loader_markup(config: SplashConfig, loader: str) -> str:
|
|
386
|
+
item = _MANIFEST["loaders"][loader]
|
|
387
|
+
base = f"{_requests_pathname_prefix()}{_SPLASH_ROUTE}/react/"
|
|
388
|
+
payload = {
|
|
389
|
+
"text": config.text,
|
|
390
|
+
"rate": config.rate,
|
|
391
|
+
"playing": config.playing,
|
|
392
|
+
"loader_options": {**item["defaults"], **(config.loader_options or {})},
|
|
393
|
+
}
|
|
394
|
+
for name in ("size", "stroke", "font_size"):
|
|
395
|
+
if getattr(config, name) is not None:
|
|
396
|
+
payload[name] = getattr(config, name)
|
|
397
|
+
encoded = escape(
|
|
398
|
+
json.dumps(payload, ensure_ascii=True, allow_nan=False), quote=True
|
|
399
|
+
)
|
|
400
|
+
css = (
|
|
401
|
+
f' data-dash-splash-css="{escape(base + item["css"], quote=True)}"'
|
|
402
|
+
if item.get("css")
|
|
403
|
+
else ""
|
|
404
|
+
)
|
|
405
|
+
content = '<span class="dash-splash__fallback" aria-hidden="true"></span>'
|
|
406
|
+
standalone = ""
|
|
407
|
+
preview = _static_loader_previews().get(loader)
|
|
408
|
+
if preview is not None:
|
|
409
|
+
mode = "preview" if config.loader_options else "true"
|
|
410
|
+
standalone = f' data-dash-splash-static="{mode}"'
|
|
411
|
+
content = (
|
|
412
|
+
'<template shadowrootmode="open">'
|
|
413
|
+
'<style data-css-hash="dash-splash-static">'
|
|
414
|
+
':host{display:inline-flex;color:inherit;max-width:100%}'
|
|
415
|
+
'.viewport{position:relative;display:inline-flex}'
|
|
416
|
+
'.artwork{display:inline-flex;transform-origin:top left}'
|
|
417
|
+
'.artwork *,.artwork *::before,.artwork *::after{'
|
|
418
|
+
'animation-play-state:var(--dash-splash-play-state,running)}'
|
|
419
|
+
'@media(prefers-reduced-motion:reduce){.artwork *,.artwork *::before,'
|
|
420
|
+
'.artwork *::after{animation-play-state:paused!important}}'
|
|
421
|
+
f'{preview["css"]}</style>'
|
|
422
|
+
f'<div class="viewport"><div class="artwork">{preview["html"]}</div></div>'
|
|
423
|
+
'</template>'
|
|
424
|
+
)
|
|
425
|
+
return (
|
|
426
|
+
f'<span class="dash-splash__loader" data-dash-splash-loader="{escape(loader, quote=True)}" '
|
|
427
|
+
f'data-dash-splash-module="{escape(base + item["module"], quote=True)}"{css}{standalone} '
|
|
428
|
+
f'data-dash-splash-react-min="{item.get("minReact", 18)}" '
|
|
429
|
+
f'data-dash-splash-config="{encoded}" aria-hidden="true">'
|
|
430
|
+
f'{content}</span>'
|
|
431
|
+
)
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
def _overlay_html(config: SplashConfig, loader: str) -> str:
|
|
435
|
+
styles = _overlay_styles(config)
|
|
436
|
+
style = escape(
|
|
437
|
+
";".join(f"{name}:{value}" for name, value in styles.items()), quote=True
|
|
438
|
+
)
|
|
439
|
+
if config.custom_loader_html is not None:
|
|
440
|
+
loader_html = config.custom_loader_html
|
|
441
|
+
else:
|
|
442
|
+
loader_html = _loader_markup(config, loader)
|
|
443
|
+
loader_html = f'<div class="dash-splash__spinner-region">{loader_html}</div>'
|
|
444
|
+
return (
|
|
445
|
+
f'<div class="dash-splash" {_SPLASH_MARKER} '
|
|
446
|
+
f'data-dash-splash-theme="{config.theme}" '
|
|
447
|
+
'role="status" aria-live="polite" '
|
|
448
|
+
f'aria-label="{escape(config.aria_label, quote=True)}" aria-busy="true" style="{style}">'
|
|
449
|
+
f'<div class="dash-splash__content">{loader_html}</div>'
|
|
450
|
+
"</div>"
|
|
451
|
+
)
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
@cache
|
|
455
|
+
def _static_loader_previews() -> dict[str, dict[str, str]]:
|
|
456
|
+
return json.loads(_resource_text("static-loaders.json"))
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
@cache
|
|
460
|
+
def _resource_text(name: str) -> str:
|
|
461
|
+
return (
|
|
462
|
+
files(__package__)
|
|
463
|
+
.joinpath(f"resources/{name}")
|
|
464
|
+
.read_text(encoding="utf-8")
|
|
465
|
+
.strip()
|
|
466
|
+
)
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
@hooks.route(name=f"{_SPLASH_ROUTE}/react/{{asset}}", priority=100)
|
|
470
|
+
@hooks.route(name=f"{_SPLASH_ROUTE}/react/<asset>", priority=100)
|
|
471
|
+
def serve_splash_asset(asset: str = ""):
|
|
472
|
+
"""Serve allowlisted, content-hashed React modules and their stylesheets."""
|
|
473
|
+
|
|
474
|
+
app = _current_app()
|
|
475
|
+
backend = getattr(app, "backend", None) if app is not None else None
|
|
476
|
+
if asset not in _MANIFEST["files"]:
|
|
477
|
+
if backend is not None:
|
|
478
|
+
return backend.make_response("", status=404)
|
|
479
|
+
abort(404)
|
|
480
|
+
if backend is not None:
|
|
481
|
+
response = backend.make_response(
|
|
482
|
+
_resource_text(f"react/{asset}"),
|
|
483
|
+
mimetype="text/css" if asset.endswith(".css") else "text/javascript",
|
|
484
|
+
)
|
|
485
|
+
response.headers["Cache-Control"] = _ASSET_CACHE_CONTROL
|
|
486
|
+
return response
|
|
487
|
+
|
|
488
|
+
return current_app.response_class(
|
|
489
|
+
_resource_text(f"react/{asset}"),
|
|
490
|
+
mimetype="text/css" if asset.endswith(".css") else "text/javascript",
|
|
491
|
+
headers={"Cache-Control": _ASSET_CACHE_CONTROL},
|
|
492
|
+
)
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
def _with_splash_runtime(head: str) -> str:
|
|
496
|
+
runtime = f'<script data-dash-splash-resource="runtime">{_resource_text("splash.js")}</script>'
|
|
497
|
+
head_end = _HEAD_END_PATTERN.search(head)
|
|
498
|
+
if head_end is None:
|
|
499
|
+
return runtime + head
|
|
500
|
+
return head[: head_end.start()] + runtime + head[head_end.start() :]
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
def _inject_overlay(app_index: str) -> str:
|
|
504
|
+
config = get_config()
|
|
505
|
+
if not config.enabled or _SPLASH_MARKER in app_index:
|
|
506
|
+
return app_index
|
|
507
|
+
body = _BODY_PATTERN.search(app_index)
|
|
508
|
+
if body is None:
|
|
509
|
+
return app_index
|
|
510
|
+
|
|
511
|
+
loader = config.loader
|
|
512
|
+
return (
|
|
513
|
+
_with_splash_runtime(app_index[: body.end()])
|
|
514
|
+
+ _overlay_html(config, loader)
|
|
515
|
+
+ _START_SCRIPT
|
|
516
|
+
+ app_index[body.end() :]
|
|
517
|
+
)
|
|
518
|
+
|
|
519
|
+
|
|
520
|
+
@hooks.index(priority=100)
|
|
521
|
+
def inject_splash(app_index: str) -> str:
|
|
522
|
+
"""Inject the pre-React overlay into the final HTML document."""
|
|
523
|
+
|
|
524
|
+
return _inject_overlay(app_index)
|
|
File without changes
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Upstream inventory: dash-loading-components (`dlc`)
|
|
2
|
+
|
|
3
|
+
**Package license:** MIT (this repo). Upstream licenses in the SPDX column.
|
|
4
|
+
**Baseline:** React ≥19 / Dash ≥4.5 (hard requirement for shipping `loading_dev`).
|
|
5
|
+
|
|
6
|
+
Update this table when a family is added, version-pinned, or wrap status changes. See also root `NOTICE`.
|
|
7
|
+
|
|
8
|
+
## Wrapped families
|
|
9
|
+
|
|
10
|
+
| dlc namespace | Upstream npm + version | SPDX | Homepage / repo | React peers | Wrap status | Notes |
|
|
11
|
+
|--------------|------------------------|------|-----------------|-------------|-------------|-------|
|
|
12
|
+
| `loading_dev` | [loading-dev](https://www.npmjs.com/package/loading-dev) **0.3.4** | MIT | [loading.dev](https://loading.dev/) · [jakubkrehel/loading](https://github.com/jakubkrehel/loading) | ≥19 | `wrapped` | Product tent-pole; drives React 19 / Dash ≥4.5 floor |
|
|
13
|
+
| `ldrs` | [ldrs](https://www.npmjs.com/package/ldrs) **1.1.9** | MIT | [uiball.com/ldrs](https://uiball.com/ldrs/) · [GriffinJohnston/ldrs](https://github.com/GriffinJohnston/ldrs) | none declared | `wrapped` | Per-component CSS imports |
|
|
14
|
+
| `spinners` | [react-spinners](https://www.npmjs.com/package/react-spinners) **0.17.1** | MIT | [npm](https://www.npmjs.com/package/react-spinners) · [davidhu2000/react-spinners](https://github.com/davidhu2000/react-spinners) | ^16–^19 | `wrapped` | Classic zoo; also used by dash-loading-spinners |
|
|
15
|
+
| `spinners_react` | [spinners-react](https://www.npmjs.com/package/spinners-react) **1.0.11** | MIT | [npm](https://www.npmjs.com/package/spinners-react) · [adexin/spinners-react](https://github.com/adexin/spinners-react) | ^16–^19 | `wrapped` | Not in dash-loading-spinners |
|
|
16
|
+
| `loader_spinner` | [react-loader-spinner](https://www.npmjs.com/package/react-loader-spinner) **8.0.2** | MIT | [npm](https://www.npmjs.com/package/react-loader-spinner) · [mhnpd/react-loader-spinner](https://github.com/mhnpd/react-loader-spinner) | ≥17 `<20` | `wrapped` | High wrap friction (styled-components); own PR after core |
|
|
17
|
+
| `premium` | [premium-react-loaders](https://www.npmjs.com/package/premium-react-loaders) **4.2.0** | MIT | [npm](https://www.npmjs.com/package/premium-react-loaders) | ^18 \|\| ^19 | `wrapped` | One CSS import |
|
|
18
|
+
| `indicators` | [react-loading-indicators](https://www.npmjs.com/package/react-loading-indicators) **1.0.1** | MIT | [npm](https://www.npmjs.com/package/react-loading-indicators) | ≥16.8 | `wrapped` | Low friction |
|
|
19
|
+
| `svg_spinners` | [react-svg-spinners](https://www.npmjs.com/package/react-svg-spinners) **0.3.1** | MIT | [npm](https://www.npmjs.com/package/react-svg-spinners) · [theme-park/react-svg-spinners](https://github.com/theme-park/react-svg-spinners) | **^18.2 only** | `gated` | Do not merge until React 19 peer resolved (override/fork) or deferred |
|
|
20
|
+
| `m3` | [@alerix/m3-loading-indicator](https://www.npmjs.com/package/@alerix/m3-loading-indicator) **1.0.5** | Apache-2.0 | [npm](https://www.npmjs.com/package/@alerix/m3-loading-indicator) | ≥18 | `wrapped` | Day-one (LARGER): include with `epic`; Apache-2.0 OK with MIT wrapper + NOTICE |
|
|
21
|
+
| `epic` | [react-epic-spinners](https://www.npmjs.com/package/react-epic-spinners) **0.6.0** | MIT | [npm](https://www.npmjs.com/package/react-epic-spinners) · [bondz/react-epic-spinners](https://github.com/bondz/react-epic-spinners) | ≥16.8 | `wrapped` | Day-one (LARGER): include with `m3`; styled-components friction |
|
|
22
|
+
| `flicker` | [flicker-dot](https://www.npmjs.com/package/flicker-dot) **0.1.4** | MIT | [flicker.laurie.fyi](https://flicker.laurie.fyi) · [laurieesc/flicker-dot](https://github.com/laurieesc/flicker-dot) | ≥18 | `wrapped` | Player only; the 63 presets are PhylaTech originals (MIT, this repo). The flicker.laurie.fyi gallery patterns are not open source and are not redistributed |
|
|
23
|
+
| `gridora` | [gridora](https://www.npmjs.com/package/gridora) **0.3.0** | MIT | [gridora.gabrielayer.com](https://gridora.gabrielayer.com) · [0x65dgerunner/gridora](https://github.com/0x65dgerunner/gridora) | ≥18 | `wrapped` | 133 motion variants + bitmap-font text. The studio site patterns are not redistributed; user-pasted `sequence=` inputs are their own |
|
|
24
|
+
| `loadersz` | [loadersz](https://www.npmjs.com/package/loadersz) **0.9.0** | MIT | [loadersz.vercel.app](https://loadersz.vercel.app) · [lumberjacque/loadersz-core](https://github.com/lumberjacque/loadersz-core) | ≥18 | `wrapped` | 160 canvas-based loaders via a native Web Component. Includes a chart-shaped group (heatmap, sankey, treemap, candlestick, bar chart). The first nine state names overlap with thinking-orbs (independently implemented; see NOTICE) |
|
|
25
|
+
| `thinking_orbs` | [thinking-orbs](https://www.npmjs.com/package/thinking-orbs) **0.3.2** | MIT | [libraries.dev/orbs](https://libraries.dev/orbs) · [Jakubantalik/Libraries.dev](https://github.com/Jakubantalik/Libraries.dev/tree/main/packages/thinking-orbs) | ≥18 | `wrapped` | One `Orb` component, nine states, plain 2D canvas, monochrome until `color` tints it. Upstream draws at 64, 32 and 20 only; `dlc` snaps any `size` to the nearest and CSS-scales. Not the newer, unrelated `@yogesharc/thinking-orbs` |
|
|
26
|
+
| `lab` | none (PhylaTech originals) | MIT | [this repo](https://github.com/PhylaTech/dash-loading-components) | ≥18 | `original` | Two SVG spinners drawn here, animated with CSS: `HplcTrace` and `WellPlate`. No upstream package; MIT with this repo |
|
|
27
|
+
|
|
28
|
+
## Hard skips (license: do not wrap)
|
|
29
|
+
|
|
30
|
+
| Upstream | SPDX | Reason |
|
|
31
|
+
|----------|------|--------|
|
|
32
|
+
| [css-spinners](https://www.npmjs.com/package/css-spinners) | GPL-3.0 | Incompatible with MIT product distribution without Legal exception |
|
|
33
|
+
| [react18-loaders](https://www.npmjs.com/package/react18-loaders) | MPL-2.0 | Avoid unless Legal OK |
|
|
34
|
+
|
|
35
|
+
## Layout
|
|
36
|
+
|
|
37
|
+
Wrappers live under `src/lib/components/<family>/` with prefixed React names. The Python namespaces `dlc.<family>.*` re-export them under short names.
|
|
38
|
+
|
|
39
|
+
## Column legend
|
|
40
|
+
|
|
41
|
+
| Column | Meaning |
|
|
42
|
+
|--------|---------|
|
|
43
|
+
| Wrap status | `wrapped` = shipped in the package; `gated` = blocked on an upstream peer or a licensing decision |
|
|
44
|
+
| React peers | Declared upstream peerDependency range (npm), not our package floor |
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Phyla Technologies
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
dash-loading-components (dlc)
|
|
2
|
+
Copyright (c) 2026 Phyla Technologies
|
|
3
|
+
|
|
4
|
+
This package is licensed under the MIT License (see LICENSE).
|
|
5
|
+
|
|
6
|
+
It wraps and redistributes third-party loading-indicator libraries under their
|
|
7
|
+
own licenses. Full upstream inventory (npm name, version, SPDX license,
|
|
8
|
+
homepage/repo URLs, React peers, wrap status) lives in:
|
|
9
|
+
|
|
10
|
+
docs/UPSTREAM-INVENTORY.md
|
|
11
|
+
|
|
12
|
+
Notable upstream projects (non-exhaustive; see inventory for pins and status):
|
|
13
|
+
|
|
14
|
+
- loading-dev / loading.dev (jakubkrehel/loading) — MIT
|
|
15
|
+
- ldrs (GriffinJohnston/ldrs) — MIT
|
|
16
|
+
- react-spinners (davidhu2000/react-spinners) — MIT
|
|
17
|
+
- spinners-react — MIT
|
|
18
|
+
- react-loader-spinner — MIT
|
|
19
|
+
- premium-react-loaders — MIT
|
|
20
|
+
- react-loading-indicators — MIT
|
|
21
|
+
- react-svg-spinners — MIT (gated: React ^18.2 peer)
|
|
22
|
+
- @alerix/m3-loading-indicator — Apache-2.0
|
|
23
|
+
- react-epic-spinners — MIT
|
|
24
|
+
- flicker-dot (laurieesc/flicker-dot) — MIT. The dlc.flicker presets are
|
|
25
|
+
original PhylaTech designs under this package's MIT license; none of the
|
|
26
|
+
flicker.laurie.fyi gallery patterns are included.
|
|
27
|
+
- gridora (0x65dgerunner/gridora) -- MIT. 133 motion variants and bitmap-font
|
|
28
|
+
text, wrapped as dlc.gridora.GridLoader and dlc.gridora.Text. The studio
|
|
29
|
+
site (gridora.gabrielayer.com) patterns are not redistributed.
|
|
30
|
+
- loadersz (lumberjacque/loadersz-core) -- MIT. 160 canvas-based loading
|
|
31
|
+
animations as a native Web Component, wrapped as dlc.loadersz.Loader.
|
|
32
|
+
Includes chart-shaped loaders (heatmap, sankey, treemap, candlestick,
|
|
33
|
+
bar chart) suited for data dashboards.
|
|
34
|
+
Note: the first nine semantic state names (working, searching, connecting,
|
|
35
|
+
weaving, shaping, listening, breathing, composing, solving) overlap with
|
|
36
|
+
thinking-orbs (Jakub Antalik, MIT). The two libraries are independently
|
|
37
|
+
implemented: loadersz is a framework-agnostic Web Component using its own
|
|
38
|
+
canvas renderer with Dot/OrbLine/OrbRect/OrbArc primitives, while
|
|
39
|
+
thinking-orbs is a React-only 3D dotted-sphere renderer. The shared names
|
|
40
|
+
describe common AI/agent activity verbs. No code or assets are copied.
|
|
41
|
+
- thinking-orbs (Jakubantalik/Libraries.dev) -- MIT. Nine dotted-sphere canvas
|
|
42
|
+
orbs for AI and agent status, wrapped as dlc.thinking_orbs.Orb. Not to be
|
|
43
|
+
confused with the unrelated @yogesharc/thinking-orbs package, which is not
|
|
44
|
+
wrapped.
|
|
45
|
+
- dlc.lab is PhylaTech's own work (MIT, this repo): two SVG spinners, HplcTrace
|
|
46
|
+
and WellPlate. No third-party code or assets.
|
|
47
|
+
|
|
48
|
+
Hard skips (not wrapped): css-spinners (GPL-3.0), react18-loaders (MPL-2.0).
|
|
49
|
+
|
|
50
|
+
When redistributing this package, retain this NOTICE and the inventory document
|
|
51
|
+
so third-party attribution remains intact.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Bartosz Zagrodzki
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|