@gjsify/adwaita-web 0.31.0 → 0.32.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 (176) hide show
  1. package/dist/adwaita-web.css +786 -272
  2. package/dist/adwaita-web.css.map +1 -1
  3. package/lib/types/adw-about-dialog.spec.d.ts +1 -0
  4. package/lib/types/adw-action-rows.spec.d.ts +1 -0
  5. package/lib/types/adw-avatar.spec.d.ts +1 -0
  6. package/lib/types/adw-banner.spec.d.ts +1 -0
  7. package/lib/types/adw-button-content.spec.d.ts +1 -0
  8. package/lib/types/adw-carousel.spec.d.ts +1 -0
  9. package/lib/types/adw-checks.spec.d.ts +1 -0
  10. package/lib/types/adw-header-bar.spec.d.ts +1 -0
  11. package/lib/types/adw-icon.spec.d.ts +1 -0
  12. package/lib/types/adw-progress-bar.spec.d.ts +1 -0
  13. package/lib/types/adw-sidebar.spec.d.ts +1 -0
  14. package/lib/types/adw-switch.spec.d.ts +1 -0
  15. package/lib/types/adw-wrap-box.spec.d.ts +1 -0
  16. package/lib/types/bottom-sheet.spec.d.ts +1 -0
  17. package/lib/types/breakpoints.d.ts +22 -0
  18. package/lib/types/breakpoints.spec.d.ts +1 -0
  19. package/lib/types/chrome.spec.d.ts +1 -0
  20. package/lib/types/elements/adw-about-dialog.d.ts +47 -8
  21. package/lib/types/elements/adw-action-row.d.ts +35 -0
  22. package/lib/types/elements/adw-avatar.d.ts +11 -0
  23. package/lib/types/elements/adw-bottom-sheet.d.ts +33 -4
  24. package/lib/types/elements/adw-button-content.d.ts +12 -0
  25. package/lib/types/elements/adw-button-row.d.ts +10 -1
  26. package/lib/types/elements/adw-carousel.d.ts +111 -8
  27. package/lib/types/elements/adw-checks.d.ts +57 -0
  28. package/lib/types/elements/adw-clamp.d.ts +4 -1
  29. package/lib/types/elements/adw-data-grid.d.ts +11 -31
  30. package/lib/types/elements/adw-drop-down.d.ts +17 -20
  31. package/lib/types/elements/adw-entry-row.d.ts +93 -3
  32. package/lib/types/elements/adw-expander-row.d.ts +7 -1
  33. package/lib/types/elements/adw-header-bar.d.ts +15 -0
  34. package/lib/types/elements/adw-icon.d.ts +25 -0
  35. package/lib/types/elements/adw-inline-view-switcher.d.ts +37 -11
  36. package/lib/types/elements/adw-menu-button.d.ts +6 -6
  37. package/lib/types/elements/adw-navigation-split-view.d.ts +6 -0
  38. package/lib/types/elements/adw-navigation-view.d.ts +63 -20
  39. package/lib/types/elements/adw-overlay-split-view.d.ts +38 -0
  40. package/lib/types/elements/adw-password-entry-row.d.ts +19 -10
  41. package/lib/types/elements/adw-popover.d.ts +58 -0
  42. package/lib/types/elements/adw-preferences-dialog.d.ts +57 -2
  43. package/lib/types/elements/adw-preferences-group.d.ts +31 -0
  44. package/lib/types/elements/adw-progress-bar.d.ts +38 -0
  45. package/lib/types/elements/adw-sidebar.d.ts +37 -5
  46. package/lib/types/elements/adw-split-button.d.ts +53 -7
  47. package/lib/types/elements/adw-switch-row.d.ts +11 -2
  48. package/lib/types/elements/adw-switch.d.ts +15 -0
  49. package/lib/types/elements/adw-tab-view.d.ts +129 -12
  50. package/lib/types/elements/adw-toolbar-view.d.ts +5 -0
  51. package/lib/types/elements/adw-view-stack.d.ts +27 -19
  52. package/lib/types/elements/adw-view-switcher-bar.d.ts +23 -7
  53. package/lib/types/elements/adw-view-switcher.d.ts +22 -11
  54. package/lib/types/elements/adw-window-title.d.ts +3 -1
  55. package/lib/types/elements/view-switcher-dom.d.ts +44 -0
  56. package/lib/types/entry-rows.spec.d.ts +1 -0
  57. package/lib/types/index.d.ts +7 -0
  58. package/lib/types/navigation-view.spec.d.ts +1 -0
  59. package/lib/types/preferences-search.d.ts +20 -0
  60. package/lib/types/preferences.spec.d.ts +1 -0
  61. package/lib/types/split-button.spec.d.ts +1 -0
  62. package/lib/types/split-views.spec.d.ts +1 -0
  63. package/lib/types/styles.generated.d.ts +1 -1
  64. package/lib/types/tab-view.spec.d.ts +1 -0
  65. package/lib/types/view-stack.spec.d.ts +1 -0
  66. package/lib/types/view-switcher.spec.d.ts +1 -0
  67. package/package.json +6 -6
  68. package/scss/_banner.scss +13 -0
  69. package/scss/_bottom_sheet.scss +5 -6
  70. package/scss/_button.scss +3 -26
  71. package/scss/_button_content.scss +28 -0
  72. package/scss/_checks.scss +228 -0
  73. package/scss/_clamp.scss +9 -3
  74. package/scss/_data_grid.scss +15 -7
  75. package/scss/_drop_down.scss +12 -55
  76. package/scss/_expander_row.scss +5 -50
  77. package/scss/_icon.scss +51 -0
  78. package/scss/_icons.generated.scss +6 -0
  79. package/scss/_inline_view_switcher.scss +34 -0
  80. package/scss/_labels.scss +135 -0
  81. package/scss/_menu_button.scss +10 -70
  82. package/scss/_popover.scss +186 -0
  83. package/scss/_preferences.scss +29 -0
  84. package/scss/_preferences_dialog.scss +17 -0
  85. package/scss/_progress_bar.scss +161 -0
  86. package/scss/_reset.scss +18 -7
  87. package/scss/_spinner.scss +7 -3
  88. package/scss/_split_button.scss +6 -50
  89. package/scss/_switch.scss +90 -0
  90. package/scss/_switch_row.scss +6 -52
  91. package/scss/_tab_view.scss +64 -0
  92. package/scss/_theme.scss +10 -0
  93. package/scss/_toolbar_view.scss +74 -0
  94. package/scss/_variables.scss +34 -0
  95. package/scss/_view_switcher.scss +40 -0
  96. package/scss/_view_switcher_bar.scss +37 -0
  97. package/scss/_wrap_box.scss +56 -6
  98. package/scss/adwaita-skin.scss +23 -0
  99. package/src/adw-about-dialog.spec.ts +350 -0
  100. package/src/adw-action-rows.spec.ts +342 -0
  101. package/src/adw-avatar.spec.ts +139 -0
  102. package/src/adw-banner.spec.ts +152 -0
  103. package/src/adw-button-content.spec.ts +183 -0
  104. package/src/adw-button-row.spec.ts +12 -6
  105. package/src/adw-carousel.spec.ts +389 -0
  106. package/src/adw-checks.spec.ts +368 -0
  107. package/src/adw-drop-down.spec.ts +123 -0
  108. package/src/adw-header-bar.spec.ts +83 -0
  109. package/src/adw-icon.spec.ts +167 -0
  110. package/src/adw-progress-bar.spec.ts +173 -0
  111. package/src/adw-sidebar.spec.ts +332 -0
  112. package/src/adw-switch.spec.ts +242 -0
  113. package/src/adw-tab-view.spec.ts +12 -3
  114. package/src/adw-view-switcher-bar.spec.ts +61 -13
  115. package/src/adw-wrap-box.spec.ts +194 -0
  116. package/src/bottom-sheet.spec.ts +325 -0
  117. package/src/breakpoints.spec.ts +147 -0
  118. package/src/breakpoints.ts +67 -0
  119. package/src/chrome.spec.ts +301 -0
  120. package/src/elements/adw-about-dialog.ts +223 -163
  121. package/src/elements/adw-action-row.ts +120 -10
  122. package/src/elements/adw-avatar.ts +48 -54
  123. package/src/elements/adw-banner.ts +46 -10
  124. package/src/elements/adw-bottom-sheet.ts +145 -60
  125. package/src/elements/adw-button-content.ts +107 -33
  126. package/src/elements/adw-button-row.ts +61 -37
  127. package/src/elements/adw-button.ts +5 -7
  128. package/src/elements/adw-carousel.ts +467 -105
  129. package/src/elements/adw-checks.ts +299 -0
  130. package/src/elements/adw-clamp.ts +80 -10
  131. package/src/elements/adw-combo-row.ts +15 -7
  132. package/src/elements/adw-data-grid.ts +43 -91
  133. package/src/elements/adw-drop-down.ts +117 -128
  134. package/src/elements/adw-entry-row.ts +404 -36
  135. package/src/elements/adw-expander-row.ts +61 -29
  136. package/src/elements/adw-header-bar.ts +31 -6
  137. package/src/elements/adw-icon.ts +148 -0
  138. package/src/elements/adw-inline-view-switcher.ts +240 -129
  139. package/src/elements/adw-menu-button.ts +93 -70
  140. package/src/elements/adw-navigation-split-view.ts +48 -7
  141. package/src/elements/adw-navigation-view.ts +286 -148
  142. package/src/elements/adw-overlay-split-view.ts +164 -14
  143. package/src/elements/adw-password-entry-row.ts +111 -89
  144. package/src/elements/adw-popover.ts +283 -0
  145. package/src/elements/adw-preferences-dialog.ts +120 -21
  146. package/src/elements/adw-preferences-group.ts +128 -22
  147. package/src/elements/adw-progress-bar.ts +189 -0
  148. package/src/elements/adw-sidebar.ts +301 -142
  149. package/src/elements/adw-spin-row.ts +11 -5
  150. package/src/elements/adw-spinner.ts +23 -8
  151. package/src/elements/adw-split-button.ts +371 -92
  152. package/src/elements/adw-status-page.ts +9 -9
  153. package/src/elements/adw-switch-row.ts +100 -30
  154. package/src/elements/adw-switch.ts +129 -0
  155. package/src/elements/adw-tab-view.ts +682 -129
  156. package/src/elements/adw-toggle-group.ts +5 -7
  157. package/src/elements/adw-toolbar-view.ts +84 -21
  158. package/src/elements/adw-view-stack.ts +162 -85
  159. package/src/elements/adw-view-switcher-bar.ts +163 -81
  160. package/src/elements/adw-view-switcher.ts +231 -112
  161. package/src/elements/adw-window-title.ts +44 -11
  162. package/src/elements/adw-wrap-box.ts +131 -35
  163. package/src/elements/view-switcher-dom.ts +108 -0
  164. package/src/entry-rows.spec.ts +391 -0
  165. package/src/index.ts +23 -0
  166. package/src/navigation-view.spec.ts +435 -0
  167. package/src/preferences-search.ts +135 -0
  168. package/src/preferences.spec.ts +250 -0
  169. package/src/source-view/adw-source-view.ts +2 -5
  170. package/src/split-button.spec.ts +470 -0
  171. package/src/split-views.spec.ts +309 -0
  172. package/src/styles.generated.ts +1 -1
  173. package/src/tab-view.spec.ts +451 -0
  174. package/src/test.browser.mts +49 -0
  175. package/src/view-stack.spec.ts +272 -0
  176. package/src/view-switcher.spec.ts +446 -0
