@fragment-build/ui 1.0.0 → 1.1.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 (166) hide show
  1. package/README.md +56 -5
  2. package/dist/components/base/Accordion.d.ts +3 -0
  3. package/dist/components/base/Accordion.js +5 -0
  4. package/dist/components/base/Accordion.js.map +1 -0
  5. package/dist/components/base/Autocomplete.d.ts +4 -0
  6. package/dist/components/base/Autocomplete.js +6 -0
  7. package/dist/components/base/Autocomplete.js.map +1 -0
  8. package/dist/components/base/Avatar.d.ts +2 -0
  9. package/dist/components/base/Avatar.js +5 -0
  10. package/dist/components/base/Avatar.js.map +1 -0
  11. package/dist/components/base/Badge.d.ts +1 -0
  12. package/dist/components/base/Badge.js +4 -0
  13. package/dist/components/base/Badge.js.map +1 -0
  14. package/dist/components/base/Breadcrumbs.d.ts +2 -0
  15. package/dist/components/base/Breadcrumbs.js +5 -0
  16. package/dist/components/base/Breadcrumbs.js.map +1 -0
  17. package/dist/components/base/Button.d.ts +1 -0
  18. package/dist/components/base/Button.js +4 -0
  19. package/dist/components/base/Button.js.map +1 -0
  20. package/dist/components/base/Card.d.ts +2 -0
  21. package/dist/components/base/Card.js +5 -0
  22. package/dist/components/base/Card.js.map +1 -0
  23. package/dist/components/base/Checkbox.d.ts +2 -0
  24. package/dist/components/base/Checkbox.js +5 -0
  25. package/dist/components/base/Checkbox.js.map +1 -0
  26. package/dist/components/base/Chip.d.ts +1 -0
  27. package/dist/components/base/Chip.js +4 -0
  28. package/dist/components/base/Chip.js.map +1 -0
  29. package/dist/components/base/CircularProgress.d.ts +1 -0
  30. package/dist/components/base/CircularProgress.js +4 -0
  31. package/dist/components/base/CircularProgress.js.map +1 -0
  32. package/dist/components/base/Code.d.ts +1 -0
  33. package/dist/components/base/Code.js +4 -0
  34. package/dist/components/base/Code.js.map +1 -0
  35. package/dist/components/base/Divider.d.ts +1 -0
  36. package/dist/components/base/Divider.js +4 -0
  37. package/dist/components/base/Divider.js.map +1 -0
  38. package/dist/components/base/Dropdown.d.ts +9 -0
  39. package/dist/components/base/Dropdown.js +8 -0
  40. package/dist/components/base/Dropdown.js.map +1 -0
  41. package/dist/components/base/Image.d.ts +1 -0
  42. package/dist/components/base/Image.js +4 -0
  43. package/dist/components/base/Image.js.map +1 -0
  44. package/dist/components/base/Input.d.ts +1 -0
  45. package/dist/components/base/Input.js +4 -0
  46. package/dist/components/base/Input.js.map +1 -0
  47. package/dist/components/base/Kbd.d.ts +1 -0
  48. package/dist/components/base/Kbd.js +4 -0
  49. package/dist/components/base/Kbd.js.map +1 -0
  50. package/dist/components/base/Link.d.ts +1 -0
  51. package/dist/components/base/Link.js +4 -0
  52. package/dist/components/base/Link.js.map +1 -0
  53. package/dist/components/base/Listbox.d.ts +4 -0
  54. package/dist/components/base/Listbox.js +6 -0
  55. package/dist/components/base/Listbox.js.map +1 -0
  56. package/dist/components/base/Modal.d.ts +5 -0
  57. package/dist/components/base/Modal.js +8 -0
  58. package/dist/components/base/Modal.js.map +1 -0
  59. package/dist/components/base/Navbar.d.ts +7 -0
  60. package/dist/components/base/Navbar.js +10 -0
  61. package/dist/components/base/Navbar.js.map +1 -0
  62. package/dist/components/base/Pagination.d.ts +3 -0
  63. package/dist/components/base/Pagination.js +6 -0
  64. package/dist/components/base/Pagination.js.map +1 -0
  65. package/dist/components/base/Popover.d.ts +3 -0
  66. package/dist/components/base/Popover.js +6 -0
  67. package/dist/components/base/Popover.js.map +1 -0
  68. package/dist/components/base/Progress.d.ts +1 -0
  69. package/dist/components/base/Progress.js +4 -0
  70. package/dist/components/base/Progress.js.map +1 -0
  71. package/dist/components/base/Radio.d.ts +2 -0
  72. package/dist/components/base/Radio.js +5 -0
  73. package/dist/components/base/Radio.js.map +1 -0
  74. package/dist/components/base/ScrollShadow.d.ts +1 -0
  75. package/dist/components/base/ScrollShadow.js +4 -0
  76. package/dist/components/base/ScrollShadow.js.map +1 -0
  77. package/dist/components/base/Select.d.ts +4 -0
  78. package/dist/components/base/Select.js +6 -0
  79. package/dist/components/base/Select.js.map +1 -0
  80. package/dist/components/base/Skeleton.d.ts +1 -0
  81. package/dist/components/base/Skeleton.js +4 -0
  82. package/dist/components/base/Skeleton.js.map +1 -0
  83. package/dist/components/base/Slider.d.ts +1 -0
  84. package/dist/components/base/Slider.js +4 -0
  85. package/dist/components/base/Slider.js.map +1 -0
  86. package/dist/components/base/Snippet.d.ts +1 -0
  87. package/dist/components/base/Snippet.js +4 -0
  88. package/dist/components/base/Snippet.js.map +1 -0
  89. package/dist/components/base/Spacer.d.ts +1 -0
  90. package/dist/components/base/Spacer.js +4 -0
  91. package/dist/components/base/Spacer.js.map +1 -0
  92. package/dist/components/base/Spinner.d.ts +1 -0
  93. package/dist/components/base/Spinner.js +4 -0
  94. package/dist/components/base/Spinner.js.map +1 -0
  95. package/dist/components/base/Switch.d.ts +1 -0
  96. package/dist/components/base/Switch.js +4 -0
  97. package/dist/components/base/Switch.js.map +1 -0
  98. package/dist/components/base/Tab.d.ts +3 -0
  99. package/dist/components/base/Tab.js +5 -0
  100. package/dist/components/base/Tab.js.map +1 -0
  101. package/dist/components/base/Table.d.ts +7 -0
  102. package/dist/components/base/Table.js +9 -0
  103. package/dist/components/base/Table.js.map +1 -0
  104. package/dist/components/base/Textarea.d.ts +1 -0
  105. package/dist/components/base/Textarea.js +4 -0
  106. package/dist/components/base/Textarea.js.map +1 -0
  107. package/dist/components/base/Tooltip.d.ts +1 -0
  108. package/dist/components/base/Tooltip.js +4 -0
  109. package/dist/components/base/Tooltip.js.map +1 -0
  110. package/dist/components/base/User.d.ts +1 -0
  111. package/dist/components/base/User.js +4 -0
  112. package/dist/components/base/User.js.map +1 -0
  113. package/dist/components/base/index.d.ts +37 -0
  114. package/dist/components/base/index.js +38 -0
  115. package/dist/components/base/index.js.map +1 -0
  116. package/dist/components/color-input/ColorInput.d.ts +2 -3
  117. package/dist/components/color-input/ColorInput.js +16 -0
  118. package/dist/components/color-input/ColorInput.js.map +1 -0
  119. package/dist/components/color-input/{ColorInput.stories.jsx → ColorInput.stories.js} +1 -0
  120. package/dist/components/color-input/ColorInput.stories.js.map +1 -0
  121. package/dist/components/color-selector/ColorSelector.d.ts +2 -3
  122. package/dist/components/color-selector/ColorSelector.js +10 -0
  123. package/dist/components/color-selector/ColorSelector.js.map +1 -0
  124. package/dist/components/color-selector/{ColorSelector.stories.jsx → ColorSelector.stories.js} +3 -1
  125. package/dist/components/color-selector/ColorSelector.stories.js.map +1 -0
  126. package/dist/components/index.d.ts +3 -0
  127. package/dist/components/index.js +4 -0
  128. package/dist/components/index.js.map +1 -0
  129. package/dist/context.d.ts +84 -0
  130. package/dist/context.js +18 -0
  131. package/dist/context.js.map +1 -0
  132. package/dist/fragments/index.d.ts +2 -0
  133. package/dist/fragments/index.js +3 -0
  134. package/dist/fragments/index.js.map +1 -0
  135. package/dist/fragments/shell/Shell.js +6 -0
  136. package/dist/fragments/shell/Shell.js.map +1 -0
  137. package/dist/fragments/shell/Shell.stories.js +129 -0
  138. package/dist/fragments/shell/Shell.stories.js.map +1 -0
  139. package/dist/fragments/sidebar/Sidebar.d.ts +2 -1
  140. package/dist/fragments/sidebar/Sidebar.js +74 -0
  141. package/dist/fragments/sidebar/Sidebar.js.map +1 -0
  142. package/dist/fragments/sidebar/{Sidebar.stories.jsx → Sidebar.stories.js} +28 -17
  143. package/dist/fragments/sidebar/Sidebar.stories.js.map +1 -0
  144. package/dist/hooks/breakpoints.js +1 -0
  145. package/dist/hooks/breakpoints.js.map +1 -0
  146. package/dist/hooks/index.d.ts +1 -0
  147. package/dist/hooks/index.js +2 -0
  148. package/dist/hooks/index.js.map +1 -0
  149. package/dist/index.d.ts +6 -4
  150. package/dist/index.js +7 -4
  151. package/dist/index.js.map +1 -0
  152. package/dist/provider.d.ts +12 -0
  153. package/dist/provider.js +17 -0
  154. package/dist/provider.js.map +1 -0
  155. package/dist/tailwind.plugin.d.ts +4 -0
  156. package/dist/tailwind.plugin.js +18 -0
  157. package/dist/tailwind.plugin.js.map +1 -0
  158. package/dist/withFragment.d.ts +3 -0
  159. package/dist/withFragment.js +17 -0
  160. package/dist/withFragment.js.map +1 -0
  161. package/package.json +22 -22
  162. package/dist/components/color-input/ColorInput.jsx +0 -26
  163. package/dist/components/color-selector/ColorSelector.jsx +0 -22
  164. package/dist/fragments/shell/Shell.jsx +0 -10
  165. package/dist/fragments/shell/Shell.stories.jsx +0 -170
  166. package/dist/fragments/sidebar/Sidebar.jsx +0 -129
