element-book 26.10.1 → 26.11.0

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.
Files changed (21) hide show
  1. package/dist/data/book-entry/book-page/book-page.d.ts +12 -10
  2. package/dist/data/book-entry/book-page/define-book-page.d.ts +1 -1
  3. package/dist/data/book-entry/book-page/define-book-page.js +2 -0
  4. package/dist/ui/elements/book-breadcrumbs.element.d.ts +1 -1
  5. package/dist/ui/elements/book-nav/book-nav.element.d.ts +1 -1
  6. package/dist/ui/elements/common/book-error.element.d.ts +1 -1
  7. package/dist/ui/elements/common/book-route-link.element.d.ts +1 -1
  8. package/dist/ui/elements/define-book-element.d.ts +1 -1
  9. package/dist/ui/elements/element-book-app/element-book-app.element.d.ts +1 -1
  10. package/dist/ui/elements/entry-display/book-breadcrumbs-bar.element.d.ts +1 -1
  11. package/dist/ui/elements/entry-display/book-entry-description.element.d.ts +1 -1
  12. package/dist/ui/elements/entry-display/book-page/book-page-controls.element.d.ts +1 -1
  13. package/dist/ui/elements/entry-display/book-page/book-page-wrapper.element.d.ts +1 -1
  14. package/dist/ui/elements/entry-display/element-example/book-element-example-controls.element.d.ts +1 -1
  15. package/dist/ui/elements/entry-display/element-example/book-element-example-viewer.element.d.ts +1 -1
  16. package/dist/ui/elements/entry-display/element-example/book-element-example-wrapper.element.d.ts +1 -1
  17. package/dist/ui/elements/entry-display/element-example/book-element-example-wrapper.element.js +2 -3
  18. package/dist/ui/elements/entry-display/entry-display/book-entry-display.element.d.ts +1 -1
  19. package/dist/ui/elements/entry-display/entry-display/book-entry-display.element.js +8 -4
  20. package/dist/ui/elements/entry-display/entry-display/create-node-templates.js +4 -2
  21. package/package.json +2 -3
@@ -1,4 +1,4 @@
1
- import { type Overwrite, type SetOptionalAndNullable } from '@augment-vir/common';
1
+ import { type Overwrite, type PartialWithUndefined, type SetOptionalAndNullable } from '@augment-vir/common';
2
2
  import { type CSSResult, type HtmlInterpolation, type PropertyInitMapBase, type RenderParams, type TypedEvent } from 'element-vir';
3
3
  import { type GlobalValues } from '../../../ui/elements/element-book-app/global-values.js';
4
4
  import { type BaseBookEntry } from '../base-book-entry.js';
@@ -19,13 +19,14 @@ export type BookPage<GlobalValuesType extends GlobalValues = {}, ParentPage exte
19
19
  }> & {
20
20
  controls: ControlsInit;
21
21
  elementExamples: Record<string, BookElementExample>;
22
+ useVerticalExamples: boolean;
22
23
  };
23
24
  /**
24
25
  * All parameters required for rendering an element-book page.
25
26
  *
26
27
  * @category Internal
27
28
  */
