@ponchia/ui 0.5.0 → 0.6.3

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 (196) hide show
  1. package/CHANGELOG.md +386 -4
  2. package/MIGRATIONS.json +14 -0
  3. package/README.md +29 -6
  4. package/annotations/index.d.ts +398 -276
  5. package/annotations/index.d.ts.map +1 -0
  6. package/annotations/index.js +350 -77
  7. package/behaviors/carousel.d.ts +28 -0
  8. package/behaviors/carousel.d.ts.map +1 -0
  9. package/behaviors/carousel.js +20 -16
  10. package/behaviors/combobox.d.ts +40 -0
  11. package/behaviors/combobox.d.ts.map +1 -0
  12. package/behaviors/combobox.js +111 -29
  13. package/behaviors/command.d.ts +41 -0
  14. package/behaviors/command.d.ts.map +1 -0
  15. package/behaviors/command.js +27 -15
  16. package/behaviors/connectors.d.ts +17 -0
  17. package/behaviors/connectors.d.ts.map +1 -0
  18. package/behaviors/connectors.js +7 -5
  19. package/behaviors/crosshair.d.ts +42 -0
  20. package/behaviors/crosshair.d.ts.map +1 -0
  21. package/behaviors/crosshair.js +23 -6
  22. package/behaviors/dialog.d.ts +20 -0
  23. package/behaviors/dialog.d.ts.map +1 -0
  24. package/behaviors/dialog.js +6 -2
  25. package/behaviors/disclosure.d.ts +10 -0
  26. package/behaviors/disclosure.d.ts.map +1 -0
  27. package/behaviors/disclosure.js +6 -2
  28. package/behaviors/dismissible.d.ts +10 -0
  29. package/behaviors/dismissible.d.ts.map +1 -0
  30. package/behaviors/dismissible.js +6 -2
  31. package/behaviors/forms.d.ts +27 -0
  32. package/behaviors/forms.d.ts.map +1 -0
  33. package/behaviors/forms.js +54 -13
  34. package/behaviors/glyph.d.ts +14 -0
  35. package/behaviors/glyph.d.ts.map +1 -0
  36. package/behaviors/glyph.js +28 -5
  37. package/behaviors/index.d.ts +31 -237
  38. package/behaviors/index.d.ts.map +1 -0
  39. package/behaviors/index.js +17 -0
  40. package/behaviors/inert.d.ts +20 -0
  41. package/behaviors/inert.d.ts.map +1 -0
  42. package/behaviors/inert.js +46 -0
  43. package/behaviors/internal.d.ts +25 -0
  44. package/behaviors/internal.d.ts.map +1 -0
  45. package/behaviors/internal.js +77 -1
  46. package/behaviors/legend.d.ts +35 -0
  47. package/behaviors/legend.d.ts.map +1 -0
  48. package/behaviors/legend.js +32 -2
  49. package/behaviors/menu.d.ts +16 -0
  50. package/behaviors/menu.d.ts.map +1 -0
  51. package/behaviors/menu.js +6 -2
  52. package/behaviors/modal.d.ts +41 -0
  53. package/behaviors/modal.d.ts.map +1 -0
  54. package/behaviors/modal.js +124 -0
  55. package/behaviors/popover.d.ts +28 -0
  56. package/behaviors/popover.d.ts.map +1 -0
  57. package/behaviors/popover.js +78 -7
  58. package/behaviors/spotlight.d.ts +17 -0
  59. package/behaviors/spotlight.d.ts.map +1 -0
  60. package/behaviors/spotlight.js +7 -5
  61. package/behaviors/table.d.ts +36 -0
  62. package/behaviors/table.d.ts.map +1 -0
  63. package/behaviors/table.js +84 -17
  64. package/behaviors/tabs.d.ts +20 -0
  65. package/behaviors/tabs.d.ts.map +1 -0
  66. package/behaviors/tabs.js +17 -14
  67. package/behaviors/theme.d.ts +54 -0
  68. package/behaviors/theme.d.ts.map +1 -0
  69. package/behaviors/theme.js +22 -3
  70. package/behaviors/toast.d.ts +49 -0
  71. package/behaviors/toast.d.ts.map +1 -0
  72. package/behaviors/toast.js +47 -3
  73. package/classes/classes.json +2527 -0
  74. package/classes/index.d.ts +134 -15
  75. package/classes/index.js +280 -80
  76. package/classes/vscode.css-custom-data.json +12 -0
  77. package/connectors/index.d.ts +201 -69
  78. package/connectors/index.d.ts.map +1 -0
  79. package/connectors/index.js +142 -25
  80. package/css/app.css +69 -13
  81. package/css/base.css +15 -10
  82. package/css/bullet.css +108 -0
  83. package/css/code.css +98 -0
  84. package/css/connectors.css +17 -0
  85. package/css/content.css +22 -3
  86. package/css/crosshair.css +7 -7
  87. package/css/dataviz.css +5 -1
  88. package/css/diff.css +153 -0
  89. package/css/disclosure.css +53 -7
  90. package/css/dots.css +94 -7
  91. package/css/feedback.css +97 -7
  92. package/css/forms.css +113 -4
  93. package/css/legend.css +16 -9
  94. package/css/marks.css +38 -8
  95. package/css/motion.css +98 -53
  96. package/css/navigation.css +7 -0
  97. package/css/overlay.css +90 -3
  98. package/css/primitives.css +158 -13
  99. package/css/report.css +73 -56
  100. package/css/sidenote.css +67 -0
  101. package/css/site.css +16 -2
  102. package/css/sources.css +43 -1
  103. package/css/spark.css +62 -0
  104. package/css/spotlight.css +1 -1
  105. package/css/table.css +9 -2
  106. package/css/term.css +110 -0
  107. package/css/textref.css +63 -0
  108. package/css/toc.css +91 -0
  109. package/css/tokens.css +49 -1
  110. package/css/tree.css +134 -0
  111. package/css/workbench.css +1 -1
  112. package/dist/bronto.css +1 -1
  113. package/dist/css/analytical.css +1 -1
  114. package/dist/css/app.css +1 -1
  115. package/dist/css/base.css +1 -1
  116. package/dist/css/bullet.css +1 -0
  117. package/dist/css/code.css +1 -0
  118. package/dist/css/connectors.css +1 -1
  119. package/dist/css/content.css +1 -1
  120. package/dist/css/crosshair.css +1 -1
  121. package/dist/css/diff.css +1 -0
  122. package/dist/css/disclosure.css +1 -1
  123. package/dist/css/dots.css +1 -1
  124. package/dist/css/feedback.css +1 -1
  125. package/dist/css/forms.css +1 -1
  126. package/dist/css/legend.css +1 -1
  127. package/dist/css/marks.css +1 -1
  128. package/dist/css/motion.css +1 -1
  129. package/dist/css/navigation.css +1 -1
  130. package/dist/css/overlay.css +1 -1
  131. package/dist/css/primitives.css +1 -1
  132. package/dist/css/report.css +1 -1
  133. package/dist/css/sidenote.css +1 -0
  134. package/dist/css/site.css +1 -1
  135. package/dist/css/sources.css +1 -1
  136. package/dist/css/spark.css +1 -0
  137. package/dist/css/spotlight.css +1 -1
  138. package/dist/css/table.css +1 -1
  139. package/dist/css/term.css +1 -0
  140. package/dist/css/textref.css +1 -0
  141. package/dist/css/toc.css +1 -0
  142. package/dist/css/tokens.css +1 -1
  143. package/dist/css/tree.css +1 -0
  144. package/dist/css/workbench.css +1 -1
  145. package/docs/adr/0003-theme-model.md +1 -1
  146. package/docs/annotations.md +133 -14
  147. package/docs/architecture.md +49 -6
  148. package/docs/bullet.md +78 -0
  149. package/docs/code.md +76 -0
  150. package/docs/contrast.md +116 -92
  151. package/docs/d2.md +196 -0
  152. package/docs/diff.md +146 -0
  153. package/docs/legends.md +23 -3
  154. package/docs/marks.md +9 -2
  155. package/docs/mermaid.md +169 -0
  156. package/docs/reference.md +201 -26
  157. package/docs/reporting.md +416 -57
  158. package/docs/sidenote.md +64 -0
  159. package/docs/sources.md +27 -0
  160. package/docs/spark.md +78 -0
  161. package/docs/stability.md +10 -2
  162. package/docs/term.md +81 -0
  163. package/docs/textref.md +78 -0
  164. package/docs/theming.md +44 -5
  165. package/docs/toc.md +83 -0
  166. package/docs/tree.md +74 -0
  167. package/docs/usage.md +354 -16
  168. package/docs/vega.md +244 -0
  169. package/docs/workbench.md +7 -1
  170. package/glyphs/glyphs.js +13 -5
  171. package/llms.txt +285 -14
  172. package/package.json +95 -17
  173. package/qwik/index.d.ts +44 -59
  174. package/qwik/index.d.ts.map +1 -0
  175. package/qwik/index.js +65 -3
  176. package/react/index.d.ts +41 -61
  177. package/react/index.d.ts.map +1 -0
  178. package/react/index.js +63 -3
  179. package/solid/index.d.ts +68 -61
  180. package/solid/index.d.ts.map +1 -0
  181. package/solid/index.js +66 -3
  182. package/tokens/d2.d.ts +38 -0
  183. package/tokens/d2.js +71 -0
  184. package/tokens/d2.json +43 -0
  185. package/tokens/index.d.ts +5 -5
  186. package/tokens/index.js +15 -1
  187. package/tokens/index.json +9 -0
  188. package/tokens/mermaid.d.ts +23 -0
  189. package/tokens/mermaid.js +181 -0
  190. package/tokens/mermaid.json +163 -0
  191. package/tokens/resolved.json +45 -1
  192. package/tokens/skins.js +3 -2
  193. package/tokens/tokens.dtcg.json +26 -0
  194. package/tokens/vega.d.ts +34 -0
  195. package/tokens/vega.js +155 -0
  196. package/tokens/vega.json +179 -0