@@ -0,0 +1,74 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useSmaller } from '../../hooks/breakpoints';
3
+ import { IconChevronLeft } from '@tabler/icons-react';
4
+ import { useEffect, useState } from 'react';
5
+ import { Avatar, Badge, Button, Chip, Dropdown, DropdownItem, DropdownMenu, DropdownTrigger, Listbox, ListboxItem, ListboxSection, ScrollShadow, Tooltip, User, } from '../../components/base';
6
+ const getAlignmentClasses = (align) => {
7
+ switch (align) {
8
+ case 'center':
9
+ return 'my-auto';
10
+ case 'bottom':
11
+ return 'mt-auto sticky bottom-0 bg-content1';
12
+ default:
13
+ return '';
14
+ }
15
+ };
16
+ const renderItems = (item, options) => {
17
+ switch (item.type) {
18
+ case 'navigation':
19
+ return options.layout === 'expanded' ? (_jsx(Listbox, { variant: "flat", "aria-label": "Listbox menu with sections", itemClasses: {
20
+ base: 'h-12 gap-6',
21
+ }, ...item.listboxProps, children: _jsx(ListboxSection, { title: item.label, classNames: { group: 'flex flex-col gap-1' }, children: item.navigation.map((navItem) => (_jsx(ListboxItem, { startContent: navItem.icon, endContent: typeof navItem.badgeContent === 'string' ? _jsx(Chip, { size: "sm", color: "primary", variant: navItem.badgeContent ? 'solid' : 'dot', classNames: { base: 'border-none' }, children: navItem.badgeContent }) : navItem.endContent, href: navItem.link, className: options.activeNav?.link === navItem.link ? "bg-default/40 text-default-foreground" : '', children: navItem.label }, navItem.label))) }) })) : (_jsx("nav", { className: "flex flex-col gap-1", children: item.navigation.map((navItem) => (_jsx(Tooltip, { placement: "right", content: navItem.label, children: _jsx(Button, { variant: options.activeNav?.link === navItem.link ? 'flat' : 'light', size: "lg", as: "a", href: navItem.link, isIconOnly: true, children: _jsx(Badge, { content: navItem.badgeContent, color: "primary", size: "sm", isInvisible: typeof navItem.badgeContent !== 'string', children: navItem.icon }) }) }, navItem.label))) }));
22
+ case 'user':
23
+ return (_jsxs(Dropdown, { placement: "bottom-start", classNames: { trigger: options.layout === 'expanded' ? 'justify-start px-2' : 'justify-start' }, ...item.dropdown, children: [_jsx(DropdownTrigger, { children: options.layout === 'expanded' ? (_jsx(User, { as: "button", avatarProps: item.avatar, className: "transition-transform", description: item.description, name: item.name })) : (_jsx(Avatar, { as: "button", className: "transition-transform", ...item.avatar })) }), _jsx(DropdownMenu, { "aria-label": "User Actions", color: "primary", variant: "flat", items: item.dropdownItems || [], children: (dropdownItem) => (_jsx(DropdownItem, { ...dropdownItem, children: dropdownItem.label }, dropdownItem.label)) })] }));
24
+ case 'custom':
25
+ return options.layout === 'expanded' || item.showCollapsed ? _jsx("div", { className: "px-2", children: item.render }) : null;
26
+ default:
27
+ return null;
28
+ }
29
+ };
30
+ const getActiveNav = (currentPath, items) => {
31
+ if (!currentPath)
32
+ return;
33
+ const navigations = [];
34
+ items.forEach((item) => {
35
+ if (item.type !== 'navigation')
36
+ return;
37
+ navigations.push(item.navigation);
38
+ });
39
+ const possibleMatches = navigations.flat().filter((navItem) => navItem.link.startsWith(currentPath)).sort((a, b) => b.link.length - a.link.length);
40
+ return possibleMatches.find((pMatch) => pMatch.link === currentPath) || possibleMatches[0];
41
+ };
42
+ export const Sidebar = ({ items, layout = 'expanded', autoLayout, currentPath }) => {
43
+ const isMobile = useSmaller('xl');
44
+ const [activeNav, setActiveNav] = useState(getActiveNav(currentPath, items));
45
+ useEffect(() => setActiveNav(getActiveNav(currentPath, items)), [currentPath, items]);
46
+ let renderedLayout = autoLayout ? undefined : layout;
47
+ if (autoLayout) {
48
+ if (isMobile) {
49
+ renderedLayout = 'collapsed';
50
+ }
51
+ else {
52
+ renderedLayout = 'expanded';
53
+ }
54
+ }
55
+ const [collapsed, setCollapsed] = useState(renderedLayout === 'collapsed');
56
+ useEffect(() => { if (autoLayout)
57
+ setCollapsed(isMobile); }, [isMobile, setCollapsed, autoLayout]);
58
+ const layoutStyles = collapsed ? 'w-20 opacity-0 pointer-events-none' : 'w-72';
59
+ const collapseButtonStyles = collapsed ? 'left-20 translate-x-1/2 rotate-180' : 'left-72 -translate-x-1/2';
60
+ return (_jsxs("div", { className: 'flex', children: [_jsxs("div", { className: `fixed top-0 left-0 border-r-[1px] border-default-100 flex flex-col h-screen bg-content1 gap-8 transition-all ${collapsed ? '' : 'opacity-0'}`, children: [_jsx(ScrollShadow, { hideScrollBar: true, className: `w-20 items-center flex flex-col gap-8 px-3 pt-8 overflow-y-auto flex-1`, children: items.map((item) => {
61
+ const children = item.align !== 'bottom' ? renderItems(item, { layout: 'collapsed', activeNav }) : null;
62
+ return children ? (_jsx("div", { className: getAlignmentClasses(item.align), children: children }, item.key)) : null;
63
+ }) }), _jsx("div", { className: `w-20 items-center flex flex-col gap-8 px-3 pb-8`, children: items.map((item) => {
64
+ const children = item.align === 'bottom' ? renderItems(item, { layout: 'collapsed', activeNav }) : null;
65
+ return children ? (_jsx("div", { className: getAlignmentClasses(item.align), children: children }, item.key)) : null;
66
+ }) })] }), _jsxs("div", { className: `${layoutStyles} fixed top-0 left-0 border-r-[1px] border-default-100 flex flex-col h-screen bg-content1 gap-8 overflow-hidden transition-all`, children: [_jsx(ScrollShadow, { hideScrollBar: true, className: `w-72 flex flex-col gap-8 px-3 pt-8 overflow-y-auto flex-1`, children: items.map((item) => {
67
+ const children = item.align !== 'bottom' ? renderItems(item, { layout: 'expanded', activeNav }) : null;
68
+ return children ? (_jsx("div", { className: getAlignmentClasses(item.align), children: children }, item.key)) : null;
69
+ }) }), _jsx("div", { className: `w-72 flex flex-col gap-8 px-3 pb-8`, children: items.map((item) => {
70
+ const children = item.align === 'bottom' ? renderItems(item, { layout: 'expanded', activeNav }) : null;
71
+ return children ? (_jsx("div", { className: getAlignmentClasses(item.align), children: children }, item.key)) : null;
72
+ }) })] }), _jsx("div", { className: `${layoutStyles} transition-all h-screen` }), _jsx("div", { className: `fixed top-6 transition-all ${collapseButtonStyles}`, children: _jsx(Button, { size: "sm", isIconOnly: true, radius: "full", className: "h-unit-6 w-unit-6 min-w-unit-6 bg-default-100", onClick: () => setCollapsed(!collapsed), children: _jsx(IconChevronLeft, { size: 14 }) }) })] }));
73
+ };
74
+ //# sourceMappingURL=Sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/fragments/sidebar/Sidebar.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { Button, Card, Input } from "@nextui-org/react";
2
- import { IconBox, IconBoxMultiple, IconCirclePlus, IconHome, IconMessageCircle, } from "@tabler/icons-react";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { IconBell, IconBox, IconBoxMultiple, IconCirclePlus, IconHome, IconMessageCircle, } from "@tabler/icons-react";
3
3
  import { Sidebar } from "./Sidebar";
