@hyalo/angular 0.0.0-stage → 0.3.1

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 (229) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/LICENSE +21 -0
  3. package/README.md +45 -2
  4. package/fesm2022/hyalo-angular-accordion.mjs +230 -0
  5. package/fesm2022/hyalo-angular-accordion.mjs.map +1 -0
  6. package/fesm2022/hyalo-angular-alert.mjs +171 -0
  7. package/fesm2022/hyalo-angular-alert.mjs.map +1 -0
  8. package/fesm2022/hyalo-angular-aspect-ratio.mjs +64 -0
  9. package/fesm2022/hyalo-angular-aspect-ratio.mjs.map +1 -0
  10. package/fesm2022/hyalo-angular-avatar.mjs +169 -0
  11. package/fesm2022/hyalo-angular-avatar.mjs.map +1 -0
  12. package/fesm2022/hyalo-angular-badge.mjs +268 -0
  13. package/fesm2022/hyalo-angular-badge.mjs.map +1 -0
  14. package/fesm2022/hyalo-angular-bento.mjs +132 -0
  15. package/fesm2022/hyalo-angular-bento.mjs.map +1 -0
  16. package/fesm2022/hyalo-angular-blocks.mjs +985 -0
  17. package/fesm2022/hyalo-angular-blocks.mjs.map +1 -0
  18. package/fesm2022/hyalo-angular-border-beam.mjs +73 -0
  19. package/fesm2022/hyalo-angular-border-beam.mjs.map +1 -0
  20. package/fesm2022/hyalo-angular-breadcrumb.mjs +77 -0
  21. package/fesm2022/hyalo-angular-breadcrumb.mjs.map +1 -0
  22. package/fesm2022/hyalo-angular-button-group.mjs +90 -0
  23. package/fesm2022/hyalo-angular-button-group.mjs.map +1 -0
  24. package/fesm2022/hyalo-angular-button.mjs +204 -0
  25. package/fesm2022/hyalo-angular-button.mjs.map +1 -0
  26. package/fesm2022/hyalo-angular-card.mjs +221 -0
  27. package/fesm2022/hyalo-angular-card.mjs.map +1 -0
  28. package/fesm2022/hyalo-angular-carousel.mjs +709 -0
  29. package/fesm2022/hyalo-angular-carousel.mjs.map +1 -0
  30. package/fesm2022/hyalo-angular-chapter-nav.mjs +336 -0
  31. package/fesm2022/hyalo-angular-chapter-nav.mjs.map +1 -0
  32. package/fesm2022/hyalo-angular-chart-engine-DSJop6He.mjs +5 -0
  33. package/fesm2022/hyalo-angular-chart-engine-DSJop6He.mjs.map +1 -0
  34. package/fesm2022/hyalo-angular-chart.mjs +391 -0
  35. package/fesm2022/hyalo-angular-chart.mjs.map +1 -0
  36. package/fesm2022/hyalo-angular-choice.mjs +789 -0
  37. package/fesm2022/hyalo-angular-choice.mjs.map +1 -0
  38. package/fesm2022/hyalo-angular-code-block-highlight-B20d5C76.mjs +40 -0
  39. package/fesm2022/hyalo-angular-code-block-highlight-B20d5C76.mjs.map +1 -0
  40. package/fesm2022/hyalo-angular-code-block.mjs +161 -0
  41. package/fesm2022/hyalo-angular-code-block.mjs.map +1 -0
  42. package/fesm2022/hyalo-angular-command.mjs +193 -0
  43. package/fesm2022/hyalo-angular-command.mjs.map +1 -0
  44. package/fesm2022/hyalo-angular-copy.mjs +138 -0
  45. package/fesm2022/hyalo-angular-copy.mjs.map +1 -0
  46. package/fesm2022/hyalo-angular-core.mjs +424 -0
  47. package/fesm2022/hyalo-angular-core.mjs.map +1 -0
  48. package/fesm2022/hyalo-angular-description-list.mjs +57 -0
  49. package/fesm2022/hyalo-angular-description-list.mjs.map +1 -0
  50. package/fesm2022/hyalo-angular-dialog.mjs +600 -0
  51. package/fesm2022/hyalo-angular-dialog.mjs.map +1 -0
  52. package/fesm2022/hyalo-angular-divider.mjs +66 -0
  53. package/fesm2022/hyalo-angular-divider.mjs.map +1 -0
  54. package/fesm2022/hyalo-angular-empty-state.mjs +123 -0
  55. package/fesm2022/hyalo-angular-empty-state.mjs.map +1 -0
  56. package/fesm2022/hyalo-angular-field.mjs +344 -0
  57. package/fesm2022/hyalo-angular-field.mjs.map +1 -0
  58. package/fesm2022/hyalo-angular-filter.mjs +309 -0
  59. package/fesm2022/hyalo-angular-filter.mjs.map +1 -0
  60. package/fesm2022/hyalo-angular-hotspot.mjs +225 -0
  61. package/fesm2022/hyalo-angular-hotspot.mjs.map +1 -0
  62. package/fesm2022/hyalo-angular-hover-card.mjs +233 -0
  63. package/fesm2022/hyalo-angular-hover-card.mjs.map +1 -0
  64. package/fesm2022/hyalo-angular-icon.mjs +385 -0
  65. package/fesm2022/hyalo-angular-icon.mjs.map +1 -0
  66. package/fesm2022/hyalo-angular-image-compare.mjs +168 -0
  67. package/fesm2022/hyalo-angular-image-compare.mjs.map +1 -0
  68. package/fesm2022/hyalo-angular-interaction.mjs +446 -0
  69. package/fesm2022/hyalo-angular-interaction.mjs.map +1 -0
  70. package/fesm2022/hyalo-angular-kbd.mjs +41 -0
  71. package/fesm2022/hyalo-angular-kbd.mjs.map +1 -0
  72. package/fesm2022/hyalo-angular-lightbox.mjs +228 -0
  73. package/fesm2022/hyalo-angular-lightbox.mjs.map +1 -0
  74. package/fesm2022/hyalo-angular-link.mjs +42 -0
  75. package/fesm2022/hyalo-angular-link.mjs.map +1 -0
  76. package/fesm2022/hyalo-angular-list.mjs +131 -0
  77. package/fesm2022/hyalo-angular-list.mjs.map +1 -0
  78. package/fesm2022/hyalo-angular-marquee.mjs +197 -0
  79. package/fesm2022/hyalo-angular-marquee.mjs.map +1 -0
  80. package/fesm2022/hyalo-angular-menu.mjs +423 -0
  81. package/fesm2022/hyalo-angular-menu.mjs.map +1 -0
  82. package/fesm2022/hyalo-angular-mesh.mjs +126 -0
  83. package/fesm2022/hyalo-angular-mesh.mjs.map +1 -0
  84. package/fesm2022/hyalo-angular-motion.mjs +620 -0
  85. package/fesm2022/hyalo-angular-motion.mjs.map +1 -0
  86. package/fesm2022/hyalo-angular-navbar.mjs +343 -0
  87. package/fesm2022/hyalo-angular-navbar.mjs.map +1 -0
  88. package/fesm2022/hyalo-angular-navigation-menu.mjs +222 -0
  89. package/fesm2022/hyalo-angular-navigation-menu.mjs.map +1 -0
  90. package/fesm2022/hyalo-angular-number-ticker.mjs +174 -0
  91. package/fesm2022/hyalo-angular-number-ticker.mjs.map +1 -0
  92. package/fesm2022/hyalo-angular-overlay.mjs +163 -0
  93. package/fesm2022/hyalo-angular-overlay.mjs.map +1 -0
  94. package/fesm2022/hyalo-angular-pagination.mjs +187 -0
  95. package/fesm2022/hyalo-angular-pagination.mjs.map +1 -0
  96. package/fesm2022/hyalo-angular-popover-overlay-kit-6wPwnxln.mjs +3 -0
  97. package/fesm2022/hyalo-angular-popover.mjs +516 -0
  98. package/fesm2022/hyalo-angular-popover.mjs.map +1 -0
  99. package/fesm2022/hyalo-angular-progress.mjs +209 -0
  100. package/fesm2022/hyalo-angular-progress.mjs.map +1 -0
  101. package/fesm2022/hyalo-angular-progressive-blur.mjs +73 -0
  102. package/fesm2022/hyalo-angular-progressive-blur.mjs.map +1 -0
  103. package/fesm2022/hyalo-angular-refraction-renderer-5ZA-kfsA.mjs +186 -0
  104. package/fesm2022/hyalo-angular-refraction-renderer-5ZA-kfsA.mjs.map +1 -0
  105. package/fesm2022/hyalo-angular-refraction.mjs +178 -0
  106. package/fesm2022/hyalo-angular-refraction.mjs.map +1 -0
  107. package/fesm2022/hyalo-angular-scroll-area.mjs +93 -0
  108. package/fesm2022/hyalo-angular-scroll-area.mjs.map +1 -0
  109. package/fesm2022/hyalo-angular-scroll-to-top.mjs +127 -0
  110. package/fesm2022/hyalo-angular-scroll-to-top.mjs.map +1 -0
  111. package/fesm2022/hyalo-angular-segmented.mjs +223 -0
  112. package/fesm2022/hyalo-angular-segmented.mjs.map +1 -0
  113. package/fesm2022/hyalo-angular-select.mjs +561 -0
  114. package/fesm2022/hyalo-angular-select.mjs.map +1 -0
  115. package/fesm2022/hyalo-angular-sidebar.mjs +241 -0
  116. package/fesm2022/hyalo-angular-sidebar.mjs.map +1 -0
  117. package/fesm2022/hyalo-angular-skeleton.mjs +131 -0
  118. package/fesm2022/hyalo-angular-skeleton.mjs.map +1 -0
  119. package/fesm2022/hyalo-angular-sparkline.mjs +110 -0
  120. package/fesm2022/hyalo-angular-sparkline.mjs.map +1 -0
  121. package/fesm2022/hyalo-angular-split-text.mjs +126 -0
  122. package/fesm2022/hyalo-angular-split-text.mjs.map +1 -0
  123. package/fesm2022/hyalo-angular-stat.mjs +193 -0
  124. package/fesm2022/hyalo-angular-stat.mjs.map +1 -0
  125. package/fesm2022/hyalo-angular-stepper.mjs +254 -0
  126. package/fesm2022/hyalo-angular-stepper.mjs.map +1 -0
  127. package/fesm2022/hyalo-angular-table.mjs +335 -0
  128. package/fesm2022/hyalo-angular-table.mjs.map +1 -0
  129. package/fesm2022/hyalo-angular-tabs.mjs +324 -0
  130. package/fesm2022/hyalo-angular-tabs.mjs.map +1 -0
  131. package/fesm2022/hyalo-angular-theme.mjs +94 -0
  132. package/fesm2022/hyalo-angular-theme.mjs.map +1 -0
  133. package/fesm2022/hyalo-angular-timeline.mjs +157 -0
  134. package/fesm2022/hyalo-angular-timeline.mjs.map +1 -0
  135. package/fesm2022/hyalo-angular-toast.mjs +323 -0
  136. package/fesm2022/hyalo-angular-toast.mjs.map +1 -0
  137. package/fesm2022/hyalo-angular.mjs +2 -0
  138. package/package.json +329 -3
  139. package/styles/hyalo-core.css +25 -0
  140. package/styles/hyalo.css +17 -0
  141. package/styles/overlays/dialog.css +9 -0
  142. package/styles/overlays/popover.css +9 -0
  143. package/styles/overlays/select.css +9 -0
  144. package/styles/overlays/toast.css +8 -0
  145. package/styles/palettes/aurora.css +47 -0
  146. package/styles/palettes/ember.css +47 -0
  147. package/styles/palettes/graphite.css +47 -0
  148. package/styles/palettes/ocean.css +47 -0
  149. package/styles/palettes/orchid.css +47 -0
  150. package/styles/palettes/rose.css +47 -0
  151. package/styles/parts/card.css +49 -0
  152. package/styles/parts/dialog.css +116 -0
  153. package/styles/parts/drawer.css +124 -0
  154. package/styles/parts/field.css +44 -0
  155. package/styles/parts/glass.css +139 -0
  156. package/styles/parts/motion.css +101 -0
  157. package/styles/parts/navbar.css +55 -0
  158. package/styles/parts/popover.css +27 -0
  159. package/styles/parts/presence.css +55 -0
  160. package/styles/parts/reset.css +42 -0
  161. package/styles/parts/select.css +46 -0
  162. package/styles/parts/themes.css +105 -0
  163. package/styles/parts/toast.css +128 -0
  164. package/styles/parts/tokens.css +151 -0
  165. package/styles/parts/typography.css +81 -0
  166. package/types/hyalo-angular-accordion.d.ts +74 -0
  167. package/types/hyalo-angular-alert.d.ts +47 -0
  168. package/types/hyalo-angular-aspect-ratio.d.ts +13 -0
  169. package/types/hyalo-angular-avatar.d.ts +39 -0
  170. package/types/hyalo-angular-badge.d.ts +82 -0
  171. package/types/hyalo-angular-bento.d.ts +25 -0
  172. package/types/hyalo-angular-blocks.d.ts +272 -0
  173. package/types/hyalo-angular-border-beam.d.ts +15 -0
  174. package/types/hyalo-angular-breadcrumb.d.ts +22 -0
  175. package/types/hyalo-angular-button-group.d.ts +19 -0
  176. package/types/hyalo-angular-button.d.ts +89 -0
  177. package/types/hyalo-angular-card.d.ts +61 -0
  178. package/types/hyalo-angular-carousel.d.ts +147 -0
  179. package/types/hyalo-angular-chapter-nav.d.ts +79 -0
  180. package/types/hyalo-angular-chart.d.ts +90 -0
  181. package/types/hyalo-angular-choice.d.ts +259 -0
  182. package/types/hyalo-angular-code-block.d.ts +46 -0
  183. package/types/hyalo-angular-command.d.ts +41 -0
  184. package/types/hyalo-angular-copy.d.ts +39 -0
  185. package/types/hyalo-angular-core.d.ts +210 -0
  186. package/types/hyalo-angular-description-list.d.ts +16 -0
  187. package/types/hyalo-angular-dialog.d.ts +171 -0
  188. package/types/hyalo-angular-divider.d.ts +12 -0
  189. package/types/hyalo-angular-empty-state.d.ts +30 -0
  190. package/types/hyalo-angular-field.d.ts +141 -0
  191. package/types/hyalo-angular-filter.d.ts +122 -0
  192. package/types/hyalo-angular-hotspot.d.ts +70 -0
  193. package/types/hyalo-angular-hover-card.d.ts +47 -0
  194. package/types/hyalo-angular-icon.d.ts +122 -0
  195. package/types/hyalo-angular-image-compare.d.ts +55 -0
  196. package/types/hyalo-angular-interaction.d.ts +131 -0
  197. package/types/hyalo-angular-kbd.d.ts +5 -0
  198. package/types/hyalo-angular-lightbox.d.ts +67 -0
  199. package/types/hyalo-angular-link.d.ts +5 -0
  200. package/types/hyalo-angular-list.d.ts +30 -0
  201. package/types/hyalo-angular-marquee.d.ts +48 -0
  202. package/types/hyalo-angular-menu.d.ts +105 -0
  203. package/types/hyalo-angular-mesh.d.ts +36 -0
  204. package/types/hyalo-angular-motion.d.ts +218 -0
  205. package/types/hyalo-angular-navbar.d.ts +110 -0
  206. package/types/hyalo-angular-navigation-menu.d.ts +47 -0
  207. package/types/hyalo-angular-number-ticker.d.ts +52 -0
  208. package/types/hyalo-angular-overlay.d.ts +40 -0
  209. package/types/hyalo-angular-pagination.d.ts +59 -0
  210. package/types/hyalo-angular-popover.d.ts +152 -0
  211. package/types/hyalo-angular-progress.d.ts +46 -0
  212. package/types/hyalo-angular-progressive-blur.d.ts +14 -0
  213. package/types/hyalo-angular-refraction.d.ts +46 -0
  214. package/types/hyalo-angular-scroll-area.d.ts +18 -0
  215. package/types/hyalo-angular-scroll-to-top.d.ts +31 -0
  216. package/types/hyalo-angular-segmented.d.ts +79 -0
  217. package/types/hyalo-angular-select.d.ts +176 -0
  218. package/types/hyalo-angular-sidebar.d.ts +57 -0
  219. package/types/hyalo-angular-skeleton.d.ts +34 -0
  220. package/types/hyalo-angular-sparkline.d.ts +19 -0
  221. package/types/hyalo-angular-split-text.d.ts +24 -0
  222. package/types/hyalo-angular-stat.d.ts +56 -0
  223. package/types/hyalo-angular-stepper.d.ts +63 -0
  224. package/types/hyalo-angular-table.d.ts +125 -0
  225. package/types/hyalo-angular-tabs.d.ts +102 -0
  226. package/types/hyalo-angular-theme.d.ts +46 -0
  227. package/types/hyalo-angular-timeline.d.ts +36 -0
  228. package/types/hyalo-angular-toast.d.ts +79 -0
  229. package/types/hyalo-angular.d.ts +2 -0
