@fragment-build/ui 3.2.3 → 4.0.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 (88) hide show
  1. package/README.md +73 -0
  2. package/components/code-snippet/CodeSnippet.d.ts +9 -0
  3. package/components/code-snippet/CodeSnippet.js +14 -4
  4. package/components/code-snippet/CodeSnippet.js.map +1 -1
  5. package/components/code-snippet/code-snippet.css +18 -0
  6. package/components/segmented-control/SegmentedControl.d.ts +16 -0
  7. package/components/segmented-control/SegmentedControl.js +18 -0
  8. package/components/segmented-control/SegmentedControl.js.map +1 -0
  9. package/components/segmented-control/SegmentedControl.styles.d.ts +46 -0
  10. package/components/segmented-control/SegmentedControl.styles.js +20 -0
  11. package/components/segmented-control/SegmentedControl.styles.js.map +1 -0
  12. package/components/segmented-control/segmented-control.css +41 -0
  13. package/fragments/empty-state/EmptyState.d.ts +12 -0
  14. package/fragments/empty-state/EmptyState.js +12 -0
  15. package/fragments/empty-state/EmptyState.js.map +1 -0
  16. package/fragments/empty-state/EmptyState.styles.d.ts +55 -0
  17. package/fragments/empty-state/EmptyState.styles.js +23 -0
  18. package/fragments/empty-state/EmptyState.styles.js.map +1 -0
  19. package/fragments/empty-state/empty-state.css +39 -0
  20. package/fragments/form/FormCard.d.ts +14 -0
  21. package/fragments/form/FormCard.js +14 -0
  22. package/fragments/form/FormCard.js.map +1 -0
  23. package/fragments/form/FormCard.styles.d.ts +49 -0
  24. package/fragments/form/FormCard.styles.js +23 -0
  25. package/fragments/form/FormCard.styles.js.map +1 -0
  26. package/fragments/form/FormSection.d.ts +3 -1
  27. package/fragments/form/FormSection.js +2 -2
  28. package/fragments/form/FormSection.js.map +1 -1
  29. package/fragments/form/FormSection.styles.d.ts +6 -0
  30. package/fragments/form/FormSection.styles.js +2 -0
  31. package/fragments/form/FormSection.styles.js.map +1 -1
  32. package/fragments/form/form-card.css +42 -0
  33. package/fragments/form/form-section.css +22 -10
  34. package/fragments/form/form.css +1 -1
  35. package/fragments/navbar/navbar.css +2 -2
  36. package/fragments/page/PageHeader.d.ts +7 -2
  37. package/fragments/page/PageHeader.js +3 -3
  38. package/fragments/page/PageHeader.js.map +1 -1
  39. package/fragments/page/PageHeader.styles.d.ts +30 -21
  40. package/fragments/page/PageHeader.styles.js +10 -0
  41. package/fragments/page/PageHeader.styles.js.map +1 -1
  42. package/fragments/page/page-header.css +23 -3
  43. package/fragments/save-bar/SaveBar.d.ts +12 -0
  44. package/fragments/save-bar/SaveBar.js +15 -0
  45. package/fragments/save-bar/SaveBar.js.map +1 -0
  46. package/fragments/save-bar/SaveBar.styles.d.ts +37 -0
  47. package/fragments/save-bar/SaveBar.styles.js +16 -0
  48. package/fragments/save-bar/SaveBar.styles.js.map +1 -0
  49. package/fragments/save-bar/save-bar.css +28 -0
  50. package/fragments/shell/shell.css +8 -4
  51. package/fragments/sidebar/Sidebar.js +4 -1
  52. package/fragments/sidebar/Sidebar.js.map +1 -1
  53. package/fragments/sidebar/sidebar.css +52 -30
  54. package/fragments/stat/StatCard.d.ts +29 -0
  55. package/fragments/stat/StatCard.js +20 -0
  56. package/fragments/stat/StatCard.js.map +1 -0
  57. package/fragments/stat/StatCard.styles.d.ts +85 -0
  58. package/fragments/stat/StatCard.styles.js +26 -0
  59. package/fragments/stat/StatCard.styles.js.map +1 -0
  60. package/fragments/stat/stat-card.css +64 -0
  61. package/fragments/widget/Widget.d.ts +9 -2
  62. package/fragments/widget/Widget.js +4 -3
  63. package/fragments/widget/Widget.js.map +1 -1
  64. package/fragments/widget/Widget.styles.d.ts +51 -0
  65. package/fragments/widget/Widget.styles.js +12 -0
  66. package/fragments/widget/Widget.styles.js.map +1 -1
  67. package/fragments/widget/widget.css +49 -4
  68. package/index.css +138 -37
  69. package/index.d.ts +5 -0
  70. package/index.js +5 -0
  71. package/index.js.map +1 -1
  72. package/package.json +1 -1
  73. package/src/components/code-snippet/code-snippet.css +18 -0
  74. package/src/components/segmented-control/segmented-control.css +41 -0
  75. package/src/fragments/empty-state/empty-state.css +39 -0
  76. package/src/fragments/form/form-card.css +42 -0
  77. package/src/fragments/form/form-section.css +22 -10
  78. package/src/fragments/form/form.css +1 -1
  79. package/src/fragments/navbar/navbar.css +2 -2
  80. package/src/fragments/page/page-header.css +23 -3
  81. package/src/fragments/save-bar/save-bar.css +28 -0
  82. package/src/fragments/shell/shell.css +8 -4
  83. package/src/fragments/sidebar/sidebar.css +52 -30
  84. package/src/fragments/stat/stat-card.css +64 -0
  85. package/src/fragments/widget/widget.css +49 -4
  86. package/src/index.css +138 -37
  87. package/src/theme.example.css +26 -0
  88. package/theme.example.css +26 -0