28
- export type BookPageExampleRenderParams<GlobalValuesType extends GlobalValues, ControlsInit extends BookPageControlsInitBase, State extends PropertyInitMapBase> = Pick<RenderParams<any, any, State, any, any, any, any>, 'state' | 'updateState'> & {
29
+ export type BookPageExampleRenderParams<GlobalValuesType extends GlobalValues, ControlsInit extends BookPageControlsInitBase, State extends PropertyInitMapBase> = Pick<RenderParams<any, any, State, any, any, any, any, any>, 'state' | 'updateState'> & {
29
30
  controls: ControlsToValues<ControlsInit> & GlobalValuesType;
30
31
  };
31
32
  /**
@@ -36,26 +37,27 @@ export type BookPageExampleRenderParams<GlobalValuesType extends GlobalValues, C
36
37
  export type BookElementExample<GlobalValuesType extends GlobalValues = {}, ControlsInit extends BookPageControlsInitBase = {}, State extends PropertyInitMapBase = {}> = Overwrite<BaseBookEntry, {
37
38
  parent: BookPage | undefined;
38
39
  entryType: BookEntryType.ElementExample;
39
- } & {
40
+ isVertical: boolean;
41
+ /** Render the example. */
42
+ render: (renderParams: BookPageExampleRenderParams<GlobalValuesType, ControlsInit, State>) => HtmlInterpolation;
43
+ } & PartialWithUndefined<{
40
44
  /**
41
45
  * Initialize the state for this example. This is only called once, before the first render
42
46
  * of the example.
43
47
  */
44
- state?: (() => State) | undefined;
48
+ state: () => State;
45
49
  /** Specify which events this example should intercept (so the user can see them). */
46
- showEvents?: ReadonlyArray<string | TypedEvent> | undefined;
50
+ showEvents: ReadonlyArray<string | TypedEvent>;
47
51
  /**
48
52
  * Style the element example. You can even use the :host selector to style this specific
49
53
  * example's wrapper element!
50
54
  */
51
- styles?: CSSResult | undefined;
52
- /** Render the example. */
53
- render: (renderParams: BookPageExampleRenderParams<GlobalValuesType, ControlsInit, State>) => HtmlInterpolation;
54
- }>;
55
+ styles: CSSResult;
56
+ }>>;
55
57
  /**
56
58
  * The properties that are necessary to initialize an element example. Missing properties will be
57
59
  * filled in by the parent.
58
60
  *
59
61
  * @category Internal
60
62
  */