@@ -1,29 +1,40 @@
1
- type Policy = 'wide' | 'narrow';
1
+ import type { AdwViewSwitcherPage as AdwViewSwitcherPageInfo, AdwViewSwitcherPolicy } from '@gjsify/adwaita-core';
2
2
  /** A single page. Children of <adw-view-switcher>; consumed at connect time. */
3
3
  export declare class AdwViewSwitcherPage extends HTMLElement {
4
4
  static get observedAttributes(): string[];
5
5
  }
6
6
  export declare class AdwViewSwitcher extends HTMLElement {
7
+ private readonly _state;
7
8
  private _barEl;
8
9
  private _contentEl;
9
- private _pages;
10
- private _active;
10
+ private _nodes;
11
11
  private _policy;
12
12
  private _initialized;
13
13
  static get observedAttributes(): string[];
14
+ constructor();
14
15
  /** The policy controlling the button layout ('wide' | 'narrow'). */
15
- get policy(): Policy;
16
- set policy(value: Policy);
17
- /** Zero-based index of the active page. */
16
+ get policy(): AdwViewSwitcherPolicy;
17
+ set policy(value: AdwViewSwitcherPolicy);
18
+ /** Zero-based index of the selected page, `-1` when nothing is selected. */
18
19
  get active(): number;
19
20
  set active(value: number);
20
- /** The name of the currently visible page, or null when there are none. */
21
- get visibleChildName(): string | null;
21
+ /** Name of the selected page, `''` when nothing is selected. */
22
+ get visibleChildName(): string;
23
+ set visibleChildName(name: string | null | undefined);
24
+ /** The resolved page records a bound layout can read. */
25
+ get pages(): readonly AdwViewSwitcherPageInfo[];
26
+ /**
27
+ * Show or hide a page (`AdwViewStackPage:visible`). Returns whether the
28
+ * SELECTION moved — hiding the selected page falls back to the first still
29
+ * visible one (adw-view-stack.c:1061-1082).
30
+ */
31
+ setPageVisible(name: string, visible: boolean): boolean;
22
32
  connectedCallback(): void;
33
+ disconnectedCallback(): void;
23
34
  attributeChangedCallback(name: string): void;
35
+ private _buildPage;
24
36
  private _readPolicyAttr;
25
- private _readActiveAttr;
26
- private _selectIndex;
37
+ private _onStateChange;
27
38
  private _render;
39
+ private _reflectActive;
28
40
  }
