@webx-ui/core 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/components/Alert/Alert.d.ts +41 -0
  2. package/dist/components/Alert/index.d.ts +2 -0
  3. package/dist/components/Alert/types.d.ts +29 -0
  4. package/dist/components/Aside/Aside.d.ts +25 -0
  5. package/dist/components/Aside/index.d.ts +2 -0
  6. package/dist/components/Aside/types.d.ts +14 -0
  7. package/dist/components/Badge/Badge.d.ts +1 -1
  8. package/dist/components/Breadcrumb/Breadcrumb.d.ts +23 -0
  9. package/dist/components/Breadcrumb/index.d.ts +2 -0
  10. package/dist/components/Breadcrumb/types.d.ts +13 -0
  11. package/dist/components/BreadcrumbItem/BreadcrumbItem.d.ts +28 -0
  12. package/dist/components/BreadcrumbItem/index.d.ts +2 -0
  13. package/dist/components/BreadcrumbItem/types.d.ts +19 -0
  14. package/dist/components/Cascader/Cascader.d.ts +1 -1
  15. package/dist/components/Col/Col.d.ts +27 -0
  16. package/dist/components/Col/index.d.ts +2 -0
  17. package/dist/components/Col/types.d.ts +24 -0
  18. package/dist/components/Container/Container.d.ts +23 -0
  19. package/dist/components/Container/index.d.ts +2 -0
  20. package/dist/components/Container/types.d.ts +23 -0
  21. package/dist/components/Dialog/Dialog.d.ts +1 -1
  22. package/dist/components/Divider/Divider.d.ts +24 -0
  23. package/dist/components/Divider/index.d.ts +2 -0
  24. package/dist/components/Divider/types.d.ts +16 -0
  25. package/dist/components/Footer/Footer.d.ts +23 -0
  26. package/dist/components/Footer/index.d.ts +2 -0
  27. package/dist/components/Footer/types.d.ts +8 -0
  28. package/dist/components/Header/Header.d.ts +24 -0
  29. package/dist/components/Header/index.d.ts +2 -0
  30. package/dist/components/Header/types.d.ts +10 -0
  31. package/dist/components/Icon/icons.d.ts +1 -0
  32. package/dist/components/ListDetail/ListDetail.d.ts +73 -0
  33. package/dist/components/ListDetail/index.d.ts +2 -0
  34. package/dist/components/ListDetail/types.d.ts +19 -0
  35. package/dist/components/Main/Main.d.ts +22 -0
  36. package/dist/components/Main/index.d.ts +2 -0
  37. package/dist/components/Main/types.d.ts +8 -0
  38. package/dist/components/Menu/Menu.d.ts +45 -0
  39. package/dist/components/Menu/index.d.ts +2 -0
  40. package/dist/components/Menu/nodes.d.ts +30 -0
  41. package/dist/components/Menu/types.d.ts +36 -0
  42. package/dist/components/MenuGroup/MenuGroup.d.ts +21 -0
  43. package/dist/components/MenuGroup/index.d.ts +2 -0
  44. package/dist/components/MenuGroup/types.d.ts +4 -0
  45. package/dist/components/MenuItem/MenuItem.d.ts +32 -0
  46. package/dist/components/MenuItem/index.d.ts +2 -0
  47. package/dist/components/MenuItem/types.d.ts +23 -0
  48. package/dist/components/Row/Row.d.ts +25 -0
  49. package/dist/components/Row/index.d.ts +2 -0
  50. package/dist/components/Row/types.d.ts +17 -0
  51. package/dist/components/Scrollbar/Scrollbar.d.ts +39 -0
  52. package/dist/components/Scrollbar/index.d.ts +2 -0
  53. package/dist/components/Scrollbar/types.d.ts +30 -0
  54. package/dist/components/Space/Space.d.ts +27 -0
  55. package/dist/components/Space/index.d.ts +2 -0
  56. package/dist/components/Space/types.d.ts +23 -0
  57. package/dist/components/Submenu/Submenu.d.ts +31 -0
  58. package/dist/components/Submenu/index.d.ts +2 -0
  59. package/dist/components/Submenu/types.d.ts +15 -0
  60. package/dist/components/index.d.ts +18 -0
  61. package/dist/composables/useBreadcrumb.d.ts +13 -0
  62. package/dist/composables/useControlAttrs.d.ts +35 -0
  63. package/dist/composables/useElementWidth.d.ts +17 -0
  64. package/dist/composables/useMenu.d.ts +49 -0
  65. package/dist/composables/useResponsiveShell.d.ts +59 -0
  66. package/dist/index.d.ts +3 -0
  67. package/dist/index.js +4595 -3439
  68. package/dist/index.js.map +1 -1
  69. package/dist/style.css +1 -1
  70. package/package.json +2 -2