4
+ import { Button, Card, Input } from "../../components/base";
4
5
  // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
5
6
  const meta = {
6
7
  title: "components/Sidebar",
@@ -44,7 +45,7 @@ export const Primary = {
44
45
  {
45
46
  type: "custom",
46
47
  key: "search",
47
- render: <Input label="Search..."/>,
48
+ render: _jsx(Input, { label: "Search..." }),
48
49
  },
49
50
  {
50
51
  type: "navigation",
@@ -54,15 +55,13 @@ export const Primary = {
54
55
  {
55
56
  label: "Home",
56
57
  link: "/",
57
- icon: <IconHome stroke={1.5}/>,
58
+ icon: _jsx(IconHome, { stroke: 1.5 }),
58
59
  },
59
60
  {
60
61
  label: "My Projects",
61
62
  link: "/projects",
62
- icon: <IconBoxMultiple stroke={1.5}/>,
63
- endContent: (<Button size="sm" variant="light" isIconOnly>
64
- <IconCirclePlus size={18}/>
65
- </Button>),
63
+ icon: _jsx(IconBoxMultiple, { stroke: 1.5 }),
64
+ endContent: (_jsx(Button, { size: "sm", variant: "light", isIconOnly: true, children: _jsx(IconCirclePlus, { size: 18 }) })),
66
65
  items: [
67
66
  {
68
67
  type: "navigation",
@@ -87,7 +86,14 @@ export const Primary = {
87
86
  {
88
87
  label: "Chat",
89
88
  link: "/chat",
90
- icon: <IconMessageCircle stroke={1.5}/>,
89
+ icon: _jsx(IconMessageCircle, { stroke: 1.5 }),
90
+ badgeContent: '',
91
+ },
92
+ {
93
+ label: "Notifications",
94
+ link: "/notifications",
95
+ icon: _jsx(IconBell, { stroke: 1.5 }),
96
+ badgeContent: '9+',
91
97
  },
92
98
  ],
93
99
  },
@@ -99,34 +105,39 @@ export const Primary = {
99
105
  {
100
106
  label: "Project 1",
101
107
  link: "/projects/1",
102
- icon: <IconBox stroke={1.5}/>,
108
+ icon: _jsx(IconBox, { stroke: 1.5 }),
103
109
  },
104
110
  {
105
111
  label: "Project 2",
106
112
  link: "/projects/2",
107
- icon: <IconBox stroke={1.5}/>,
113
+ icon: _jsx(IconBox, { stroke: 1.5 }),
108
114
  },
109
115
  {
110
116
  label: "Project 3",
111
117
  link: "/projects/3",
112
- icon: <IconBox stroke={1.5}/>,
118
+ icon: _jsx(IconBox, { stroke: 1.5 }),
113
119
  },
114
120
  ],
115
121
  },
116
122
  {
117
123
  type: "custom",
118
124
  key: "bottom-banner",
119
- render: (<Card radius="lg" className="border-none">
120
- <img alt="Woman listing to music" className="object-cover w-full" height={200} src="https://nextui.org/images/hero-card.jpeg" width={200}/>
121
- </Card>),
125
+ render: (_jsx(Card, { radius: "lg", className: "border-none", children: _jsx("img", { alt: "Woman listing to music", className: "object-cover w-full", height: 200, src: "https://nextui.org/images/hero-card.jpeg", width: 200 }) })),
122
126
  align: "bottom",
123
127
  },
124
128
  ],
125
129
  },
126
130
  };
127
131
  export const Collapsed = {
128
- args: Object.assign(Object.assign({}, Primary.args), { layout: "collapsed" }),
132
+ args: {
133
+ ...Primary.args,
134
+ layout: "collapsed",
135
+ },
129
136
  };
130
137
  export const Auto = {
131
- args: Object.assign(Object.assign({}, Primary.args), { autoLayout: true }),
138
+ args: {
139
+ ...Primary.args,
140
+ autoLayout: true,
141
+ },
132
142
  };
143
+ //# sourceMappingURL=Sidebar.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.stories.js","sourceRoot":"","sources":["../../../src/fragments/sidebar/Sidebar.stories.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import { BreakPointHooks, breakpointsTailwind } from '@react-hooks-library/core';
2
2
  export const { useGreater, useBetween, useSmaller } = BreakPointHooks(breakpointsTailwind);
3
+ //# sourceMappingURL=breakpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breakpoints.js","sourceRoot":"","sources":["../../src/hooks/breakpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEjF,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './breakpoints';
@@ -0,0 +1,2 @@
1
+ export * from './breakpoints';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- export * from '@nextui-org/react';
2
- export * from './components/color-input/ColorInput';
3
- export * from './fragments/shell/Shell';
4
- export * from './fragments/sidebar/Sidebar';
1
+ export * from "next-themes";
2
+ export * from './components';
3
+ export * from './fragments';
4
+ export * from './hooks';
5
+ export * from './provider';
6
+ export * from './tailwind.plugin';
package/dist/index.js CHANGED
@@ -1,4 +1,7 @@
1
- export * from '@nextui-org/react';
2
- export * from './components/color-input/ColorInput';
3
- export * from './fragments/shell/Shell';
4
- export * from './fragments/sidebar/Sidebar';
1
+ export * from "next-themes";
2
+ export * from './components';
3
+ export * from './fragments';
4
+ export * from './hooks';
5
+ export * from './provider';
6
+ export * from './tailwind.plugin';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAE5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AAExB,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import { NextUIProviderProps } from "@nextui-org/react";
3
+ import { FragmentUIContext } from "./context";
4
+ interface FragmentUIProviderProps {
5
+ children: React.ReactNode;
6
+ useNextJS?: boolean;
7
+ locale?: NextUIProviderProps['locale'];
8
+ navigate?: NextUIProviderProps['navigate'];
9
+ defaults?: FragmentUIContext['defaults'];
10
+ }
11
+ export declare const FragmentUIProvider: React.FC<FragmentUIProviderProps>;
12
+ export {};
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { NextUIProvider } from "@nextui-org/react";
3
+ import { ThemeProvider } from "next-themes";
4
+ import { useEffect, useState } from "react";
5
+ import deepMerge from "deepmerge";
6
+ import { FragmentUIContext, defaultContext } from "./context";
7
+ export const FragmentUIProvider = ({ children, useNextJS = false, defaults = {}, ...rest }) => {
8
+ const [context, setContext] = useState(defaultContext);
9
+ useEffect(() => {
10
+ setContext(deepMerge(context, { defaults }));
11
+ }, [defaults]);
12
+ const render = useNextJS
13
+ ? _jsx(ThemeProvider, { attribute: "class", defaultTheme: "dark", children: children })
14
+ : children;
15
+ return (_jsx(FragmentUIContext.Provider, { value: context, children: _jsx(NextUIProvider, { ...rest, children: render }) }));
16
+ };
17
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAuB,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAU9D,MAAM,CAAC,MAAM,kBAAkB,GAAsC,CAAC,EACpE,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,QAAQ,GAAG,EAAE,EACb,GAAG,IAAI,EACR,EAAE,EAAE;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IAC9C,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,MAAM,MAAM,GAAG,SAAS;QACtB,CAAC,CAAC,KAAC,aAAa,IAAC,SAAS,EAAC,OAAO,EAAC,YAAY,EAAC,MAAM,YAAE,QAAQ,GAAiB;QACjF,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO,CACL,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,YACxC,KAAC,cAAc,OAAK,IAAI,YAAG,MAAM,GAAkB,GACxB,CAC9B,CAAC;AACJ,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export declare const fragmentui: () => {
2
+ handler: import("tailwindcss/types/config").PluginCreator;
3
+ config?: Partial<import("tailwindcss/types/config").Config> | undefined;
4
+ };
@@ -0,0 +1,18 @@
1
+ import plugin from "tailwindcss/plugin";
2
+ export const fragmentui = () => plugin(function ({ addBase, config }) {
3
+ addBase({
4
+ 'h1': {
5
+ fontSize: config('theme.fontSize.3xl'),
6
+ fontWeight: config('theme.fontWeight.semibold'),
7
+ },
8
+ 'h2': {
9
+ fontSize: config('theme.fontSize.2xl'),
10
+ fontWeight: config('theme.fontWeight.bold'),
11
+ },
12
+ 'h3': {
13
+ fontSize: config('theme.fontSize.xl'),
14
+ fontWeight: config('theme.fontWeight.bold'),
15
+ },
16
+ });
17
+ });
18
+ //# sourceMappingURL=tailwind.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwind.plugin.js","sourceRoot":"","sources":["../src/tailwind.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAS,EAAE,OAAO,EAAE,MAAM,EAAE;IACjE,OAAO,CAAC;QACN,IAAI,EAAE;YACJ,QAAQ,EAAE,MAAM,CAAC,oBAAoB,CAAC;YACtC,UAAU,EAAE,MAAM,CAAC,2BAA2B,CAAC;SAChD;QACD,IAAI,EAAE;YACJ,QAAQ,EAAE,MAAM,CAAC,oBAAoB,CAAC;YACtC,UAAU,EAAE,MAAM,CAAC,uBAAuB,CAAC;SAC5C;QACD,IAAI,EAAE;YACJ,QAAQ,EAAE,MAAM,CAAC,mBAAmB,CAAC;YACrC,UAAU,EAAE,MAAM,CAAC,uBAAuB,CAAC;SAC5C;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { FragmentUIContext } from "./context";
3
+ export declare function withFragment<P extends React.ComponentType<any>>(Component: P, configId: keyof FragmentUIContext['defaults']): P;
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useContext } from "react";
3
+ import deepMerge from "deepmerge";
4
+ import { FragmentUIContext } from "./context";
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ export function withFragment(Component, configId) {
7
+ const ComponentWithContext = (props) => {
8
+ const context = useContext(FragmentUIContext);
9
+ return _jsx(Component, { ...deepMerge(context['defaults'][configId] || {}, props) });
10
+ };
11
+ // fix react-aria collection
12
+ if ('getCollectionNode' in Component) {
13
+ ComponentWithContext.getCollectionNode = Component.getCollectionNode;
14
+ }
15
+ return ComponentWithContext;
16
+ }
17
+ //# sourceMappingURL=withFragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withFragment.js","sourceRoot":"","sources":["../src/withFragment.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAG,UAAU,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,8DAA8D;AAC9D,MAAM,UAAU,YAAY,CAAqC,SAAY,EAAE,QAA6C;IAC1H,MAAM,oBAAoB,GAAG,CAAC,KAA8B,EAAE,EAAE;QAC9D,MAAM,OAAO,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC9C,OAAO,KAAC,SAAS,OAAK,SAAS,CAAI,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAA4B,IAAI,EAAE,EAAE,KAAK,CAA4B,GAAG,CAAA;IACzI,CAAC,CAAC;IAEF,4BAA4B;IAC5B,IAAI,mBAAmB,IAAI,SAAS,EAAE,CAAC;QACpC,oBAAyC,CAAC,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC;IAC7F,CAAC;IAED,OAAO,oBAAyB,CAAC;AACnC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fragment-build/ui",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "repository": {
@@ -9,32 +9,33 @@
9
9
  },
