Changes
12 changed files (+118/-96)
-
-
@@ -7,9 +7,9 @@ import css from "./button.css?inline";type ObservedAttributes = readonly ["pending"]; export const YamoriButton = wrapElement( "yamori-button", class extends YamoriElement { export const YamoriButton = wrapElement({ tagName: "yamori-button", constructor: class extends YamoriElement { static formAssociated = true; static get observedAttributes(): ObservedAttributes {
-
@@ -152,4 +152,4 @@ }),); }; }, ); });
-
-
-
@@ -5,9 +5,9 @@ import { wrapElement, YamoriElement } from "../../element.ts";import css from "./callout.css?inline"; export const YamoriCallout = wrapElement( "yamori-callout", class extends YamoriElement { export const YamoriCallout = wrapElement({ tagName: "yamori-callout", constructor: class extends YamoriElement { constructor() { super();
-
@@ -38,4 +38,4 @@ actions.classList.add("actions");body.appendChild(actions); } }, ); });
-
-
-
@@ -15,9 +15,9 @@ // <https://bugs.webkit.org/show_bug.cgi?id=26179>// 上記バグレポートのアタッチメントは Safari 18.2 で確認したところ解決している。 // CustomElement 固有か Shadow DOM 固有かはわからないが根本解決はされていないため // Safari 上でテーマ固定・マトリクスを使った確認はできない。 export const DocsThemeOverride = wrapElement( "docs-theme-override", class DocsThemeOverride extends YamoriElement { export const DocsThemeOverride = wrapElement({ tagName: "docs-theme-override", constructor: class DocsThemeOverride extends YamoriElement { static get observedAttributes() { return ["color-scheme", "contrast"] as const; }
-
@@ -132,4 +132,4 @@ const slot = document.createElement("slot");shadow.appendChild(slot); } }, ); });
-
-
-
@@ -81,7 +81,6 @@ display: block;margin: var(--space-px-10) var(--space-px-8); } </style> <script src="../register.ts"></script> </head> <body class="body"> <NavBar class="nav">
-
-
-
@@ -9,6 +9,10 @@ import ThemeMatrixPreview from "../../components/ThemeMatrixPreview.astro";--- <script> import { YamoriButton } from "../../../components/button/button.ts"; YamoriButton.register(); const buttons = document.querySelectorAll("yamori-button"); buttons.forEach((button) => {
-
-
-
@@ -8,6 +8,14 @@ import Preview from "../../components/Preview.astro";import ThemeMatrixPreview from "../../components/ThemeMatrixPreview.astro"; --- <script> import { YamoriButton } from "../../../components/button/button.ts"; import { YamoriCallout } from "../../../components/callout/callout.ts"; YamoriCallout.register(); YamoriButton.register(); </script> <DocsLayout title="Callout"> <Document> <p>
-
-
-
@@ -17,29 +17,29 @@ OpenEvent,YamoriWorkspaceListEntry, } from "../../../widgets/workspace-list-entry/workspace-list-entry.ts"; customElements.whenDefined(YamoriWorkspaceListEntry.tagName).then(() => { for (const demo of document.querySelectorAll("[data-id=demo]")) { demo.setWorkspace( create(WorkspaceSchema, { id: { value: "ws-demo", }, displayName: "Demo", }), ); } YamoriWorkspaceListEntry.register(); for (const demo of document.querySelectorAll("[data-id=empty]")) { demo.setWorkspace( create(WorkspaceSchema, { id: { value: "ws-demo", }, displayName: "", }), ); } }); for (const demo of document.querySelectorAll("[data-id=demo]")) { demo.setWorkspace( create(WorkspaceSchema, { id: { value: "ws-demo", }, displayName: "Demo", }), ); } for (const demo of document.querySelectorAll("[data-id=empty]")) { demo.setWorkspace( create(WorkspaceSchema, { id: { value: "ws-demo", }, displayName: "", }), ); } document.addEventListener("open", (event) => { if (event instanceof OpenEvent) {
-
-
-
@@ -42,51 +42,51 @@ RetryEvent,YamoriWorkspaceList, } from "../../../widgets/workspace-list/workspace-list.ts"; customElements.whenDefined(YamoriWorkspaceList.tagName).then(() => { for (const demo of document.querySelectorAll("[data-id=demo]")) { demo.setListResponse( create(ListResponseSchema, { result: { case: "ok", value: { workspaces: [ { id: { value: "ws-foo" }, displayName: "Foo", }, { id: { value: "ws-bar" }, displayName: "ばー", }, ], }, YamoriWorkspaceList.register(); for (const demo of document.querySelectorAll("[data-id=demo]")) { demo.setListResponse( create(ListResponseSchema, { result: { case: "ok", value: { workspaces: [ { id: { value: "ws-foo" }, displayName: "Foo", }, { id: { value: "ws-bar" }, displayName: "ばー", }, ], }, }), ); } }, }), ); } for (const demo of document.querySelectorAll("[data-id=system_error]")) { demo.setListResponse( create(ListResponseSchema, { result: { case: "systemError", value: { code: "SAMPLE_ERR", message: "サンプルエラー", }, for (const demo of document.querySelectorAll("[data-id=system_error]")) { demo.setListResponse( create(ListResponseSchema, { result: { case: "systemError", value: { code: "SAMPLE_ERR", message: "サンプルエラー", }, }), ); }, }), ); demo.addEventListener("retry", (event) => { if (event instanceof RetryEvent) { console.groupCollapsed("yamori-workspace-list.retry"); console.dir(event); console.groupEnd(); } }); } }); demo.addEventListener("retry", (event) => { if (event instanceof RetryEvent) { console.groupCollapsed("yamori-workspace-list.retry"); console.dir(event); console.groupEnd(); } }); } document.addEventListener("open", (event) => { if (event instanceof OpenEvent) {
-
-
packages/gui/src/docs/register.ts (deleted)
-
@@ -1,8 +0,0 @@// ドキュメントページのエントリポイント。 // // SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only import { register } from "../lib.ts"; register();
-
-
-
@@ -10,19 +10,36 @@ readonly constructor: Element;register(): boolean; } export interface UIComponentBuilder< TagName extends string, Element extends typeof YamoriElement, > { readonly tagName: TagName; readonly constructor: Element; readonly dependencies?: readonly UIComponent<string, typeof YamoriElement>[]; } /** * CustomElement を使いやすい I/F にラップする。 * 渡された CustomElement は自動的に `nonUAMixin` が適用され、 * `:is(:state(nonua), :--nonua, [nonua])` でクエリできるようになる。 */ export function wrapElement<TagName extends string, Element extends typeof YamoriElement>( tagName: TagName, constructor: Element, ): UIComponent<TagName, Element> { export function wrapElement< TagName extends string, Element extends typeof YamoriElement, >({ tagName, constructor, dependencies = [], }: UIComponentBuilder<TagName, Element>): UIComponent<TagName, Element> { return { tagName, constructor, register() { for (const dependency of dependencies) { dependency.register(); } if (customElements.get(tagName)) { return false; }
-
-
-
@@ -19,9 +19,10 @@ });} } export const YamoriWorkspaceListEntry = wrapElement( "yamori-workspace-list-entry", class extends YamoriElement { export const YamoriWorkspaceListEntry = wrapElement({ tagName: "yamori-workspace-list-entry", dependencies: [YamoriButton], constructor: class extends YamoriElement { #shadow: ShadowRoot; #startMarker: Comment; #endMarker: Comment;
-
@@ -90,4 +91,4 @@ this.#workspace = workspace;this.#render(); } }, ); });
-
-
-
@@ -28,9 +28,10 @@ }type ObservedAttributes = readonly ["pending", "list-response"]; export const YamoriWorkspaceList = wrapElement( "yamori-workspace-list", class extends YamoriElement { export const YamoriWorkspaceList = wrapElement({ tagName: "yamori-workspace-list", dependencies: [YamoriButton, YamoriCallout, YamoriWorkspaceListEntry], constructor: class extends YamoriElement { static get observedAttributes(): ObservedAttributes { return ["pending", "list-response"]; }
-
@@ -181,4 +182,4 @@ }} } }, ); });
-