@@ -0,0 +1,41 @@
1
+ import { DialogRef } from "@angular/cdk/dialog";
2
+ import * as i0 from "@angular/core";
3
+ export interface HyCommandItem<T = unknown> {
4
+ readonly id: string;
5
+ readonly label: string;
6
+ readonly value: T;
7
+ readonly description?: string;
8
+ readonly keywords?: readonly string[];
9
+ readonly group?: string;
10
+ readonly shortcut?: string;
11
+ readonly disabled?: boolean;
12
+ }
13
+ export interface HyCommandConfig<T = unknown> {
14
+ readonly items: readonly HyCommandItem<T>[];
15
+ readonly label?: string;
16
+ readonly placeholder?: string;
17
+ readonly emptyLabel?: string;
18
+ }
19
+ export declare class HyCommandPanel {
20
+ protected readonly data: HyCommandConfig;
21
+ private readonly ref;
22
+ protected readonly id: string;
23
+ protected readonly query: import("@angular/core").WritableSignal<string>;
24
+ private readonly indexed;
25
+ protected readonly matches: import("@angular/core").Signal<HyCommandItem<unknown>[]>;
26
+ protected readonly results: import("@angular/core").Signal<HyCommandItem<unknown>[]>;
27
+ protected readonly selected: import("@angular/core").WritableSignal<HyCommandItem<unknown>[]>;
28
+ protected pick(values: readonly HyCommandItem[]): void;
29
+ protected search(event: Event): void;
30
+ protected choose(item: HyCommandItem): void;
31
+ protected dismiss(event: Event): void;
32
+ protected close(): void;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyCommandPanel, never>;
34
+ static ɵcmp: i0.ɵɵComponentDeclaration<HyCommandPanel, "hy-command-panel", never, {}, {}, never, never, true, never>;
35
+ }
36
+ export declare class HyCommand {
37
+ private readonly dialog;
38
+ open<T>(config: HyCommandConfig<T>): DialogRef<HyCommandItem<T>>;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyCommand, never>;
40
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
41
+ }
@@ -0,0 +1,39 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class HyCopy {
3
+ readonly text: import("@angular/core").InputSignal<string>;
4
+ readonly label: import("@angular/core").InputSignal<string>;
5
+ readonly copiedLabel: import("@angular/core").InputSignal<string>;
6
+ readonly failedLabel: import("@angular/core").InputSignal<string>;
7
+ readonly completed: import("@angular/core").OutputEmitterRef<boolean>;
8
+ protected readonly status: import("@angular/core").WritableSignal<string>;
9
+ private readonly clipboard;
10
+ private timer?;
11
+ protected readonly copied: import("@angular/core").Signal<boolean>;
12
+ constructor();
13
+ copy(): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyCopy, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<HyCopy, "hy-copy", never, {
16
+ "text": {
17
+ "alias": "text";
18
+ "required": true;
19
+ "isSignal": true;
20
+ };
21
+ "label": {
22
+ "alias": "label";
23
+ "required": false;
24
+ "isSignal": true;
25
+ };
26
+ "copiedLabel": {
27
+ "alias": "copiedLabel";
28
+ "required": false;
29
+ "isSignal": true;
30
+ };
31
+ "failedLabel": {
32
+ "alias": "failedLabel";
33
+ "required": false;
34
+ "isSignal": true;
35
+ };
36
+ }, {
37
+ "completed": "completed";
38
+ }, never, ["*"], true, never>;
39
+ }
@@ -0,0 +1,210 @@
1
+ import * as i0 from "@angular/core";
2
+ import { ElementRef, InjectionToken, Provider, Signal } from "@angular/core";
3
+ /**
4
+ * How see-through a surface is.
5
+ *
6
+ * - `clear`: a light veil, most of the background shows through.
7
+ * - `frosted`: the default glass, blurred and saturated.
8
+ * - `tinted`: primary-coloured surface without live backdrop blur.
9
+ * - `solid`: opaque. Used automatically when the browser cannot blur, when
10
+ * the user asks for reduced transparency, and on the low fidelity tier.
11
+ */
12
+ export type HyMaterial = 'clear' | 'frosted' | 'tinted' | 'solid';
13
+ /**
14
+ * How heavy a glass surface reads. Bigger surfaces should be thicker: more
15
+ * blur and a deeper shadow.
16
+ *
17
+ * - `thin`: chips and buttons.
18
+ * - `regular`: the default, for cards, bars, popovers and toasts.
19
+ * - `thick`: dialogs, drawers and sheets.
20
+ */
21
+ export type HyThickness = 'thin' | 'regular' | 'thick';
22
+ /** Control size. All sizes keep a touch target of at least 32px. */
23
+ export type HySize = 'sm' | 'md' | 'lg';
24
+ /**
25
+ * Colour role of a control. `secondary` uses --hy-secondary when the theme sets
26
+ * it and falls back to the primary colour when it does not.
27
+ */
28
+ export type HyTone = 'primary' | 'secondary' | 'neutral' | 'success' | 'warning' | 'danger';
29
+ /**
30
+ * How much visual effort the device can afford.
31
+ *
32
+ * - `high`: everything, including cursor physics and (from v0.2) WebGL.
33
+ * - `medium`: GSAP tilt and reveals, no WebGL.
34
+ * - `low`: CSS only. Glass turns solid and nothing waits on JavaScript to
35
+ * become visible.
36
+ */
37
+ export type HyFidelityTier = 'high' | 'medium' | 'low';
38
+ /**
39
+ * The small part of GSAP that Hyalo uses. Declared here so the kit compiles
40
+ * without GSAP installed. The real `gsap` object satisfies it.
41
+ */
42
+ export interface HyGsap {
43
+ to(target: Element | Element[], vars: Record<string, unknown>): unknown;
44
+ set(target: Element | Element[], vars: Record<string, unknown>): unknown;
45
+ quickTo(target: Element, property: string, vars?: Record<string, unknown>): (value: number) => unknown;
46
+ killTweensOf(target: Element | Element[]): void;
47
+ }
48
+ /** Returns GSAP, usually through a dynamic import so it lands in its own chunk. */
49
+ export type HyGsapLoader = () => Promise<HyGsap>;
50
+ /** Global defaults read by every Hyalo component. */
51
+ export interface HyConfig {
52
+ readonly locale?: string;
53
+ /** Default material for glass surfaces. */
54
+ readonly material: HyMaterial;
55
+ /** Default control size. */
56
+ readonly size: HySize;
57
+ /** Default tone for buttons and other coloured controls. */
58
+ readonly tone: HyTone;
59
+ /**
60
+ * Forces a fidelity tier instead of detecting it. Handy for tests,
61
+ * screenshots and low-end kiosks.
62
+ */
63
+ readonly fidelity?: HyFidelityTier;
64
+ /**
65
+ * Loads GSAP on demand. Without it, Hyalo falls back to CSS transitions,
66
+ * so GSAP stays an optional dependency.
67
+ *
68
+ * ```ts
69
+ * provideHyalo({ gsap: () => import('gsap').then((m) => m.gsap) })
70
+ * ```
71
+ */
72
+ readonly gsap?: HyGsapLoader;
73
+ /**
74
+ * Maps a palette name to its stylesheet URL for HyPalette. Defaults to
75
+ * `palette-<name>.css`, which is what a non-injected `bundleName` entry
76
+ * in angular.json produces.
77
+ */
78
+ readonly paletteHref?: (name: string) => string;
79
+ }
80
+ /** Resolved Hyalo configuration. Use {@link provideHyalo} to change it. */
81
+ export declare const HY_CONFIG: InjectionToken<HyConfig>;
82
+ /**
83
+ * Sets Hyalo defaults. Works in `app.config.ts` and in a component's
84
+ * `providers`, where it merges with whatever the parent injector provides.
85
+ * That makes it easy to switch one section of a page to `solid`, for example.
86
+ */
87
+ export declare function provideHyalo(config?: Partial<HyConfig>): Provider;
88
+ /**
89
+ * Returns a unique id with the given prefix. The counter is per application,
90
+ * so the server and the client produce the same ids during hydration.
91
+ */
92
+ export declare function injectId(prefix: string): string;
93
+ interface NavigatorHints {
94
+ readonly deviceMemory?: number;
95
+ readonly hardwareConcurrency?: number;
96
+ readonly connection?: {
97
+ readonly saveData?: boolean;
98
+ };
99
+ }
100
+ export declare function detectFidelity(nav: NavigatorHints): HyFidelityTier;
101
+ export declare class HyFidelity {
102
+ private readonly config;
103
+ private readonly document;
104
+ private readonly detectedTier;
105
+ private readonly selectedTier;
106
+ readonly detected: import("@angular/core").Signal<HyFidelityTier>;
107
+ readonly override: import("@angular/core").Signal<HyFidelityTier | null>;
108
+ readonly tier: import("@angular/core").Signal<HyFidelityTier>;
109
+ constructor();
110
+ setTier(tier: HyFidelityTier | null): void;
111
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyFidelity, never>;
112
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
113
+ }
114
+ /**
115
+ * Turns any element into a glass surface.
116
+ *
117
+ * ```html
118
+ * <aside hyMaterial="clear">...</aside>
119
+ * <section hyMaterial thickness="thick">...</section>
120
+ * ```
121
+ *
122
+ * The look lives in CSS (`.hy-glass[data-material]`), so effects stay cheap
123
+ * and themeable. On the low fidelity tier every material renders as `solid`,
124
+ * because backdrop blur is the most expensive thing on the page.
125
+ */
126
+ export declare class HyMaterialDirective {
127
+ private readonly config;
128
+ private readonly appearance;
129
+ private readonly fidelity;
130
+ /** The material. An empty attribute uses the configured default. */
131
+ readonly material: import("@angular/core").InputSignal<"" | HyMaterial | undefined>;
132
+ /** How heavy the glass reads. Use `thick` for large surfaces. */
133
+ readonly thickness: import("@angular/core").InputSignal<HyThickness>;
134
+ /** The material that is actually rendered after fidelity is applied. */
135
+ readonly resolved: import("@angular/core").Signal<HyMaterial>;
136
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyMaterialDirective, never>;
137
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HyMaterialDirective, "[hyMaterial]", never, {
138
+ "material": {
139
+ "alias": "hyMaterial";
140
+ "required": false;
141
+ "isSignal": true;
142
+ };
143
+ "thickness": {
144
+ "alias": "thickness";
145
+ "required": false;
146
+ "isSignal": true;
147
+ };
148
+ }, {}, never, never, true, never>;
149
+ }
150
+ /**
151
+ * Mirrors interaction state to data attributes so glass effects can stay in
152
+ * CSS: `data-hover`, `data-press` and `data-focus-visible`.
153
+ *
154
+ * Hover is only reported for mouse and pen, so touch screens never get a
155
+ * stuck hover state.
156
+ */
157
+ export declare class HyInteractive {
158
+ private readonly host;
159
+ private readonly focusMonitor;
160
+ protected readonly hovered: import("@angular/core").WritableSignal<boolean>;
161
+ protected readonly pressed: import("@angular/core").WritableSignal<boolean>;
162
+ protected readonly focusVisible: import("@angular/core").WritableSignal<boolean>;
163
+ constructor();
164
+ protected onEnter(event: PointerEvent): void;
165
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyInteractive, never>;
166
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HyInteractive, "[hyInteractive]", never, {}, {}, never, never, true, never>;
167
+ }
168
+ /** True in the browser, false during server rendering. Call in an injection context. */
169
+ declare function injectIsBrowser(): boolean;
170
+ /** Reads a media query once. Always false on the server. */
171
+ declare function matchesMedia(query: string): boolean;
172
+ /**
173
+ * Keeps a sliding indicator under the selected item of a row by writing
174
+ * `--hy-ind-x` and `--hy-ind-size` on the row. The offset is physical (from
175
+ * the left edge) and the indicator is placed physically too, so the same
176
+ * numbers work in both directions.
177
+ *
178
+ * Returns a signal that turns true after the first placement, so CSS can
179
+ * enable the transition only from then on.
180
+ */
181
+ declare function trackIndicator(container: Signal<ElementRef<HTMLElement> | undefined>, selected: () => HTMLElement | null): Signal<boolean>;
182
+ /** Scoped preview override; null preserves each component's own material choice. */
183
+ export declare class HyAppearance {
184
+ readonly material: import("@angular/core").WritableSignal<HyMaterial | null>;
185
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyAppearance, never>;
186
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
187
+ }
188
+ export declare class HyLocale {
189
+ readonly locale: import("@angular/core").WritableSignal<string>;
190
+ setLocale(value: string): void;
191
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyLocale, never>;
192
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
193
+ }
194
+ export declare function normalizeDigits(value: string): string;
195
+ /** Keeps identifier strings intact, including leading zeros; it does not parse numbers. */
196
+ export declare class HyDigits {
197
+ readonly hyDigits: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
198
+ private readonly el;
199
+ protected normalize(event: Event): void;
200
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyDigits, never>;
201
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HyDigits, "input[hyDigits],textarea[hyDigits]", never, {
202
+ "hyDigits": {
203
+ "alias": "hyDigits";
204
+ "required": false;
205
+ "isSignal": true;
206
+ };
207
+ }, {}, never, never, true, never>;
208
+ }
209
+ export declare function normalizeSearch(value: string, locale?: string): string;
210
+ export { injectIsBrowser as ɵinjectIsBrowser, matchesMedia as ɵmatchesMedia, trackIndicator as ɵtrackIndicator };
@@ -0,0 +1,16 @@
1
+ import * as i0 from "@angular/core";
2
+ export interface HyDescription {
3
+ readonly term: string;
4
+ readonly detail: string;
5
+ }
6
+ export declare class HyDescriptionList {
7
+ readonly items: import("@angular/core").InputSignal<readonly HyDescription[]>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyDescriptionList, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<HyDescriptionList, "hy-description-list", never, {
10
+ "items": {
11
+ "alias": "items";
12
+ "required": true;
13
+ "isSignal": true;
14
+ };
15
+ }, {}, never, never, true, never>;
16
+ }
@@ -0,0 +1,171 @@
1
+ import { DialogConfig, DialogRef } from "@angular/cdk/dialog";
2
+ import * as i0 from "@angular/core";
3
+ import { InjectionToken, TemplateRef } from "@angular/core";
4
+ import { ComponentType } from "@angular/cdk/portal";
5
+ import { HyMaterial, HyTone } from "@hyalo/angular/core";
6
+ import "@angular/cdk/overlay";
7
+ import "@hyalo/angular/motion";
8
+ /** Data passed to a dialog or drawer through `open(..., { data })`. */
9
+ export declare const HY_DIALOG_DATA: InjectionToken<unknown>;
10
+ /**
11
+ * Handle to an open dialog or drawer. Inject it in the content component to
12
+ * close it, or keep the one `open()` returns.
13
+ */
14
+ export declare class HyDialogRef<R = unknown> {
15
+ private readonly cdkRef;
16
+ private closing;
17
+ /** Resolves with the result once the surface has closed. */
18
+ readonly closed: Promise<R | undefined>;
19
+ /**
20
+ * @internal Set by surfaces that drive their own exit, like a sheet on a
21
+ * spring. Calls `finish` once the surface is out of view.
22
+ */
23
+ exit: ((finish: () => void) => void) | null;
24
+ /** @internal */
25
+ constructor(cdkRef: DialogRef<R>);
26
+ /** Id of the dialog container element. */
27
+ get id(): string;
28
+ /** The element with `role="dialog"`. */
29
+ get containerElement(): HTMLElement | null;
30
+ /**
31
+ * Plays the exit animation, then closes. With reduced motion the exit is
32
+ * a short fade. Calling it again while the animation runs does nothing.
33
+ */
34
+ close(result?: R): void;
35
+ /**
36
+ * @internal A sheet grabbed while it was closing stays open, and a later
37
+ * `close()` works again.
38
+ */
39
+ cancelClose(): void;
40
+ }
41
+ /**
42
+ * The dialog or drawer heading. Its id becomes the container's
43
+ * `aria-labelledby`, so screen readers announce it on open.
44
+ */
45
+ export declare class HyDialogTitle {
46
+ protected readonly id: string;
47
+ constructor();
48
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyDialogTitle, never>;
49
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HyDialogTitle, "[hyDialogTitle]", never, {}, {}, never, never, true, never>;
50
+ }
51
+ /** The scrollable body. */
52
+ export declare class HyDialogContent {
53
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyDialogContent, never>;
54
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HyDialogContent, "[hyDialogContent]", never, {}, {}, never, never, true, never>;
55
+ }
56
+ /** The button row at the bottom. Primary action goes last. */
57
+ export declare class HyDialogActions {
58
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyDialogActions, never>;
59
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HyDialogActions, "[hyDialogActions]", never, {}, {}, never, never, true, never>;
60
+ }
61
+ /** Closes the surrounding dialog or drawer with an optional result. */
62
+ export declare class HyDialogClose {
63
+ protected readonly ref: HyDialogRef<any> | null;
64
+ /** The result to close with. A bare attribute closes with `undefined`. */
65
+ readonly hyDialogClose: import("@angular/core").InputSignalWithTransform<unknown, unknown>;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyDialogClose, never>;
67
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HyDialogClose, "button[hyDialogClose]", never, {
68
+ "hyDialogClose": {
69
+ "alias": "hyDialogClose";
70
+ "required": false;
71
+ "isSignal": true;
72
+ };
73
+ }, {}, never, never, true, never>;
74
+ }
75
+ /** Everything needed to lay out dialog or drawer content. */
76
+ export declare const HY_DIALOG_PARTS: readonly [typeof HyDialogTitle, typeof HyDialogContent, typeof HyDialogActions, typeof HyDialogClose];
77
+ /**
78
+ * Which edge the drawer slides from. `start` and `end` follow the text
79
+ * direction, so `end` is the right edge in LTR and the left edge in RTL.
80
+ * `bottom` gives a sheet, handy on phones.
81
+ */
82
+ export type HyDrawerSide = 'start' | 'end' | 'bottom';
83
+ /** Options for {@link HyDrawer.open}. */
84
+ export interface HyDrawerConfig<D = unknown> extends HySurfaceConfig<D> {
85
+ readonly side?: HyDrawerSide;
86
+ /** Any CSS length. Width for side drawers, height for the bottom sheet. */
87
+ readonly size?: string;
88
+ }
89
+ /**
90
+ * Opens a modal drawer: navigation on phones, a cart, filters. It behaves
91
+ * like a dialog (focus trap, Escape, backdrop, focus restore) and uses the
92
+ * same content parts and `HyDialogRef`.
93
+ *
94
+ * It runs on a spring and follows the pointer: drag it toward its edge, or
95
+ * flick it, to close it, and grab it again while it moves. A bottom sheet
96
+ * shows a grabber. With reduced motion it cross-fades instead.
97
+ *
98
+ * ```ts
99
+ * this.drawer.open(CartPanel, { side: 'end', label: 'Cart' });
100
+ * ```
101
+ */
102
+ export declare class HyDrawer {
103
+ private readonly cdk;
104
+ private readonly motion;
105
+ private readonly fidelity;
106
+ private readonly injector;
107
+ /** Opens a component or template in a drawer. */
108
+ open<R = unknown, D = unknown>(content: ComponentType<unknown> | TemplateRef<unknown>, config?: HyDrawerConfig<D>): HyDialogRef<R>;
109
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyDrawer, never>;
110
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
111
+ }
112
+ /** Options shared by dialogs and drawers. */
113
+ interface HySurfaceConfig<D> {
114
+ /** Passed to the content as `HY_DIALOG_DATA`. */
115
+ readonly data?: D;
116
+ /** Accessible name, when the content has no `hyDialogTitle`. */
117
+ readonly label?: string;
118
+ /** Close on Escape and backdrop click. Defaults to true. */
119
+ readonly dismissible?: boolean;
120
+ /** Glass material of the panel. */
121
+ readonly material?: HyMaterial;
122
+ /** Where focus goes on open. Defaults to the first tabbable element. */
123
+ readonly autoFocus?: DialogConfig['autoFocus'];
124
+ /** `alertdialog` for messages that need an answer. */
125
+ readonly role?: 'dialog' | 'alertdialog';
126
+ }
127
+ /** Dialog width. `full` fills the screen on small viewports. */
128
+ export type HyDialogSize = 'sm' | 'md' | 'lg' | 'full';
129
+ /** Options for {@link HyDialog.open}. */
130
+ export interface HyDialogConfig<D = unknown> extends HySurfaceConfig<D> {
131
+ readonly size?: HyDialogSize;
132
+ }
133
+ /** Options for {@link HyDialog.confirm}. */
134
+ export interface HyConfirmOptions {
135
+ readonly title: string;
136
+ readonly message?: string;
137
+ readonly confirmLabel?: string;
138
+ readonly cancelLabel?: string;
139
+ /** Use `danger` for destructive actions. */
140
+ readonly tone?: HyTone;
141
+ }
142
+ /**
143
+ * Opens modal dialogs. Focus is trapped inside while open and returns to
144
+ * the element that opened it. Escape and a backdrop click close it unless
145
+ * `dismissible` is false.
146
+ *
147
+ * ```ts
148
+ * const ref = this.dialog.open(EditAddress, { data: address, size: 'md' });
149
+ * const saved = await ref.closed;
150
+ *
151
+ * if (await this.dialog.confirm({ title: 'Delete this draft?', tone: 'danger', confirmLabel: 'Delete' })) {
152
+ * ...
153
+ * }
154
+ * ```
155
+ *
156
+ * In the content component, inject `HyDialogRef` to close and
157
+ * `HY_DIALOG_DATA` to read the data. Lay it out with `hyDialogTitle`,
158
+ * `hyDialogContent` and `hyDialogActions`.
159
+ */
160
+ export declare class HyDialog {
161
+ private readonly cdk;
162
+ private readonly motion;
163
+ private readonly fidelity;
164
+ /** Opens a component or template as a dialog. */
165
+ open<R = unknown, D = unknown>(content: ComponentType<unknown> | TemplateRef<unknown>, config?: HyDialogConfig<D>): HyDialogRef<R>;
166
+ /** Asks a yes or no question. Resolves to true only when confirmed. */
167
+ confirm(options: HyConfirmOptions): Promise<boolean>;
168
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyDialog, never>;
169
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
170
+ }
171
+ export type { HySurfaceConfig };
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class HyDivider {
3
+ readonly orientation: import("@angular/core").InputSignal<"horizontal" | "vertical">;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyDivider, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<HyDivider, "hy-divider", never, {
6
+ "orientation": {
7
+ "alias": "orientation";
8
+ "required": false;
9
+ "isSignal": true;
10
+ };
11
+ }, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1,30 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class HyEmptyState {
3
+ readonly heading: import("@angular/core").InputSignal<string>;
4
+ readonly headingLevel: import("@angular/core").InputSignal<2 | 3 | 4 | 5 | 6>;
5
+ readonly description: import("@angular/core").InputSignal<string>;
6
+ readonly icon: import("@angular/core").InputSignal<string | undefined>;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyEmptyState, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<HyEmptyState, "hy-empty-state", never, {
9
+ "heading": {
10
+ "alias": "heading";
11
+ "required": true;
12
+ "isSignal": true;
13
+ };
14
+ "headingLevel": {
15
+ "alias": "headingLevel";
16
+ "required": false;
17
+ "isSignal": true;
18
+ };
19
+ "description": {
20
+ "alias": "description";
21
+ "required": false;
22
+ "isSignal": true;
23
+ };
24
+ "icon": {
25
+ "alias": "icon";
26
+ "required": false;
27
+ "isSignal": true;
28
+ };
29
+ }, {}, never, ["*"], true, never>;
30
+ }
@@ -0,0 +1,141 @@
1
+ import * as i0 from "@angular/core";
2
+ import { DoCheck, InjectionToken, Signal } from "@angular/core";
3
+ import { HySize } from "@hyalo/angular/core";
4
+ /**
5
+ * What a control tells the field around it. Implemented by `hyInput` and
6
+ * `hy-select`. Custom controls can implement it too, so `hy-field` can
7
+ * label them and show their errors.
8
+ */
9
+ export interface HyFieldControl {
10
+ /** Id of the focusable element. */
11
+ readonly id: Signal<string>;
12
+ /** True when the field should show as invalid. */
13
+ readonly invalid: Signal<boolean>;
14
+ /** First error message to show, if any. */
15
+ readonly errorMessage: Signal<string | undefined>;
16
+ readonly required: Signal<boolean>;
17
+ readonly disabled: Signal<boolean>;
18
+ /**
19
+ * True when the control is a native labelable element (input, textarea,
20
+ * select, button). Those get `<label for>`. Others rely on
21
+ * `aria-labelledby`.
22
+ */
23
+ readonly labelable: boolean;
24
+ }
25
+ /** The field a control sits in. */
26
+ export interface HyFieldContext {
27
+ readonly labelId: string;
28
+ readonly hintId: string;
29
+ readonly errorId: string;
30
+ /** True while the field displays an error. */
31
+ readonly errorShown: Signal<boolean>;
32
+ /** Space-separated ids for `aria-describedby`. */
33
+ readonly describedBy: Signal<string | null>;
34
+ register(control: HyFieldControl): void;
35
+ }
36
+ /** Provided by `hy-field` to the control inside it. */
37
+ export declare const HY_FIELD: InjectionToken<HyFieldContext>;
38
+ /**
39
+ * Marks a native `<input>` or `<textarea>` as the control of a `hy-field`.
40
+ * It wires the label, hint and error ids, and reads validity from Signal
41
+ * Forms when `[formField]` is on the same element.
42
+ *
43
+ * The element stays native, so Signal Forms, `ngModel`, autofill and
44
+ * mobile keyboards all work as usual.
45
+ */
46
+ export declare class HyInput implements HyFieldControl, DoCheck {
47
+ protected readonly field: import("@hyalo/angular/field").HyFieldContext | null;
48
+ private readonly formField;
49
+ private readonly ngControl;
50
+ private readonly destroy;
51
+ private readonly revision;
52
+ private control;
53
+ private subscription?;
54
+ constructor();
55
+ ngDoCheck(): void;
56
+ readonly labelable = true;
57
+ /** The element's own static `id` attribute, or a generated one. */
58
+ readonly id: import("@angular/core").Signal<string>;
59
+ readonly invalid: import("@angular/core").Signal<boolean>;
60
+ readonly errorMessage: import("@angular/core").Signal<string | undefined>;
61
+ protected readonly showsError: import("@angular/core").Signal<boolean>;
62
+ readonly required: import("@angular/core").Signal<boolean>;
63
+ readonly disabled: import("@angular/core").Signal<boolean>;
64
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyInput, never>;
65
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HyInput, "input[hyInput], textarea[hyInput]", never, {}, {}, never, never, true, never>;
66
+ }
67
+ /** Content before the control inside the field box, such as an icon. */
68
+ export declare class HyPrefix {
69
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyPrefix, never>;
70
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HyPrefix, "[hyPrefix]", never, {}, {}, never, never, true, never>;
71
+ }
72
+ /** Content after the control inside the field box, such as a unit or a button. */
73
+ export declare class HySuffix {
74
+ static ɵfac: i0.ɵɵFactoryDeclaration<HySuffix, never>;
75
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HySuffix, "[hySuffix]", never, {}, {}, never, never, true, never>;
76
+ }
77
+ /**
78
+ * Label, hint and error around one form control.
79
+ *
80
+ * ```html
81
+ * <hy-field label="Email" hint="Only used for the receipt">
82
+ * <hy-icon hyPrefix name="mail" />
83
+ * <input hyInput type="email" [formField]="form.email" />
84
+ * </hy-field>
85
+ * ```
86
+ *
87
+ * With Signal Forms the error comes from the field state and shows once the
88
+ * field is touched. An explicit `error` input always wins, which is how
89
+ * server-side errors are shown.
90
+ */
91
+ export declare class HyField implements HyFieldContext {
92
+ readonly labelId: string;
93
+ readonly hintId: string;
94
+ readonly errorId: string;
95
+ /** Visible label. Always set one, placeholders are not labels. */
96
+ readonly label: import("@angular/core").InputSignal<string | undefined>;
97
+ /** Help text under the control. Hidden while an error shows. */
98
+ readonly hint: import("@angular/core").InputSignal<string | undefined>;
99
+ /** Error text. Overrides errors from the form. */
100
+ readonly error: import("@angular/core").InputSignal<string | undefined>;
101
+ /** Show errors before the field is touched, for example after submit. */
102
+ readonly forceError: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
103
+ /** Height of the field box. */
104
+ readonly size: import("@angular/core").InputSignal<HySize>;
105
+ protected readonly control: import("@angular/core").WritableSignal<HyFieldControl | undefined>;
106
+ protected readonly labelFor: import("@angular/core").Signal<string | null>;
107
+ protected readonly errorText: import("@angular/core").Signal<string | undefined>;
108
+ readonly errorShown: import("@angular/core").Signal<boolean>;
109
+ readonly describedBy: import("@angular/core").Signal<string | null>;
110
+ register(control: HyFieldControl): void;
111
+ static ɵfac: i0.ɵɵFactoryDeclaration<HyField, never>;
112
+ static ɵcmp: i0.ɵɵComponentDeclaration<HyField, "hy-field", never, {
113
+ "label": {
114
+ "alias": "label";
115
+ "required": false;
116
+ "isSignal": true;
117
+ };
118
+ "hint": {
119
+ "alias": "hint";
120
+ "required": false;
121
+ "isSignal": true;
122
+ };
123
+ "error": {
124
+ "alias": "error";
125
+ "required": false;
126
+ "isSignal": true;
127
+ };
128
+ "forceError": {
129
+ "alias": "forceError";
130
+ "required": false;
131
+ "isSignal": true;
132
+ };
133
+ "size": {
134
+ "alias": "size";
135
+ "required": false;
136
+ "isSignal": true;
137
+ };
138
+ }, {}, never, ["[hyPrefix]", "*", "[hySuffix]"], true, never>;
139
+ }
140
+ /** Everything needed to build a text field. */
141
+ export declare const HY_TEXT_FIELD: readonly [typeof HyField, typeof HyInput, typeof HyPrefix, typeof HySuffix];