@genexus/genexus-ide-ui 1.1.12 → 1.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/MERCURY_ASSETS-15c5c1ac.js +9 -0
- package/dist/cjs/MERCURY_ASSETS-15c5c1ac.js.map +1 -0
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-about.cjs.entry.js +29 -15
- package/dist/cjs/gx-ide-about.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-design-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-empty-state.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-file-item.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +1 -14
- package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-open-api-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-plugin-details.cjs.entry.js +201 -0
- package/dist/cjs/gx-ide-plugin-details.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js +159 -0
- package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +0 -1
- package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-splash.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +3 -1
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +4 -0
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js +1 -1
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js.map +1 -1
- package/dist/collection/components/{_branding/about → about}/about.css +44 -15
- package/dist/collection/components/{_branding/about → about}/about.js +46 -62
- package/dist/collection/components/about/about.js.map +1 -0
- package/dist/collection/components/{_branding/about → about}/gx-ide-assets/about/langs/about.lang.en.json +3 -3
- package/dist/collection/components/{_branding/about → about}/gx-ide-assets/about/langs/about.lang.ja.json +3 -3
- package/dist/collection/components/{_branding/about → about}/gx-ide-assets/about/langs/about.lang.zh.json +3 -3
- package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.js +2 -2
- package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.js.map +1 -1
- package/dist/collection/components/file-uploader/file-uploader.js +0 -13
- package/dist/collection/components/file-uploader/file-uploader.js.map +1 -1
- package/dist/collection/components/plugin-details/gx-ide-assets/plugin-details/langs/plugin-details.lang.en.json +9 -0
- package/dist/collection/components/plugin-details/gx-ide-assets/plugin-details/langs/plugin-details.lang.ja.json +9 -0
- package/dist/collection/components/plugin-details/gx-ide-assets/plugin-details/langs/plugin-details.lang.zh.json +9 -0
- package/dist/collection/components/plugin-details/plugin-details.css +168 -0
- package/dist/collection/components/plugin-details/plugin-details.js +292 -0
- package/dist/collection/components/plugin-details/plugin-details.js.map +1 -0
- package/dist/collection/components/plugin-explorer/gx-ide-assets/plugin-explorer/images/plugin-icon.svg +10 -0
- package/dist/collection/components/plugin-explorer/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.en.json +10 -0
- package/dist/collection/components/plugin-explorer/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.ja.json +10 -0
- package/dist/collection/components/plugin-explorer/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.zh.json +10 -0
- package/dist/collection/components/plugin-explorer/plugin-explorer.css +106 -0
- package/dist/collection/components/plugin-explorer/plugin-explorer.js +263 -0
- package/dist/collection/components/plugin-explorer/plugin-explorer.js.map +1 -0
- package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.ja.json +45 -45
- package/dist/collection/pages/assets/images/plugin/docker-iso.svg +12 -0
- package/dist/collection/showcase/chat-container/callbacks.js +0 -1
- package/dist/collection/showcase/chat-container/callbacks.js.map +1 -1
- package/dist/collection/testing/locale.e2e.js +2 -0
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/MERCURY_ASSETS.js +1 -1
- package/dist/components/MERCURY_ASSETS.js.map +1 -1
- package/dist/components/gx-ide-about.js +32 -19
- package/dist/components/gx-ide-about.js.map +1 -1
- package/dist/components/gx-ide-bpm-export-xpdl.js +2 -2
- package/dist/components/gx-ide-bpm-export-xpdl.js.map +1 -1
- package/dist/components/gx-ide-empty-state2.js +2 -2
- package/dist/components/gx-ide-empty-state2.js.map +1 -1
- package/dist/components/gx-ide-file-uploader.js +0 -13
- package/dist/components/gx-ide-file-uploader.js.map +1 -1
- package/dist/components/gx-ide-plugin-details.d.ts +11 -0
- package/dist/components/gx-ide-plugin-details.js +222 -0
- package/dist/components/gx-ide-plugin-details.js.map +1 -0
- package/dist/components/gx-ide-plugin-explorer.d.ts +11 -0
- package/dist/components/gx-ide-plugin-explorer.js +194 -0
- package/dist/components/gx-ide-plugin-explorer.js.map +1 -0
- package/dist/components/gx-ide-sc-chat-container.js +0 -1
- package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
- package/dist/esm/MERCURY_ASSETS-7c06e424.js +7 -0
- package/dist/esm/MERCURY_ASSETS-7c06e424.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-about.entry.js +29 -15
- package/dist/esm/gx-ide-about.entry.js.map +1 -1
- package/dist/esm/gx-ide-ai-message.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +2 -2
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-task-documents.entry.js +1 -1
- package/dist/esm/gx-ide-chat-container_2.entry.js +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
- package/dist/esm/gx-ide-current-user-info.entry.js +1 -1
- package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
- package/dist/esm/gx-ide-data-selector.entry.js +1 -1
- package/dist/esm/gx-ide-data-type-selector.entry.js +1 -1
- package/dist/esm/gx-ide-design-import.entry.js +1 -1
- package/dist/esm/gx-ide-empty-state.entry.js +2 -2
- package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
- package/dist/esm/gx-ide-entity-selector.entry.js +1 -1
- package/dist/esm/gx-ide-file-item.entry.js +1 -1
- package/dist/esm/gx-ide-file-uploader.entry.js +1 -14
- package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js +1 -1
- package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +1 -1
- package/dist/esm/gx-ide-open-api-import.entry.js +1 -1
- package/dist/esm/gx-ide-plugin-details.entry.js +197 -0
- package/dist/esm/gx-ide-plugin-details.entry.js.map +1 -0
- package/dist/esm/gx-ide-plugin-explorer.entry.js +155 -0
- package/dist/esm/gx-ide-plugin-explorer.entry.js.map +1 -0
- package/dist/esm/gx-ide-references.entry.js +1 -1
- package/dist/esm/gx-ide-sc-chat-container.entry.js +0 -1
- package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
- package/dist/esm/gx-ide-select-kb-items.entry.js +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +1 -1
- package/dist/esm/gx-ide-splash.entry.js +1 -1
- package/dist/esm/gx-ide-start-page.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-history.entry.js +1 -1
- package/dist/esm/gx-ide-welcome-page.entry.js +1 -1
- package/dist/esm/gx-ide-ww-attributes.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/about/langs/about.lang.en.json +3 -3
- package/dist/genexus-ide-ui/gx-ide-assets/about/langs/about.lang.ja.json +3 -3
- package/dist/genexus-ide-ui/gx-ide-assets/about/langs/about.lang.zh.json +3 -3
- package/dist/genexus-ide-ui/gx-ide-assets/plugin-details/langs/plugin-details.lang.en.json +9 -0
- package/dist/genexus-ide-ui/gx-ide-assets/plugin-details/langs/plugin-details.lang.ja.json +9 -0
- package/dist/genexus-ide-ui/gx-ide-assets/plugin-details/langs/plugin-details.lang.zh.json +9 -0
- package/dist/genexus-ide-ui/gx-ide-assets/plugin-explorer/images/plugin-icon.svg +10 -0
- package/dist/genexus-ide-ui/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.en.json +10 -0
- package/dist/genexus-ide-ui/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.ja.json +10 -0
- package/dist/genexus-ide-ui/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.zh.json +10 -0
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.ja.json +45 -45
- package/dist/genexus-ide-ui/{p-14fc5c24.entry.js → p-0cd3ab87.entry.js} +19 -19
- package/dist/genexus-ide-ui/{p-704499e5.entry.js → p-1292a6b9.entry.js} +40 -40
- package/dist/genexus-ide-ui/{p-4d4ed703.entry.js → p-16138f55.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-7abe2214.entry.js → p-1be1db4e.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-ede7bd20.js → p-2987a259.js} +6674 -5218
- package/dist/genexus-ide-ui/p-2987a259.js.map +1 -0
- package/dist/genexus-ide-ui/{p-a47d71eb.entry.js → p-4328be14.entry.js} +7 -7
- package/dist/genexus-ide-ui/p-4328be14.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-4e943649.entry.js → p-45539ad0.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-476b74a1.entry.js +109 -0
- package/dist/genexus-ide-ui/p-476b74a1.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-6d996621.entry.js → p-4e6425f3.entry.js} +1 -2
- package/dist/genexus-ide-ui/p-4e6425f3.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-a8d0b62e.entry.js → p-52f37ec7.entry.js} +8 -8
- package/dist/genexus-ide-ui/{p-4538dea5.entry.js → p-54fb1287.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-74715731.entry.js → p-60e39b2f.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-641c79a9.entry.js +198 -0
- package/dist/genexus-ide-ui/p-641c79a9.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-88c81f18.entry.js → p-667965d3.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-41a4364d.entry.js → p-7053c38e.entry.js} +11 -11
- package/dist/genexus-ide-ui/{p-29c69938.entry.js → p-72e346b9.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-ecba870e.entry.js → p-74a0cb25.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-c38ce0bf.entry.js → p-760d8f2a.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-9dcb8fb7.entry.js → p-7ae2a57f.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-1c7ea1cb.entry.js → p-7d107d2f.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-690942cb.entry.js → p-7d7cf30d.entry.js} +35 -51
- package/dist/genexus-ide-ui/p-7d7cf30d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-01d96378.entry.js → p-7f65f9e3.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-eb9e760d.entry.js → p-83cc3bcd.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-84c1c1bb.entry.js +270 -0
- package/dist/genexus-ide-ui/p-84c1c1bb.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-844b7117.entry.js → p-86365635.entry.js} +3 -3
- package/dist/genexus-ide-ui/p-86365635.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-04205aa4.entry.js → p-93cdb6f8.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-0acf517c.entry.js → p-a869ec48.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-bc760bb3.entry.js → p-b465f29d.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-ff28c49d.entry.js → p-bbb5b0fb.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-8cb937b7.entry.js → p-c50b9883.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-3b983843.entry.js → p-c92332af.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-c7badbf1.entry.js → p-c9bca7c0.entry.js} +20 -20
- package/dist/genexus-ide-ui/{p-3da8db15.entry.js → p-ca6eb9fd.entry.js} +30 -30
- package/dist/genexus-ide-ui/{p-67e0b419.entry.js → p-ca9978e1.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-7d8812b0.entry.js → p-d77582b8.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-aab809c4.entry.js → p-fd440291.entry.js} +2 -2
- package/dist/types/components/{_branding/about → about}/about.d.ts +6 -10
- package/dist/types/components/plugin-details/plugin-details.d.ts +55 -0
- package/dist/types/components/plugin-explorer/plugin-explorer.d.ts +43 -0
- package/dist/types/components.d.ts +106 -22
- package/package.json +3 -3
- package/dist/cjs/MERCURY_ASSETS-972bf7f4.js +0 -9
- package/dist/cjs/MERCURY_ASSETS-972bf7f4.js.map +0 -1
- package/dist/collection/components/_branding/about/about.js.map +0 -1
- package/dist/esm/MERCURY_ASSETS-039222dd.js +0 -7
- package/dist/esm/MERCURY_ASSETS-039222dd.js.map +0 -1
- package/dist/genexus-ide-ui/p-0550fd5f.entry.js +0 -96
- package/dist/genexus-ide-ui/p-0550fd5f.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-690942cb.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-6d996621.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-844b7117.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-a47d71eb.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-ede7bd20.js.map +0 -1
- /package/dist/collection/components/{_branding/about → about}/gx-ide-assets/about/images/copyrights-illustration.png +0 -0
- /package/dist/collection/components/{_branding/about → about}/gx-ide-assets/about/images/next-arrow.svg +0 -0
- /package/dist/collection/components/{_branding/about → about}/gx-ide-assets/about/images/next-logo.svg +0 -0
- /package/dist/collection/components/{_branding/about → about}/gx-ide-assets/about/images/next-square.svg +0 -0
- /package/dist/genexus-ide-ui/{p-14fc5c24.entry.js.map → p-0cd3ab87.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-704499e5.entry.js.map → p-1292a6b9.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-4d4ed703.entry.js.map → p-16138f55.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7abe2214.entry.js.map → p-1be1db4e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-4e943649.entry.js.map → p-45539ad0.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a8d0b62e.entry.js.map → p-52f37ec7.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-4538dea5.entry.js.map → p-54fb1287.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-74715731.entry.js.map → p-60e39b2f.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-88c81f18.entry.js.map → p-667965d3.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-41a4364d.entry.js.map → p-7053c38e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-29c69938.entry.js.map → p-72e346b9.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ecba870e.entry.js.map → p-74a0cb25.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c38ce0bf.entry.js.map → p-760d8f2a.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-9dcb8fb7.entry.js.map → p-7ae2a57f.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-1c7ea1cb.entry.js.map → p-7d107d2f.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-01d96378.entry.js.map → p-7f65f9e3.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-eb9e760d.entry.js.map → p-83cc3bcd.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-04205aa4.entry.js.map → p-93cdb6f8.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0acf517c.entry.js.map → p-a869ec48.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-bc760bb3.entry.js.map → p-b465f29d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ff28c49d.entry.js.map → p-bbb5b0fb.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-8cb937b7.entry.js.map → p-c50b9883.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3b983843.entry.js.map → p-c92332af.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c7badbf1.entry.js.map → p-c9bca7c0.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3da8db15.entry.js.map → p-ca6eb9fd.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-67e0b419.entry.js.map → p-ca9978e1.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7d8812b0.entry.js.map → p-d77582b8.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-aab809c4.entry.js.map → p-fd440291.entry.js.map} +0 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: grid;
|
|
3
|
+
block-size: 100%;
|
|
4
|
+
grid-template-areas: "header header" "main aside";
|
|
5
|
+
grid-template-rows: max-content 1fr;
|
|
6
|
+
grid-template-columns: 1fr 280px;
|
|
7
|
+
row-gap: 12px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.section {
|
|
11
|
+
display: contents;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.header {
|
|
15
|
+
display: grid;
|
|
16
|
+
grid-area: header;
|
|
17
|
+
grid-template-areas: "plugin-icon plugin-details";
|
|
18
|
+
grid-template-columns: 64px 1fr;
|
|
19
|
+
column-gap: 16px;
|
|
20
|
+
padding: 24px 24px 16px 24px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.plugin__icon {
|
|
24
|
+
grid-area: plugin-icon;
|
|
25
|
+
max-width: 100%;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.plugin__details {
|
|
29
|
+
grid-area: plugin-details;
|
|
30
|
+
display: flex;
|
|
31
|
+
flex-direction: column;
|
|
32
|
+
gap: 8px;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.plugin__publisher {
|
|
36
|
+
display: flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
gap: 4px;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.plugin__description {
|
|
42
|
+
line-height: 1.5;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.plugin__actions-container {
|
|
46
|
+
margin-block-start: 8px;
|
|
47
|
+
align-items: center;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.action-button {
|
|
51
|
+
min-inline-size: 100px;
|
|
52
|
+
}
|
|
53
|
+
.action-button.more-versions-available {
|
|
54
|
+
border-start-end-radius: 0 !important;
|
|
55
|
+
border-end-end-radius: 0 !important;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.installed-container {
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
gap: 6px;
|
|
62
|
+
}
|
|
63
|
+
.installed-container ch-image {
|
|
64
|
+
--ch-image-size: 20px;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.main {
|
|
68
|
+
grid-area: main;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.docsTab {
|
|
72
|
+
block-size: 100%;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.aside {
|
|
76
|
+
grid-area: aside;
|
|
77
|
+
overflow: auto;
|
|
78
|
+
border-block-start: 1px solid var(--items-container__border-color);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.fields__list {
|
|
82
|
+
list-style: none;
|
|
83
|
+
padding: 0;
|
|
84
|
+
margin: 0;
|
|
85
|
+
font-size: 12px;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.plugin__info-category {
|
|
89
|
+
display: flex;
|
|
90
|
+
flex-direction: column;
|
|
91
|
+
gap: 8px;
|
|
92
|
+
}
|
|
93
|
+
.plugin__info-category:not(:first-child) {
|
|
94
|
+
padding-block-start: 16px;
|
|
95
|
+
margin-block-start: 16px;
|
|
96
|
+
border-block-start: 1px solid var(--mer-border-color__on-elevation--01);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.fields__list:not(.fields__list--as-tags) {
|
|
100
|
+
display: flex;
|
|
101
|
+
flex-direction: column;
|
|
102
|
+
gap: 8px;
|
|
103
|
+
}
|
|
104
|
+
.fields__list:not(.fields__list--as-tags) .field__li {
|
|
105
|
+
display: flex;
|
|
106
|
+
gap: 16px;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.fields__list--as-tags {
|
|
110
|
+
display: flex;
|
|
111
|
+
flex-wrap: wrap;
|
|
112
|
+
gap: 6px;
|
|
113
|
+
}
|
|
114
|
+
.fields__list--as-tags .field__li {
|
|
115
|
+
border: 1px solid var(--mer-border-color__on-elevation--01);
|
|
116
|
+
padding: 2px 8px;
|
|
117
|
+
border-radius: 4px;
|
|
118
|
+
text-transform: lowercase;
|
|
119
|
+
}
|
|
120
|
+
.fields__list--as-tags .field__link {
|
|
121
|
+
color: var(--mer-text__on-surface);
|
|
122
|
+
}
|
|
123
|
+
.fields__list--as-tags .field__link:hover {
|
|
124
|
+
color: var(--mer-accent__primary);
|
|
125
|
+
}
|
|
126
|
+
.fields__list--as-tags .field__link:active {
|
|
127
|
+
color: var(--mer-accent__primary--hover);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.field__name,
|
|
131
|
+
.field__value {
|
|
132
|
+
flex: 1;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.field__link {
|
|
136
|
+
color: var(--mer-accent__primary);
|
|
137
|
+
}
|
|
138
|
+
.field__link:hover {
|
|
139
|
+
color: var(--mer-accent__primary--hover);
|
|
140
|
+
}
|
|
141
|
+
.field__link:active {
|
|
142
|
+
color: var(--mer-accent__primary--active);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.docsTab {
|
|
146
|
+
background-color: transparent !important;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.dropdown.button-icon-only::part(expandable-button) {
|
|
150
|
+
padding: calc( ( var(--control__block-size) - 2 * var(--control__border-width) - var(--mer-icon__box--md) ) / 2 ) !important;
|
|
151
|
+
border-start-start-radius: 0 !important;
|
|
152
|
+
border-end-start-radius: 0 !important;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.version-buttons-container {
|
|
156
|
+
display: flex;
|
|
157
|
+
align-items: center;
|
|
158
|
+
gap: 1px;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
ch-markdown-viewer {
|
|
162
|
+
block-size: 100%;
|
|
163
|
+
overflow: auto;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.text-underline {
|
|
167
|
+
text-decoration: underline;
|
|
168
|
+
}
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
+
if (kind === "a" && !f)
|
|
3
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
5
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
6
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
9
|
+
if (kind === "m")
|
|
10
|
+
throw new TypeError("Private method is not writable");
|
|
11
|
+
if (kind === "a" && !f)
|
|
12
|
+
throw new TypeError("Private accessor was defined without a setter");
|
|
13
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
14
|
+
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
15
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
16
|
+
};
|
|
17
|
+
var _GxIdePluginDetails_componentLocale, _GxIdePluginDetails_docSectionIdDescriptionMap, _GxIdePluginDetails_versionsMenuOptionsModel, _GxIdePluginDetails_menuVersionSelectedHandler, _GxIdePluginDetails_renderUninstallButton, _GxIdePluginDetails_installClickedHandler, _GxIdePluginDetails_updateVersionHandler, _GxIdePluginDetails_openLinkHandler, _GxIdePluginDetails_uninstallClickedHandler, _GxIdePluginDetails_renderActionButtons, _GxIdePluginDetails_tabSelectionChangedHandler, _GxIdePluginDetails_renderDocSectionsSlots, _GxIdePluginDetails_returnFormatedId, _GxIdePluginDetails_renderAsideContent;
|
|
18
|
+
import { Host, h, getAssetPath } from "@stencil/core";
|
|
19
|
+
import { getIconPath } from "@genexus/mercury";
|
|
20
|
+
import { Locale } from "../../common/locale";
|
|
21
|
+
const USER_ICON = getIconPath({
|
|
22
|
+
category: "system",
|
|
23
|
+
name: "user",
|
|
24
|
+
colorType: "on-elevation"
|
|
25
|
+
});
|
|
26
|
+
const CHEVRON_DOWN_ICON = getIconPath({
|
|
27
|
+
category: "system",
|
|
28
|
+
name: "chevron-down",
|
|
29
|
+
colorType: "on-primary"
|
|
30
|
+
});
|
|
31
|
+
const CHECK_CIRCLE_ICON = getIconPath({
|
|
32
|
+
category: "system",
|
|
33
|
+
name: "check-circle",
|
|
34
|
+
colorType: "success"
|
|
35
|
+
});
|
|
36
|
+
// plugin icon if no iconUri was provided
|
|
37
|
+
const EXTENSION_ICON_IMG = getAssetPath(`./gx-ide-assets/plugin-manager/images/plugin-icon.svg`);
|
|
38
|
+
const CSS_BUNDLES = [
|
|
39
|
+
"resets/box-sizing",
|
|
40
|
+
"chameleon/scrollbar",
|
|
41
|
+
"components/button",
|
|
42
|
+
"components/dropdown",
|
|
43
|
+
"components/edit",
|
|
44
|
+
"components/icon",
|
|
45
|
+
"components/list-box",
|
|
46
|
+
"components/tab",
|
|
47
|
+
"utils/form",
|
|
48
|
+
"utils/layout",
|
|
49
|
+
"utils/spacing",
|
|
50
|
+
"utils/typography"
|
|
51
|
+
];
|
|
52
|
+
export class GxIdePluginDetails {
|
|
53
|
+
constructor() {
|
|
54
|
+
/**
|
|
55
|
+
* The component hard-coded strings translations.
|
|
56
|
+
*/
|
|
57
|
+
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
58
|
+
_GxIdePluginDetails_componentLocale.set(this, void 0);
|
|
59
|
+
// A map between docSection "id", and docSection "description".
|
|
60
|
+
// "id" is generated inside this component.
|
|
61
|
+
_GxIdePluginDetails_docSectionIdDescriptionMap.set(this, new Map());
|
|
62
|
+
_GxIdePluginDetails_versionsMenuOptionsModel.set(this, () => {
|
|
63
|
+
var _a;
|
|
64
|
+
const versionsToUpdateMenusModel = (_a = this.data.versions) === null || _a === void 0 ? void 0 : _a.map(version => {
|
|
65
|
+
return { id: version, caption: version };
|
|
66
|
+
});
|
|
67
|
+
return versionsToUpdateMenusModel;
|
|
68
|
+
});
|
|
69
|
+
_GxIdePluginDetails_menuVersionSelectedHandler.set(this, (event) => {
|
|
70
|
+
const selectedVersion = event.detail.id;
|
|
71
|
+
this.installCallback(selectedVersion);
|
|
72
|
+
});
|
|
73
|
+
_GxIdePluginDetails_renderUninstallButton.set(this, () => {
|
|
74
|
+
return (h("button", { class: "button-tertiary", onClick: __classPrivateFieldGet(this, _GxIdePluginDetails_uninstallClickedHandler, "f") }, __classPrivateFieldGet(this, _GxIdePluginDetails_componentLocale, "f").actions.uninstall));
|
|
75
|
+
});
|
|
76
|
+
_GxIdePluginDetails_installClickedHandler.set(this, () => {
|
|
77
|
+
this.installCallback();
|
|
78
|
+
});
|
|
79
|
+
_GxIdePluginDetails_updateVersionHandler.set(this, (id) => () => {
|
|
80
|
+
this.installCallback(id);
|
|
81
|
+
});
|
|
82
|
+
_GxIdePluginDetails_openLinkHandler.set(this, (link) => (event) => {
|
|
83
|
+
event.preventDefault();
|
|
84
|
+
this.openLinkCallback(link);
|
|
85
|
+
});
|
|
86
|
+
_GxIdePluginDetails_uninstallClickedHandler.set(this, () => {
|
|
87
|
+
this.uninstallCallback();
|
|
88
|
+
});
|
|
89
|
+
_GxIdePluginDetails_renderActionButtons.set(this, () => {
|
|
90
|
+
var _a;
|
|
91
|
+
let actionButtonCaption;
|
|
92
|
+
let actionButtonClasses = "button-primary action-button";
|
|
93
|
+
let actionButtonCallback;
|
|
94
|
+
const moreVersionsToUpdate = (_a = this.data.versions) === null || _a === void 0 ? void 0 : _a.length;
|
|
95
|
+
if (!this.data.installed) {
|
|
96
|
+
actionButtonCaption = __classPrivateFieldGet(this, _GxIdePluginDetails_componentLocale, "f").actions.install;
|
|
97
|
+
actionButtonCallback = __classPrivateFieldGet(this, _GxIdePluginDetails_installClickedHandler, "f");
|
|
98
|
+
}
|
|
99
|
+
else if (this.data.updateVersion) {
|
|
100
|
+
actionButtonCaption = `${__classPrivateFieldGet(this, _GxIdePluginDetails_componentLocale, "f").actions.updateTo} ${this.data.updateVersion}`;
|
|
101
|
+
actionButtonCallback = __classPrivateFieldGet(this, _GxIdePluginDetails_updateVersionHandler, "f").call(this, this.data.updateVersion);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
actionButtonCaption = __classPrivateFieldGet(this, _GxIdePluginDetails_componentLocale, "f").actions.installed;
|
|
105
|
+
}
|
|
106
|
+
if (moreVersionsToUpdate) {
|
|
107
|
+
actionButtonClasses = `${actionButtonClasses} more-versions-available`;
|
|
108
|
+
}
|
|
109
|
+
return [
|
|
110
|
+
h("div", { class: "version-buttons-container" }, h("button", { class: actionButtonClasses, onClick: actionButtonCallback }, actionButtonCaption), moreVersionsToUpdate ? (h("ch-action-menu-render", { class: "dropdown button-primary button-icon-only", blockAlign: "outside-end", inlineAlign: "inside-start", model: __classPrivateFieldGet(this, _GxIdePluginDetails_versionsMenuOptionsModel, "f").call(this), onButtonClick: __classPrivateFieldGet(this, _GxIdePluginDetails_menuVersionSelectedHandler, "f") }, h("ch-image", { src: CHEVRON_DOWN_ICON, class: "icon-md" }))) : null)
|
|
111
|
+
];
|
|
112
|
+
});
|
|
113
|
+
_GxIdePluginDetails_tabSelectionChangedHandler.set(this, (event) => {
|
|
114
|
+
this.selectedTabId = event.detail.newSelectedId;
|
|
115
|
+
});
|
|
116
|
+
_GxIdePluginDetails_renderDocSectionsSlots.set(this, () => {
|
|
117
|
+
return this.docsTabModel.map(docSectionTab => {
|
|
118
|
+
if (docSectionTab.id === this.selectedTabId) {
|
|
119
|
+
const markdownValue = __classPrivateFieldGet(this, _GxIdePluginDetails_docSectionIdDescriptionMap, "f").get(docSectionTab.id);
|
|
120
|
+
return (h("ch-markdown-viewer", { slot: docSectionTab.id, key: docSectionTab.id, class: "markdown spacing-body scrollable", theme: "components/markdown-viewer", value: markdownValue }));
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
_GxIdePluginDetails_returnFormatedId.set(this, (rawId) => {
|
|
125
|
+
return rawId.toLowerCase().replace(/\s+/g, "-");
|
|
126
|
+
});
|
|
127
|
+
_GxIdePluginDetails_renderAsideContent.set(this, () => {
|
|
128
|
+
return this.data.infoCategories.map(infoCategory => {
|
|
129
|
+
return (h("div", { class: "plugin__info-category" }, h("h3", { class: "subtitle-semi-bold-s" }, infoCategory.name), h("ul", { class: {
|
|
130
|
+
"fields__list": true,
|
|
131
|
+
"fields__list--as-tags": infoCategory.displayAsTags
|
|
132
|
+
} }, infoCategory.fields.map(field => {
|
|
133
|
+
// If the field name isn’t specified, only the value is shown — usually a link.
|
|
134
|
+
const fieldValue = typeof field.value === "string" ? field.value : (h("a", { class: "field__link", onClick: __classPrivateFieldGet(this, _GxIdePluginDetails_openLinkHandler, "f").call(this, field.value.url) }, field.value.text));
|
|
135
|
+
return (h("li", { class: "field__li" }, field.name && !infoCategory.displayAsTags
|
|
136
|
+
? // displaysAsTags forces the items to be displayed as tags
|
|
137
|
+
// no span.field__name and span.field__value
|
|
138
|
+
[
|
|
139
|
+
h("span", { class: "field__name body-semi-bold-s" }, field.name),
|
|
140
|
+
h("span", { class: "field__value body-regular-s" }, fieldValue)
|
|
141
|
+
]
|
|
142
|
+
: fieldValue));
|
|
143
|
+
}))));
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
this.docsTabModel = [];
|
|
147
|
+
this.selectedTabId = undefined;
|
|
148
|
+
this.data = undefined;
|
|
149
|
+
this.installCallback = undefined;
|
|
150
|
+
this.openLinkCallback = undefined;
|
|
151
|
+
this.uninstallCallback = undefined;
|
|
152
|
+
}
|
|
153
|
+
async componentWillLoad() {
|
|
154
|
+
var _a;
|
|
155
|
+
__classPrivateFieldSet(this, _GxIdePluginDetails_componentLocale, await Locale.getComponentStrings(this.el), "f");
|
|
156
|
+
if ((_a = this.data.docSections) === null || _a === void 0 ? void 0 : _a.length) {
|
|
157
|
+
this.docsTabModel = this.data.docSections.map((docSection, i) => {
|
|
158
|
+
const formatedId = __classPrivateFieldGet(this, _GxIdePluginDetails_returnFormatedId, "f").call(this, docSection.name);
|
|
159
|
+
__classPrivateFieldGet(this, _GxIdePluginDetails_docSectionIdDescriptionMap, "f").set(formatedId, docSection.content);
|
|
160
|
+
if (i === 0) {
|
|
161
|
+
this.selectedTabId = formatedId;
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
id: formatedId,
|
|
165
|
+
name: docSection.name
|
|
166
|
+
};
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
render() {
|
|
171
|
+
const renderActionButtons = !this.data.installed ||
|
|
172
|
+
(this.data.installed && !!this.data.updateVersion);
|
|
173
|
+
const titleLinkDataText = this.data.name.text;
|
|
174
|
+
const titleLinkDataUrl = this.data.name.url;
|
|
175
|
+
const titleHasLink = titleLinkDataText && titleLinkDataUrl;
|
|
176
|
+
const titleText = titleLinkDataText || this.data.name;
|
|
177
|
+
const publisherDataText = this.data.publisher.text;
|
|
178
|
+
const publisherDataUrl = this.data.publisher.url;
|
|
179
|
+
const publisherHasLink = publisherDataText && publisherDataUrl;
|
|
180
|
+
const publisherText = publisherDataText || this.data.publisher;
|
|
181
|
+
return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, h("header", { class: "header" }, h("img", { class: "plugin__icon", src: this.data.iconUrl || EXTENSION_ICON_IMG, alt: "plugin extension icon" }), h("div", { class: "plugin__details" }, titleHasLink ? (h("h2", { class: "heading-5" }, h("a", { href: titleLinkDataUrl, onClick: __classPrivateFieldGet(this, _GxIdePluginDetails_openLinkHandler, "f").call(this, titleLinkDataUrl), class: "text-underline" }, titleText))) : (h("h2", { class: "heading-5" }, titleText)), publisherHasLink ? (h("a", { href: publisherDataUrl, onClick: __classPrivateFieldGet(this, _GxIdePluginDetails_openLinkHandler, "f").call(this, publisherDataUrl), class: "text-underline plugin__publisher tiny-semi-bold-l" }, h("ch-image", { src: USER_ICON, class: "icon-md" }), publisherText)) : (h("p", { class: "plugin__publisher tiny-semi-bold-l" }, h("ch-image", { src: USER_ICON, class: "icon-md" }), publisherText)), h("p", { class: "plugin__description" }, this.data.description), h("div", { class: "buttons-spacer plugin__actions-container" }, renderActionButtons ? (__classPrivateFieldGet(this, _GxIdePluginDetails_renderActionButtons, "f").call(this)) : (
|
|
182
|
+
// installed and no updates
|
|
183
|
+
h("p", { class: "installed-container subtitle-semi-bold-s" }, h("ch-image", { src: CHECK_CIRCLE_ICON, class: "icon-md" }), __classPrivateFieldGet(this, _GxIdePluginDetails_componentLocale, "f").actions.installed)), this.data.installed && __classPrivateFieldGet(this, _GxIdePluginDetails_renderUninstallButton, "f").call(this)))), h("div", { class: "main" }, this.docsTabModel.length > 0 && (h("ch-tab-render", { class: "tab docsTab scrollable", tabListPosition: "block-start", overflow: "auto", contain: "size", model: this.docsTabModel, onSelectedItemChange: __classPrivateFieldGet(this, _GxIdePluginDetails_tabSelectionChangedHandler, "f"), selectedId: this.selectedTabId }, __classPrivateFieldGet(this, _GxIdePluginDetails_renderDocSectionsSlots, "f").call(this)))), h("div", { class: "aside spacing-body scrollable" }, __classPrivateFieldGet(this, _GxIdePluginDetails_renderAsideContent, "f").call(this)))));
|
|
184
|
+
}
|
|
185
|
+
static get is() { return "gx-ide-plugin-details"; }
|
|
186
|
+
static get encapsulation() { return "shadow"; }
|
|
187
|
+
static get originalStyleUrls() {
|
|
188
|
+
return {
|
|
189
|
+
"$": ["plugin-details.scss"]
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
static get styleUrls() {
|
|
193
|
+
return {
|
|
194
|
+
"$": ["plugin-details.css"]
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
static get assetsDirs() { return ["gx-ide-assets/plugin-details"]; }
|
|
198
|
+
static get properties() {
|
|
199
|
+
return {
|
|
200
|
+
"data": {
|
|
201
|
+
"type": "unknown",
|
|
202
|
+
"mutable": false,
|
|
203
|
+
"complexType": {
|
|
204
|
+
"original": "PluginDetailsData",
|
|
205
|
+
"resolved": "{ id: string; name: string | LinkData; publisher: string | LinkData; installed: boolean; updateVersion?: string; versions: string[]; iconUrl: string; description: string; docSections: DocSectionData[]; infoCategories: PluginInfoCategoryData[]; }",
|
|
206
|
+
"references": {
|
|
207
|
+
"PluginDetailsData": {
|
|
208
|
+
"location": "local",
|
|
209
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/plugin-details/plugin-details.tsx",
|
|
210
|
+
"id": "src/components/plugin-details/plugin-details.tsx::PluginDetailsData"
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
"required": true,
|
|
215
|
+
"optional": false,
|
|
216
|
+
"docs": {
|
|
217
|
+
"tags": [],
|
|
218
|
+
"text": "Specifies all the information related to a plugin."
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
"installCallback": {
|
|
222
|
+
"type": "unknown",
|
|
223
|
+
"mutable": false,
|
|
224
|
+
"complexType": {
|
|
225
|
+
"original": "(version?: string) => Promise<void>",
|
|
226
|
+
"resolved": "(version?: string) => Promise<void>",
|
|
227
|
+
"references": {
|
|
228
|
+
"Promise": {
|
|
229
|
+
"location": "global",
|
|
230
|
+
"id": "global::Promise"
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
"required": true,
|
|
235
|
+
"optional": false,
|
|
236
|
+
"docs": {
|
|
237
|
+
"tags": [],
|
|
238
|
+
"text": "Callback that should be invoked when the user performs the install or update action.\nReceives an optional version string when a specific version is selected."
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
"openLinkCallback": {
|
|
242
|
+
"type": "unknown",
|
|
243
|
+
"mutable": false,
|
|
244
|
+
"complexType": {
|
|
245
|
+
"original": "(url: string) => Promise<void>",
|
|
246
|
+
"resolved": "(url: string) => Promise<void>",
|
|
247
|
+
"references": {
|
|
248
|
+
"Promise": {
|
|
249
|
+
"location": "global",
|
|
250
|
+
"id": "global::Promise"
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
"required": true,
|
|
255
|
+
"optional": false,
|
|
256
|
+
"docs": {
|
|
257
|
+
"tags": [],
|
|
258
|
+
"text": "Callback that should be invoked when the user attempts to open any link displayed in this component."
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
"uninstallCallback": {
|
|
262
|
+
"type": "unknown",
|
|
263
|
+
"mutable": false,
|
|
264
|
+
"complexType": {
|
|
265
|
+
"original": "() => Promise<void>",
|
|
266
|
+
"resolved": "() => Promise<void>",
|
|
267
|
+
"references": {
|
|
268
|
+
"Promise": {
|
|
269
|
+
"location": "global",
|
|
270
|
+
"id": "global::Promise"
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
"required": true,
|
|
275
|
+
"optional": false,
|
|
276
|
+
"docs": {
|
|
277
|
+
"tags": [],
|
|
278
|
+
"text": "Callback that should be invoked when the user performs the uninstall action."
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
static get states() {
|
|
284
|
+
return {
|
|
285
|
+
"docsTabModel": {},
|
|
286
|
+
"selectedTabId": {}
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
static get elementRef() { return "el"; }
|
|
290
|
+
}
|
|
291
|
+
_GxIdePluginDetails_componentLocale = new WeakMap(), _GxIdePluginDetails_docSectionIdDescriptionMap = new WeakMap(), _GxIdePluginDetails_versionsMenuOptionsModel = new WeakMap(), _GxIdePluginDetails_menuVersionSelectedHandler = new WeakMap(), _GxIdePluginDetails_renderUninstallButton = new WeakMap(), _GxIdePluginDetails_installClickedHandler = new WeakMap(), _GxIdePluginDetails_updateVersionHandler = new WeakMap(), _GxIdePluginDetails_openLinkHandler = new WeakMap(), _GxIdePluginDetails_uninstallClickedHandler = new WeakMap(), _GxIdePluginDetails_renderActionButtons = new WeakMap(), _GxIdePluginDetails_tabSelectionChangedHandler = new WeakMap(), _GxIdePluginDetails_renderDocSectionsSlots = new WeakMap(), _GxIdePluginDetails_returnFormatedId = new WeakMap(), _GxIdePluginDetails_renderAsideContent = new WeakMap();
|
|
292
|
+
//# sourceMappingURL=plugin-details.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-details.js","sourceRoot":"","sources":["../../../src/components/plugin-details/plugin-details.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n State,\n Prop,\n Element,\n h,\n getAssetPath,\n JSX\n} from \"@stencil/core\";\n\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ActionMenuModel, TabModel } from \"@genexus/chameleon-controls-library\";\nimport { TabItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/tab/types\";\n\nconst USER_ICON = getIconPath({\n category: \"system\",\n name: \"user\",\n colorType: \"on-elevation\"\n});\nconst CHEVRON_DOWN_ICON = getIconPath({\n category: \"system\",\n name: \"chevron-down\",\n colorType: \"on-primary\"\n});\nconst CHECK_CIRCLE_ICON = getIconPath({\n category: \"system\",\n name: \"check-circle\",\n colorType: \"success\"\n});\n\n// plugin icon if no iconUri was provided\nconst EXTENSION_ICON_IMG = getAssetPath(\n `./gx-ide-assets/plugin-manager/images/plugin-icon.svg`\n);\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"chameleon/scrollbar\",\n \"components/button\",\n \"components/dropdown\",\n \"components/edit\",\n \"components/icon\",\n \"components/list-box\",\n \"components/tab\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\n@Component({\n tag: \"gx-ide-plugin-details\",\n styleUrl: \"plugin-details.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/plugin-details\"]\n})\nexport class GxIdePluginDetails {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n // A map between docSection \"id\", and docSection \"description\".\n // \"id\" is generated inside this component.\n #docSectionIdDescriptionMap: Map<string, string> = new Map();\n\n @Element() el: HTMLGxIdePluginDetailsElement;\n\n @State() docsTabModel: TabModel = [];\n @State() selectedTabId: string;\n\n /**\n * Specifies all the information related to a plugin.\n */\n @Prop() readonly data!: PluginDetailsData;\n\n /**\n * Callback that should be invoked when the user performs the install or update action.\n * Receives an optional version string when a specific version is selected.\n */\n @Prop() readonly installCallback!: (version?: string) => Promise<void>;\n\n /**\n * Callback that should be invoked when the user attempts to open any link displayed in this component.\n */\n @Prop() readonly openLinkCallback!: (url: string) => Promise<void>;\n\n /**\n * Callback that should be invoked when the user performs the uninstall action.\n */\n @Prop() readonly uninstallCallback!: () => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n if (this.data.docSections?.length) {\n this.docsTabModel = this.data.docSections.map((docSection, i) => {\n const formatedId = this.#returnFormatedId(docSection.name);\n\n this.#docSectionIdDescriptionMap.set(formatedId, docSection.content);\n\n if (i === 0) {\n this.selectedTabId = formatedId;\n }\n return {\n id: formatedId,\n name: docSection.name\n } as TabItemModel;\n });\n }\n }\n\n #versionsMenuOptionsModel = (): ActionMenuModel => {\n const versionsToUpdateMenusModel: ActionMenuModel = this.data.versions?.map(\n version => {\n return { id: version, caption: version };\n }\n );\n return versionsToUpdateMenusModel;\n };\n\n #menuVersionSelectedHandler = (\n event: CustomEvent<{\n id?: string;\n }>\n ) => {\n const selectedVersion = event.detail.id;\n this.installCallback(selectedVersion);\n };\n\n #renderUninstallButton = (): JSX.Element => {\n return (\n <button class=\"button-tertiary\" onClick={this.#uninstallClickedHandler}>\n {this.#componentLocale.actions.uninstall}\n </button>\n );\n };\n\n #installClickedHandler = () => {\n this.installCallback();\n };\n\n #updateVersionHandler = (id: string) => () => {\n this.installCallback(id);\n };\n\n #openLinkHandler = (link: string) => (event: MouseEvent) => {\n event.preventDefault();\n this.openLinkCallback(link);\n };\n\n #uninstallClickedHandler = () => {\n this.uninstallCallback();\n };\n\n #renderActionButtons = (): JSX.Element => {\n let actionButtonCaption;\n let actionButtonClasses = \"button-primary action-button\";\n let actionButtonCallback;\n const moreVersionsToUpdate = this.data.versions?.length;\n\n if (!this.data.installed) {\n actionButtonCaption = this.#componentLocale.actions.install;\n actionButtonCallback = this.#installClickedHandler;\n } else if (this.data.updateVersion) {\n actionButtonCaption = `${this.#componentLocale.actions.updateTo} ${\n this.data.updateVersion\n }`;\n actionButtonCallback = this.#updateVersionHandler(\n this.data.updateVersion\n );\n } else {\n actionButtonCaption = this.#componentLocale.actions.installed;\n }\n\n if (moreVersionsToUpdate) {\n actionButtonClasses = `${actionButtonClasses} more-versions-available`;\n }\n\n return [\n <div class=\"version-buttons-container\">\n <button class={actionButtonClasses} onClick={actionButtonCallback}>\n {actionButtonCaption}\n </button>\n {moreVersionsToUpdate ? (\n <ch-action-menu-render\n class=\"dropdown button-primary button-icon-only\"\n blockAlign=\"outside-end\"\n inlineAlign=\"inside-start\"\n model={this.#versionsMenuOptionsModel()}\n onButtonClick={this.#menuVersionSelectedHandler}\n >\n <ch-image src={CHEVRON_DOWN_ICON} class=\"icon-md\"></ch-image>\n </ch-action-menu-render>\n ) : null}\n </div>\n ];\n };\n\n #tabSelectionChangedHandler = (\n event: CustomEvent<{\n lastSelectedIndex: number;\n newSelectedId: string;\n newSelectedIndex: number;\n }>\n ): void => {\n this.selectedTabId = event.detail.newSelectedId;\n };\n\n #renderDocSectionsSlots = (): JSX.Element => {\n return this.docsTabModel.map(docSectionTab => {\n if (docSectionTab.id === this.selectedTabId) {\n const markdownValue = this.#docSectionIdDescriptionMap.get(\n docSectionTab.id\n );\n\n return (\n <ch-markdown-viewer\n slot={docSectionTab.id}\n key={docSectionTab.id}\n class=\"markdown spacing-body scrollable\"\n theme=\"components/markdown-viewer\"\n value={markdownValue}\n ></ch-markdown-viewer>\n );\n }\n });\n };\n\n #returnFormatedId = (rawId: string): string => {\n return rawId.toLowerCase().replace(/\\s+/g, \"-\");\n };\n\n #renderAsideContent = (): JSX.Element => {\n return this.data.infoCategories.map(infoCategory => {\n return (\n <div class=\"plugin__info-category\">\n <h3 class=\"subtitle-semi-bold-s\">{infoCategory.name}</h3>\n <ul\n class={{\n \"fields__list\": true,\n \"fields__list--as-tags\": infoCategory.displayAsTags\n }}\n >\n {infoCategory.fields.map(field => {\n // If the field name isn’t specified, only the value is shown — usually a link.\n const fieldValue: string | HTMLAnchorElement =\n typeof field.value === \"string\" ? (\n (field.value as string)\n ) : (\n <a\n class=\"field__link\"\n onClick={this.#openLinkHandler(\n (field.value as LinkData).url\n )}\n >\n {(field.value as LinkData).text}\n </a>\n );\n return (\n <li class=\"field__li\">\n {field.name && !infoCategory.displayAsTags\n ? // displaysAsTags forces the items to be displayed as tags\n // no span.field__name and span.field__value\n [\n <span class=\"field__name body-semi-bold-s\">\n {field.name}\n </span>,\n <span class=\"field__value body-regular-s\">\n {fieldValue}\n </span>\n ]\n : fieldValue}\n </li>\n );\n })}\n </ul>\n </div>\n );\n });\n };\n\n render() {\n const renderActionButtons =\n !this.data.installed ||\n (this.data.installed && !!this.data.updateVersion);\n\n const titleLinkDataText = (this.data.name as LinkData).text;\n const titleLinkDataUrl = (this.data.name as LinkData).url;\n const titleHasLink = titleLinkDataText && titleLinkDataUrl;\n const titleText = titleLinkDataText || this.data.name;\n\n const publisherDataText = (this.data.publisher as LinkData).text;\n const publisherDataUrl = (this.data.publisher as LinkData).url;\n const publisherHasLink = publisherDataText && publisherDataUrl;\n const publisherText = publisherDataText || this.data.publisher;\n\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <header class=\"header\">\n <img\n class=\"plugin__icon\"\n src={this.data.iconUrl || EXTENSION_ICON_IMG}\n alt=\"plugin extension icon\"\n />\n <div class=\"plugin__details\">\n {titleHasLink ? (\n <h2 class=\"heading-5\">\n <a\n href={titleLinkDataUrl}\n onClick={this.#openLinkHandler(titleLinkDataUrl)}\n class=\"text-underline\"\n >\n {titleText}\n </a>\n </h2>\n ) : (\n <h2 class=\"heading-5\">{titleText}</h2>\n )}\n\n {publisherHasLink ? (\n <a\n href={publisherDataUrl}\n onClick={this.#openLinkHandler(publisherDataUrl)}\n class=\"text-underline plugin__publisher tiny-semi-bold-l\"\n >\n <ch-image src={USER_ICON} class=\"icon-md\"></ch-image>\n {publisherText}\n </a>\n ) : (\n <p class=\"plugin__publisher tiny-semi-bold-l\">\n <ch-image src={USER_ICON} class=\"icon-md\"></ch-image>\n {publisherText}\n </p>\n )}\n\n <p class=\"plugin__description\">{this.data.description}</p>\n <div class=\"buttons-spacer plugin__actions-container\">\n {renderActionButtons ? (\n this.#renderActionButtons()\n ) : (\n // installed and no updates\n <p class=\"installed-container subtitle-semi-bold-s\">\n <ch-image\n src={CHECK_CIRCLE_ICON}\n class=\"icon-md\"\n ></ch-image>\n {this.#componentLocale.actions.installed}\n </p>\n )}\n {this.data.installed && this.#renderUninstallButton()}\n </div>\n </div>\n </header>\n <div class=\"main\">\n {this.docsTabModel.length > 0 && (\n <ch-tab-render\n class=\"tab docsTab scrollable\"\n tabListPosition=\"block-start\"\n overflow=\"auto\"\n contain=\"size\"\n model={this.docsTabModel}\n onSelectedItemChange={this.#tabSelectionChangedHandler}\n selectedId={this.selectedTabId}\n >\n {this.#renderDocSectionsSlots()}\n </ch-tab-render>\n )}\n </div>\n <div class=\"aside spacing-body scrollable\">\n {this.#renderAsideContent()}\n </div>\n </section>\n {/* <slot></slot> */}\n </Host>\n );\n }\n}\n\n// plugin-details.types.ts\n\nexport type LinkData = {\n text: string;\n url: string;\n};\n\nexport type PluginFieldData = {\n name?: string;\n value: string | LinkData;\n};\n\nexport type PluginInfoCategoryData = {\n name: string;\n fields: PluginFieldData[];\n displayAsTags: boolean;\n};\n\nexport type DocSectionData = {\n name: string;\n content: string;\n};\n\nexport type PluginDetailsData = {\n id: string;\n name: string | LinkData;\n publisher: string | LinkData;\n installed: boolean;\n updateVersion?: string;\n versions: string[];\n iconUrl: string;\n description: string;\n docSections: DocSectionData[];\n infoCategories: PluginInfoCategoryData[];\n};\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_6_16126)">
|
|
3
|
+
<path d="M10.5 4.5C10.78 4.5 11 4.72 11 5V7H17V13H19C19.28 13 19.5 13.22 19.5 13.5C19.5 13.78 19.28 14 19 14H17V20H14.88C14.2 18.25 12.49 17 10.5 17C8.51 17 6.8 18.25 6.12 20H4V17.88C5.75 17.2 7 15.49 7 13.5C7 11.51 5.76 9.8 4.01 9.12L4 7H10V5C10 4.72 10.22 4.5 10.5 4.5ZM10.5 2.5C9.12 2.5 8 3.62 8 5H4C2.9 5 2.01 5.9 2.01 7V10.8H2.3C3.79 10.8 5 12.01 5 13.5C5 14.99 3.79 16.2 2.3 16.2H2V20C2 21.1 2.9 22 4 22H7.8V21.7C7.8 20.21 9.01 19 10.5 19C11.99 19 13.2 20.21 13.2 21.7V22H17C18.1 22 19 21.1 19 20V16C20.38 16 21.5 14.88 21.5 13.5C21.5 12.12 20.38 11 19 11V7C19 5.9 18.1 5 17 5H13C13 3.62 11.88 2.5 10.5 2.5Z" fill="#394552"/>
|
|
4
|
+
</g>
|
|
5
|
+
<defs>
|
|
6
|
+
<clipPath id="clip0_6_16126">
|
|
7
|
+
<rect width="24" height="24" fill="white"/>
|
|
8
|
+
</clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"componentName": "Plugin Manager",
|
|
3
|
+
"searchInputAccesibleName": "Search Plugins in MarketPlace",
|
|
4
|
+
"searchInputPlaceholder": "Search Plugins in MarketPlace",
|
|
5
|
+
"loaderTitle": "Loading Plugins",
|
|
6
|
+
"loaderDescription": "Hang on please...",
|
|
7
|
+
"emptyStateTitle": "No Plugins Found",
|
|
8
|
+
"emptyStateDescription": "Try adjusting your search or check if the plugin is available under a different name.",
|
|
9
|
+
"logotype": "PLUGIN_NAME_PLACEHOLDER logotype"
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"componentName": "プラグイン管理",
|
|
3
|
+
"searchInputAccesibleName": "マーケットプレイスでプラグインを検索",
|
|
4
|
+
"searchInputPlaceholder": "マーケットプレイスでプラグインを検索",
|
|
5
|
+
"loaderTitle": "プラグインを読み込み中",
|
|
6
|
+
"loaderDescription": "しばらくお待ちください...",
|
|
7
|
+
"emptyStateTitle": "プラグインが見つかりません",
|
|
8
|
+
"emptyStateDescription": "検索条件を調整するか、別の名前でプラグインが利用可能かどうか確認してください。",
|
|
9
|
+
"logotype": "PLUGIN_NAME_PLACEHOLDER ロゴタイプ"
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"componentName": "Plugin Manager",
|
|
3
|
+
"searchInputAccesibleName": "Search Plugins in MarketPlace",
|
|
4
|
+
"searchInputPlaceholder": "Search Plugins in MarketPlace",
|
|
5
|
+
"loaderTitle": "Loading Plugins",
|
|
6
|
+
"loaderDescription": "Hang on please...",
|
|
7
|
+
"emptyStateTitle": "No Plugins Found",
|
|
8
|
+
"emptyStateDescription": "Try adjusting your search or check if the plugin is available under a different name.",
|
|
9
|
+
"logotype": "PLUGIN_NAME_PLACEHOLDER logotype"
|
|
10
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/*Gx Ide*/
|
|
2
|
+
/*@container queries*/
|
|
3
|
+
/* hiChar styles
|
|
4
|
+
Found on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.
|
|
5
|
+
*/
|
|
6
|
+
:host {
|
|
7
|
+
display: grid;
|
|
8
|
+
block-size: 100%;
|
|
9
|
+
position: relative;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.outer-container {
|
|
13
|
+
grid-template-rows: max-content 1fr;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.inner-container {
|
|
17
|
+
position: relative;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.list-box::part(item) {
|
|
21
|
+
width: 100%;
|
|
22
|
+
min-width: 100%;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.list-box::part(item__action) {
|
|
26
|
+
gap: 4px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.list-box::part(item__caption) {
|
|
30
|
+
font-weight: 600;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.list-box::part(custom-container) {
|
|
34
|
+
display: flex;
|
|
35
|
+
flex-direction: column;
|
|
36
|
+
gap: 4px;
|
|
37
|
+
width: 100%;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.list-box::part(custom-image) {
|
|
41
|
+
block-size: 32px;
|
|
42
|
+
inline-size: 32px;
|
|
43
|
+
margin-inline-end: 12px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.list-box::part(custom-description) {
|
|
47
|
+
font-size: 12px;
|
|
48
|
+
margin: 0;
|
|
49
|
+
opacity: 0.8;
|
|
50
|
+
line-height: 1.4;
|
|
51
|
+
margin-inline-end: 8px;
|
|
52
|
+
overflow: hidden;
|
|
53
|
+
white-space: nowrap;
|
|
54
|
+
text-overflow: ellipsis;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.list-box::part(item__block-end start) {
|
|
58
|
+
width: 100%;
|
|
59
|
+
min-width: 100%;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.list-box::part(custom-brand) {
|
|
63
|
+
font-weight: 600;
|
|
64
|
+
display: flex;
|
|
65
|
+
gap: 4px;
|
|
66
|
+
align-items: center;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.list-box::part(custom-brand-icon) {
|
|
70
|
+
--icon-path: var(--icon__system_user_neutral--enabled);
|
|
71
|
+
display: inline-block;
|
|
72
|
+
background-image: var(--icon-path);
|
|
73
|
+
background-size: contain;
|
|
74
|
+
background-repeat: no-repeat;
|
|
75
|
+
background-position: center center;
|
|
76
|
+
block-size: 16px;
|
|
77
|
+
inline-size: 16px;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.list-box::part(custom-button) {
|
|
81
|
+
--control__border-color: var(--button-background-color);
|
|
82
|
+
--button-color: var(--mer-text__primary);
|
|
83
|
+
--button-color--enabled: var(--mer-text__on-primary);
|
|
84
|
+
--button-color--active: var(--mer-text__on-primary--active);
|
|
85
|
+
display: inline-grid;
|
|
86
|
+
grid-auto-flow: column;
|
|
87
|
+
grid-auto-columns: max-content;
|
|
88
|
+
justify-content: center;
|
|
89
|
+
padding-block: var(--control__padding-block);
|
|
90
|
+
padding-inline: var(--control__padding-inline);
|
|
91
|
+
box-sizing: border-box;
|
|
92
|
+
background-color: var(--button-background-color);
|
|
93
|
+
color: var(--button-color);
|
|
94
|
+
font-weight: 600;
|
|
95
|
+
margin-block-end: auto;
|
|
96
|
+
margin-block-start: auto;
|
|
97
|
+
text-transform: capitalize;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.list-box::part(custom-button):hover {
|
|
101
|
+
--button-color: var(--mer-text__primary--hover);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.list-box::part(custom-button):active {
|
|
105
|
+
--button-color: var(--mer-text__primary--active);
|
|
106
|
+
}
|