@octave-org/ui 0.0.2 → 0.0.4

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.
package/README.md CHANGED
@@ -1,7 +1,98 @@
1
1
  # @octave-org/ui
2
2
 
3
- This library was generated with [Nx](https://nx.dev).
3
+ A UI component library built on top of [Mantine](https://mantine.dev), designed for use with Next.js projects.
4
4
 
5
- ## Running unit tests
5
+ > **Note:** This package is currently only stable on the **Next.js Pages Router**. App Router support is not guaranteed.
6
6
 
7
- Run `nx test @octave-org/ui` to execute the unit tests via [Jest](https://jestjs.io).
7
+ ---
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ # npm
13
+ npm install @octave-org/ui
14
+
15
+ # yarn
16
+ yarn add @octave-org/ui
17
+
18
+ # pnpm
19
+ pnpm add @octave-org/ui
20
+
21
+ # bun
22
+ bun add @octave-org/ui
23
+ ```
24
+
25
+ ---
26
+
27
+ ## Setup
28
+
29
+ ### 1. Update `next.config.ts`
30
+
31
+ Add `@octave-org/ui` to `transpilePackages` so Next.js can process the package correctly:
32
+
33
+ ```ts
34
+ // next.config.ts
35
+ import type { NextConfig } from 'next';
36
+
37
+ const nextConfig: NextConfig = {
38
+ transpilePackages: ['@octave-org/ui'],
39
+ };
40
+
41
+ export default nextConfig;
42
+ ```
43
+
44
+ ### 2. Wrap your app with `OctaveProvider`
45
+
46
+ In your `pages/_app.tsx`, wrap your application with the `OctaveProvider` component to enable theming and notifications:
47
+
48
+ ```tsx
49
+ // pages/_app.tsx
50
+ import type { AppProps } from 'next/app';
51
+ import { OctaveProvider } from '@octave-org/ui';
52
+
53
+ export default function App({ Component, pageProps }: AppProps) {
54
+ return (
55
+ <OctaveProvider>
56
+ <Component {...pageProps} />
57
+ </OctaveProvider>
58
+ );
59
+ }
60
+ ```
61
+
62
+ ---
63
+
64
+ ## Usage
65
+
66
+ ### OctaveButton
67
+
68
+ Use `OctaveButton` to render a styled button. You can pass a label, an action handler, or a link.
69
+
70
+ ```tsx
71
+ import { OctaveButton } from '@octave-org/ui';
72
+
73
+ export default function MyPage() {
74
+ return (
75
+ <OctaveButton
76
+ btnProps={{
77
+ label: 'Click me',
78
+ action: () => console.log('Button clicked!'),
79
+ context: 'primary', // 'primary' | 'destructive' | 'success' | 'warning'
80
+ }}
81
+ />
82
+ );
83
+ }
84
+ ```
85
+
86
+ You can also render the button as a link:
87
+
88
+ ```tsx
89
+ <OctaveButton
90
+ btnProps={{
91
+ label: 'Go to Dashboard',
92
+ link: '/dashboard',
93
+ context: 'success',
94
+ }}
95
+ />
96
+ ```
97
+
98
+ ---
package/dist/index.esm.js CHANGED
@@ -8,7 +8,7 @@ import { notifications as notifications$1, Notifications } from '@mantine/notifi
8
8
  export * from '@mantine/notifications';
9
9
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
10
10
  import Link from 'next/link';
11
- import { forwardRef, createElement as createElement$1, useState, useMemo } from 'react';
11
+ import { forwardRef, createElement as createElement$1, useState, useContext, createContext, useMemo } from 'react';
12
12
  import { useSensors, useSensor, PointerSensor, DndContext, closestCenter } from '@dnd-kit/core';
13
13
  import { SortableContext, horizontalListSortingStrategy, arrayMove, useSortable } from '@dnd-kit/sortable';
14
14
  import { CSS } from '@dnd-kit/utilities';
@@ -2767,7 +2767,6 @@ function LinksGroup({
2767
2767
  paddingLeft: theme.spacing.md,
2768
2768
  marginLeft: theme.spacing.xl,
2769
2769
  fontSize: theme.fontSizes.sm,
2770
- color: isDark ? theme.colors.dark[0] : theme.colors.gray[7],
2771
2770
  borderLeft: `1px solid ${isDark ? theme.colors.dark[4] : theme.colors.gray[3]}`,
2772
2771
  backgroundColor: hoveredLink === link.label ? isDark ? theme.colors.dark[7] : theme.colors.gray[0] : 'transparent'
2773
2772
  },
@@ -2786,7 +2785,6 @@ function LinksGroup({
2786
2785
  fontWeight: 500,
2787
2786
  padding: `${theme.spacing.xs} ${theme.spacing.md}`,
2788
2787
  fontSize: theme.fontSizes.sm,
2789
- color: isDark ? theme.white : theme.black,
2790
2788
  backgroundColor: controlHovered ? isDark ? theme.colors.dark[7] : theme.colors.gray[0] : 'transparent'
2791
2789
  },
2792
2790
  children: jsxs(Group, {
@@ -3796,6 +3794,36 @@ function ThemeTrigger() {
3796
3794
  });
3797
3795
  }
3798
3796
 
3797
+ const defaultBranding = {
3798
+ companyName: 'Octave Designs',
3799
+ slogan: 'The ui system you deserve',
3800
+ logo: jsx(IconGalaxy, {})
3801
+ };
3802
+ const OctaveBrandingContext = /*#__PURE__*/createContext(defaultBranding);
3803
+ function OctaveBrandingProvider({
3804
+ children,
3805
+ branding
3806
+ }) {
3807
+ var _branding$companyName, _branding$slogan, _branding$logo;
3808
+ return jsx(OctaveBrandingContext.Provider, {
3809
+ value: {
3810
+ companyName: (_branding$companyName = branding == null ? void 0 : branding.companyName) != null ? _branding$companyName : defaultBranding.companyName,
3811
+ slogan: (_branding$slogan = branding == null ? void 0 : branding.slogan) != null ? _branding$slogan : defaultBranding.slogan,
3812
+ logo: (_branding$logo = branding == null ? void 0 : branding.logo) != null ? _branding$logo : defaultBranding.logo
3813
+ },
3814
+ children: children
3815
+ });
3816
+ }
3817
+ function useOctaveBranding(overrides) {
3818
+ var _overrides$companyNam, _overrides$slogan, _overrides$logo;
3819
+ const branding = useContext(OctaveBrandingContext);
3820
+ return {
3821
+ companyName: (_overrides$companyNam = overrides == null ? void 0 : overrides.companyName) != null ? _overrides$companyNam : branding.companyName,
3822
+ slogan: (_overrides$slogan = overrides == null ? void 0 : overrides.slogan) != null ? _overrides$slogan : branding.slogan,
3823
+ logo: (_overrides$logo = overrides == null ? void 0 : overrides.logo) != null ? _overrides$logo : branding.logo
3824
+ };
3825
+ }
3826
+
3799
3827
  function OctaveShell({
3800
3828
  children,
3801
3829
  props,
@@ -3803,7 +3831,8 @@ function OctaveShell({
3803
3831
  subTitle,
3804
3832
  logo,
3805
3833
  user,
3806
- menu
3834
+ menu,
3835
+ branding
3807
3836
  }) {
3808
3837
  const [opened, {
3809
3838
  toggle
@@ -3812,6 +3841,7 @@ function OctaveShell({
3812
3841
  setColorScheme,
3813
3842
  colorScheme
3814
3843
  } = useMantineColorScheme();
3844
+ const appBranding = useOctaveBranding(branding);
3815
3845
  const icon = {
3816
3846
  light: jsx(IconSun, {
3817
3847
  size: 18
@@ -3831,15 +3861,15 @@ function OctaveShell({
3831
3861
  const NavLogo = () => jsxs(Flex, {
3832
3862
  gap: "xs",
3833
3863
  align: "center",
3834
- children: [logo, (opened || isMobile) && jsxs(Stack, {
3864
+ children: [appBranding.logo, (opened || isMobile) && jsxs(Stack, {
3835
3865
  gap: 0,
3836
3866
  children: [jsx(Text, {
3837
3867
  fw: 600,
3838
- children: title
3868
+ children: title != null ? title : appBranding.companyName
3839
3869
  }), jsx(Text, {
3840
3870
  size: "xs",
3841
3871
  c: "dimmed",
3842
- children: subTitle
3872
+ children: subTitle != null ? subTitle : appBranding.slogan
3843
3873
  })]
3844
3874
  })]
3845
3875
  });
@@ -4112,6 +4142,7 @@ function OctaveStackedText({
4112
4142
  descProps
4113
4143
  }) {
4114
4144
  return jsxs(Stack, {
4145
+ justify: "center",
4115
4146
  gap: 0,
4116
4147
  children: [jsx(Text, Object.assign({
4117
4148
  size: "xl",
@@ -4834,6 +4865,7 @@ function OctaveAuthWrapper(props) {
4834
4865
  const {
4835
4866
  colorScheme
4836
4867
  } = useMantineColorScheme();
4868
+ const branding = useOctaveBranding(props.branding);
4837
4869
  return jsxs(SimpleGrid, {
4838
4870
  p: "md",
4839
4871
  cols: {
@@ -4902,14 +4934,12 @@ function OctaveAuthWrapper(props) {
4902
4934
  children: [jsx(ThemeIcon, {
4903
4935
  variant: "default",
4904
4936
  size: 50,
4905
- children: jsx(IconGalaxy, {
4906
- size: 30
4907
- })
4937
+ children: branding.logo
4908
4938
  }), jsx(Divider, {
4909
4939
  orientation: "vertical"
4910
4940
  }), jsx(OctaveStackedText, {
4911
- title: "Octave Designs",
4912
- description: "The ui system you deserve",
4941
+ title: branding.companyName,
4942
+ description: branding.slogan,
4913
4943
  titleProps: {
4914
4944
  c: colorScheme === 'light' ? 'white' : 'black'
4915
4945
  },
@@ -4993,6 +5023,7 @@ function OctaveAuthForm({
4993
5023
  validate
4994
5024
  });
4995
5025
  return jsx(OctaveAuthWrapper, {
5026
+ branding: config.branding,
4996
5027
  children: jsx(Center, {
4997
5028
  w: "100%",
4998
5029
  h: "100%",
@@ -5084,16 +5115,20 @@ function OctaveAuthForm({
5084
5115
 
5085
5116
  function UIProvider({
5086
5117
  children,
5087
- theme
5118
+ theme,
5119
+ branding
5088
5120
  }) {
5089
- return jsxs(MantineProvider, {
5121
+ return jsx(MantineProvider, {
5090
5122
  defaultColorScheme: "light",
5091
5123
  theme: theme != null ? theme : octaveTheme,
5092
- children: [jsx(Notifications, {}), children]
5124
+ children: jsxs(OctaveBrandingProvider, {
5125
+ branding: branding,
5126
+ children: [jsx(Notifications, {}), children]
5127
+ })
5093
5128
  });
5094
5129
  }
5095
5130
  function OctaveProvider(props) {
5096
5131
  return jsx(UIProvider, Object.assign({}, props));
5097
5132
  }
5098
5133
 
5099
- export { OctaveAuthForm, OctaveBadge, OctaveBanner, OctaveButton, OctaveCheckboxInput, OctaveFormBuilder, OctaveNumberInput, OctaveProvider, OctaveRadioInput, OctaveSecureInput, OctaveSelectInput, OctaveShell, OctaveStackedText, OctaveStatCard, OctaveStatusBadge, OctaveTable, OctaveTextInput, ThemeTrigger, TitleCaseToUnderscore, UIProvider, UnderscoreToTitleCase, clearTokens, error, floatToPercent, formatDate, formatETB, getAccessToken, getRefreshToken, info, octaveTheme, percentToFloat, setTokens, success, useBreakpoints, warning };
5134
+ export { OctaveAuthForm, OctaveAuthWrapper, OctaveBadge, OctaveBanner, OctaveBrandingProvider, OctaveButton, OctaveCheckboxInput, OctaveFormBuilder, OctaveNumberInput, OctaveProvider, OctaveRadioInput, OctaveSecureInput, OctaveSelectInput, OctaveShell, OctaveStackedText, OctaveStatCard, OctaveStatusBadge, OctaveTable, OctaveTextInput, ThemeTrigger, TitleCaseToUnderscore, UIProvider, UnderscoreToTitleCase, clearTokens, error, floatToPercent, formatDate, formatETB, getAccessToken, getRefreshToken, info, octaveTheme, percentToFloat, setTokens, success, useBreakpoints, useOctaveBranding, warning };
@@ -4,5 +4,6 @@ export * from '@mantine/hooks';
4
4
  export * from '@mantine/notifications';
5
5
  export * from './components';
6
6
  export * from './utils';
7
+ export * from './lib/branding';
7
8
  export { OctaveProvider, UIProvider } from './lib/provider';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AAEvC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AAEvC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { FormValidateInput } from '@mantine/form';
2
2
  import { FormFieldConfig } from '../../input-components/formBuilder';
3
3
  import { OctaveButtonContext } from '../../input-components';
4
+ import { OctaveBranding } from '../../branding';
4
5
  export interface AuthFormRow<T extends object> {
5
6
  columns: FormFieldConfig<T>[][];
6
7
  }
@@ -8,6 +9,7 @@ export interface AuthFormConfig<T extends object> {
8
9
  title: string;
9
10
  description: string;
10
11
  icon?: React.ReactNode;
12
+ branding?: OctaveBranding;
11
13
  rows?: AuthFormRow<T>[];
12
14
  fields?: FormFieldConfig<T>[];
13
15
  pinFieldName?: keyof T;
@@ -1 +1 @@
1
- {"version":3,"file":"authFormBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/lib/blocks/auth/authFormBuilder.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAEL,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAgB,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAI3E,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM;IAC3C,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEvB,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9B,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC/C,CAAC;IAEF,eAAe,CAAC,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;QAC3C,OAAO,CAAC,EAAE,mBAAmB,CAAC;QAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,UAAU,aAAa,CAAC,CAAC,SAAS,MAAM;IACtC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAC1B,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;CACjC;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,EAC/C,MAAM,EACN,aAAa,EACb,QAAQ,GACT,EAAE,aAAa,CAAC,CAAC,CAAC,2CAiGlB"}
1
+ {"version":3,"file":"authFormBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/lib/blocks/auth/authFormBuilder.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAEL,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAgB,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM;IAC3C,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9B,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC/C,CAAC;IAEF,eAAe,CAAC,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;QAC3C,OAAO,CAAC,EAAE,mBAAmB,CAAC;QAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,UAAU,aAAa,CAAC,CAAC,SAAS,MAAM;IACtC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAC1B,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;CACjC;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,EAC/C,MAAM,EACN,aAAa,EACb,QAAQ,GACT,EAAE,aAAa,CAAC,CAAC,CAAC,2CAiGlB"}
@@ -1,2 +1,3 @@
1
1
  export * from './authFormBuilder';
2
+ export * from './wrapper';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/blocks/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/blocks/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC"}
@@ -1,6 +1,8 @@
1
+ import { OctaveBranding } from '../../branding';
1
2
  export interface OctaveAuthWrapperProps {
2
3
  children: React.ReactNode;
3
4
  flip?: boolean;
5
+ branding?: OctaveBranding;
4
6
  }
5
7
  export declare function OctaveAuthWrapper(props: OctaveAuthWrapperProps): import("react/jsx-runtime").JSX.Element;
6
8
  //# sourceMappingURL=wrapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../../../../src/lib/blocks/auth/wrapper.tsx"],"names":[],"mappings":"AAaA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAmD9D"}
1
+ {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../../../../src/lib/blocks/auth/wrapper.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAqD9D"}
@@ -0,0 +1,15 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export interface OctaveBranding {
3
+ companyName?: string;
4
+ slogan?: string;
5
+ logo?: React.ReactNode;
6
+ }
7
+ export declare function OctaveBrandingProvider({ children, branding, }: PropsWithChildren<{
8
+ branding?: OctaveBranding;
9
+ }>): import("react/jsx-runtime").JSX.Element;
10
+ export declare function useOctaveBranding(overrides?: OctaveBranding): {
11
+ companyName: string;
12
+ slogan: string;
13
+ logo: string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | null;
14
+ };
15
+ //# sourceMappingURL=branding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../../../src/lib/branding.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,iBAAiB,EAAc,MAAM,OAAO,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAWD,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,QAAQ,GACT,EAAE,iBAAiB,CAAC;IAAE,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAE,CAAC,2CAYlD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,CAAC,EAAE,cAAc;;;;EAQ3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"nav-links.d.ts","sourceRoot":"","sources":["../../../../src/lib/layout/nav-links.tsx"],"names":[],"mappings":"AACA,OAAO,EAAoB,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAYlE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EAAE,IAAI,EACV,KAAK,EACL,IAAI,EACJ,eAAe,EACf,KAAK,EACL,WAAW,GACZ,EAAE,eAAe,2CAmFjB"}
1
+ {"version":3,"file":"nav-links.d.ts","sourceRoot":"","sources":["../../../../src/lib/layout/nav-links.tsx"],"names":[],"mappings":"AACA,OAAO,EAAoB,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAYlE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EAAE,IAAI,EACV,KAAK,EACL,IAAI,EACJ,eAAe,EACf,KAAK,EACL,WAAW,GACZ,EAAE,eAAe,2CAiFjB"}
@@ -1,5 +1,6 @@
1
1
  import { NextPage } from 'next/dist/types';
2
2
  import { LinksGroupProps } from './nav-links';
3
+ import { OctaveBranding } from '../branding';
3
4
  export type OctaveShellProps = {
4
5
  disablePadding?: boolean;
5
6
  disabled?: boolean;
@@ -8,13 +9,14 @@ export type OctaveShellProps = {
8
9
  hasBack?: boolean;
9
10
  };
10
11
  export type OctavePageProps<P = Record<string, unknown>, IP = P> = NextPage<P, IP> & OctaveShellProps;
11
- export declare function OctaveShell({ children, props, title, subTitle, logo, user, menu, }: {
12
+ export declare function OctaveShell({ children, props, title, subTitle, logo, user, menu, branding, }: {
12
13
  children: React.ReactNode;
13
14
  props: OctaveShellProps;
14
- title: string;
15
- subTitle: string;
15
+ title?: string;
16
+ subTitle?: string;
16
17
  logo?: React.ReactNode;
17
18
  menu: LinksGroupProps[];
19
+ branding?: OctaveBranding;
18
20
  user?: {
19
21
  fullName: string;
20
22
  contact: string;
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../../src/lib/layout/shell.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAc,eAAe,EAAE,MAAM,aAAa,CAAC;AAI1D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,QAAQ,CACzE,CAAC,EACD,EAAE,CACH,GACC,gBAAgB,CAAC;AAEnB,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,IAAI,GACL,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,IAAI,CAAC;KACpB,CAAC;CACH,2CAiMA"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../../src/lib/layout/shell.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAc,eAAe,EAAE,MAAM,aAAa,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,QAAQ,CACzE,CAAC,EACD,EAAE,CACH,GACC,gBAAgB,CAAC;AAEnB,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,IAAI,CAAC;KACpB,CAAC;CACH,2CAkMA"}
@@ -1,11 +1,13 @@
1
1
  import { MantineThemeOverride } from '@mantine/core';
2
2
  import type { PropsWithChildren } from 'react';
3
+ import { OctaveBranding } from './branding';
3
4
  import '@mantine/core/styles.css';
4
5
  import '@mantine/notifications/styles.css';
5
6
  export interface UIProviderProps extends PropsWithChildren {
6
7
  theme?: MantineThemeOverride;
8
+ branding?: OctaveBranding;
7
9
  }
8
- export declare function UIProvider({ children, theme }: UIProviderProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function UIProvider({ children, theme, branding }: UIProviderProps): import("react/jsx-runtime").JSX.Element;
9
11
  export type OctaveProviderProps = UIProviderProps;
10
12
  export declare function OctaveProvider(props: OctaveProviderProps): import("react/jsx-runtime").JSX.Element;
11
13
  //# sourceMappingURL=provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/lib/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,0BAA0B,CAAC;AAClC,OAAO,mCAAmC,CAAC;AAE3C,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B;AAED,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,eAAe,2CAU9D;AAED,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAElD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CAExD"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/lib/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,EAAE,cAAc,EAA0B,MAAM,YAAY,CAAC;AACpE,OAAO,0BAA0B,CAAC;AAClC,OAAO,mCAAmC,CAAC;AAE3C,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,eAAe,2CASxE;AAED,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAElD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CAExD"}
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@octave-org/ui",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "type": "module",
5
5
  "main": "./dist/index.esm.js",
6
6
  "module": "./dist/index.esm.js",
7
7
  "types": "./dist/index.d.ts",
8
+ "private": false,
8
9
  "files": [
9
10
  "dist",
10
11
  "README.md"