10
10
  "license": "Apache-2.0",
11
11
  "devDependencies": {
12
- "@storybook/addon-a11y": "8.0.0",
13
- "@storybook/addon-essentials": "8.0.0",
14
- "@storybook/addon-interactions": "8.0.0",
15
- "@storybook/addon-links": "8.0.0",
12
+ "@storybook/addon-a11y": "8.0.2",
13
+ "@storybook/addon-essentials": "8.0.2",
14
+ "@storybook/addon-interactions": "8.0.2",
15
+ "@storybook/addon-links": "8.0.2",
16
16
  "@storybook/addon-styling": "1.3.7",
17
- "@storybook/blocks": "8.0.0",
18
- "@storybook/react": "8.0.0",
19
- "@storybook/react-vite": "8.0.0",
20
- "@types/react": "18.2.65",
21
- "@types/react-dom": "18.2.21",
22
- "@typescript-eslint/eslint-plugin": "7.2.0",
23
- "@typescript-eslint/parser": "7.2.0",
17
+ "@storybook/blocks": "8.0.2",
18
+ "@storybook/react": "8.0.2",
19
+ "@storybook/react-vite": "8.0.2",
20
+ "@storybook/test": "8.0.2",
21
+ "@types/react": "18.2.67",
22
+ "@types/react-dom": "18.2.22",
23
+ "@typescript-eslint/eslint-plugin": "7.3.1",
24
+ "@typescript-eslint/parser": "7.3.1",
24
25
  "@vitejs/plugin-react": "4.2.1",
25
26
  "@vitejs/plugin-react-swc": "3.6.0",
26
- "autoprefixer": "10.4.18",
27
+ "autoprefixer": "10.4.19",
27
28
  "eslint": "8.57.0",
28
29
  "eslint-plugin-react-hooks": "4.6.0",
29
- "eslint-plugin-react-refresh": "0.4.5",
30
+ "eslint-plugin-react-refresh": "0.4.6",
30
31
  "eslint-plugin-storybook": "0.8.0",
31
- "postcss": "8.4.35",
32
+ "postcss": "8.4.38",
32
33
  "react": "18.2.0",
33
34
  "react-dom": "18.2.0",
34
- "storybook": "8.0.0",
35
- "storybook-dark-mode": "4.0.0",
36
- "typescript": "5.4.2",
37
- "vite": "5.1.6"
35
+ "storybook": "8.0.2",
36
+ "storybook-dark-mode": "4.0.1",
37
+ "typescript": "5.4.3",
38
+ "vite": "5.2.2"
38
39
  },
