@ponchia/ui 0.6.6 → 0.6.7

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 (108) hide show
  1. package/CHANGELOG.md +105 -6
  2. package/README.md +36 -23
  3. package/behaviors/carousel.d.ts.map +1 -1
  4. package/behaviors/carousel.js +3 -0
  5. package/behaviors/dialog.d.ts.map +1 -1
  6. package/behaviors/dialog.js +14 -8
  7. package/behaviors/forms.d.ts.map +1 -1
  8. package/behaviors/forms.js +11 -5
  9. package/behaviors/index.d.ts +2 -0
  10. package/behaviors/index.d.ts.map +1 -1
  11. package/behaviors/index.js +2 -0
  12. package/behaviors/internal.d.ts +2 -1
  13. package/behaviors/internal.d.ts.map +1 -1
  14. package/behaviors/internal.js +23 -3
  15. package/behaviors/legend.d.ts.map +1 -1
  16. package/behaviors/legend.js +41 -9
  17. package/behaviors/splitter.d.ts +26 -0
  18. package/behaviors/splitter.d.ts.map +1 -0
  19. package/behaviors/splitter.js +200 -0
  20. package/behaviors/table.js +3 -3
  21. package/behaviors/theme.js +2 -2
  22. package/classes/classes.json +230 -4
  23. package/classes/index.d.ts +49 -1
  24. package/classes/index.js +56 -1
  25. package/classes/vscode.css-custom-data.json +1 -1
  26. package/css/analytical.css +3 -1
  27. package/css/app.css +4 -4
  28. package/css/clamp.css +92 -0
  29. package/css/figure.css +102 -0
  30. package/css/highlights.css +50 -0
  31. package/css/interval.css +90 -0
  32. package/css/primitives.css +2 -3
  33. package/css/report-kit.css +38 -0
  34. package/css/report.css +23 -4
  35. package/css/sidenote.css +12 -2
  36. package/css/site.css +2 -1
  37. package/css/sources.css +5 -0
  38. package/css/state.css +120 -1
  39. package/css/table.css +4 -0
  40. package/css/tokens.css +9 -9
  41. package/css/workbench.css +101 -8
  42. package/dist/bronto.css +1 -1
  43. package/dist/css/analytical.css +1 -1
  44. package/dist/css/app.css +1 -1
  45. package/dist/css/clamp.css +1 -0
  46. package/dist/css/figure.css +1 -0
  47. package/dist/css/highlights.css +1 -0
  48. package/dist/css/interval.css +1 -0
  49. package/dist/css/primitives.css +1 -1
  50. package/dist/css/report-kit.css +1 -0
  51. package/dist/css/report.css +1 -1
  52. package/dist/css/sidenote.css +1 -1
  53. package/dist/css/site.css +1 -1
  54. package/dist/css/sources.css +1 -1
  55. package/dist/css/state.css +1 -1
  56. package/dist/css/table.css +1 -1
  57. package/dist/css/tokens.css +1 -1
  58. package/dist/css/workbench.css +1 -1
  59. package/docs/adr/0002-scope-and-2026-baseline.md +1 -1
  60. package/docs/architecture.md +67 -43
  61. package/docs/clamp.md +49 -0
  62. package/docs/contrast.md +34 -24
  63. package/docs/d2.md +37 -0
  64. package/docs/figure.md +71 -0
  65. package/docs/frontier-primitives.md +25 -24
  66. package/docs/highlights.md +52 -0
  67. package/docs/interop/tailwind.md +148 -0
  68. package/docs/interval.md +55 -0
  69. package/docs/legends.md +3 -2
  70. package/docs/mermaid.md +6 -0
  71. package/docs/migrations/0.2-to-0.3.md +80 -0
  72. package/docs/migrations/0.3-to-0.4.md +48 -0
  73. package/docs/migrations/0.4-to-0.5.md +96 -0
  74. package/docs/migrations/0.5-to-0.6.md +82 -0
  75. package/docs/package-contract.md +40 -2
  76. package/docs/reference.md +78 -5
  77. package/docs/reporting.md +113 -58
  78. package/docs/sidenote.md +7 -1
  79. package/docs/sources.md +1 -1
  80. package/docs/stability.md +5 -3
  81. package/docs/state.md +67 -10
  82. package/docs/theming.md +10 -2
  83. package/docs/usage.md +31 -11
  84. package/docs/workbench.md +59 -18
  85. package/llms.txt +80 -12
  86. package/package.json +66 -6
  87. package/qwik/index.d.ts +1 -0
  88. package/qwik/index.d.ts.map +1 -1
  89. package/qwik/index.js +26 -21
  90. package/react/index.d.ts +1 -0
  91. package/react/index.d.ts.map +1 -1
  92. package/react/index.js +4 -1
  93. package/schemas/report-claims.v1.schema.json +137 -0
  94. package/solid/index.d.ts +2 -0
  95. package/solid/index.d.ts.map +1 -1
  96. package/solid/index.js +3 -0
  97. package/svelte/index.d.ts +88 -0
  98. package/svelte/index.d.ts.map +1 -0
  99. package/svelte/index.js +166 -0
  100. package/tailwind.css +87 -0
  101. package/tokens/figma.variables.json +2241 -0
  102. package/tokens/index.js +1 -1
  103. package/tokens/index.json +2 -2
  104. package/tokens/resolved.json +3 -3
  105. package/tokens/tokens.dtcg.json +1 -1
  106. package/vue/index.d.ts +79 -0
  107. package/vue/index.d.ts.map +1 -0
  108. package/vue/index.js +197 -0
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Create a Svelte action from any Bronto delegated behavior initializer.
3
+ *
4
+ * @param {(opts?: DelegateOpts) => Cleanup | void} init
5
+ * @returns {(node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn}
6
+ */
7
+ export function createBrontoAction(init: (opts?: DelegateOpts) => Cleanup | void): (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
8
+ /**
9
+ * Generic escape hatch for custom behavior initializers.
10
+ *
11
+ * @param {Element} node
12
+ * @param {BrontoBehaviorParams | null | undefined} params
13
+ * @returns {SvelteActionReturn}
14
+ */
15
+ export function brontoBehavior(node: Element, params: BrontoBehaviorParams | null | undefined): SvelteActionReturn;
16
+ /**
17
+ * Generic escape hatch for custom behavior initializers.
18
+ *
19
+ * @param {Element} node
20
+ * @param {BrontoBehaviorParams | null | undefined} params
21
+ * @returns {SvelteActionReturn}
22
+ */
23
+ export function useBrontoBehavior(node: Element, params: BrontoBehaviorParams | null | undefined): SvelteActionReturn;
24
+ /** @type {(node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn} */
25
+ export const themeToggle: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
26
+ export const dismissible: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
27
+ export const disabledGuard: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
28
+ export const disclosure: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
29
+ export const menu: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
30
+ export const formValidation: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
31
+ export const combobox: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
32
+ export const popover: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
33
+ export const tableSort: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
34
+ export const tabs: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
35
+ export const dialog: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
36
+ export const modal: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
37
+ export const carousel: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
38
+ export const dotGlyph: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
39
+ export const legend: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
40
+ export const connectors: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
41
+ export const spotlight: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
42
+ export const crosshair: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
43
+ export const command: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
44
+ export const sources: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
45
+ export const splitter: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
46
+ export const useThemeToggle: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
47
+ export const useDismissible: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
48
+ export const useDisabledGuard: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
49
+ export const useDisclosure: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
50
+ export const useMenu: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
51
+ export const useFormValidation: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
52
+ export const useCombobox: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
53
+ export const usePopover: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
54
+ export const useTableSort: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
55
+ export const useTabs: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
56
+ export const useDialog: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
57
+ export const useModal: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
58
+ export const useCarousel: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
59
+ export const useDotGlyph: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
60
+ export const useLegend: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
61
+ export const useConnectors: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
62
+ export const useSpotlight: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
63
+ export const useCrosshair: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
64
+ export const useCommand: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
65
+ export const useSources: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
66
+ export const useSplitter: (node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn;
67
+ export function useToast(): (message: string, opts?: ToastOpts) => Cleanup;
68
+ export type Cleanup = import("../behaviors/index.js").Cleanup;
69
+ export type DelegateOpts = import("../behaviors/index.js").DelegateOpts;
70
+ export type ThemeStorageOpts = import("../behaviors/index.js").ThemeStorageOpts;
71
+ export type ToastOpts = import("../behaviors/index.js").ToastOpts;
72
+ export type BrontoActionRoot = Document | Element | null | undefined;
73
+ export type BrontoActionOpts = Omit<DelegateOpts, "root"> & {
74
+ root?: BrontoActionRoot;
75
+ };
76
+ export type BrontoBehaviorParams = {
77
+ init: (opts?: DelegateOpts) => Cleanup | void;
78
+ opts?: BrontoActionOpts | null | undefined;
79
+ };
80
+ export type SvelteActionReturn = {
81
+ update?: (next?: unknown) => void;
82
+ destroy: () => void;
83
+ };
84
+ import { applyStoredTheme } from '../behaviors/index.js';
85
+ import { toast } from '../behaviors/index.js';
86
+ export { applyStoredTheme, toast };
87
+ export { cls, ui, cx } from "../classes/index.js";
88
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAuEA;;;;;GAKG;AACH,yCAHW,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI,GACrC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAe7F;AAED;;;;;;GAMG;AACH,qCAJW,OAAO,UACP,oBAAoB,GAAG,IAAI,GAAG,SAAS,GACrC,kBAAkB,CAa9B;AAlBD;;;;;;GAMG;AACH,wCAJW,OAAO,UACP,oBAAoB,GAAG,IAAI,GAAG,SAAS,GACrC,kBAAkB,CAa9B;AAID,gGAAgG;AAChG,0BADW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAC7B;AAC/D,iCAzCoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAyC/B;AAC/D,mCA1CoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA0C3B;AACnE,gCA3CoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA2CjC;AAC7D,0BA5CoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA4C7C;AACjD,oCA7CoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA6CzB;AACrE,8BA9CoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA8CrC;AACzD,6BA/CoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA+CvC;AACvD,+BAhDoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAgDnC;AAC3D,0BAjDoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAiD7C;AACjD,4BAlDoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAkDzC;AACrD,2BAnDoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAmD3C;AACnD,8BApDoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAoDrC;AACzD,8BArDoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAqDrC;AACzD,4BAtDoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAsDzC;AACrD,gCAvDoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAuDjC;AAC7D,+BAxDoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAwDnC;AAC3D,+BAzDoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAyDnC;AAC3D,6BA1DoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA0DvC;AACvD,6BA3DoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA2DvC;AACvD,8BA5DoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA4DrC;AAGzD,oCAxBkB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAwBlD;AAC1C,oCAhEoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAgEpD;AAC1C,sCAjEoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAiEhD;AAC9C,mCAlEoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAkEtD;AACxC,6BAnEoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAmElE;AAC5B,uCApEoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAoE9C;AAChD,iCArEoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAqE1D;AACpC,gCAtEoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAsE5D;AAClC,kCAvEoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAuExD;AACtC,6BAxEoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAwElE;AAC5B,+BAzEoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAyE9D;AAChC,8BA1EoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA0EhE;AAC9B,iCA3EoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA2E1D;AACpC,iCA5EoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA4E1D;AACpC,+BA7EoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA6E9D;AAChC,mCA9EoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA8EtD;AACxC,kCA/EoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CA+ExD;AACtC,kCAhFoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAgFxD;AACtC,gCAjFoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAiF5D;AAClC,gCAlFoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAkF5D;AAClC,iCAnFoB,OAAO,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAAK,kBAAkB,CAmF1D;AAI7B,4BADM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,OAAO,CACxB;sBAlJtB,OAAO,uBAAuB,EAAE,OAAO;2BACvC,OAAO,uBAAuB,EAAE,YAAY;+BAC5C,OAAO,uBAAuB,EAAE,gBAAgB;wBAChD,OAAO,uBAAuB,EAAE,SAAS;+BAEzC,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS;+BAErC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,gBAAgB,CAAA;CAAE;mCAExD;IAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE;iCAE7F;IAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE;iCA0BhE,uBAAuB;sBAAvB,uBAAuB"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * @ponchia/ui/svelte — thin Svelte actions over @ponchia/ui/behaviors.
3
+ *
4
+ * The CSS is the framework; these are optional lifecycle adapters that run the
5
+ * SSR-safe vanilla behavior initializers when a Svelte action mounts and clean
6
+ * them up when the action updates or is destroyed. They do not define markup,
7
+ * own state, or depend on Svelte at runtime.
8
+ *
9
+ * <script>
10
+ * import { themeToggle } from '@ponchia/ui/svelte';
11
+ * </script>
12
+ *
13
+ * <main use:themeToggle>
14
+ * <button data-bronto-theme-toggle>Toggle theme</button>
15
+ * </main>
16
+ *
17
+ * @typedef {import('../behaviors/index.js').Cleanup} Cleanup
18
+ * @typedef {import('../behaviors/index.js').DelegateOpts} DelegateOpts
19
+ * @typedef {import('../behaviors/index.js').ThemeStorageOpts} ThemeStorageOpts
20
+ * @typedef {import('../behaviors/index.js').ToastOpts} ToastOpts
21
+ *
22
+ * @typedef {Document | Element | null | undefined} BrontoActionRoot
23
+ *
24
+ * @typedef {Omit<DelegateOpts, 'root'> & { root?: BrontoActionRoot }} BrontoActionOpts
25
+ *
26
+ * @typedef {{ init: (opts?: DelegateOpts) => Cleanup | void, opts?: BrontoActionOpts | null | undefined }} BrontoBehaviorParams
27
+ *
28
+ * @typedef {{ update?: (next?: unknown) => void, destroy: () => void }} SvelteActionReturn
29
+ */
30
+ import {
31
+ applyStoredTheme,
32
+ initThemeToggle,
33
+ dismissible as initDismissible,
34
+ initDisabledGuard,
35
+ initDisclosure,
36
+ initMenu,
37
+ initFormValidation,
38
+ initCombobox,
39
+ initPopover,
40
+ initTableSort,
41
+ initTabs,
42
+ initDialog,
43
+ initModal,
44
+ initCarousel,
45
+ initDotGlyph,
46
+ initLegend,
47
+ initConnectors,
48
+ initSpotlight,
49
+ initCrosshair,
50
+ initCommand,
51
+ initSources,
52
+ initSplitter,
53
+ toast,
54
+ } from '../behaviors/index.js';
55
+
56
+ function stop(cleanup) {
57
+ if (typeof cleanup === 'function') cleanup();
58
+ }
59
+
60
+ function resolveOpts(node, opts) {
61
+ if (!opts || typeof opts !== 'object') return { root: node };
62
+ if (!('root' in opts)) return { ...opts, root: node };
63
+ return { ...opts, root: opts.root || null };
64
+ }
65
+
66
+ function run(node, init, opts) {
67
+ if (typeof init !== 'function') return () => {};
68
+ const cleanup = init(resolveOpts(node, opts));
69
+ return typeof cleanup === 'function' ? cleanup : () => {};
70
+ }
71
+
72
+ /**
73
+ * Create a Svelte action from any Bronto delegated behavior initializer.
74
+ *
75
+ * @param {(opts?: DelegateOpts) => Cleanup | void} init
76
+ * @returns {(node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn}
77
+ */
78
+ export function createBrontoAction(init) {
79
+ return (node, opts) => {
80
+ let cleanup = run(node, init, opts);
81
+ return {
82
+ update(next) {
83
+ stop(cleanup);
84
+ cleanup = run(node, init, next);
85
+ },
86
+ destroy() {
87
+ stop(cleanup);
88
+ },
89
+ };
90
+ };
91
+ }
92
+
93
+ /**
94
+ * Generic escape hatch for custom behavior initializers.
95
+ *
96
+ * @param {Element} node
97
+ * @param {BrontoBehaviorParams | null | undefined} params
98
+ * @returns {SvelteActionReturn}
99
+ */
100
+ export function brontoBehavior(node, params) {
101
+ let cleanup = run(node, params?.init, params?.opts);
102
+ return {
103
+ update(next) {
104
+ stop(cleanup);
105
+ cleanup = run(node, next?.init, next?.opts);
106
+ },
107
+ destroy() {
108
+ stop(cleanup);
109
+ },
110
+ };
111
+ }
112
+
113
+ export const useBrontoBehavior = brontoBehavior;
114
+
115
+ /** @type {(node: Element, opts?: BrontoActionOpts | null | undefined) => SvelteActionReturn} */
116
+ export const themeToggle = createBrontoAction(initThemeToggle);
117
+ export const dismissible = createBrontoAction(initDismissible);
118
+ export const disabledGuard = createBrontoAction(initDisabledGuard);
119
+ export const disclosure = createBrontoAction(initDisclosure);
120
+ export const menu = createBrontoAction(initMenu);
121
+ export const formValidation = createBrontoAction(initFormValidation);
122
+ export const combobox = createBrontoAction(initCombobox);
123
+ export const popover = createBrontoAction(initPopover);
124
+ export const tableSort = createBrontoAction(initTableSort);
125
+ export const tabs = createBrontoAction(initTabs);
126
+ export const dialog = createBrontoAction(initDialog);
127
+ export const modal = createBrontoAction(initModal);
128
+ export const carousel = createBrontoAction(initCarousel);
129
+ export const dotGlyph = createBrontoAction(initDotGlyph);
130
+ export const legend = createBrontoAction(initLegend);
131
+ export const connectors = createBrontoAction(initConnectors);
132
+ export const spotlight = createBrontoAction(initSpotlight);
133
+ export const crosshair = createBrontoAction(initCrosshair);
134
+ export const command = createBrontoAction(initCommand);
135
+ export const sources = createBrontoAction(initSources);
136
+ export const splitter = createBrontoAction(initSplitter);
137
+
138
+ // Hook-style aliases keep this action surface parallel with React/Solid/Qwik.
139
+ export const useThemeToggle = themeToggle;
140
+ export const useDismissible = dismissible;
141
+ export const useDisabledGuard = disabledGuard;
142
+ export const useDisclosure = disclosure;
143
+ export const useMenu = menu;
144
+ export const useFormValidation = formValidation;
145
+ export const useCombobox = combobox;
146
+ export const usePopover = popover;
147
+ export const useTableSort = tableSort;
148
+ export const useTabs = tabs;
149
+ export const useDialog = dialog;
150
+ export const useModal = modal;
151
+ export const useCarousel = carousel;
152
+ export const useDotGlyph = dotGlyph;
153
+ export const useLegend = legend;
154
+ export const useConnectors = connectors;
155
+ export const useSpotlight = spotlight;
156
+ export const useCrosshair = crosshair;
157
+ export const useCommand = command;
158
+ export const useSources = sources;
159
+ export const useSplitter = splitter;
160
+
161
+ /** The `toast()` imperative (no lifecycle of its own).
162
+ * @returns {(message: string, opts?: ToastOpts) => Cleanup} */
163
+ export const useToast = () => toast;
164
+
165
+ export { applyStoredTheme, toast };
166
+ export { cls, ui, cx } from '../classes/index.js';
package/tailwind.css ADDED
@@ -0,0 +1,87 @@
1
+ /**
2
+ * @ponchia/ui/tailwind — Tailwind CSS v4 bridge.
3
+ *
4
+ * Import from the app stylesheet after Tailwind itself:
5
+ *
6
+ * @import "tailwindcss";
7
+ * @import "@ponchia/ui/tailwind";
8
+ *
9
+ * This file is deliberately CSS-only. It maps Bronto's already-loaded CSS
10
+ * custom properties into Tailwind v4 theme namespaces and state variants; it
11
+ * does not import @ponchia/ui's component CSS for you.
12
+ */
13
+
14
+ @theme inline {
15
+ --color-bronto-bg: var(--bronto-color-bg);
16
+ --color-bronto-surface: var(--bronto-color-surface);
17
+ --color-bronto-surface-muted: var(--surface-muted);
18
+ --color-bronto-surface-raised: var(--bronto-color-surface-raised);
19
+ --color-bronto-border: var(--bronto-color-border);
20
+ --color-bronto-border-strong: var(--bronto-color-border-strong);
21
+ --color-bronto-text: var(--bronto-color-text);
22
+ --color-bronto-text-muted: var(--bronto-color-text-muted);
23
+ --color-bronto-action: var(--bronto-color-action);
24
+ --color-bronto-on-action: var(--bronto-color-on-action);
25
+ --color-bronto-focus: var(--bronto-color-focus);
26
+ --color-bronto-success: var(--bronto-color-success);
27
+ --color-bronto-warning: var(--bronto-color-warning);
28
+ --color-bronto-danger: var(--bronto-color-danger);
29
+ --color-bronto-info: var(--bronto-color-info);
30
+ --color-bronto-accent-1: var(--accent-1);
31
+ --color-bronto-accent-2: var(--accent-2);
32
+ --color-bronto-accent-3: var(--accent-3);
33
+ --color-bronto-accent-4: var(--accent-4);
34
+ --color-bronto-accent-5: var(--accent-5);
35
+ --color-bronto-accent-6: var(--accent-6);
36
+ --color-bronto-surface-1: var(--surface-1);
37
+ --color-bronto-surface-2: var(--surface-2);
38
+ --color-bronto-surface-3: var(--surface-3);
39
+ --color-bronto-surface-4: var(--surface-4);
40
+ --color-bronto-surface-5: var(--surface-5);
41
+ --color-bronto-surface-6: var(--surface-6);
42
+
43
+ --font-bronto-sans: var(--sans);
44
+ --font-bronto-mono: var(--mono);
45
+ --font-bronto-display: var(--display);
46
+
47
+ --text-bronto-2xs: var(--text-2xs);
48
+ --text-bronto-xs: var(--text-xs);
49
+ --text-bronto-sm: var(--text-sm);
50
+ --text-bronto-base: var(--text-base);
51
+ --text-bronto-lg: var(--text-lg);
52
+ --text-bronto-xl: var(--text-xl);
53
+
54
+ --spacing-bronto-2xs: var(--space-2xs);
55
+ --spacing-bronto-xs: var(--space-xs);
56
+ --spacing-bronto-sm: var(--space-sm);
57
+ --spacing-bronto-md: var(--space-md);
58
+ --spacing-bronto-lg: var(--space-lg);
59
+ --spacing-bronto-xl: var(--space-xl);
60
+ --spacing-bronto-2xl: var(--space-2xl);
61
+
62
+ --radius-bronto-sm: var(--radius-sm);
63
+ --radius-bronto-md: var(--radius-md);
64
+ --radius-bronto-lg: var(--radius-lg);
65
+ --radius-bronto-xl: var(--radius-xl);
66
+ --radius-bronto-pill: var(--radius-pill);
67
+
68
+ --shadow-bronto: var(--shadow);
69
+ --shadow-bronto-raised: var(--shadow-raised);
70
+
71
+ --ease-bronto-standard: var(--ease-standard);
72
+ --ease-bronto-spring: var(--ease-spring);
73
+ --ease-bronto-out: var(--ease-out);
74
+ }
75
+
76
+ @custom-variant bronto-light (&:where([data-theme="light"] *));
77
+ @custom-variant bronto-dark (&:where([data-theme="dark"] *));
78
+ @custom-variant bronto-oled (&:where([data-surface="oled"] *));
79
+ @custom-variant bronto-contrast-more (&:where([data-contrast="more"] *));
80
+ @custom-variant bronto-compact (&:where([data-density="compact"] *));
81
+ @custom-variant bronto-comfortable (&:where([data-density="comfortable"] *));
82
+
83
+ @custom-variant bronto-active (&:where(.is-active, [aria-current="page"], [aria-selected="true"]));
84
+ @custom-variant bronto-open (&:where(.is-open, [open], [popover]:popover-open, [aria-expanded="true"]));
85
+ @custom-variant bronto-selected (&:where(.is-selected, [aria-selected="true"], [aria-pressed="true"]));
86
+ @custom-variant bronto-invalid (&:where(.is-invalid, [aria-invalid="true"], :user-invalid));
87
+ @custom-variant bronto-busy (&:where(.is-busy, [aria-busy="true"]));