29
- export {};
@@ -1,9 +1,11 @@
1
1
  export declare class AdwWindowTitle extends HTMLElement {
2
2
  private _titleEl;
3
3
  private _subtitleEl;
4
+ /** The headless title/subtitle pair + change detection (ADR 0004). */
5
+ private readonly _state;
4
6
  private _initialized;
5
7
  static get observedAttributes(): string[];
6
8
  connectedCallback(): void;
7
- attributeChangedCallback(): void;
9
+ attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
8
10
  private _render;
9
11
  }
@@ -0,0 +1,44 @@
1
+ import type { AdwViewSwitcherPageInit, ViewSwitcherScheduler } from '@gjsify/adwaita-core';
2
+ import { type AdwIcon } from './adw-icon.js';
3
+ /**
4
+ * The browser's timer behind the core's scheduler seam.
5
+ *
6
+ * One shared instance rather than one per element: it holds no state, and the
7
+ * seam exists so the CORE stays free of a global timer, not so each element
8
+ * invents its own.
9
+ */
10
+ export declare const domViewSwitcherScheduler: ViewSwitcherScheduler;
11
+ /**
12
+ * Build a switcher button's icon node, carrying its own position class.
13
+ *
14
+ * The core resolves NULL/empty to `image-missing` (which the stylesheet carries
15
+ * a real glyph for); the `-symbolic` strip and the CSS-token guard are
16
+ * `normalizeIconName`'s, applied by `<adw-icon>` — that strip is this package's
17
+ * own mask-class convention and has no counterpart in C, where the name reaches
18
+ * `GtkImage` untouched.
19
+ */
20
+ export declare function createSwitcherIcon(iconName: string, extra: string): AdwIcon;
21
+ /** Repaint an existing switcher icon from a page's declared name. */
22
+ export declare function applySwitcherIcon(icon: AdwIcon, iconName: string): void;
23
+ /**
24
+ * Read a declared page element into the core's page init.
25
+ *
26
+ * `getAttribute` returns `null` for an absent attribute, which is EXACTLY C's
27
+ * NULL — so the values are passed through unchanged rather than defaulted to
28
+ * `''`. That `?? ''` is what made the button-visibility rule unimplementable in
29
+ * the old code: once an absent title has become the empty string, "the page has
30
+ * no title" is no longer expressible.
31
+ */
32
+ export declare function readSwitcherPage(element: Element): AdwViewSwitcherPageInit;
33
+ /**
34
+ * Paint `AdwIndicatorBin`'s badge/dot onto a span: the badge text when there is
35
+ * one, a bare dot when only `needs-attention` is set, nothing otherwise
36
+ * (adw-indicator-bin.c:58-68 + the `.needs-attention` style class).
37
+ */
38
+ export declare function applyIndicator(indicator: HTMLElement, badgeLabel: string, needsAttention: boolean): void;
39
+ /**
40
+ * Mirror the derived screen-reader description onto the element, REMOVING the
41
+ * attribute when there is none — `update_description_cb` resets the accessible
42
+ * property rather than setting it to `""` (adw-view-switcher-button.c:104-113).
43
+ */
44
+ export declare function applyDescription(element: HTMLElement, description: string): void;
@@ -0,0 +1 @@
1
+ export declare const AdwEntryRowsTest: () => Promise<void>;
@@ -1,4 +1,5 @@
1
1
  import '@gjsify/adwaita-fonts';
