@mich8060/chg-design-system 0.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.
- package/.github/workflows/figma-sync.yml +30 -0
- package/ARCHITECTURE_FIX.md +241 -0
- package/LICENSE +21 -0
- package/README.lib.md +103 -0
- package/README.md +177 -0
- package/figma.config.json +9 -0
- package/package.json +67 -0
- package/package.lib.json +49 -0
- package/public/data/figma-variables.json +40026 -0
- package/public/favicon.ico +0 -0
- package/public/index.html +46 -0
- package/public/logo192.png +0 -0
- package/public/logo512.png +0 -0
- package/public/manifest.json +25 -0
- package/public/robots.txt +3 -0
- package/public/styles/tokens.css +1994 -0
- package/scripts/index.js +896 -0
- package/scripts/publish-lib.js +150 -0
- package/scripts/validate.js +94 -0
- package/src/App.css +457 -0
- package/src/App.css.map +1 -0
- package/src/App.js +161 -0
- package/src/App.scss +548 -0
- package/src/App.test.js +8 -0
- package/src/assets/images/.gitkeep +0 -0
- package/src/assets/images/doctors/Avatar-1.png +0 -0
- package/src/assets/images/doctors/Avatar-10.png +0 -0
- package/src/assets/images/doctors/Avatar-11.png +0 -0
- package/src/assets/images/doctors/Avatar-12.png +0 -0
- package/src/assets/images/doctors/Avatar-13.png +0 -0
- package/src/assets/images/doctors/Avatar-14.png +0 -0
- package/src/assets/images/doctors/Avatar-15.png +0 -0
- package/src/assets/images/doctors/Avatar-16.png +0 -0
- package/src/assets/images/doctors/Avatar-17.png +0 -0
- package/src/assets/images/doctors/Avatar-18.png +0 -0
- package/src/assets/images/doctors/Avatar-19.png +0 -0
- package/src/assets/images/doctors/Avatar-2.png +0 -0
- package/src/assets/images/doctors/Avatar-20.png +0 -0
- package/src/assets/images/doctors/Avatar-21.png +0 -0
- package/src/assets/images/doctors/Avatar-3.png +0 -0
- package/src/assets/images/doctors/Avatar-4.png +0 -0
- package/src/assets/images/doctors/Avatar-5.png +0 -0
- package/src/assets/images/doctors/Avatar-6.png +0 -0
- package/src/assets/images/doctors/Avatar-7.png +0 -0
- package/src/assets/images/doctors/Avatar-8.png +0 -0
- package/src/assets/images/doctors/Avatar-9.png +0 -0
- package/src/assets/images/doctors/Avatar.png +0 -0
- package/src/assets/images/doctors/index.js +141 -0
- package/src/data/figma-variables.json +90305 -0
- package/src/index.js +20 -0
- package/src/index.scss +10 -0
- package/src/pages/AccordionDemo.jsx +206 -0
- package/src/pages/AccordionDemo.scss +34 -0
- package/src/pages/ActionMenuDemo.jsx +957 -0
- package/src/pages/ActionMenuDemo.scss +34 -0
- package/src/pages/AvatarDemo.jsx +328 -0
- package/src/pages/AvatarDemo.scss +40 -0
- package/src/pages/BadgeDemo.jsx +254 -0
- package/src/pages/BadgeDemo.scss +40 -0
- package/src/pages/BorderRadiusDemo.jsx +112 -0
- package/src/pages/BorderRadiusDemo.scss +50 -0
- package/src/pages/BrandingDemo.jsx +117 -0
- package/src/pages/BreadcrumbDemo.jsx +172 -0
- package/src/pages/ButtonDemo.jsx +708 -0
- package/src/pages/ButtonDemo.scss +34 -0
- package/src/pages/CheckboxDemo.jsx +194 -0
- package/src/pages/ChipDemo.jsx +359 -0
- package/src/pages/ChipDemo.scss +40 -0
- package/src/pages/ColorsDemo.jsx +566 -0
- package/src/pages/ColorsDemo.scss +243 -0
- package/src/pages/ComponentsUsage.jsx +401 -0
- package/src/pages/DatepickerDemo.jsx +223 -0
- package/src/pages/DividerDemo.jsx +337 -0
- package/src/pages/DotStatusDemo.jsx +223 -0
- package/src/pages/DropdownDemo.jsx +229 -0
- package/src/pages/FieldDemo.jsx +253 -0
- package/src/pages/FigmaVariablesDemo.jsx +426 -0
- package/src/pages/FigmaVariablesDemo.scss +316 -0
- package/src/pages/FileUploadDemo.jsx +186 -0
- package/src/pages/FlexDemo.jsx +144 -0
- package/src/pages/FlexDemo.scss +119 -0
- package/src/pages/FontInstallation.jsx +252 -0
- package/src/pages/FontInstallation.scss +40 -0
- package/src/pages/Home.jsx +3156 -0
- package/src/pages/IconDemo.jsx +1680 -0
- package/src/pages/ImageAspectDemo.jsx +152 -0
- package/src/pages/InputDemo.jsx +245 -0
- package/src/pages/Installation.jsx +257 -0
- package/src/pages/Installation.scss +40 -0
- package/src/pages/KeyDemo.jsx +184 -0
- package/src/pages/MenuDemo.jsx +139 -0
- package/src/pages/MicroCalendarDemo.jsx +165 -0
- package/src/pages/PaginationDemo.jsx +176 -0
- package/src/pages/PillToggleDemo.jsx +212 -0
- package/src/pages/ProgressCircleDemo.jsx +206 -0
- package/src/pages/ProgressIndicatorDemo.jsx +227 -0
- package/src/pages/RadioDemo.jsx +282 -0
- package/src/pages/ShadowsDemo.jsx +118 -0
- package/src/pages/ShadowsDemo.scss +93 -0
- package/src/pages/SliderDemo.jsx +226 -0
- package/src/pages/SpacingDemo.jsx +160 -0
- package/src/pages/SpacingDemo.scss +107 -0
- package/src/pages/StatusDemo.jsx +196 -0
- package/src/pages/StepsDemo.jsx +308 -0
- package/src/pages/TableDemo.jsx +376 -0
- package/src/pages/TabsDemo.jsx +221 -0
- package/src/pages/ToastDemo.jsx +195 -0
- package/src/pages/ToggleDemo.jsx +187 -0
- package/src/pages/TokensDemo.jsx +637 -0
- package/src/pages/TokensDemo.scss +270 -0
- package/src/pages/TokensUsage.jsx +220 -0
- package/src/pages/TooltipDemo.jsx +170 -0
- package/src/pages/TypographyDemo.jsx +229 -0
- package/src/pages/TypographyDemo.scss +105 -0
- package/src/pages/UtilitiesDemo.jsx +381 -0
- package/src/pages/UtilitiesDemo.scss +214 -0
- package/src/reportWebVitals.js +13 -0
- package/src/setupTests.js +5 -0
- package/src/styles/_typography.scss +932 -0
- package/src/styles/_utilities.scss +3635 -0
- package/src/styles/_variables.scss +887 -0
- package/src/styles/prism-custom.css +206 -0
- package/src/styles/prism-custom.css.map +1 -0
- package/src/styles/prism-custom.scss +205 -0
- package/src/styles/tokens.css +4416 -0
- package/src/styles/tokens.css.map +1 -0
- package/src/styles/tokens.scss +1456 -0
- package/src/ui/Accordion/Accordion.jsx +70 -0
- package/src/ui/Accordion/Accordion.scss +82 -0
- package/src/ui/Accordion/index.js +1 -0
- package/src/ui/ActionMenu/ActionMenu.jsx +383 -0
- package/src/ui/ActionMenu/ActionMenu.scss +198 -0
- package/src/ui/ActionMenu/index.js +1 -0
- package/src/ui/Avatar/Avatar.jsx +49 -0
- package/src/ui/Avatar/Avatar.scss +82 -0
- package/src/ui/Avatar/index.js +1 -0
- package/src/ui/Badge/Badge.jsx +64 -0
- package/src/ui/Badge/Badge.scss +84 -0
- package/src/ui/Badge/index.js +1 -0
- package/src/ui/Branding/Branding.jsx +65 -0
- package/src/ui/Branding/Branding.scss +116 -0
- package/src/ui/Branding/index.js +1 -0
- package/src/ui/Breadcrumb/Breadcrumb.jsx +162 -0
- package/src/ui/Breadcrumb/Breadcrumb.scss +46 -0
- package/src/ui/Breadcrumb/index.js +2 -0
- package/src/ui/Button/Button.figma.tsx +49 -0
- package/src/ui/Button/Button.jsx +135 -0
- package/src/ui/Button/Button.scss +188 -0
- package/src/ui/Button/index.js +1 -0
- package/src/ui/Card/Card.jsx +25 -0
- package/src/ui/Card/Card.scss +47 -0
- package/src/ui/Card/index.js +1 -0
- package/src/ui/Checkbox/Checkbox.jsx +70 -0
- package/src/ui/Checkbox/Checkbox.scss +96 -0
- package/src/ui/Checkbox/index.js +1 -0
- package/src/ui/Chip/Chip.jsx +104 -0
- package/src/ui/Chip/Chip.scss +118 -0
- package/src/ui/Chip/index.js +1 -0
- package/src/ui/CopyButton/CopyButton.jsx +102 -0
- package/src/ui/CopyButton/CopyButton.scss +56 -0
- package/src/ui/CopyButton/index.js +1 -0
- package/src/ui/Datepicker/Datepicker.jsx +326 -0
- package/src/ui/Datepicker/Datepicker.scss +187 -0
- package/src/ui/Datepicker/index.js +2 -0
- package/src/ui/Divider/Divider.jsx +89 -0
- package/src/ui/Divider/Divider.scss +112 -0
- package/src/ui/Divider/index.js +1 -0
- package/src/ui/DotStatus/DotStatus.jsx +64 -0
- package/src/ui/DotStatus/DotStatus.scss +87 -0
- package/src/ui/DotStatus/index.js +1 -0
- package/src/ui/Dropdown/Dropdown.jsx +200 -0
- package/src/ui/Dropdown/Dropdown.scss +156 -0
- package/src/ui/Dropdown/index.js +1 -0
- package/src/ui/Field/Field.jsx +89 -0
- package/src/ui/Field/Field.scss +119 -0
- package/src/ui/Field/index.js +1 -0
- package/src/ui/FileUpload/FileUpload.figma.tsx +28 -0
- package/src/ui/FileUpload/FileUpload.jsx +153 -0
- package/src/ui/FileUpload/FileUpload.scss +78 -0
- package/src/ui/FileUpload/index.js +2 -0
- package/src/ui/Flex/Flex.jsx +42 -0
- package/src/ui/Flex/Flex.scss +119 -0
- package/src/ui/Flex/index.js +1 -0
- package/src/ui/Icon/Icon.figma.tsx +22 -0
- package/src/ui/Icon/Icon.jsx +47 -0
- package/src/ui/Icon/index.js +1 -0
- package/src/ui/ImageAspect/ImageAspect.jsx +56 -0
- package/src/ui/ImageAspect/ImageAspect.scss +62 -0
- package/src/ui/ImageAspect/index.js +1 -0
- package/src/ui/Input/Input.figma.tsx +35 -0
- package/src/ui/Input/Input.jsx +68 -0
- package/src/ui/Input/Input.scss +64 -0
- package/src/ui/Input/index.js +2 -0
- package/src/ui/Key/Key.jsx +37 -0
- package/src/ui/Key/Key.scss +34 -0
- package/src/ui/Key/index.js +1 -0
- package/src/ui/Menu/Menu.jsx +389 -0
- package/src/ui/Menu/Menu.scss +382 -0
- package/src/ui/Menu/index.js +1 -0
- package/src/ui/MicroCalendar/MicroCalendar.jsx +392 -0
- package/src/ui/MicroCalendar/MicroCalendar.scss +277 -0
- package/src/ui/MicroCalendar/index.js +1 -0
- package/src/ui/Pagination/Pagination.jsx +237 -0
- package/src/ui/Pagination/Pagination.scss +182 -0
- package/src/ui/Pagination/index.js +1 -0
- package/src/ui/PillToggle/PillToggle.jsx +56 -0
- package/src/ui/PillToggle/PillToggle.scss +84 -0
- package/src/ui/PillToggle/index.js +1 -0
- package/src/ui/Playground/Playground.jsx +524 -0
- package/src/ui/Playground/Playground.scss +310 -0
- package/src/ui/Playground/index.js +2 -0
- package/src/ui/ProgressCircle/ProgressCircle.jsx +147 -0
- package/src/ui/ProgressCircle/ProgressCircle.scss +143 -0
- package/src/ui/ProgressCircle/index.js +1 -0
- package/src/ui/ProgressIndicator/ProgressIndicator.jsx +92 -0
- package/src/ui/ProgressIndicator/ProgressIndicator.scss +133 -0
- package/src/ui/ProgressIndicator/index.js +1 -0
- package/src/ui/Radio/Radio.jsx +57 -0
- package/src/ui/Radio/Radio.scss +84 -0
- package/src/ui/Radio/index.js +1 -0
- package/src/ui/Slider/Slider.jsx +283 -0
- package/src/ui/Slider/Slider.scss +156 -0
- package/src/ui/Slider/index.js +1 -0
- package/src/ui/Status/Status.jsx +66 -0
- package/src/ui/Status/Status.scss +90 -0
- package/src/ui/Status/index.js +1 -0
- package/src/ui/Steps/Steps.jsx +201 -0
- package/src/ui/Steps/Steps.scss +240 -0
- package/src/ui/Steps/index.js +1 -0
- package/src/ui/Table/Table.jsx +143 -0
- package/src/ui/Table/Table.scss +90 -0
- package/src/ui/Table/index.js +1 -0
- package/src/ui/Tabs/TabItem.jsx +86 -0
- package/src/ui/Tabs/Tabs.figma.tsx +30 -0
- package/src/ui/Tabs/Tabs.jsx +318 -0
- package/src/ui/Tabs/Tabs.scss +164 -0
- package/src/ui/Tabs/Untitled +1 -0
- package/src/ui/Tabs/index.js +3 -0
- package/src/ui/Tag/Tag.figma.tsx +29 -0
- package/src/ui/Tag/Tag.jsx +93 -0
- package/src/ui/Tag/Tag.scss +229 -0
- package/src/ui/Tag/index.js +2 -0
- package/src/ui/Textarea/Textarea.figma.tsx +35 -0
- package/src/ui/Textarea/Textarea.jsx +68 -0
- package/src/ui/Textarea/Textarea.scss +69 -0
- package/src/ui/Textarea/index.js +2 -0
- package/src/ui/Toast/Toast.jsx +75 -0
- package/src/ui/Toast/Toast.scss +132 -0
- package/src/ui/Toast/index.js +2 -0
- package/src/ui/Toggle/Toggle.jsx +73 -0
- package/src/ui/Toggle/Toggle.scss +139 -0
- package/src/ui/Toggle/index.js +1 -0
- package/src/ui/Tooltip/Tooltip.figma.tsx +24 -0
- package/src/ui/Tooltip/Tooltip.jsx +123 -0
- package/src/ui/Tooltip/Tooltip.scss +80 -0
- package/src/ui/Tooltip/index.js +2 -0
- package/src/ui/index.js +63 -0
- package/src/utils/formatDate.js +27 -0
- package/src/utils/headerVariants.js +69 -0
- package/vite.config.lib.js +55 -0
package/src/ui/index.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UDS Component Library
|
|
3
|
+
*
|
|
4
|
+
* A comprehensive React component library built with design tokens.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* import { Button, Chip, Avatar } from "@yourorg/uds-components";
|
|
8
|
+
* import "@yourorg/uds-components/dist/styles.css";
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// Layout & Structure
|
|
12
|
+
export { default as Accordion, AccordionItem } from "./Accordion";
|
|
13
|
+
export { default as Card } from "./Card";
|
|
14
|
+
export { default as Divider } from "./Divider";
|
|
15
|
+
export { default as Flex } from "./Flex";
|
|
16
|
+
export { default as ImageAspect } from "./ImageAspect";
|
|
17
|
+
export { default as Steps } from "./Steps";
|
|
18
|
+
export { default as Table } from "./Table";
|
|
19
|
+
export { default as Tabs, TabItem } from "./Tabs";
|
|
20
|
+
|
|
21
|
+
// Navigation
|
|
22
|
+
export { default as ActionMenu } from "./ActionMenu";
|
|
23
|
+
export { default as Breadcrumb } from "./Breadcrumb";
|
|
24
|
+
export { default as Dropdown } from "./Dropdown";
|
|
25
|
+
export { default as Menu } from "./Menu";
|
|
26
|
+
export { default as Pagination } from "./Pagination";
|
|
27
|
+
|
|
28
|
+
// Form Controls
|
|
29
|
+
export { default as Button } from "./Button";
|
|
30
|
+
export { default as Checkbox } from "./Checkbox";
|
|
31
|
+
export { default as Chip } from "./Chip";
|
|
32
|
+
export { default as Datepicker } from "./Datepicker";
|
|
33
|
+
export { default as Field } from "./Field";
|
|
34
|
+
export { default as FileUpload } from "./FileUpload";
|
|
35
|
+
export { default as Input } from "./Input";
|
|
36
|
+
export { default as PillToggle } from "./PillToggle";
|
|
37
|
+
export { default as Radio } from "./Radio";
|
|
38
|
+
export { default as Slider } from "./Slider";
|
|
39
|
+
export { default as Textarea } from "./Textarea";
|
|
40
|
+
export { default as Toggle } from "./Toggle";
|
|
41
|
+
|
|
42
|
+
// Data Display
|
|
43
|
+
export { default as Avatar } from "./Avatar";
|
|
44
|
+
export { default as Badge } from "./Badge";
|
|
45
|
+
export { default as DotStatus } from "./DotStatus";
|
|
46
|
+
export { default as Icon } from "./Icon";
|
|
47
|
+
export { default as Key } from "./Key";
|
|
48
|
+
export { default as ProgressCircle } from "./ProgressCircle";
|
|
49
|
+
export { default as ProgressIndicator } from "./ProgressIndicator";
|
|
50
|
+
export { default as Status } from "./Status";
|
|
51
|
+
export { default as Tag } from "./Tag";
|
|
52
|
+
|
|
53
|
+
// Feedback
|
|
54
|
+
export { default as Toast } from "./Toast";
|
|
55
|
+
export { default as Tooltip } from "./Tooltip";
|
|
56
|
+
|
|
57
|
+
// Branding
|
|
58
|
+
export { default as Branding } from "./Branding";
|
|
59
|
+
|
|
60
|
+
// Utilities
|
|
61
|
+
export { default as CopyButton } from "./CopyButton";
|
|
62
|
+
export { default as MicroCalendar } from "./MicroCalendar";
|
|
63
|
+
export { default as Playground } from "./Playground";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format date as "Month Day, Year" (e.g., "March 11, 2025")
|
|
3
|
+
* @param {Date} date - Date object to format (defaults to today)
|
|
4
|
+
* @returns {string} Formatted date string
|
|
5
|
+
*/
|
|
6
|
+
export function formatLastUpdated(date = new Date()) {
|
|
7
|
+
const months = [
|
|
8
|
+
"January",
|
|
9
|
+
"February",
|
|
10
|
+
"March",
|
|
11
|
+
"April",
|
|
12
|
+
"May",
|
|
13
|
+
"June",
|
|
14
|
+
"July",
|
|
15
|
+
"August",
|
|
16
|
+
"September",
|
|
17
|
+
"October",
|
|
18
|
+
"November",
|
|
19
|
+
"December",
|
|
20
|
+
];
|
|
21
|
+
|
|
22
|
+
const month = months[date.getMonth()];
|
|
23
|
+
const day = date.getDate();
|
|
24
|
+
const year = date.getFullYear();
|
|
25
|
+
|
|
26
|
+
return `${month} ${day}, ${year}`;
|
|
27
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility to assign random geometric shapes to headers
|
|
3
|
+
* Each page gets unique shapes positioned around the edges based on the Figma design
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Generate unique shapes data for a given pathname
|
|
8
|
+
* Returns an object with shapes to render
|
|
9
|
+
*/
|
|
10
|
+
export function getHeaderShapes(pathname) {
|
|
11
|
+
if (!pathname || pathname === "/") {
|
|
12
|
+
return generateShapes(0);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Simple hash function to convert pathname to a number
|
|
16
|
+
let hash = 0;
|
|
17
|
+
for (let i = 0; i < pathname.length; i++) {
|
|
18
|
+
const char = pathname.charCodeAt(i);
|
|
19
|
+
hash = (hash << 5) - hash + char;
|
|
20
|
+
hash = hash & hash; // Convert to 32-bit integer
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return generateShapes(Math.abs(hash));
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function generateShapes(seed) {
|
|
27
|
+
// Use seed to generate consistent but varied shapes
|
|
28
|
+
const shapes = [];
|
|
29
|
+
const colors = [
|
|
30
|
+
"#00D4FF",
|
|
31
|
+
"#3B82F6",
|
|
32
|
+
"#06B6D4",
|
|
33
|
+
"#8B5CF6",
|
|
34
|
+
"#6366F1",
|
|
35
|
+
"#EC4899",
|
|
36
|
+
"#F472B6",
|
|
37
|
+
"#DB2777",
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
// Generate circles
|
|
41
|
+
for (let i = 0; i < 4; i++) {
|
|
42
|
+
const x = (seed + i * 23) % 95;
|
|
43
|
+
const y = (seed + i * 37) % 90;
|
|
44
|
+
const size = 6 + ((seed + i * 7) % 8);
|
|
45
|
+
const color = colors[(seed + i * 3) % colors.length];
|
|
46
|
+
shapes.push({ type: "circle", x, y, size, color });
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Generate triangles
|
|
50
|
+
for (let i = 0; i < 5; i++) {
|
|
51
|
+
const x = (seed + i * 19) % 95;
|
|
52
|
+
const y = (seed + i * 41) % 90;
|
|
53
|
+
const size = 5 + ((seed + i * 11) % 6);
|
|
54
|
+
const color = colors[(seed + i * 5) % colors.length];
|
|
55
|
+
shapes.push({ type: "triangle", x, y, size, color });
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Generate lines (dashes)
|
|
59
|
+
for (let i = 0; i < 6; i++) {
|
|
60
|
+
const x = (seed + i * 31) % 95;
|
|
61
|
+
const y = (seed + i * 17) % 90;
|
|
62
|
+
const length = 8 + ((seed + i * 13) % 10);
|
|
63
|
+
const angle = (seed + i * 29) % 360;
|
|
64
|
+
const color = colors[(seed + i * 7) % colors.length];
|
|
65
|
+
shapes.push({ type: "line", x, y, length, angle, color });
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return shapes;
|
|
69
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { defineConfig } from "vite";
|
|
2
|
+
import react from "@vitejs/plugin-react";
|
|
3
|
+
import { resolve } from "path";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Vite configuration for building the component library
|
|
7
|
+
*
|
|
8
|
+
* Run with: npm run build:lib
|
|
9
|
+
*
|
|
10
|
+
* This creates:
|
|
11
|
+
* - dist/uds-components.es.js (ES modules)
|
|
12
|
+
* - dist/uds-components.umd.js (UMD for script tags)
|
|
13
|
+
* - dist/style.css (all component styles bundled)
|
|
14
|
+
*/
|
|
15
|
+
export default defineConfig({
|
|
16
|
+
plugins: [react()],
|
|
17
|
+
build: {
|
|
18
|
+
outDir: "dist",
|
|
19
|
+
lib: {
|
|
20
|
+
entry: resolve(__dirname, "src/ui/index.js"),
|
|
21
|
+
name: "UDSComponents",
|
|
22
|
+
fileName: (format) => `uds-components.${format}.js`,
|
|
23
|
+
},
|
|
24
|
+
rollupOptions: {
|
|
25
|
+
// Externalize deps that shouldn't be bundled
|
|
26
|
+
external: ["react", "react-dom", "react-router-dom"],
|
|
27
|
+
output: {
|
|
28
|
+
// Global variables for UMD build
|
|
29
|
+
globals: {
|
|
30
|
+
react: "React",
|
|
31
|
+
"react-dom": "ReactDOM",
|
|
32
|
+
"react-router-dom": "ReactRouterDOM",
|
|
33
|
+
},
|
|
34
|
+
// Preserve component folder structure for CSS
|
|
35
|
+
assetFileNames: (assetInfo) => {
|
|
36
|
+
if (assetInfo.name === "style.css") return "styles.css";
|
|
37
|
+
return assetInfo.name;
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
// Generate sourcemaps for debugging
|
|
42
|
+
sourcemap: true,
|
|
43
|
+
// Don't minify for better debugging (set to true for production)
|
|
44
|
+
minify: false,
|
|
45
|
+
},
|
|
46
|
+
// Resolve SCSS imports
|
|
47
|
+
css: {
|
|
48
|
+
preprocessorOptions: {
|
|
49
|
+
scss: {
|
|
50
|
+
// Use modern Sass API
|
|
51
|
+
api: "modern-compiler",
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
});
|