@@ -4,6 +4,8 @@ export const formSection = tv({
4
4
  base: 'fragment-form-section',
5
5
  main: 'fragment-form-section__main',
6
6
  info: 'fragment-form-section__info',
7
+ titleRow: 'fragment-form-section__title-row',
8
+ title: 'fragment-form-section__title',
7
9
  content: 'fragment-form-section__content',
8
10
  description: 'fragment-form-section__description',
9
11
  },
@@ -1 +1 @@
1
- {"version":3,"file":"FormSection.styles.js","sourceRoot":"","sources":["../../src/fragments/form/FormSection.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;IAC5B,KAAK,EAAE;QACL,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,6BAA6B;QACnC,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE,gCAAgC;QACzC,WAAW,EAAE,oCAAoC;KAClD;IACD,QAAQ,EAAE;QACR,SAAS,EAAE;YACT,UAAU,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE;YACzD,QAAQ,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE;SACtD;QACD,SAAS,EAAE;YACT,IAAI,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE;SACpD;KACF;IACD,eAAe,EAAE;QACf,SAAS,EAAE,UAAU;QACrB,SAAS,EAAE,KAAK;KACjB;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"FormSection.styles.js","sourceRoot":"","sources":["../../src/fragments/form/FormSection.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;IAC5B,KAAK,EAAE;QACL,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,6BAA6B;QACnC,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,kCAAkC;QAC5C,KAAK,EAAE,8BAA8B;QACrC,OAAO,EAAE,gCAAgC;QACzC,WAAW,EAAE,oCAAoC;KAClD;IACD,QAAQ,EAAE;QACR,SAAS,EAAE;YACT,UAAU,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE;YACzD,QAAQ,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE;SACtD;QACD,SAAS,EAAE;YACT,IAAI,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE;SACpD;KACF;IACD,eAAe,EAAE;QACf,SAAS,EAAE,UAAU;QACrB,SAAS,EAAE,KAAK;KACjB;CACF,CAAC,CAAC"}
@@ -0,0 +1,42 @@
1
+ @layer components {
2
+ .fragment-form-card {
3
+ @apply p-0 gap-0 overflow-visible;
4
+ }
5
+
6
+ .fragment-form-card__header {
7
+ @apply flex items-start gap-4 px-6 pt-5;
8
+ }
9
+
10
+ .fragment-form-card__heading {
11
+ @apply min-w-0 flex-1;
12
+ }
13
+
14
+ .fragment-form-card__title {
15
+ @apply text-base font-semibold;
16
+ }
17
+
18
+ .fragment-form-card__description {
19
+ @apply mt-1 text-sm text-muted;
20
+ }
21
+
22
+ .fragment-form-card__header-end {
23
+ @apply shrink-0 flex items-center gap-2;
24
+ }
25
+
26
+ .fragment-form-card__body {
27
+ @apply flex flex-col gap-5 px-6 pt-5 pb-6;
28
+ }
29
+
30
+ .fragment-form-card__footer {
31
+ @apply flex items-center justify-between gap-3 rounded-b-[inherit] border-t border-separator bg-surface-secondary px-6 py-3
32
+ text-xs text-muted;
33
+ }
34
+
35
+ .fragment-form-card--danger {
36
+ @apply border-danger/30;
37
+
38
+ .fragment-form-card__title {
39
+ @apply text-danger;
40
+ }
41
+ }
42
+ }
@@ -1,41 +1,53 @@
1
1
  @layer components {
2
2
  .fragment-form-section__main {
3
- @apply flex flex-col;
3
+ @apply flex flex-col gap-4;
4
4
  }
5
5
 
6
6
  .fragment-form-section__info {
7
- @apply flex-1 pb-4;
7
+ @apply min-w-0;
8
8
  }
9
9
 
10
- .fragment-form-section__content {
11
- @apply flex flex-col gap-4 flex-1 min-w-0;
10
+ .fragment-form-section__title-row {
11
+ @apply flex items-center gap-2;
12
+ }
13
+
14
+ .fragment-form-section__title {
15
+ @apply text-sm font-semibold;
12
16
  }
13
17
 
14
18
  .fragment-form-section__description {
15
- @apply text-sm text-muted;
19
+ @apply mt-1 text-sm text-muted;
20
+ }
21
+
22
+ .fragment-form-section__content {
23
+ @apply flex flex-col gap-5 flex-1 min-w-0;
16
24
  }
17
25
 
26
+ /*
27
+ * Label column and control column. The label column is narrow and fixed so that, down a long
28
+ * settings page, every control starts on the same vertical line.
29
+ */
18
30
  .fragment-form-section--horizontal {
19
31
  .fragment-form-section__main {
20
- @apply sm:flex-row;
32
+ @apply md:flex-row md:gap-10;
21
33
  }
22
34
  .fragment-form-section__info {
23
- @apply sm:max-w-sm sm:pr-4 sm:pb-0;
35
+ @apply md:w-72 md:shrink-0;
24
36
  }
25
37
  .fragment-form-section__content {
26
- @apply sm:items-end sm:justify-center sm:max-w-sm;
38
+ @apply md:max-w-xl;
27
39
  }
28
40
  }
29
41
 
30
42
  .fragment-form-section--vertical {
31
43
  .fragment-form-section__content {
32
- @apply sm:max-w-3xl;
44
+ @apply md:max-w-3xl;
33
45
  }
34
46
  }
35
47
 
36
48
  .fragment-form-section--full-width {
37
49
  .fragment-form-section__content {
38
- @apply sm:max-w-full;
50
+ @apply md:max-w-full;
39
51
  }
40
52
  }
41
53
  }
@@ -1,5 +1,5 @@
1
1
  @layer components {
2
2
  .fragment-form__separator {
3
- @apply my-6;
3
+ @apply my-7;
4
4
  }
5
5
  }
@@ -1,6 +1,6 @@
1
1
  @layer components {
2
2
  .fragment-navbar__topbar {
3
- @apply flex gap-6 items-center px-8 py-5;
3
+ @apply flex gap-6 items-center px-8 py-5 bg-navbar text-navbar-foreground;
4
4
  }
5
5
 
6
6
  .fragment-navbar__tabs {
@@ -12,7 +12,7 @@
12
12
  }
13
13
 
14
14
  .fragment-navbar__bottom-nav {
15
- @apply fixed md:hidden z-50 bottom-0 bg-background flex w-full gap-2 px-2 py-1 border-t border-border;
15
+ @apply fixed md:hidden z-50 bottom-0 bg-navbar text-navbar-foreground flex w-full gap-2 px-2 py-1 border-t border-border;
16
16
  & > *,
17
17
  & > * > * {
18
18
  @apply h-12 flex-1;
@@ -1,10 +1,15 @@
1
1
  /**
2
- * Primary UI component for Form Sections
2
+ * Primary UI component for Page Headers
3
3
  */
4
4
  import React from 'react';
5
5
  export interface PageHeaderProps {
6
+ /** Actions, aligned to the end of the title row. */
6
7
  children?: React.ReactNode;
7
- title: string;
8
+ title: React.ReactNode;
8
9
  description?: React.ReactNode;
10
+ /** A small line above the title: a breadcrumb, a back link or a section name. */
11
+ eyebrow?: React.ReactNode;
12
+ /** Content below the title row that still belongs to the header, such as tabs or filters. */
13
+ footer?: React.ReactNode;
9
14
  }
10
15
  export declare const PageHeader: React.FC<PageHeaderProps>;
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { pageHeader } from './PageHeader.styles';
4
- export const PageHeader = ({ children, title, description, ...props }) => {
5
- const v = pageHeader(props);
6
- return (_jsxs("header", { className: v.base(), children: [_jsxs("div", { children: [_jsx("h1", { children: title }), description && _jsx("p", { className: v.description(), children: description })] }), _jsx("div", { className: v.actions(), children: children })] }));
4
+ export const PageHeader = ({ children, title, description, eyebrow, footer }) => {
5
+ const v = pageHeader({ hasFooter: !!footer });
6
+ return (_jsxs("header", { className: v.base(), children: [_jsxs("div", { className: v.row(), children: [_jsxs("div", { className: v.heading(), children: [eyebrow && _jsx("div", { className: v.eyebrow(), children: eyebrow }), _jsx("h1", { className: v.title(), children: title }), description && _jsx("p", { className: v.description(), children: description })] }), children && _jsx("div", { className: v.actions(), children: children })] }), footer && _jsx("div", { className: v.footer(), children: footer })] }));
7
7
  };
8
8
  //# sourceMappingURL=PageHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageHeader.js","sourceRoot":"","sources":["../../src/fragments/page/PageHeader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAOb,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AASjD,MAAM,CAAC,MAAM,UAAU,GAA8B,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAClG,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAE5B,OAAO,CACL,kBAAQ,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,aACzB,0BACE,uBAAK,KAAK,GAAM,EACf,WAAW,IAAI,YAAG,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,YAAG,WAAW,GAAK,IAC5D,EACN,cAAK,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,YAAG,QAAQ,GAAO,IACtC,CACV,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"PageHeader.js","sourceRoot":"","sources":["../../src/fragments/page/PageHeader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAOb,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAajD,MAAM,CAAC,MAAM,UAAU,GAA8B,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;IACzG,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAE9C,OAAO,CACL,kBAAQ,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,aACzB,eAAK,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,aACrB,eAAK,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,aACxB,OAAO,IAAI,cAAK,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,YAAG,OAAO,GAAO,EACxD,aAAI,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,YAAG,KAAK,GAAM,EACrC,WAAW,IAAI,YAAG,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,YAAG,WAAW,GAAK,IAC5D,EACL,QAAQ,IAAI,cAAK,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,YAAG,QAAQ,GAAO,IACtD,EACL,MAAM,IAAI,cAAK,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,YAAG,MAAM,GAAO,IAC9C,CACV,CAAC;AACJ,CAAC,CAAC"}
@@ -1,37 +1,46 @@
1
1
  export declare const pageHeader: import("tailwind-variants").TVReturnType<{
2
- [key: string]: {
3
- [key: string]: import("tailwind-variants").ClassValue | {
4
- base?: import("tailwind-variants").ClassValue;
5
- description?: import("tailwind-variants").ClassValue;
6
- actions?: import("tailwind-variants").ClassValue;
2
+ hasFooter: {
3
+ true: {
4
+ base: string;
7
5
  };
8
6
  };
9
- } | {
10
- [x: string]: {
11
- [x: string]: import("tailwind-variants").ClassValue | {
12
- base?: import("tailwind-variants").ClassValue;
13
- description?: import("tailwind-variants").ClassValue;
14
- actions?: import("tailwind-variants").ClassValue;
15
- };
16
- };
17
- } | {}, {
7
+ }, {
18
8
  base: string;
9
+ row: string;
10
+ heading: string;
11
+ eyebrow: string;
12
+ title: string;
19
13
  description: string;
20
14
  actions: string;
15
+ footer: string;
21
16
  }, undefined, {
22
- [key: string]: {
23
- [key: string]: import("tailwind-variants").ClassValue | {
24
- base?: import("tailwind-variants").ClassValue;
25
- description?: import("tailwind-variants").ClassValue;
26
- actions?: import("tailwind-variants").ClassValue;
17
+ hasFooter: {
18
+ true: {
19
+ base: string;
27
20
  };
28
21
  };
29
- } | {}, {
22
+ }, {
30
23
  base: string;
24
+ row: string;
25
+ heading: string;
26
+ eyebrow: string;
27
+ title: string;
31
28
  description: string;
32
29
  actions: string;
33
- }, import("tailwind-variants").TVReturnTypeLike<unknown, {
30
+ footer: string;
31
+ }, import("tailwind-variants").TVReturnTypeLike<{
32
+ hasFooter: {
33
+ true: {
34
+ base: string;
35
+ };
36
+ };
37
+ }, {
34
38
  base: string;
39
+ row: string;
40
+ heading: string;
41
+ eyebrow: string;
42
+ title: string;
35
43
  description: string;
36
44
  actions: string;
45
+ footer: string;
37
46
  }>>;
@@ -2,8 +2,18 @@ import { tv } from 'tailwind-variants';
2
2
  export const pageHeader = tv({
3
3
  slots: {
4
4
  base: 'fragment-page-header',
5
+ row: 'fragment-page-header__row',
6
+ heading: 'fragment-page-header__heading',
7
+ eyebrow: 'fragment-page-header__eyebrow',
8
+ title: 'fragment-page-header__title',
5
9
  description: 'fragment-page-header__description',
6
10
  actions: 'fragment-page-header__actions',
11
+ footer: 'fragment-page-header__footer',
12
+ },
13
+ variants: {
14
+ hasFooter: {
15
+ true: { base: 'fragment-page-header--with-footer' },
16
+ },
7
17
  },
8
18
  });
9
19
  //# sourceMappingURL=PageHeader.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageHeader.styles.js","sourceRoot":"","sources":["../../src/fragments/page/PageHeader.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;IAC3B,KAAK,EAAE;QACL,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,+BAA+B;KACzC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"PageHeader.styles.js","sourceRoot":"","sources":["../../src/fragments/page/PageHeader.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;IAC3B,KAAK,EAAE;QACL,IAAI,EAAE,sBAAsB;QAC5B,GAAG,EAAE,2BAA2B;QAChC,OAAO,EAAE,+BAA+B;QACxC,OAAO,EAAE,+BAA+B;QACxC,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,+BAA+B;QACxC,MAAM,EAAE,8BAA8B;KACvC;IACD,QAAQ,EAAE;QACR,SAAS,EAAE;YACT,IAAI,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE;SACpD;KACF;CACF,CAAC,CAAC"}
@@ -1,13 +1,33 @@
1
1
  @layer components {
2
2
  .fragment-page-header {
3
- @apply flex gap-4 justify-between sm:items-end mb-8 flex-col sm:flex-row;
3
+ @apply flex flex-col gap-5 mb-8;
4
+ }
5
+
6
+ .fragment-page-header--with-footer {
7
+ @apply mb-6;
8
+ }
9
+
10
+ .fragment-page-header__row {
11
+ @apply flex gap-4 justify-between flex-col sm:flex-row sm:items-end;
12
+ }
13
+
14
+ .fragment-page-header__heading {
15
+ @apply min-w-0;
16
+ }
17
+
18
+ .fragment-page-header__eyebrow {
19
+ @apply mb-1.5 flex items-center gap-1.5 text-xs font-medium text-muted;
4
20
  }
5
21
 
6
22
  .fragment-page-header__description {
7
- @apply mt-2 text-muted;
23
+ @apply mt-1 max-w-2xl text-sm text-muted;
8
24
  }
9
25
 
10
26
  .fragment-page-header__actions {
11
- @apply flex gap-4;
27
+ @apply flex flex-wrap gap-2 items-center shrink-0;
28
+ }
29
+
30
+ .fragment-page-header__footer {
31
+ @apply min-w-0;
12
32
  }
13
33
  }
@@ -0,0 +1,12 @@
1
+ export interface SaveBarProps {
2
+ isVisible: boolean;
3
+ isPending?: boolean;
4
+ message: React.ReactNode;
5
+ saveLabel: React.ReactNode;
6
+ discardLabel?: React.ReactNode;
7
+ onDiscard?: () => void;
8
+ /** Omit when the bar sits inside a `<form>`: the save button then submits it. */
9
+ onSave?: () => void;
10
+ isSaveDisabled?: boolean;
11
+ }
12
+ export declare const SaveBar: React.FC<SaveBarProps>;
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * The bar a settings form saves from. It appears once something has changed and stays pinned to
5
+ * the bottom of the viewport while the form scrolls, so the save action is never a scroll away and
6
+ * an unsaved edit is never silent.
7
+ */
8
+ import { Button } from '@heroui/react';
9
+ import { IconAlertCircle } from '@tabler/icons-react';
10
+ import { saveBar } from './SaveBar.styles';
11
+ export const SaveBar = ({ isVisible, isPending, message, saveLabel, discardLabel, onDiscard, onSave, isSaveDisabled, }) => {
12
+ const v = saveBar({ isVisible });
13
+ return (_jsx("div", { "aria-hidden": !isVisible, className: v.base(), inert: !isVisible, children: _jsxs("div", { className: v.bar(), children: [_jsx("span", { "aria-live": "polite", className: v.message(), children: isVisible && (_jsxs(_Fragment, { children: [_jsx(IconAlertCircle, { size: 16, stroke: 1.75 }), message] })) }), _jsxs("div", { className: v.actions(), children: [onDiscard && discardLabel && (_jsx(Button, { isDisabled: isPending, onPress: onDiscard, size: "sm", type: "button", variant: "ghost", children: discardLabel })), _jsx(Button, { isDisabled: isSaveDisabled, isPending: isPending, onPress: onSave, size: "sm", type: onSave ? 'button' : 'submit', children: saveLabel })] })] }) }));
14
+ };
15
+ //# sourceMappingURL=SaveBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SaveBar.js","sourceRoot":"","sources":["../../src/fragments/save-bar/SaveBar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAc3C,MAAM,CAAC,MAAM,OAAO,GAA2B,CAAC,EAC9C,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAC1F,EAAE,EAAE;IACH,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAEjC,OAAO,CACL,6BAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,SAAS,YAClE,eAAK,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,aAErB,4BAAgB,QAAQ,EAAC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,YAC5C,SAAS,IAAI,CACZ,8BACE,KAAC,eAAe,IAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,GAAI,EAC1C,OAAO,IACP,CACJ,GACI,EACP,eAAK,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,aACxB,SAAS,IAAI,YAAY,IAAI,CAC5B,KAAC,MAAM,IAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,YACvF,YAAY,GACN,CACV,EACD,KAAC,MAAM,IACL,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,IAAI,EAAC,IAAI,EACT,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,YAEjC,SAAS,GACH,IACL,IACF,GACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,37 @@
1
+ export declare const saveBar: import("tailwind-variants").TVReturnType<{
2
+ isVisible: {
3
+ true: {
4
+ base: string;
5
+ };
6
+ false: {};
7
+ };
8
+ }, {
9
+ base: string;
10
+ bar: string;
11
+ message: string;
12
+ actions: string;
13
+ }, undefined, {
14
+ isVisible: {
15
+ true: {
16
+ base: string;
17
+ };
18
+ false: {};
19
+ };
20
+ }, {
21
+ base: string;
22
+ bar: string;
23
+ message: string;
24
+ actions: string;
25
+ }, import("tailwind-variants").TVReturnTypeLike<{
26
+ isVisible: {
27
+ true: {
28
+ base: string;
29
+ };
30
+ false: {};
31
+ };
32
+ }, {
33
+ base: string;
34
+ bar: string;
35
+ message: string;
36
+ actions: string;
37
+ }>>;
@@ -0,0 +1,16 @@
1
+ import { tv } from 'tailwind-variants';
2
+ export const saveBar = tv({
3
+ slots: {
4
+ base: 'fragment-save-bar',
5
+ bar: 'fragment-save-bar__bar',
6
+ message: 'fragment-save-bar__message',
7
+ actions: 'fragment-save-bar__actions',
8
+ },
9
+ variants: {
10
+ isVisible: {
11
+ true: { base: 'fragment-save-bar--visible' },
12
+ false: {},
13
+ },
14
+ },
15
+ });
16
+ //# sourceMappingURL=SaveBar.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SaveBar.styles.js","sourceRoot":"","sources":["../../src/fragments/save-bar/SaveBar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,CAAC;IACxB,KAAK,EAAE;QACL,IAAI,EAAE,mBAAmB;QACzB,GAAG,EAAE,wBAAwB;QAC7B,OAAO,EAAE,4BAA4B;QACrC,OAAO,EAAE,4BAA4B;KACtC;IACD,QAAQ,EAAE;QACR,SAAS,EAAE;YACT,IAAI,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE;YAC5C,KAAK,EAAE,EAAE;SACV;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ @layer components {
2
+ /* Sticky inside the form rather than fixed to the viewport, so it never needs to know how wide the rail is. */
3
+ /* Takes no room while hidden, so a clean form ends where its last field does. */
4
+ .fragment-save-bar {
5
+ @apply pointer-events-none sticky bottom-20 z-30 flex h-0 justify-center overflow-visible md:bottom-6;
6
+ @apply translate-y-4 opacity-0 transition-[opacity,translate] duration-200 motion-reduce:transition-none;
7
+ }
8
+
9
+ .fragment-save-bar--visible {
10
+ @apply pointer-events-auto mt-6 h-auto translate-y-0 opacity-100;
11
+ }
12
+
13
+ .fragment-save-bar__bar {
14
+ @apply flex w-full max-w-2xl items-center justify-between gap-4 rounded-2xl border border-border bg-overlay py-2 pr-2 pl-4
15
+ text-sm shadow-lg;
16
+ }
17
+
18
+ .fragment-save-bar__message {
19
+ @apply flex items-center gap-2 font-medium text-foreground;
20
+ & svg {
21
+ @apply shrink-0 text-warning;
22
+ }
23
+ }
24
+
25
+ .fragment-save-bar__actions {
26
+ @apply flex shrink-0 items-center gap-1;
27
+ }
28
+ }
@@ -7,16 +7,20 @@
7
7
  @apply flex-col;
8
8
  }
9
9
 
10
+ /*
11
+ * The content column is capped at a width a table or a two-column dashboard still reads well at.
12
+ * Past ~1600px the eye travels too far between a label and its value, and a wide monitor is
13
+ * better spent on margin than on stretching every card.
14
+ */
10
15
  .fragment-shell__main {
11
- @apply flex-1 min-w-0 mx-auto;
16
+ @apply flex-1 min-w-0 mx-auto w-full;
12
17
 
13
18
  .fragment-shell--horizontal & {
14
- @apply px-8 lg:px-12 xl:px-20 py-14 max-w-[2100px];
19
+ @apply px-4 sm:px-6 lg:px-10 pt-6 pb-24 md:pt-8 md:pb-12 max-w-[1600px];
15
20
  }
16
21
 
17
22
  .fragment-shell--vertical & {
18
- @apply px-8 py-6 max-w-[2100px] w-full;
23
+ @apply px-4 sm:px-6 lg:px-10 py-6 max-w-[1600px];
19
24
  }
20
-
21
25
  }
22
26
  }
@@ -73,7 +73,10 @@ export const Sidebar = ({ items, currentPath, layout: defaultLayout = 'auto' })
73
73
  }) }), _jsx("div", { className: v.expandedFooter(), children: items.map((item) => {
74
74
  const children = item.align === 'bottom' ? renderItems(item, { layout: 'expanded', activeLink }) : null;
75
75
  return children ? (_jsx("div", { className: getAlignmentClass(item.align), children: children }, item.key)) : null;
76
- }) })] }), _jsx("div", { className: v.placeholder() }), _jsx("div", { className: v.layoutButtonWrapper(), children: _jsx(Button, { size: "sm", isIconOnly: true, variant: "tertiary", className: v.layoutButton(), onPress: toggleLayout, children: _jsx(IconChevronLeft, {}) }) })] }), _jsxs("nav", { className: v.bottomNav(), onClick: () => setMobileMenuOpen(false), children: [items.find((item) => item.type === 'navigation')?.navigation?.map((navItem) => (_jsxs(Tooltip, { children: [_jsx(Tooltip.Trigger, { children: _jsx(Button, { render: (props) => _jsx(ButtonLink, { ...props, href: navItem.link }), isIconOnly: true, variant: activeLink === navItem.link ? 'tertiary' : 'ghost', onPress: () => setMobileMenuOpen(false), children: _jsxs(Badge.Anchor, { children: [navItem.icon, typeof navItem.badgeContent === 'string' && navItem.badgeContent ? (_jsx(Badge, { variant: "primary", color: "accent", size: "sm", className: "fragment-sidebar__bottom-nav-badge", children: navItem.badgeContent })) : null] }) }) }), _jsx(Tooltip.Content, { placement: "top", offset: 10, children: navItem.label })] }, navItem.label))), _jsx(Button, { variant: mobileMenuOpen ? 'tertiary' : 'ghost', isIconOnly: true, onPress: () => setMobileMenuOpen(!mobileMenuOpen), children: _jsx(IconDots, {}) })] }), _jsx(Modal, { isOpen: mobileMenuOpen, onOpenChange: setMobileMenuOpen, children: _jsx(Modal.Backdrop, { children: _jsx(Modal.Container, { children: _jsxs(Modal.Dialog, { children: [_jsx(Modal.Header, {}), _jsx(Modal.Body, { className: v.bottomNavModalBody(), children: items.map((item) => {
76
+ }) })] }), _jsx("div", { className: v.placeholder() }), _jsx("div", { className: v.layoutButtonWrapper(), children: _jsx(Button, { size: "sm", isIconOnly: true, variant: "tertiary", className: v.layoutButton(), onPress: toggleLayout, children: _jsx(IconChevronLeft, {}) }) })] }), _jsxs("nav", { className: v.bottomNav(), onClick: () => setMobileMenuOpen(false), children: [items
77
+ .filter((item) => item.type === 'navigation')
78
+ .flatMap((item) => item.navigation)
79
+ .map((navItem) => (_jsxs(Tooltip, { children: [_jsx(Tooltip.Trigger, { children: _jsx(Button, { render: (props) => _jsx(ButtonLink, { ...props, href: navItem.link }), isIconOnly: true, variant: activeLink === navItem.link ? 'tertiary' : 'ghost', onPress: () => setMobileMenuOpen(false), children: _jsxs(Badge.Anchor, { children: [navItem.icon, typeof navItem.badgeContent === 'string' && navItem.badgeContent ? (_jsx(Badge, { variant: "primary", color: "accent", size: "sm", className: "fragment-sidebar__bottom-nav-badge", children: navItem.badgeContent })) : null] }) }) }), _jsx(Tooltip.Content, { placement: "top", offset: 10, children: navItem.label })] }, navItem.label))), _jsx(Button, { variant: mobileMenuOpen ? 'tertiary' : 'ghost', isIconOnly: true, onPress: () => setMobileMenuOpen(!mobileMenuOpen), children: _jsx(IconDots, {}) })] }), _jsx(Modal, { isOpen: mobileMenuOpen, onOpenChange: setMobileMenuOpen, children: _jsx(Modal.Backdrop, { children: _jsx(Modal.Container, { children: _jsxs(Modal.Dialog, { children: [_jsx(Modal.Header, {}), _jsx(Modal.Body, { className: v.bottomNavModalBody(), children: items.map((item) => {
77
80
  const children = item.align !== 'bottom' ? renderItems(item, { layout: 'expanded', activeLink }) : null;
78
81
  return children ? (_jsx("div", { className: getAlignmentClass(item.align), children: children }, item.key)) : null;
79
82
  }) }), _jsx(Modal.Footer, { className: v.bottomNavModalFooter(), children: items.map((item) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../src/fragments/sidebar/Sidebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../src/fragments/sidebar/Sidebar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAIb,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAClH,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AA6CxD,MAAM,iBAAiB,GAAG,CAAC,KAAqC,EAAE,EAAE,CAClE,KAAK,CAAC,CAAC,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAElD,MAAM,UAAU,GAA+E,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACpH,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAAC;IACzD,OAAO,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,YAAE,oBAAY,KAAK,GAAI,GAAgB,CAAC;AAC1E,CAAC,CAAC;AAIF,MAAM,WAAW,GAAG,CAAC,IAAmC,EAAE,OAAsB,EAAE,EAAE;IAClF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,YAAY;YACf,OAAO,CACL,KAAC,iBAAiB,IAChB,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAChE,UAAU,EAAE,OAAO,CAAC,UAAU,EAC9B,YAAY,EAAE,IAAI,CAAC,YAAY,GAC/B,CACH,CAAC;QACJ,KAAK,MAAM;YACT,OAAO,CACL,MAAC,QAAQ,OAAK,IAAI,CAAC,QAAQ,aACzB,KAAC,QAAQ,CAAC,OAAO,IAAC,SAAS,EAAC,gCAAgC,YACzD,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAC/B,eAAK,SAAS,EAAC,6BAA6B,aAC1C,MAAC,MAAM,OAAK,IAAI,CAAC,MAAM,aACrB,KAAC,MAAM,CAAC,KAAK,OAAK,IAAI,CAAC,MAAM,GAAI,EACjC,KAAC,MAAM,CAAC,QAAQ,cAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAmB,IACjD,EACT,eAAK,SAAS,EAAC,6BAA6B,aAC1C,KAAC,KAAK,cAAE,IAAI,CAAC,IAAI,GAAS,EAC1B,KAAC,WAAW,cAAE,IAAI,CAAC,WAAW,GAAe,IACzC,IACF,CACP,CAAC,CAAC,CAAC,CACF,MAAC,MAAM,OAAK,IAAI,CAAC,MAAM,aACrB,KAAC,MAAM,CAAC,KAAK,OAAK,IAAI,CAAC,MAAM,GAAI,EACjC,KAAC,MAAM,CAAC,QAAQ,cAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAmB,IACjD,CACV,GACgB,EACnB,KAAC,QAAQ,CAAC,OAAO,IAAC,SAAS,EAAC,gCAAgC,EAAC,SAAS,EAAC,cAAc,YACnF,KAAC,QAAQ,CAAC,IAAI,kBAAY,cAAc,EAAC,KAAK,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE,YACrE,CAAC,YAAY,EAAE,EAAE,CAAC,CACjB,eAAC,QAAQ,CAAC,IAAI,OAAK,YAAY,EAAE,GAAG,EAAE,YAAY,CAAC,KAAK,IACrD,YAAY,CAAC,KAAK,CACL,CACjB,GACa,GACC,IACV,CACZ,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO,CACL,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;gBACnD,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC;gBACxD,CAAC,OAAO,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAC3D;gBACC,CAAC,CAAC,cAAK,SAAS,EAAC,+BAA+B,YAAE,IAAI,CAAC,MAAM,GAAO;gBACpE,CAAC,CAAC,IAAI,CAAC;QACX;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,WAAwC,EAAE,KAA4B,EAAsB,EAAE;IACnH,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IAEnC,MAAM,WAAW,GAA4B,EAAE,CAAC;IAChD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO;QACvC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAClC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAA8B,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,WAAW;SAChC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;SACjH,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEjD,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAA2B,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,EAAE,EAAE;IACxG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEpD,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,mBAAmB,CAAC,EAAE,EAAE,CAAC;gBACxD,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;QACD,SAAS,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC/D,CAAC,CAAC;IAEF,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAE9B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAqB,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IACpG,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAExF,OAAO,CACL,8BACE,eAAK,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,aACtB,eAAK,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,aAC3B,KAAC,YAAY,IAAC,aAAa,QAAC,SAAS,EAAE,CAAC,CAAC,aAAa,EAAE,YACrD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oCAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oCACzG,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,cAAoB,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAG,QAAQ,IAA7D,IAAI,CAAC,GAAG,CAA4D,CAC/E,CAAC,CAAC,CAAC,IAAI,CAAC;gCACX,CAAC,CAAC,GACW,EACf,cAAK,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,YAChC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oCAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oCACzG,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,cAAoB,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAG,QAAQ,IAA7D,IAAI,CAAC,GAAG,CAA4D,CAC/E,CAAC,CAAC,CAAC,IAAI,CAAC;gCACX,CAAC,CAAC,GACE,IACF,EACN,eAAK,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,aAC1B,KAAC,YAAY,IAAC,aAAa,QAAC,SAAS,EAAE,CAAC,CAAC,YAAY,EAAE,YACpD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oCAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oCACxG,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,cAAoB,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAG,QAAQ,IAA7D,IAAI,CAAC,GAAG,CAA4D,CAC/E,CAAC,CAAC,CAAC,IAAI,CAAC;gCACX,CAAC,CAAC,GACW,EACf,cAAK,SAAS,EAAE,CAAC,CAAC,cAAc,EAAE,YAC/B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oCAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oCACxG,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,cAAoB,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAG,QAAQ,IAA7D,IAAI,CAAC,GAAG,CAA4D,CAC/E,CAAC,CAAC,CAAC,IAAI,CAAC;gCACX,CAAC,CAAC,GACE,IACF,EACN,cAAK,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,GAAI,EACnC,cAAK,SAAS,EAAE,CAAC,CAAC,mBAAmB,EAAE,YACrC,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,UAAU,QAAC,OAAO,EAAC,UAAU,EAAC,SAAS,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,YAAY,YAChG,KAAC,eAAe,KAAG,GACZ,GACL,IACF,EAEN,eAAK,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,aACnE,KAAK;yBACH,MAAM,CAAC,CAAC,IAAI,EAAiC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;yBAC3E,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;yBAClC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAClB,MAAC,OAAO,eACN,KAAC,OAAO,CAAC,OAAO,cACd,KAAC,MAAM,IACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAC,UAAU,OAAK,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,GAAI,EAChE,UAAU,QACV,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAC3D,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAEvC,MAAC,KAAK,CAAC,MAAM,eACV,OAAO,CAAC,IAAI,EACZ,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAClE,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,oCAAoC,YAAE,OAAO,CAAC,YAAY,GAAS,CAChI,CAAC,CAAC,CAAC,IAAI,IACK,GACR,GACO,EAClB,KAAC,OAAO,CAAC,OAAO,IAAC,SAAS,EAAC,KAAK,EAAC,MAAM,EAAE,EAAE,YAAG,OAAO,CAAC,KAAK,GAAmB,KAhBlE,OAAO,CAAC,KAAK,CAiBjB,CACX,CAAC,EACF,KAAC,MAAM,IAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,QAAC,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,YAClH,KAAC,QAAQ,KAAG,GACL,IACL,EAEN,KAAC,KAAK,IAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,YAC5D,KAAC,KAAK,CAAC,QAAQ,cACb,KAAC,KAAK,CAAC,SAAS,cACd,MAAC,KAAK,CAAC,MAAM,eACX,KAAC,KAAK,CAAC,MAAM,KAAG,EAChB,KAAC,KAAK,CAAC,IAAI,IAAC,SAAS,EAAE,CAAC,CAAC,kBAAkB,EAAE,YAC1C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;wCAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wCACxG,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,cAAoB,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAG,QAAQ,IAA7D,IAAI,CAAC,GAAG,CAA4D,CAC/E,CAAC,CAAC,CAAC,IAAI,CAAC;oCACX,CAAC,CAAC,GACS,EACb,KAAC,KAAK,CAAC,MAAM,IAAC,SAAS,EAAE,CAAC,CAAC,oBAAoB,EAAE,YAC9C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;wCAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wCACxG,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,cAAoB,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAG,QAAQ,IAA7D,IAAI,CAAC,GAAG,CAA4D,CAC/E,CAAC,CAAC,CAAC,IAAI,CAAC;oCACX,CAAC,CAAC,GACW,IACF,GACC,GACH,GACX,IACP,CACJ,CAAC;AACJ,CAAC,CAAC"}