2
+ export { addBreakpoints, bindBreakpointSetter } from './breakpoints.js';
2
3
  export { AdwAvatar } from './elements/adw-avatar.js';
3
4
  export { AdwBanner } from './elements/adw-banner.js';
4
5
  export { AdwCard } from './elements/adw-card.js';
@@ -12,6 +13,12 @@ export { AdwHeaderBar } from './elements/adw-header-bar.js';
12
13
  export { AdwWindowTitle } from './elements/adw-window-title.js';
13
14
  export { AdwButton } from './elements/adw-button.js';
14
15
  export { AdwButtonContent } from './elements/adw-button-content.js';
16
+ export { AdwIcon, createAdwIcon } from './elements/adw-icon.js';
17
+ export { AdwSwitch } from './elements/adw-switch.js';
18
+ export { AdwCheckbox, AdwRadio } from './elements/adw-checks.js';
19
+ export { AdwProgressBar } from './elements/adw-progress-bar.js';
20
+ export { AdwPopover } from './elements/adw-popover.js';
21
+ export type { AdwPopoverAlign, AdwPopoverPosition, AdwPopoverRole } from './elements/adw-popover.js';
15
22
  export { AdwSplitButton } from './elements/adw-split-button.js';
16
23
  export { AdwToggle, AdwToggleGroup } from './elements/adw-toggle-group.js';