39
40
  "scripts": {
40
41
  "build": "tsc",
@@ -45,10 +46,9 @@
45
46
  "dependencies": {
46
47
  "@nextui-org/react": "2.2.10",
47
48
  "@react-hooks-library/core": "0.6.2",
48
- "@storybook/test": "8.0.0",
49
- "@tabler/icons-react": "3.0.1",
49
+ "@tabler/icons-react": "3.1.0",
50
50
  "framer-motion": "10.18.0",
51
- "react-color-palette": "7.1.0",
51
+ "next-themes": "0.3.0",
52
52
  "tailwindcss": "3.4.1"
53
53
  }
54
54
  }
@@ -1,26 +0,0 @@
1
- 'use client';
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- import { Avatar, Input } from '@nextui-org/react';
14
- import { useEffect, useMemo, useState } from 'react';
15
- export const ColorInput = (_a) => {
16
- var { defaultValue, label = 'Color', errorMessage = "Please enter a valid color in hex format e.g. #f3f or #ff33ff", onValueChange, isInvalid } = _a, rest = __rest(_a, ["defaultValue", "label", "errorMessage", "onValueChange", "isInvalid"]);
17
- const [value, setValue] = useState(defaultValue || '#7d7d7d');
18
- useEffect(() => onValueChange && onValueChange(value), [value, onValueChange]);
19
- const validateHexColor = (value) => value.match(/^#(?:[0-9a-fA-F]{3}){1,2}$/i);
20
- const invalid = useMemo(() => {
21
- if (value === "")
22
- return false;
23
- return validateHexColor(value) && !isInvalid ? false : true;
24
- }, [value, isInvalid]);
25
- return (<Input {...rest} label={label} type="text" value={value} onValueChange={setValue} isInvalid={invalid} errorMessage={invalid && errorMessage} endContent={(<Avatar as="button" size="sm" showFallback fallback={<input type='color' className="w-full h-full opacity-0 cursor-pointer" onChange={(e) => setValue(e.currentTarget.value)}/>} style={{ backgroundColor: value }} classNames={{ base: 'shrink-0', fallback: 'w-full h-full' }}/>)}/>);
26
- };
@@ -1,22 +0,0 @@
1
- 'use client';
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- import { Avatar } from '@nextui-org/react';
14
- import { useEffect, useState } from 'react';
15
- export const ColorSelector = (_a) => {
16
- var { values, defaultValue, onValueChange, icon } = _a, rest = __rest(_a, ["values", "defaultValue", "onValueChange", "icon"]);
17
- const [value, setValue] = useState(defaultValue && values.includes(defaultValue) ? defaultValue : values[0]);
18
- useEffect(() => onValueChange(value), [value, onValueChange]);
19
- return (<div className='flex gap-4'>
20
- {values.map((color) => (<Avatar as="button" showFallback fallback={value === color && icon ? icon : <></>} style={{ backgroundColor: color }} classNames={{ base: 'shrink-0' }} isBordered={value === color} onClick={() => setValue(color)} {...rest}/>))}
21
- </div>);
22
- };
@@ -1,10 +0,0 @@
1
- 'use client';
2
- import { Sidebar } from '../sidebar/Sidebar';
3
- export const Shell = ({ sidebar, children }) => {
4
- return (<div className={`flex min-h-screen`}>
5
- <Sidebar {...sidebar}/>
6
- <main className="flex-1 px-6 lg:px-12 xl:px-20 py-14 max-w-screen-2xl">
7
- {children}
8
- </main>
9
- </div>);
10
- };