package/qwik/index.d.ts CHANGED
@@ -1,60 +1,45 @@
1
- /** @ponchia/ui/qwik thin Qwik bindings over the SSR-safe behaviors.
2
- * Optional peer dep `@builder.io/qwik`. Hooks run a delegated behavior on
3
- * visible and register cleanup on dispose (via `useVisibleTask$`); they take
4
- * the same options as the behavior and return void. See behaviors/index.d.ts. */
5
- import type { Cleanup, DelegateOpts, ThemeStorageOpts, ToastOpts } from '../behaviors/index.js';
6
-
7
- export type BrontoBindingRoot =
8
- | Document
9
- | Element
10
- // Qwik `useSignal()` (and any { value } / { current } ref shape).
11
- | { value: Document | Element | null | undefined }
12
- | { current: Document | Element | null | undefined }
13
- | (() => Document | Element | null | undefined)
14
- | null
15
- | undefined;
16
-
17
- export type BrontoBindingOpts<T extends DelegateOpts = DelegateOpts> = Omit<T, 'root'> & {
18
- root?: BrontoBindingRoot;
1
+ /** Generic escape hatch. NOTE for Qwik: prefer the specific `use*` hooks
2
+ * below they inline a statically-imported behavior so the optimizer can
3
+ * serialize the task. Passing a runtime function here is only safe when it
4
+ * is itself optimizer-visible (a module import).
5
+ * @param {(opts?: DelegateOpts) => Cleanup | void} init
6
+ * @param {BrontoBindingOptsResolver} [opts]
7
+ * @returns {void} */
8
+ export function useBrontoBehavior(init: (opts?: DelegateOpts) => Cleanup | void, opts?: BrontoBindingOptsResolver): void;
9
+ export function useThemeToggle(opts?: BrontoBindingOptsResolver<ThemeStorageOpts & DelegateOpts>): void;
10
+ export function useDismissible(opts?: BrontoBindingOptsResolver): void;
11
+ export function useDisabledGuard(opts?: BrontoBindingOptsResolver): void;
12
+ export function useDisclosure(opts?: BrontoBindingOptsResolver): void;
13
+ export function useMenu(opts?: BrontoBindingOptsResolver): void;
14
+ export function useFormValidation(opts?: BrontoBindingOptsResolver): void;
15
+ export function useCombobox(opts?: BrontoBindingOptsResolver): void;
16
+ export function usePopover(opts?: BrontoBindingOptsResolver): void;
17
+ export function useTableSort(opts?: BrontoBindingOptsResolver): void;
18
+ export function useTabs(opts?: BrontoBindingOptsResolver): void;
19
+ export function useDialog(opts?: BrontoBindingOptsResolver): void;
20
+ export function useModal(opts?: BrontoBindingOptsResolver): void;
21
+ export function useCarousel(opts?: BrontoBindingOptsResolver): void;
22
+ export function useDotGlyph(opts?: BrontoBindingOptsResolver): void;
23
+ export function useLegend(opts?: BrontoBindingOptsResolver): void;
24
+ export function useConnectors(opts?: BrontoBindingOptsResolver): void;
25
+ export function useSpotlight(opts?: BrontoBindingOptsResolver): void;
26
+ export function useCrosshair(opts?: BrontoBindingOptsResolver): void;
27
+ export function useCommand(opts?: BrontoBindingOptsResolver): void;
28
+ export function useToast(): (message: string, opts?: ToastOpts) => Cleanup;
29
+ export { applyStoredTheme };
30
+ export type Cleanup = import("../behaviors/index.js").Cleanup;
31
+ export type DelegateOpts = import("../behaviors/index.js").DelegateOpts;
32
+ export type ThemeStorageOpts = import("../behaviors/index.js").ThemeStorageOpts;
33
+ export type ToastOpts = import("../behaviors/index.js").ToastOpts;
34
+ export type BrontoBindingRoot = Document | Element | {
35
+ value: Document | Element | null | undefined;
36
+ } | {
37
+ current: Document | Element | null | undefined;
38
+ } | (() => Document | Element | null | undefined) | null | undefined;
39
+ export type BrontoBindingOpts<T extends DelegateOpts = import("../behaviors/internal.js").DelegateOpts> = Omit<T, "root"> & {
40
+ root?: BrontoBindingRoot;
19
41
  };
20
-
21
- export type BrontoBindingOptsResolver<T extends DelegateOpts = DelegateOpts> =
22
- | BrontoBindingOpts<T>
23
- | (() => BrontoBindingOpts<T> | null | undefined)
24
- | null
25
- | undefined;
26
-
27
- /** Run any delegated behavior for the component's lifetime (init on visible,
28
- * its returned cleanup on dispose). Prefer the specific `use*` hooks in Qwik
29
- * so the optimizer can serialize the task; this generic form is safe only with
30
- * an optimizer-visible (module-imported) behavior. */
31
- export declare function useBrontoBehavior(
32
- init: (opts?: DelegateOpts) => Cleanup | void,
33
- opts?: BrontoBindingOptsResolver,
34
- ): void;
35
-
36
- export declare function useThemeToggle(
37
- opts?: BrontoBindingOptsResolver<ThemeStorageOpts & DelegateOpts>,
38
- ): void;
39
- export declare function useDismissible(opts?: BrontoBindingOptsResolver): void;
40
- export declare function useDisclosure(opts?: BrontoBindingOptsResolver): void;
41
- export declare function useMenu(opts?: BrontoBindingOptsResolver): void;
42
- export declare function useFormValidation(opts?: BrontoBindingOptsResolver): void;
43
- export declare function useCombobox(opts?: BrontoBindingOptsResolver): void;
44
- export declare function usePopover(opts?: BrontoBindingOptsResolver): void;
45
- export declare function useTableSort(opts?: BrontoBindingOptsResolver): void;
46
- export declare function useTabs(opts?: BrontoBindingOptsResolver): void;
47
- export declare function useDialog(opts?: BrontoBindingOptsResolver): void;
48
- export declare function useCarousel(opts?: BrontoBindingOptsResolver): void;
49
- export declare function useDotGlyph(opts?: BrontoBindingOptsResolver): void;
50
- export declare function useLegend(opts?: BrontoBindingOptsResolver): void;
51
- export declare function useConnectors(opts?: BrontoBindingOptsResolver): void;
52
- export declare function useSpotlight(opts?: BrontoBindingOptsResolver): void;
53
- export declare function useCrosshair(opts?: BrontoBindingOptsResolver): void;
54
- export declare function useCommand(opts?: BrontoBindingOptsResolver): void;
55
-
56
- /** The `toast()` imperative (no lifecycle of its own). */
57
- export declare function useToast(): (message: string, opts?: ToastOpts) => Cleanup;
58
-
59
- export { applyStoredTheme } from '../behaviors/index.js';
60
- export { cls, ui, cx } from '../classes/index.js';
42
+ export type BrontoBindingOptsResolver<T extends DelegateOpts = import("../behaviors/internal.js").DelegateOpts> = BrontoBindingOpts<T> | (() => BrontoBindingOpts<T> | null | undefined) | null | undefined;
43
+ import { applyStoredTheme } from '../behaviors/index.js';
44
+ export { cls, ui, cx } from "../classes/index.js";
45
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAgHA;;;;;;sBAMsB;AACtB,wCAHY,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI,SACvC,yBAAyB,GACvB,IAAI,CAIjB;AAGM,sCADK,yBAAyB,CAAC,gBAAgB,GAAG,YAAY,CAAC,GAAmB,IAAI,CAGhC;AAEtD,sCADK,yBAAyB,GAAmB,IAAI,CAGH;AAElD,wCADK,yBAAyB,GAAmB,IAAI,CAGG;AAExD,qCADK,yBAAyB,GAAmB,IAAI,CAGA;AAErD,+BADK,yBAAyB,GAAmB,IAAI,CAGN;AAE/C,yCADK,yBAAyB,GAAmB,IAAI,CAGI;AAEzD,mCADK,yBAAyB,GAAmB,IAAI,CAGF;AAEnD,kCADK,yBAAyB,GAAmB,IAAI,CAGH;AAElD,oCADK,yBAAyB,GAAmB,IAAI,CAGD;AAEpD,+BADK,yBAAyB,GAAmB,IAAI,CAGN;AAE/C,iCADK,yBAAyB,GAAmB,IAAI,CAGJ;AAEjD,gCADK,yBAAyB,GAAmB,IAAI,CAGL;AAEhD,mCADK,yBAAyB,GAAmB,IAAI,CAGF;AAEnD,mCADK,yBAAyB,GAAmB,IAAI,CAGF;AAEnD,iCADK,yBAAyB,GAAmB,IAAI,CAGJ;AAEjD,qCADK,yBAAyB,GAAmB,IAAI,CAGA;AAErD,oCADK,yBAAyB,GAAmB,IAAI,CAGD;AAEpD,oCADK,yBAAyB,GAAmB,IAAI,CAGD;AAEpD,kCADK,yBAAyB,GAAmB,IAAI,CAGH;AAIlD,4BADO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,OAAO,CACzB;;sBAhLtB,OAAO,uBAAuB,EAAE,OAAO;2BACvC,OAAO,uBAAuB,EAAE,YAAY;+BAC5C,OAAO,uBAAuB,EAAE,gBAAgB;wBAChD,OAAO,uBAAuB,EAAE,SAAS;gCAEzC,QAAQ,GACd,OAAO,GACP;IAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,GAClD,CAAC,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,GAC7C,IAAI,GACJ,SAAS;8BAIa,CAAC,SAAhB,YAAa,sDACd,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;CAAE;sCAI9B,CAAC,SAAhB,YAAa,sDACd,iBAAiB,CAAC,CAAC,CAAC,GAC1B,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAC/C,IAAI,GACJ,SAAS;iCAyBT,uBAAuB"}
package/qwik/index.js CHANGED
@@ -24,12 +24,39 @@
24
24
  * Scope a behavior to a subtree by passing a Qwik signal:
25
25
  * const root = useSignal();
26
26
  * useDialog({ root }); // <section ref={root}> … </section>
27
+ *
28
+ * @typedef {import('../behaviors/index.js').Cleanup} Cleanup
29
+ * @typedef {import('../behaviors/index.js').DelegateOpts} DelegateOpts
30
+ * @typedef {import('../behaviors/index.js').ThemeStorageOpts} ThemeStorageOpts
31
+ * @typedef {import('../behaviors/index.js').ToastOpts} ToastOpts
32
+ *
33
+ * @typedef {Document
34
+ * | Element
35
+ * | { value: Document | Element | null | undefined }
36
+ * | { current: Document | Element | null | undefined }
37
+ * | (() => Document | Element | null | undefined)
38
+ * | null
39
+ * | undefined} BrontoBindingRoot
40
+ */
41
+
42
+ /**
43
+ * @template {DelegateOpts} [T=DelegateOpts]
44
+ * @typedef {Omit<T, 'root'> & { root?: BrontoBindingRoot }} BrontoBindingOpts
45
+ */
46
+
47
+ /**
48
+ * @template {DelegateOpts} [T=DelegateOpts]
49
+ * @typedef {BrontoBindingOpts<T>
50
+ * | (() => BrontoBindingOpts<T> | null | undefined)
51
+ * | null
52
+ * | undefined} BrontoBindingOptsResolver
27
53
  */
28
54
  import { useVisibleTask$ } from '@builder.io/qwik';
29
55
  import {
30
56
  applyStoredTheme,
31
57
  initThemeToggle,
32
58
  dismissible,
59
+ initDisabledGuard,
33
60
  initDisclosure,
34
61
  initMenu,
35
62
  initFormValidation,
@@ -38,6 +65,7 @@ import {
38
65
  initTableSort,
39
66
  initTabs,
40
67
  initDialog,
68
+ initModal,
41
69
  initCarousel,
42
70
  initDotGlyph,
43
71
  initLegend,
@@ -64,8 +92,13 @@ function resolveRoot(root) {
64
92
  function resolveOpts(opts) {
65
93
  const value = resolveMaybe(opts);
66
94
  if (!value || typeof value !== 'object') return undefined;
95
+ // No `root` key → no scope requested; leave root out so the behavior
96
+ // delegates from `document`. A `root` key that resolves falsy means a scope
97
+ // WAS requested but the ref is not ready: emit `root: null` so the behavior
98
+ // no-ops instead of hijacking the whole document.
99
+ if (!('root' in value)) return { ...value };
67
100
  const root = resolveRoot(value.root);
68
- return root ? { ...value, root } : { ...value, root: undefined };
101
+ return { ...value, root: root || null };
69
102
  }
70
103
 
71
104
  /** Run a delegated behavior on visible and register its cleanup on dispose.
@@ -80,65 +113,94 @@ function start(init, opts, ctx) {
80
113
  /** Generic escape hatch. NOTE for Qwik: prefer the specific `use*` hooks
81
114
  * below — they inline a statically-imported behavior so the optimizer can
82
115
  * serialize the task. Passing a runtime function here is only safe when it
83
- * is itself optimizer-visible (a module import). */
116
+ * is itself optimizer-visible (a module import).
117
+ * @param {(opts?: DelegateOpts) => Cleanup | void} init
118
+ * @param {BrontoBindingOptsResolver} [opts]
119
+ * @returns {void} */
84
120
  export function useBrontoBehavior(init, opts) {
85
121
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
86
122
  useVisibleTask$((ctx) => start(init, opts, ctx));
87
123
  }
88
124
 
125
+ /** @param {BrontoBindingOptsResolver<ThemeStorageOpts & DelegateOpts>} [opts] @returns {void} */
89
126
  export const useThemeToggle = (opts) =>
90
127
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
91
128
  useVisibleTask$((ctx) => start(initThemeToggle, opts, ctx));
129
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
92
130
  export const useDismissible = (opts) =>
93
131
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
94
132
  useVisibleTask$((ctx) => start(dismissible, opts, ctx));
133
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
134
+ export const useDisabledGuard = (opts) =>
135
+ // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
136
+ useVisibleTask$((ctx) => start(initDisabledGuard, opts, ctx));
137
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
95
138
  export const useDisclosure = (opts) =>
96
139
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
97
140
  useVisibleTask$((ctx) => start(initDisclosure, opts, ctx));
141
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
98
142
  export const useMenu = (opts) =>
99
143
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
100
144
  useVisibleTask$((ctx) => start(initMenu, opts, ctx));
145
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
101
146
  export const useFormValidation = (opts) =>
102
147
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
103
148
  useVisibleTask$((ctx) => start(initFormValidation, opts, ctx));
149
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
104
150
  export const useCombobox = (opts) =>
105
151
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
106
152
  useVisibleTask$((ctx) => start(initCombobox, opts, ctx));
153
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
107
154
  export const usePopover = (opts) =>
108
155
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
109
156
  useVisibleTask$((ctx) => start(initPopover, opts, ctx));
157
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
110
158
  export const useTableSort = (opts) =>
111
159
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
112
160
  useVisibleTask$((ctx) => start(initTableSort, opts, ctx));
161
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
113
162
  export const useTabs = (opts) =>
114
163
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
115
164
  useVisibleTask$((ctx) => start(initTabs, opts, ctx));
165
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
116
166
  export const useDialog = (opts) =>
117
167
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
118
168
  useVisibleTask$((ctx) => start(initDialog, opts, ctx));
169
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
170
+ export const useModal = (opts) =>
171
+ // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
172
+ useVisibleTask$((ctx) => start(initModal, opts, ctx));
173
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
119
174
  export const useCarousel = (opts) =>
120
175
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
121
176
  useVisibleTask$((ctx) => start(initCarousel, opts, ctx));
177
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
122
178
  export const useDotGlyph = (opts) =>
123
179
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
124
180
  useVisibleTask$((ctx) => start(initDotGlyph, opts, ctx));
181
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
125
182
  export const useLegend = (opts) =>
126
183
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
127
184
  useVisibleTask$((ctx) => start(initLegend, opts, ctx));
185
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
128
186
  export const useConnectors = (opts) =>
129
187
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
130
188
  useVisibleTask$((ctx) => start(initConnectors, opts, ctx));
189
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
131
190
  export const useSpotlight = (opts) =>
132
191
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
133
192
  useVisibleTask$((ctx) => start(initSpotlight, opts, ctx));
193
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
134
194
  export const useCrosshair = (opts) =>
135
195
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
136
196
  useVisibleTask$((ctx) => start(initCrosshair, opts, ctx));
197
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
137
198
  export const useCommand = (opts) =>
138
199
  // eslint-disable-next-line qwik/no-use-visible-task -- delegated DOM glue + cleanup
139
200
  useVisibleTask$((ctx) => start(initCommand, opts, ctx));
140
201
 
141
- /** The `toast()` imperative (no lifecycle of its own). */
202
+ /** The `toast()` imperative (no lifecycle of its own).
203
+ * @returns {(message: string, opts?: ToastOpts) => Cleanup} */
142
204
  export const useToast = () => toast;
143
205
 
144
206
  // No-flash theme application must run before paint — do it in an inline head
package/react/index.d.ts CHANGED
@@ -1,62 +1,42 @@
1
- /** @ponchia/ui/react thin React bindings over the SSR-safe behaviors.
2
- * Optional peer dep `react`. Hooks run a delegated behavior for the
3
- * component's lifetime; they take the same options as the behavior and
4
- * return void (the cleanup is wired to unmount). See behaviors/index.d.ts. */
5
- import type {
6
- Cleanup,
7
- DelegateOpts,
8
- ThemeStorageOpts,
9
- ToastOpts,
10
- } from '../behaviors/index.js';
11
-
12
- export type BrontoBindingRoot =
13
- | Document
14
- | Element
15
- | { current: Document | Element | null | undefined }
16
- | (() => Document | Element | null | undefined)
17
- | null
18
- | undefined;
19
-
20
- export type BrontoBindingOpts<T extends DelegateOpts = DelegateOpts> = Omit<T, 'root'> & {
21
- root?: BrontoBindingRoot;
1
+ /** Run a delegated behavior for the component's lifetime (init on mount, its
2
+ * returned cleanup on unmount). The behavior is run once; `opts` resolves
3
+ * on mount so refs are usable for scoped roots.
4
+ * @param {(opts?: DelegateOpts) => Cleanup | void} init
5
+ * @param {BrontoBindingOptsResolver} [opts]
6
+ * @returns {void} */
7
+ export function useBrontoBehavior(init: (opts?: DelegateOpts) => Cleanup | void, opts?: BrontoBindingOptsResolver): void;
8
+ export function useThemeToggle(opts?: BrontoBindingOptsResolver<ThemeStorageOpts & DelegateOpts>): void;
9
+ export function useDismissible(opts?: BrontoBindingOptsResolver): void;
10
+ export function useDisabledGuard(opts?: BrontoBindingOptsResolver): void;
11
+ export function useDisclosure(opts?: BrontoBindingOptsResolver): void;
12
+ export function useMenu(opts?: BrontoBindingOptsResolver): void;
13
+ export function useFormValidation(opts?: BrontoBindingOptsResolver): void;
14
+ export function useCombobox(opts?: BrontoBindingOptsResolver): void;
15
+ export function usePopover(opts?: BrontoBindingOptsResolver): void;
16
+ export function useTableSort(opts?: BrontoBindingOptsResolver): void;
17
+ export function useTabs(opts?: BrontoBindingOptsResolver): void;
18
+ export function useDialog(opts?: BrontoBindingOptsResolver): void;
19
+ export function useModal(opts?: BrontoBindingOptsResolver): void;
20
+ export function useCarousel(opts?: BrontoBindingOptsResolver): void;
21
+ export function useDotGlyph(opts?: BrontoBindingOptsResolver): void;
22
+ export function useLegend(opts?: BrontoBindingOptsResolver): void;
23
+ export function useConnectors(opts?: BrontoBindingOptsResolver): void;
24
+ export function useSpotlight(opts?: BrontoBindingOptsResolver): void;
25
+ export function useCrosshair(opts?: BrontoBindingOptsResolver): void;
26
+ export function useCommand(opts?: BrontoBindingOptsResolver): void;
27
+ export function useToast(): (message: string, opts?: ToastOpts) => Cleanup;
28
+ export { applyStoredTheme };
29
+ export type Cleanup = import("../behaviors/index.js").Cleanup;
30
+ export type DelegateOpts = import("../behaviors/index.js").DelegateOpts;
31
+ export type ThemeStorageOpts = import("../behaviors/index.js").ThemeStorageOpts;
32
+ export type ToastOpts = import("../behaviors/index.js").ToastOpts;
33
+ export type BrontoBindingRoot = Document | Element | {
34
+ current: Document | Element | null | undefined;
35
+ } | (() => Document | Element | null | undefined) | null | undefined;
36
+ export type BrontoBindingOpts<T extends DelegateOpts = import("../behaviors/internal.js").DelegateOpts> = Omit<T, "root"> & {
37
+ root?: BrontoBindingRoot;
22
38
  };
23
-
24
- export type BrontoBindingOptsResolver<T extends DelegateOpts = DelegateOpts> =
25
- | BrontoBindingOpts<T>
26
- | (() => BrontoBindingOpts<T> | null | undefined)
27
- | null
28
- | undefined;
29
-
30
- /** Run any delegated behavior for the component's lifetime (init on mount,
31
- * its returned cleanup on unmount). The behavior is run once. Options resolve
32
- * on mount, so scoped roots may be React refs or resolver callbacks. */
33
- export declare function useBrontoBehavior(
34
- init: (opts?: DelegateOpts) => Cleanup | void,
35
- opts?: BrontoBindingOptsResolver,
36
- ): void;
37
-
38
- export declare function useThemeToggle(
39
- opts?: BrontoBindingOptsResolver<ThemeStorageOpts & DelegateOpts>,
40
- ): void;
41
- export declare function useDismissible(opts?: BrontoBindingOptsResolver): void;
42
- export declare function useDisclosure(opts?: BrontoBindingOptsResolver): void;
43
- export declare function useMenu(opts?: BrontoBindingOptsResolver): void;
44
- export declare function useFormValidation(opts?: BrontoBindingOptsResolver): void;
45
- export declare function useCombobox(opts?: BrontoBindingOptsResolver): void;
46
- export declare function usePopover(opts?: BrontoBindingOptsResolver): void;
47
- export declare function useTableSort(opts?: BrontoBindingOptsResolver): void;
48
- export declare function useTabs(opts?: BrontoBindingOptsResolver): void;
49
- export declare function useDialog(opts?: BrontoBindingOptsResolver): void;
50
- export declare function useCarousel(opts?: BrontoBindingOptsResolver): void;
51
- export declare function useDotGlyph(opts?: BrontoBindingOptsResolver): void;
52
- export declare function useLegend(opts?: BrontoBindingOptsResolver): void;
53
- export declare function useConnectors(opts?: BrontoBindingOptsResolver): void;
54
- export declare function useSpotlight(opts?: BrontoBindingOptsResolver): void;
55
- export declare function useCrosshair(opts?: BrontoBindingOptsResolver): void;
56
- export declare function useCommand(opts?: BrontoBindingOptsResolver): void;
57
-
58
- /** The `toast()` imperative (no lifecycle of its own). */
59
- export declare function useToast(): (message: string, opts?: ToastOpts) => Cleanup;
60
-
61
- export { applyStoredTheme } from '../behaviors/index.js';
62
- export { cls, ui, cx } from '../classes/index.js';
39
+ export type BrontoBindingOptsResolver<T extends DelegateOpts = import("../behaviors/internal.js").DelegateOpts> = BrontoBindingOpts<T> | (() => BrontoBindingOpts<T> | null | undefined) | null | undefined;
40
+ import { applyStoredTheme } from '../behaviors/index.js';
41
+ export { cls, ui, cx } from "../classes/index.js";
42
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AA8FA;;;;;sBAKsB;AACtB,wCAHY,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI,SACvC,yBAAyB,GACvB,IAAI,CAGjB;AAGM,sCADK,yBAAyB,CAAC,gBAAgB,GAAG,YAAY,CAAC,GAAmB,IAAI,CACb;AAEzE,sCADK,yBAAyB,GAAmB,IAAI,CACgB;AAErE,wCADK,yBAAyB,GAAmB,IAAI,CACwB;AAE7E,qCADK,yBAAyB,GAAmB,IAAI,CACkB;AAEvE,+BADK,yBAAyB,GAAmB,IAAI,CACM;AAE3D,yCADK,yBAAyB,GAAmB,IAAI,CAC0B;AAE/E,mCADK,yBAAyB,GAAmB,IAAI,CACc;AAEnE,kCADK,yBAAyB,GAAmB,IAAI,CACY;AAEjE,oCADK,yBAAyB,GAAmB,IAAI,CACgB;AAErE,+BADK,yBAAyB,GAAmB,IAAI,CACM;AAE3D,iCADK,yBAAyB,GAAmB,IAAI,CACU;AAE/D,gCADK,yBAAyB,GAAmB,IAAI,CACQ;AAE7D,mCADK,yBAAyB,GAAmB,IAAI,CACc;AAEnE,mCADK,yBAAyB,GAAmB,IAAI,CACc;AAEnE,iCADK,yBAAyB,GAAmB,IAAI,CACU;AAE/D,qCADK,yBAAyB,GAAmB,IAAI,CACkB;AAEvE,oCADK,yBAAyB,GAAmB,IAAI,CACgB;AAErE,oCADK,yBAAyB,GAAmB,IAAI,CACgB;AAErE,kCADK,yBAAyB,GAAmB,IAAI,CACY;AAIjE,4BADO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,OAAO,CACzB;;sBA3HtB,OAAO,uBAAuB,EAAE,OAAO;2BACvC,OAAO,uBAAuB,EAAE,YAAY;+BAC5C,OAAO,uBAAuB,EAAE,gBAAgB;wBAChD,OAAO,uBAAuB,EAAE,SAAS;gCAEzC,QAAQ,GACd,OAAO,GACP;IAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,GAClD,CAAC,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,GAC7C,IAAI,GACJ,SAAS;8BAIa,CAAC,SAAhB,YAAa,sDACd,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;CAAE;sCAI9B,CAAC,SAAhB,YAAa,sDACd,iBAAiB,CAAC,CAAC,CAAC,GAC1B,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAC/C,IAAI,GACJ,SAAS;iCAyBT,uBAAuB"}
package/react/index.js CHANGED
@@ -16,12 +16,41 @@
16
16
  * const toast = useToast();
17
17
  * return <button onClick={() => toast('Saved', { tone: 'success' })}>Save</button>;
18
18
  * }
19
+ *
20
+ * The public types below are JSDoc `@typedef`s; the shipped `index.d.ts` is
21
+ * generated from them (and these signatures) by `tsc --emitDeclarationOnly`.
22
+ *
23
+ * @typedef {import('../behaviors/index.js').Cleanup} Cleanup
24
+ * @typedef {import('../behaviors/index.js').DelegateOpts} DelegateOpts
25
+ * @typedef {import('../behaviors/index.js').ThemeStorageOpts} ThemeStorageOpts
26
+ * @typedef {import('../behaviors/index.js').ToastOpts} ToastOpts
27
+ *
28
+ * @typedef {Document
29
+ * | Element
30
+ * | { current: Document | Element | null | undefined }
31
+ * | (() => Document | Element | null | undefined)
32
+ * | null
33
+ * | undefined} BrontoBindingRoot
34
+ */
35
+
36
+ /**
37
+ * @template {DelegateOpts} [T=DelegateOpts]
38
+ * @typedef {Omit<T, 'root'> & { root?: BrontoBindingRoot }} BrontoBindingOpts
39
+ */
40
+
41
+ /**
42
+ * @template {DelegateOpts} [T=DelegateOpts]
43
+ * @typedef {BrontoBindingOpts<T>
44
+ * | (() => BrontoBindingOpts<T> | null | undefined)
45
+ * | null
46
+ * | undefined} BrontoBindingOptsResolver
19
47
  */
20
48
  import { useEffect } from 'react';
21
49
  import {
22
50
  applyStoredTheme,
23
51
  initThemeToggle,
24
52
  dismissible,
53
+ initDisabledGuard,
25
54
  initDisclosure,
26
55
  initMenu,
27
56
  initFormValidation,
@@ -30,6 +59,7 @@ import {
30
59
  initTableSort,
31
60
  initTabs,
32
61
  initDialog,
62
+ initModal,
33
63
  initCarousel,
34
64
  initDotGlyph,
35
65
  initLegend,
@@ -53,36 +83,66 @@ function resolveRoot(root) {
53
83
  function resolveOpts(opts) {
54
84
  const value = resolveMaybe(opts);
55
85
  if (!value || typeof value !== 'object') return undefined;
86
+ // No `root` key → no scope requested; leave root out so the behavior
87
+ // delegates from `document`. A `root` key that resolves falsy means a scope
88
+ // WAS requested but the ref is not ready: emit `root: null` so the behavior
89
+ // no-ops instead of hijacking the whole document.
90
+ if (!('root' in value)) return { ...value };
56
91
  const root = resolveRoot(value.root);
57
- return root ? { ...value, root } : { ...value, root: undefined };
92
+ return { ...value, root: root || null };
58
93
  }
59
94
 
60
95
  /** Run a delegated behavior for the component's lifetime (init on mount, its
61
96
  * returned cleanup on unmount). The behavior is run once; `opts` resolves
62
- * on mount so refs are usable for scoped roots. */
97
+ * on mount so refs are usable for scoped roots.
98
+ * @param {(opts?: DelegateOpts) => Cleanup | void} init
99
+ * @param {BrontoBindingOptsResolver} [opts]
100
+ * @returns {void} */
63
101
  export function useBrontoBehavior(init, opts) {
64
102
  useEffect(() => init(resolveOpts(opts)), []); // eslint-disable-line react-hooks/exhaustive-deps -- delegated once on mount
65
103
  }
66
104
 
105
+ /** @param {BrontoBindingOptsResolver<ThemeStorageOpts & DelegateOpts>} [opts] @returns {void} */
67
106
  export const useThemeToggle = (opts) => useBrontoBehavior(initThemeToggle, opts);
107
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
68
108
  export const useDismissible = (opts) => useBrontoBehavior(dismissible, opts);
109
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
110
+ export const useDisabledGuard = (opts) => useBrontoBehavior(initDisabledGuard, opts);
111
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
69
112
  export const useDisclosure = (opts) => useBrontoBehavior(initDisclosure, opts);
113
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
70
114
  export const useMenu = (opts) => useBrontoBehavior(initMenu, opts);
115
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
71
116
  export const useFormValidation = (opts) => useBrontoBehavior(initFormValidation, opts);
117
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
72
118
  export const useCombobox = (opts) => useBrontoBehavior(initCombobox, opts);
119
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
73
120
  export const usePopover = (opts) => useBrontoBehavior(initPopover, opts);
121
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
74
122
  export const useTableSort = (opts) => useBrontoBehavior(initTableSort, opts);
123
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
75
124
  export const useTabs = (opts) => useBrontoBehavior(initTabs, opts);
125
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
76
126
  export const useDialog = (opts) => useBrontoBehavior(initDialog, opts);
127
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
128
+ export const useModal = (opts) => useBrontoBehavior(initModal, opts);
129
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
77
130
  export const useCarousel = (opts) => useBrontoBehavior(initCarousel, opts);
131
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
78
132
  export const useDotGlyph = (opts) => useBrontoBehavior(initDotGlyph, opts);
133
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
79
134
  export const useLegend = (opts) => useBrontoBehavior(initLegend, opts);
135
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
80
136
  export const useConnectors = (opts) => useBrontoBehavior(initConnectors, opts);
137
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
81
138
  export const useSpotlight = (opts) => useBrontoBehavior(initSpotlight, opts);
139
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
82
140
  export const useCrosshair = (opts) => useBrontoBehavior(initCrosshair, opts);
141
+ /** @param {BrontoBindingOptsResolver} [opts] @returns {void} */
83
142
  export const useCommand = (opts) => useBrontoBehavior(initCommand, opts);
84
143
 
85
- /** The `toast()` imperative (no lifecycle of its own). */
144
+ /** The `toast()` imperative (no lifecycle of its own).
145
+ * @returns {(message: string, opts?: ToastOpts) => Cleanup} */
86
146
  export const useToast = () => toast;
87
147
 
88
148
  // No-flash theme application has to run before paint; do it in an inline head
package/solid/index.d.ts CHANGED
@@ -1,62 +1,69 @@
1
- /** @ponchia/ui/solid thin Solid bindings over the SSR-safe behaviors.
2
- * Optional peer dep `solid-js`. Primitives run a delegated behavior for the
3
- * component's lifetime; they take the same options as the behavior and return
4
- * void (the cleanup is wired to dispose). See behaviors/index.d.ts. */
5
- import type {
6
- Cleanup,
7
- DelegateOpts,
8
- ThemeStorageOpts,
9
- ToastOpts,
10
- } from '../behaviors/index.js';
11
-
12
- export type BrontoBindingRoot =
13
- | Document
14
- | Element
15
- | { current: Document | Element | null | undefined }
16
- | (() => Document | Element | null | undefined)
17
- | null
18
- | undefined;
19
-
20
- export type BrontoBindingOpts<T extends DelegateOpts = DelegateOpts> = Omit<T, 'root'> & {
21
- root?: BrontoBindingRoot;
1
+ /** Run a delegated behavior for the component's lifetime (init on mount, its
2
+ * returned cleanup on dispose). Options resolve on mount, after refs exist.
3
+ * @param {(opts?: DelegateOpts) => Cleanup | void} init
4
+ * @param {BrontoBindingOptsResolver} [opts]
5
+ * @returns {void}
6
+ */
7
+ export function useBrontoBehavior(init: (opts?: DelegateOpts) => Cleanup | void, opts?: BrontoBindingOptsResolver): void;
8
+ /** @type {(opts?: BrontoBindingOptsResolver<ThemeStorageOpts & DelegateOpts>) => void} */
9
+ export const useThemeToggle: (opts?: BrontoBindingOptsResolver<ThemeStorageOpts & DelegateOpts>) => void;
10
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
11
+ export const useDismissible: (opts?: BrontoBindingOptsResolver) => void;
12
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
13
+ export const useDisabledGuard: (opts?: BrontoBindingOptsResolver) => void;
14
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
15
+ export const useDisclosure: (opts?: BrontoBindingOptsResolver) => void;
16
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
17
+ export const useMenu: (opts?: BrontoBindingOptsResolver) => void;
18
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
19
+ export const useFormValidation: (opts?: BrontoBindingOptsResolver) => void;
20
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
21
+ export const useCombobox: (opts?: BrontoBindingOptsResolver) => void;
22
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
23
+ export const usePopover: (opts?: BrontoBindingOptsResolver) => void;
24
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
25
+ export const useTableSort: (opts?: BrontoBindingOptsResolver) => void;
26
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
27
+ export const useTabs: (opts?: BrontoBindingOptsResolver) => void;
28
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
29
+ export const useDialog: (opts?: BrontoBindingOptsResolver) => void;
30
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
31
+ export const useModal: (opts?: BrontoBindingOptsResolver) => void;
32
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
33
+ export const useCarousel: (opts?: BrontoBindingOptsResolver) => void;
34
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
35
+ export const useDotGlyph: (opts?: BrontoBindingOptsResolver) => void;
36
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
37
+ export const useLegend: (opts?: BrontoBindingOptsResolver) => void;
38
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
39
+ export const useConnectors: (opts?: BrontoBindingOptsResolver) => void;
40
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
41
+ export const useSpotlight: (opts?: BrontoBindingOptsResolver) => void;
42
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
43
+ export const useCrosshair: (opts?: BrontoBindingOptsResolver) => void;
44
+ /** @type {(opts?: BrontoBindingOptsResolver) => void} */
45
+ export const useCommand: (opts?: BrontoBindingOptsResolver) => void;
46
+ /** The `toast()` imperative (no lifecycle of its own).
47
+ * @type {() => (message: string, opts?: ToastOpts) => Cleanup} */
48
+ export const useToast: () => (message: string, opts?: ToastOpts) => Cleanup;
49
+ export { applyStoredTheme };
50
+ export type Cleanup = import("../behaviors/index.js").Cleanup;
51
+ export type DelegateOpts = import("../behaviors/index.js").DelegateOpts;
52
+ export type ThemeStorageOpts = import("../behaviors/index.js").ThemeStorageOpts;
53
+ export type ToastOpts = import("../behaviors/index.js").ToastOpts;
54
+ export type BrontoBindingRoot = Document | Element | {
55
+ current: Document | Element | null | undefined;
56
+ } | (() => Document | Element | null | undefined) | null | undefined;
57
+ /**
58
+ * Behavior options with the `root` widened to accept Solid refs/resolvers.
59
+ */
60
+ export type BrontoBindingOpts<T extends DelegateOpts = import("../behaviors/internal.js").DelegateOpts> = Omit<T, "root"> & {
61
+ root?: BrontoBindingRoot;
22
62
  };
23
-
24
- export type BrontoBindingOptsResolver<T extends DelegateOpts = DelegateOpts> =
25
- | BrontoBindingOpts<T>
26
- | (() => BrontoBindingOpts<T> | null | undefined)
27
- | null
28
- | undefined;
29
-
30
- /** Run any delegated behavior for the component's lifetime (init on mount,
31
- * its returned cleanup on dispose). The behavior is run once. Options resolve
32
- * on mount, so scoped roots may be refs or resolver callbacks. */
33
- export declare function useBrontoBehavior(
34
- init: (opts?: DelegateOpts) => Cleanup | void,
35
- opts?: BrontoBindingOptsResolver,
36
- ): void;
37
-
38
- export declare function useThemeToggle(
39
- opts?: BrontoBindingOptsResolver<ThemeStorageOpts & DelegateOpts>,
40
- ): void;
41
- export declare function useDismissible(opts?: BrontoBindingOptsResolver): void;
42
- export declare function useDisclosure(opts?: BrontoBindingOptsResolver): void;
43
- export declare function useMenu(opts?: BrontoBindingOptsResolver): void;
44
- export declare function useFormValidation(opts?: BrontoBindingOptsResolver): void;
45
- export declare function useCombobox(opts?: BrontoBindingOptsResolver): void;
46
- export declare function usePopover(opts?: BrontoBindingOptsResolver): void;
47
- export declare function useTableSort(opts?: BrontoBindingOptsResolver): void;
48
- export declare function useTabs(opts?: BrontoBindingOptsResolver): void;
49
- export declare function useDialog(opts?: BrontoBindingOptsResolver): void;
50
- export declare function useCarousel(opts?: BrontoBindingOptsResolver): void;
51
- export declare function useDotGlyph(opts?: BrontoBindingOptsResolver): void;
52
- export declare function useLegend(opts?: BrontoBindingOptsResolver): void;
53
- export declare function useConnectors(opts?: BrontoBindingOptsResolver): void;
54
- export declare function useSpotlight(opts?: BrontoBindingOptsResolver): void;
55
- export declare function useCrosshair(opts?: BrontoBindingOptsResolver): void;
56
- export declare function useCommand(opts?: BrontoBindingOptsResolver): void;
57
-
58
- /** The `toast()` imperative (no lifecycle of its own). */
59
- export declare function useToast(): (message: string, opts?: ToastOpts) => Cleanup;
60
-
61
- export { applyStoredTheme } from '../behaviors/index.js';
62
- export { cls, ui, cx } from '../classes/index.js';
63
+ /**
64
+ * `BrontoBindingOpts<T>`, or a callback that returns it on mount (after refs).
65
+ */
66
+ export type BrontoBindingOptsResolver<T extends DelegateOpts = import("../behaviors/internal.js").DelegateOpts> = BrontoBindingOpts<T> | (() => BrontoBindingOpts<T> | null | undefined) | null | undefined;
67
+ import { applyStoredTheme } from '../behaviors/index.js';
68
+ export { cls, ui, cx } from "../classes/index.js";
69
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"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"}