17
24
  export { AdwEntry } from './elements/adw-entry.js';
@@ -0,0 +1 @@
1
+ export declare const AdwNavigationViewTest: () => Promise<void>;
@@ -0,0 +1,20 @@
1
+ import { type PreferencesSearchPage, type PreferencesSearchResult, type SearchPreferencesOptions } from '@gjsify/adwaita-core';
2
+ /**
3
+ * Describe every `<adw-preferences-page>` under `root` as the tree
4
+ * `searchPreferences` indexes.
5
+ *
6
+ * Page identity is read off the element itself — which is why the dialog keeps
7
+ * the page elements in its subtree instead of hoisting their children out. A
8
+ * flattened dialog has no page titles, and `create_search_row_subtitle` needs
9
+ * them the moment a second page exists.
10
+ */
11
+ export declare function describePreferencesPages(root: ParentNode): PreferencesSearchPage<Element>[];
12
+ /**
13
+ * Search the preferences pages under `root`, returning the result rows a
14
+ * `search_results` list box would be bound to.
15
+ *
16
+ * Each result carries the `<adw-preferences-page>` and the row element, so a
17
+ * caller can reproduce `search_result_activated_cb`: reveal the page, focus
18
+ * the row.
19
+ */
20
+ export declare function searchPreferencesDom(root: ParentNode, query: string, options?: SearchPreferencesOptions): PreferencesSearchResult<Element>[];
@@ -0,0 +1 @@
1
+ export declare const AdwPreferencesTest: () => Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const AdwSplitButtonTest: () => Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const AdwSplitViewsTest: () => Promise<void>;