61
- export type BookElementExampleInit<GlobalValuesType extends GlobalValues, Controls extends BookPageControlsInitBase, State extends PropertyInitMapBase> = SetOptionalAndNullable<Omit<BookElementExample<GlobalValuesType, Controls, State>, 'entryType' | 'parent' | 'errors'>, 'descriptionParagraphs'>;
63
+ export type BookElementExampleInit<GlobalValuesType extends GlobalValues, Controls extends BookPageControlsInitBase, State extends PropertyInitMapBase> = SetOptionalAndNullable<Omit<BookElementExample<GlobalValuesType, Controls, State>, 'entryType' | 'parent' | 'errors' | 'isVertical'>, 'descriptionParagraphs'>;
@@ -40,7 +40,7 @@ RecursionDepth = InfiniteRecursionLimiter> = GlobalValuesType & (RecursionDepth
40
40
  *
41
41
  * @category Type
42
42
  */
43
- export type BookPageInit<GlobalValuesType extends GlobalValues, ParentPage extends BookPage | undefined, CurrentControlsInit extends BookPageControlsInitBase> = SetOptionalAndNullable<Omit<BookPage<any, ParentPage, CurrentControlsInit>, 'entryType' | 'elementExamples' | 'errors'>, 'controls' | 'descriptionParagraphs'> & {
43
+ export type BookPageInit<GlobalValuesType extends GlobalValues, ParentPage extends BookPage | undefined, CurrentControlsInit extends BookPageControlsInitBase> = SetOptionalAndNullable<Omit<BookPage<any, ParentPage, CurrentControlsInit>, 'entryType' | 'elementExamples' | 'errors'>, 'controls' | 'descriptionParagraphs' | 'useVerticalExamples'> & {
44
44
  defineExamples?: ElementExamplesDefiner<CollapseGlobalValuesType<ParentPage, GlobalValuesType>, CollapseControlsInit<ParentPage, CurrentControlsInit>> | undefined;
45
45
  };
46
46
  /**
@@ -22,6 +22,7 @@ export function defineBookPage(pageInit) {
22
22
  const page = {
23
23
  ...pageInit,
24
24
  entryType: BookEntryType.Page,
25
+ useVerticalExamples: !!pageInit.useVerticalExamples,
25
26
  elementExamples: {},
26
27
  descriptionParagraphs: pageInit.descriptionParagraphs ?? [],
27
28
  controls: pageInit.controls ?? {},
@@ -33,6 +34,7 @@ export function defineBookPage(pageInit) {
33
34
  defineExample(elementExampleInit) {
34
35
  const newExample = {
35
36
  ...elementExampleInit,
37
+ isVertical: page.useVerticalExamples,
36
38
  entryType: BookEntryType.ElementExample,
37
39
  parent: page,
38
40
  descriptionParagraphs: elementExampleInit.descriptionParagraphs ?? [],
@@ -3,4 +3,4 @@ import { type BookFullRoute } from '../../routing/book-routing.js';
3
3
  export declare const BookBreadcrumbs: import("element-vir").DeclarativeElementDefinition<"book-breadcrumbs", {
4
4
  currentRoute: Readonly<BookFullRoute>;
5
5
  router: Readonly<BookRouter> | undefined;
6
- }, {}, {}, "book-breadcrumbs-", "book-breadcrumbs-", readonly []>;
6
+ }, {}, {}, "book-breadcrumbs-", "book-breadcrumbs-", readonly [], readonly []>;
@@ -4,5 +4,5 @@ export declare const BookNav: import("element-vir").DeclarativeElementDefinition
4
4
  flattenedNodes: ReadonlyArray<Readonly<BookTreeNode>>;
5
5
  selectedPath: ReadonlyArray<string> | undefined;
6
6
  router: BookRouter | undefined;
7
- }, {}, {}, "book-nav-", "book-nav-internal-indent", readonly []>;
7
+ }, {}, {}, "book-nav-", "book-nav-internal-indent", readonly [], readonly []>;
8
8
  export declare function scrollSelectedNavElementIntoView(bookNavInstance: typeof BookNav.InstanceType): Promise<void>;
@@ -1,3 +1,3 @@
1
1
  export declare const BookError: import("element-vir").DeclarativeElementDefinition<"book-error", {
2
2
  message: string | ReadonlyArray<string>;
3
- }, {}, {}, "book-error-", "book-error-", readonly []>;
3
+ }, {}, {}, "book-error-", "book-error-", readonly [], readonly []>;
@@ -3,4 +3,4 @@ import { type BookFullRoute } from '../../../routing/book-routing.js';
3
3
  export declare const BookRouteLink: import("element-vir").DeclarativeElementDefinition<"book-route-link", {
4
4
  route: Partial<BookFullRoute>;
5
5
  router: Readonly<BookRouter> | undefined;
6
- }, {}, {}, "book-route-link-", "book-route-link-anchor-padding", readonly []>;
6
+ }, {}, {}, "book-route-link-", "book-route-link-anchor-padding", readonly [], readonly []>;
@@ -1,2 +1,2 @@
1
1
  export type BookTagName = `book-${string}`;
2
- export declare const defineBookElement: <Inputs extends {}>(...errorParams: import("element-vir").DeclarativeElementInputErrorParams<Inputs>) => <const TagName extends `book-${string}`, State extends {}, EventsInit extends {}, const HostClassKeys extends `${TagName}-${string}` = `${TagName}-`, const CssVarKeys extends `${TagName}-${string}` = `${TagName}-`, const SlotNames extends ReadonlyArray<string> = readonly []>(inputs: import("element-vir").DeclarativeElementInit<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames>) => import("element-vir").DeclarativeElementDefinition<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames>;
2
+ export declare const defineBookElement: <Inputs extends {}>(...errorParams: import("element-vir").DeclarativeElementInputErrorParams<Inputs>) => <const TagName extends `book-${string}`, State extends {}, EventsInit extends {}, const HostClassKeys extends `${TagName}-${string}` = `${TagName}-`, const CssVarKeys extends `${TagName}-${string}` = `${TagName}-`, const SlotNames extends ReadonlyArray<string> = readonly [], const TestIds extends ReadonlyArray<string> = readonly []>(inputs: import("element-vir").DeclarativeElementInit<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>) => import("element-vir").DeclarativeElementDefinition<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>;
@@ -32,4 +32,4 @@ export declare const ElementBookApp: import("element-vir").DeclarativeElementDef
32
32
  originalWindowTitle: string | undefined;
33
33
  }, {
34
34
  pathUpdate: import("element-vir").DefineEvent<readonly string[]>;
35
- }, "element-book-app-", "element-book-app-", readonly []>;
35
+ }, "element-book-app-", "element-book-app-", readonly [], readonly []>;
@@ -4,4 +4,4 @@ export declare const BookBreadcrumbsBar: import("element-vir").DeclarativeElemen
4
4
  currentSearch: string;
5
5
  currentRoute: Readonly<BookFullRoute>;
6
6
  router: Readonly<BookRouter> | undefined;
7
- }, {}, {}, "book-breadcrumbs-bar-", "book-breadcrumbs-bar-", readonly []>;
7
+ }, {}, {}, "book-breadcrumbs-bar-", "book-breadcrumbs-bar-", readonly [], readonly []>;
@@ -1,4 +1,4 @@
1
1
  import { type HTMLTemplateResult } from 'element-vir';
2
2
  export declare const BookEntryDescription: import("element-vir").DeclarativeElementDefinition<"book-entry-description", {
3
3
  descriptionParagraphs: ReadonlyArray<string | HTMLTemplateResult>;
4
- }, {}, {}, "book-entry-description-", "book-entry-description-", readonly []>;
4
+ }, {}, {}, "book-entry-description-", "book-entry-description-", readonly [], readonly []>;
@@ -14,4 +14,4 @@ export declare const BookPageControls: import("element-vir").DeclarativeElementD
14
14
  fullUrlBreadcrumbs: ReadonlyArray<string>;
15
15
  newValues: BookPageControlsValues;
16
16
  }>;
17
- }, "book-page-controls-has-controls", "book-page-controls-", readonly []>;
17
+ }, "book-page-controls-has-controls", "book-page-controls-", readonly [], readonly []>;
@@ -7,4 +7,4 @@ export declare const BookPageWrapper: import("element-vir").DeclarativeElementDe
7
7
  pageNode: BookTreeNode<BookEntryType.Page>;
8
8
  router: BookRouter | undefined;
9
9
  controls: ControlsWrapper;
10
- }, {}, {}, "book-page-wrapper-", "book-page-wrapper-", readonly []>;
10
+ }, {}, {}, "book-page-wrapper-", "book-page-wrapper-", readonly [], readonly []>;
@@ -4,4 +4,4 @@ import { type BookRouter } from '../../../../routing/book-router.js';
4
4
  export declare const BookElementExampleControls: import("element-vir").DeclarativeElementDefinition<"book-element-example-controls", {
5
5
  elementExampleNode: BookTreeNode<BookEntryType.ElementExample>;
6
6
  router: BookRouter | undefined;
7
- }, {}, {}, "book-element-example-controls-", "book-element-example-controls-", readonly []>;
7
+ }, {}, {}, "book-element-example-controls-", "book-element-example-controls-", readonly [], readonly []>;
@@ -4,4 +4,4 @@ import { type BookTreeNode } from '../../../../data/book-tree/book-tree-node.js'
4
4
  export declare const BookElementExampleViewer: import("element-vir").DeclarativeElementDefinition<"book-element-example-viewer", {
5
5
  elementExampleNode: BookTreeNode<BookEntryType.ElementExample>;
6
6
  currentPageControls: BookPageControlsValues;
7
- }, any, {}, "book-element-example-viewer-", "book-element-example-viewer-", readonly []>;
7
+ }, any, {}, "book-element-example-viewer-", "book-element-example-viewer-", readonly [], readonly []>;
@@ -6,4 +6,4 @@ export declare const BookElementExampleWrapper: import("element-vir").Declarativ
6
6
  elementExampleNode: BookTreeNode<BookEntryType.ElementExample>;
7
7
  currentPageControls: BookPageControlsValues;
8
8
  router: BookRouter | undefined;
9
- }, {}, {}, "book-element-example-wrapper-", "book-element-example-wrapper-", readonly []>;
9
+ }, {}, {}, "book-element-example-wrapper-", "book-element-example-wrapper-", readonly [], readonly []>;
@@ -8,9 +8,7 @@ export const BookElementExampleWrapper = defineBookElement()({
8
8
  tagName: 'book-element-example-wrapper',
9
9
  styles: css `
10
10
  :host {
11
- display: inline-flex;
12
- flex-direction: column;
13
- gap: 24px;
11
+ display: inline-block;
14
12
  max-width: 100%;
15
13
  }
16
14
 
@@ -30,6 +28,7 @@ export const BookElementExampleWrapper = defineBookElement()({
30
28
  flex-direction: column;
31
29
  gap: 24px;
32
30
  max-width: 100%;
31
+ align-items: flex-start;
33
32
  }
34
33
 
35
34
  ${BookElementExampleControls} {
@@ -15,4 +15,4 @@ export declare const BookEntryDisplay: import("element-vir").DeclarativeElementD
15
15
  lastElement: undefined | Element;
16
16
  }, {
17
17
  loadingRender: import("element-vir").DefineEvent<boolean>;
18
- }, "book-entry-display-", "book-entry-display-", readonly []>;
18
+ }, "book-entry-display-", "book-entry-display-", readonly [], readonly []>;
@@ -24,10 +24,6 @@ export const BookEntryDisplay = defineBookElement()({
24
24
  padding: 32px;
25
25
  }
26
26
 
27
- .inline-entry {
28
- margin: 8px;
29
- }
30
-
31
27
  * + .block-entry {
32
28
  margin-top: 32px;
33
29
  }
@@ -36,6 +32,14 @@ export const BookEntryDisplay = defineBookElement()({
36
32
  margin-top: 32px;
37
33
  }
38
34
 
35
+ .inline-entry {
36
+ margin: 8px;
37
+
38
+ &.block-entry {
39
+ display: block;
40
+ }
41
+ }
42
+
39
43
  h1 {
40
44
  margin: 0;
41
45
  padding: 0;
@@ -1,6 +1,6 @@
1
1
  import { check } from '@augment-vir/assert';
2
2
  import { mapObjectValues } from '@augment-vir/common';
3
- import { html, nothing, repeat } from 'element-vir';
3
+ import { classMap, html, nothing, repeat, } from 'element-vir';
4
4
  import { BookEntryType } from '../../../../data/book-entry/book-entry-type.js';
5
5
  import { traverseControls, } from '../../../../data/book-entry/book-page/controls-wrapper.js';
6
6
  import { isBookTreeNode, traverseToImmediateParent } from '../../../../data/book-tree/book-tree.js';
@@ -87,7 +87,9 @@ export function createNodeTemplates({ currentNodes, isTopLevel, router, isSearch
87
87
  currentPageControls: controlsForElementExample,
88
88
  router,
89
89
  })}
90
- class="inline-entry"
90
+ class="inline-entry ${classMap({
91
+ 'block-entry': currentNode.entry.isVertical,
92
+ })}"
91
93
  ></${BookElementExampleWrapper}>
92
94
  `;
93
95
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "element-book",
3
- "version": "26.10.1",
3
+ "version": "26.11.0",
4
4
  "keywords": [
5
5
  "book",
6
6
  "design system",
@@ -36,7 +36,6 @@
36
36
  "build": "npm run docs",
37
37
  "compile": "virmator compile",
38
38
  "docs": "virmator docs",
39
- "start": "virmator frontend",
40
39
  "test": "virmator test web",
41
40
  "test:coverage": "npm run test coverage",
42
41
  "test:docs": "virmator docs check"
@@ -58,7 +57,7 @@
58
57
  "@web/test-runner-commands": "^0.9.0",
59
58
  "@web/test-runner-playwright": "^0.11.1",
60
59
  "@web/test-runner-visual-regression": "^0.10.0",
61
- "element-vir": "^26.10.1",
60
+ "element-vir": "^26.11.0",
62
61
  "istanbul-smart-text-reporter": "^1.1.5",
63
62
  "markdown-code-example-inserter": "^3.0.3",
64
63
  "type-fest": "^5.1.0",