@@ -0,0 +1,59 @@
1
+ import { ComputedRef, Ref } from 'vue';
2
+ /** What shape the navigation takes at the width it has been given. */
3
+ export type ShellLayout = 'sidebar' | 'rail' | 'drawer';
4
+ export interface ResponsiveShellOptions {
5
+ /** Under this width the menu leaves the page for a drawer behind a burger. */
6
+ phone?: number;
7
+ /** Under this width the sidebar starts as an icon rail. */
8
+ tablet?: number;
9
+ /** Whether it starts as a rail on a screen wide enough for the full sidebar. */
10
+ collapsed?: boolean;
11
+ /**
12
+ * Remembers a sidebar that was closed by hand, under this key in `localStorage`.
13
+ * Only the closing is kept: a sidebar left open goes back to following the width,
14
+ * so a desktop opens it and a tablet still starts with the rail.
15
+ */
16
+ persist?: string;
17
+ }
18
+ export interface ResponsiveShell {
19
+ /** Width of what is being measured, in pixels. `0` until it has been measured. */
20
+ width: Ref<number>;
21
+ layout: ComputedRef<ShellLayout>;
22
+ /** Hand this to `WxAside` and `WxMenu` — true for both the rail and the drawer. */
23
+ collapsed: ComputedRef<boolean>;
24
+ /** Whether there is room for a sidebar at all. False on a phone. */
25
+ showAside: ComputedRef<boolean>;
26
+ drawerOpen: Ref<boolean>;
27
+ /**
28
+ * What the one button in the header does: it collapses and expands the sidebar
29
+ * while the sidebar is on the page, and opens the drawer once the menu is gone.
30
+ * The icon follows `layout` — a burger belongs to the drawer alone.
31
+ */
32
+ toggle: () => void;
33
+ close: () => void;
34
+ }
35
+ /**
36
+ * The rule on its own, so it can be read — and tested — without a browser.
37
+ *
38
+ * `collapsed` is the answer to "is the sidebar a rail", and `null` leaves it to the
39
+ * width: a rail from the tablet breakpoint down. Only the phone breakpoint is
40
+ * absolute, because a menu that has nowhere to stand has to leave the page.
41
+ *
42
+ * A width of `0` means nothing has been measured yet: on the server, and on the very
43
+ * first render. The widest shape is the right guess there, since it is the one a
44
+ * desktop gets, and the measurement that follows corrects it before paint.
45
+ */
46
+ export declare function shellLayoutFor(width: number, collapsed: boolean | null, options?: ResponsiveShellOptions): ShellLayout;
47
+ /**
48
+ * Drives the three shapes an admin sidebar takes — full, icon rail, drawer — from
49
+ * the width of the shell rather than from the viewport's. The two are the same
50
+ * thing on a real page, and they are not inside a preview, a split screen or the
51
+ * demo box on this page, which is the case that catches a viewport media query out.
52
+ *
53
+ * ```ts
54
+ * const shell = useResponsiveShell(shellRef)
55
+ * ```
56
+ *
57
+ * Pass nothing to measure the page itself.
58
+ */
59
+ export declare function useResponsiveShell(target?: Ref<HTMLElement | null | undefined>, options?: ResponsiveShellOptions): ResponsiveShell;
package/dist/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
1
  export * from './components';
2
2
  export { WebxUI, type WebxUiOptions } from './plugin';
3
3
  export type { ControlSize, ControlStatus, ValidationErrors } from './composables/useFormField';
4
+ export { useControlAttrs, type ControlAttrs } from './composables/useControlAttrs';
5
+ export { useElementWidth } from './composables/useElementWidth';
6
+ export { useResponsiveShell, shellLayoutFor, type ResponsiveShell, type ResponsiveShellOptions, type ShellLayout, } from './composables/useResponsiveShell';