@mich8060/unified-design-system 0.1.10
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/LICENSE +21 -0
- package/README.lib.md +103 -0
- package/README.md +265 -0
- package/dist/LICENSE +21 -0
- package/dist/README.md +103 -0
- package/dist/package.json +49 -0
- package/dist/styles.css +20544 -0
- package/dist/uds-components.es.js +67031 -0
- package/dist/uds-components.es.js.map +1 -0
- package/dist/uds-components.umd.js +67048 -0
- package/dist/uds-components.umd.js.map +1 -0
- package/package.json +158 -0
- package/src/styles/_typography.scss +932 -0
- package/src/styles/_utilities.scss +3738 -0
- package/src/styles/_variables.scss +620 -0
- package/src/styles/prism-custom.css +204 -0
- package/src/styles/prism-custom.scss +205 -0
- package/src/styles/tokens.css +1463 -0
- package/src/styles/tokens.scss +1116 -0
- package/src/ui/Accordion/Accordion.ai.md +69 -0
- package/src/ui/Accordion/Accordion.scss +87 -0
- package/src/ui/Accordion/Accordion.spec.ts +25 -0
- package/src/ui/Accordion/Accordion.stories.tsx +46 -0
- package/src/ui/Accordion/Accordion.test.tsx +54 -0
- package/src/ui/Accordion/Accordion.tsx +73 -0
- package/src/ui/Accordion/Accordion.types.ts +15 -0
- package/src/ui/Accordion/index.js +1 -0
- package/src/ui/ActionMenu/ActionMenu.ai.md +106 -0
- package/src/ui/ActionMenu/ActionMenu.jsx +437 -0
- package/src/ui/ActionMenu/ActionMenu.scss +252 -0
- package/src/ui/ActionMenu/ActionMenu.spec.ts +12 -0
- package/src/ui/ActionMenu/ActionMenu.stories.jsx +14 -0
- package/src/ui/ActionMenu/ActionMenu.stories.tsx +124 -0
- package/src/ui/ActionMenu/ActionMenu.test.tsx +1 -0
- package/src/ui/ActionMenu/ActionMenu.tsx +6 -0
- package/src/ui/ActionMenu/ActionMenu.types.ts +3 -0
- package/src/ui/ActionMenu/index.js +1 -0
- package/src/ui/Avatar/Avatar.ai.md +54 -0
- package/src/ui/Avatar/Avatar.jsx +49 -0
- package/src/ui/Avatar/Avatar.scss +87 -0
- package/src/ui/Avatar/Avatar.spec.ts +12 -0
- package/src/ui/Avatar/Avatar.stories.jsx +14 -0
- package/src/ui/Avatar/Avatar.stories.tsx +14 -0
- package/src/ui/Avatar/Avatar.test.tsx +1 -0
- package/src/ui/Avatar/Avatar.tsx +6 -0
- package/src/ui/Avatar/Avatar.types.ts +3 -0
- package/src/ui/Avatar/index.js +1 -0
- package/src/ui/Badge/Badge.ai.md +37 -0
- package/src/ui/Badge/Badge.jsx +64 -0
- package/src/ui/Badge/Badge.scss +84 -0
- package/src/ui/Badge/Badge.spec.ts +12 -0
- package/src/ui/Badge/Badge.stories.jsx +14 -0
- package/src/ui/Badge/Badge.stories.tsx +14 -0
- package/src/ui/Badge/Badge.test.tsx +1 -0
- package/src/ui/Badge/Badge.tsx +6 -0
- package/src/ui/Badge/Badge.types.ts +3 -0
- package/src/ui/Badge/index.js +1 -0
- package/src/ui/Branding/Branding.ai.md +81 -0
- package/src/ui/Branding/Branding.jsx +127 -0
- package/src/ui/Branding/Branding.scss +57 -0
- package/src/ui/Branding/Branding.spec.ts +12 -0
- package/src/ui/Branding/Branding.stories.jsx +14 -0
- package/src/ui/Branding/Branding.stories.tsx +14 -0
- package/src/ui/Branding/Branding.test.tsx +1 -0
- package/src/ui/Branding/Branding.tsx +6 -0
- package/src/ui/Branding/Branding.types.ts +3 -0
- package/src/ui/Branding/index.js +1 -0
- package/src/ui/Breadcrumb/Breadcrumb.ai.md +50 -0
- package/src/ui/Breadcrumb/Breadcrumb.jsx +167 -0
- package/src/ui/Breadcrumb/Breadcrumb.scss +46 -0
- package/src/ui/Breadcrumb/Breadcrumb.spec.ts +12 -0
- package/src/ui/Breadcrumb/Breadcrumb.stories.jsx +26 -0
- package/src/ui/Breadcrumb/Breadcrumb.stories.tsx +14 -0
- package/src/ui/Breadcrumb/Breadcrumb.test.tsx +1 -0
- package/src/ui/Breadcrumb/Breadcrumb.tsx +6 -0
- package/src/ui/Breadcrumb/Breadcrumb.types.ts +3 -0
- package/src/ui/Breadcrumb/index.js +2 -0
- package/src/ui/Button/Button.ai.md +122 -0
- package/src/ui/Button/Button.figma.tsx +49 -0
- package/src/ui/Button/Button.scss +188 -0
- package/src/ui/Button/Button.spec.ts +52 -0
- package/src/ui/Button/Button.stories.tsx +199 -0
- package/src/ui/Button/Button.test.tsx +85 -0
- package/src/ui/Button/Button.tsx +131 -0
- package/src/ui/Button/Button.types.ts +32 -0
- package/src/ui/Button/index.js +1 -0
- package/src/ui/Calendar/Calendar.ai.md +151 -0
- package/src/ui/Calendar/Calendar.jsx +504 -0
- package/src/ui/Calendar/Calendar.scss +451 -0
- package/src/ui/Calendar/Calendar.spec.ts +12 -0
- package/src/ui/Calendar/Calendar.stories.jsx +14 -0
- package/src/ui/Calendar/Calendar.stories.tsx +14 -0
- package/src/ui/Calendar/Calendar.test.tsx +1 -0
- package/src/ui/Calendar/Calendar.tsx +6 -0
- package/src/ui/Calendar/Calendar.types.ts +3 -0
- package/src/ui/Calendar/index.js +1 -0
- package/src/ui/Card/Card.ai.md +41 -0
- package/src/ui/Card/Card.jsx +25 -0
- package/src/ui/Card/Card.scss +47 -0
- package/src/ui/Card/Card.spec.ts +12 -0
- package/src/ui/Card/Card.stories.jsx +28 -0
- package/src/ui/Card/Card.stories.tsx +14 -0
- package/src/ui/Card/Card.test.tsx +1 -0
- package/src/ui/Card/Card.tsx +6 -0
- package/src/ui/Card/Card.types.ts +3 -0
- package/src/ui/Card/index.js +1 -0
- package/src/ui/Checkbox/Checkbox.ai.md +50 -0
- package/src/ui/Checkbox/Checkbox.jsx +73 -0
- package/src/ui/Checkbox/Checkbox.scss +115 -0
- package/src/ui/Checkbox/Checkbox.spec.ts +12 -0
- package/src/ui/Checkbox/Checkbox.stories.jsx +14 -0
- package/src/ui/Checkbox/Checkbox.stories.tsx +14 -0
- package/src/ui/Checkbox/Checkbox.test.tsx +1 -0
- package/src/ui/Checkbox/Checkbox.tsx +6 -0
- package/src/ui/Checkbox/Checkbox.types.ts +3 -0
- package/src/ui/Checkbox/index.js +1 -0
- package/src/ui/Chip/Chip.ai.md +43 -0
- package/src/ui/Chip/Chip.jsx +102 -0
- package/src/ui/Chip/Chip.scss +118 -0
- package/src/ui/Chip/Chip.spec.ts +12 -0
- package/src/ui/Chip/Chip.stories.jsx +14 -0
- package/src/ui/Chip/Chip.stories.tsx +14 -0
- package/src/ui/Chip/Chip.test.tsx +1 -0
- package/src/ui/Chip/Chip.tsx +6 -0
- package/src/ui/Chip/Chip.types.ts +3 -0
- package/src/ui/Chip/index.js +1 -0
- package/src/ui/Datepicker/Datepicker.ai.md +45 -0
- package/src/ui/Datepicker/Datepicker.jsx +330 -0
- package/src/ui/Datepicker/Datepicker.scss +206 -0
- package/src/ui/Datepicker/Datepicker.spec.ts +12 -0
- package/src/ui/Datepicker/Datepicker.stories.jsx +14 -0
- package/src/ui/Datepicker/Datepicker.stories.tsx +14 -0
- package/src/ui/Datepicker/Datepicker.test.tsx +1 -0
- package/src/ui/Datepicker/Datepicker.tsx +6 -0
- package/src/ui/Datepicker/Datepicker.types.ts +3 -0
- package/src/ui/Datepicker/index.js +2 -0
- package/src/ui/Divider/Divider.ai.md +34 -0
- package/src/ui/Divider/Divider.jsx +89 -0
- package/src/ui/Divider/Divider.scss +116 -0
- package/src/ui/Divider/Divider.spec.ts +12 -0
- package/src/ui/Divider/Divider.stories.jsx +14 -0
- package/src/ui/Divider/Divider.stories.tsx +14 -0
- package/src/ui/Divider/Divider.test.tsx +1 -0
- package/src/ui/Divider/Divider.tsx +6 -0
- package/src/ui/Divider/Divider.types.ts +3 -0
- package/src/ui/Divider/index.js +1 -0
- package/src/ui/DotStatus/DotStatus.ai.md +36 -0
- package/src/ui/DotStatus/DotStatus.jsx +64 -0
- package/src/ui/DotStatus/DotStatus.scss +87 -0
- package/src/ui/DotStatus/DotStatus.spec.ts +12 -0
- package/src/ui/DotStatus/DotStatus.stories.jsx +14 -0
- package/src/ui/DotStatus/DotStatus.stories.tsx +14 -0
- package/src/ui/DotStatus/DotStatus.test.tsx +1 -0
- package/src/ui/DotStatus/DotStatus.tsx +6 -0
- package/src/ui/DotStatus/DotStatus.types.ts +3 -0
- package/src/ui/DotStatus/index.js +1 -0
- package/src/ui/Dropdown/Dropdown.ai.md +118 -0
- package/src/ui/Dropdown/Dropdown.scss +129 -0
- package/src/ui/Dropdown/Dropdown.spec.ts +54 -0
- package/src/ui/Dropdown/Dropdown.stories.tsx +59 -0
- package/src/ui/Dropdown/Dropdown.test.tsx +37 -0
- package/src/ui/Dropdown/Dropdown.tsx +119 -0
- package/src/ui/Dropdown/Dropdown.types.ts +25 -0
- package/src/ui/Dropdown/index.js +1 -0
- package/src/ui/EventCard/EventCard.ai.md +101 -0
- package/src/ui/EventCard/EventCard.jsx +92 -0
- package/src/ui/EventCard/EventCard.scss +186 -0
- package/src/ui/EventCard/EventCard.spec.ts +12 -0
- package/src/ui/EventCard/EventCard.stories.jsx +14 -0
- package/src/ui/EventCard/EventCard.stories.tsx +14 -0
- package/src/ui/EventCard/EventCard.test.tsx +1 -0
- package/src/ui/EventCard/EventCard.tsx +6 -0
- package/src/ui/EventCard/EventCard.types.ts +3 -0
- package/src/ui/EventCard/index.js +1 -0
- package/src/ui/Field/Field.ai.md +69 -0
- package/src/ui/Field/Field.jsx +89 -0
- package/src/ui/Field/Field.scss +76 -0
- package/src/ui/Field/Field.spec.ts +12 -0
- package/src/ui/Field/Field.stories.jsx +14 -0
- package/src/ui/Field/Field.stories.tsx +14 -0
- package/src/ui/Field/Field.test.tsx +1 -0
- package/src/ui/Field/Field.tsx +6 -0
- package/src/ui/Field/Field.types.ts +3 -0
- package/src/ui/Field/index.js +1 -0
- package/src/ui/FileUpload/FileUpload.ai.md +38 -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/FileUpload.spec.ts +12 -0
- package/src/ui/FileUpload/FileUpload.stories.jsx +14 -0
- package/src/ui/FileUpload/FileUpload.stories.tsx +14 -0
- package/src/ui/FileUpload/FileUpload.test.tsx +1 -0
- package/src/ui/FileUpload/FileUpload.tsx +6 -0
- package/src/ui/FileUpload/FileUpload.types.ts +3 -0
- package/src/ui/FileUpload/index.js +2 -0
- package/src/ui/Flex/Flex.ai.md +130 -0
- package/src/ui/Flex/Flex.jsx +53 -0
- package/src/ui/Flex/Flex.scss +119 -0
- package/src/ui/Flex/Flex.spec.ts +12 -0
- package/src/ui/Flex/Flex.stories.jsx +14 -0
- package/src/ui/Flex/Flex.stories.tsx +14 -0
- package/src/ui/Flex/Flex.test.tsx +1 -0
- package/src/ui/Flex/Flex.tsx +6 -0
- package/src/ui/Flex/Flex.types.ts +3 -0
- package/src/ui/Flex/index.js +1 -0
- package/src/ui/Icon/Icon.ai.md +46 -0
- package/src/ui/Icon/Icon.figma.tsx +22 -0
- package/src/ui/Icon/Icon.jsx +47 -0
- package/src/ui/Icon/Icon.scss +1 -0
- package/src/ui/Icon/Icon.spec.ts +12 -0
- package/src/ui/Icon/Icon.stories.jsx +14 -0
- package/src/ui/Icon/Icon.stories.tsx +14 -0
- package/src/ui/Icon/Icon.test.tsx +1 -0
- package/src/ui/Icon/Icon.tsx +6 -0
- package/src/ui/Icon/Icon.types.ts +3 -0
- package/src/ui/Icon/index.js +1 -0
- package/src/ui/ImageAspect/ImageAspect.ai.md +37 -0
- package/src/ui/ImageAspect/ImageAspect.jsx +56 -0
- package/src/ui/ImageAspect/ImageAspect.scss +62 -0
- package/src/ui/ImageAspect/ImageAspect.spec.ts +12 -0
- package/src/ui/ImageAspect/ImageAspect.stories.jsx +14 -0
- package/src/ui/ImageAspect/ImageAspect.stories.tsx +14 -0
- package/src/ui/ImageAspect/ImageAspect.test.tsx +1 -0
- package/src/ui/ImageAspect/ImageAspect.tsx +6 -0
- package/src/ui/ImageAspect/ImageAspect.types.ts +3 -0
- package/src/ui/ImageAspect/index.js +1 -0
- package/src/ui/Input/Input.ai.md +89 -0
- package/src/ui/Input/Input.figma.tsx +35 -0
- package/src/ui/Input/Input.scss +126 -0
- package/src/ui/Input/Input.spec.ts +54 -0
- package/src/ui/Input/Input.stories.tsx +72 -0
- package/src/ui/Input/Input.test.tsx +70 -0
- package/src/ui/Input/Input.tsx +91 -0
- package/src/ui/Input/Input.types.ts +22 -0
- package/src/ui/Input/index.js +2 -0
- package/src/ui/Key/Key.ai.md +31 -0
- package/src/ui/Key/Key.jsx +37 -0
- package/src/ui/Key/Key.scss +31 -0
- package/src/ui/Key/Key.spec.ts +12 -0
- package/src/ui/Key/Key.stories.jsx +14 -0
- package/src/ui/Key/Key.stories.tsx +14 -0
- package/src/ui/Key/Key.test.tsx +1 -0
- package/src/ui/Key/Key.tsx +6 -0
- package/src/ui/Key/Key.types.ts +3 -0
- package/src/ui/Key/index.js +1 -0
- package/src/ui/Menu/Menu.jsx +232 -0
- package/src/ui/Menu/Menu.scss +370 -0
- package/src/ui/Menu/Menu.spec.ts +12 -0
- package/src/ui/Menu/Menu.stories.jsx +41 -0
- package/src/ui/Menu/Menu.stories.tsx +14 -0
- package/src/ui/Menu/Menu.test.tsx +1 -0
- package/src/ui/Menu/Menu.tsx +6 -0
- package/src/ui/Menu/Menu.types.ts +3 -0
- package/src/ui/Menu/index.js +1 -0
- package/src/ui/MicroCalendar/MicroCalendar.ai.md +35 -0
- package/src/ui/MicroCalendar/MicroCalendar.jsx +393 -0
- package/src/ui/MicroCalendar/MicroCalendar.scss +289 -0
- package/src/ui/MicroCalendar/MicroCalendar.spec.ts +12 -0
- package/src/ui/MicroCalendar/MicroCalendar.stories.jsx +14 -0
- package/src/ui/MicroCalendar/MicroCalendar.stories.tsx +14 -0
- package/src/ui/MicroCalendar/MicroCalendar.test.tsx +1 -0
- package/src/ui/MicroCalendar/MicroCalendar.tsx +6 -0
- package/src/ui/MicroCalendar/MicroCalendar.types.ts +3 -0
- package/src/ui/MicroCalendar/index.js +1 -0
- package/src/ui/Modal/Modal.ai.md +150 -0
- package/src/ui/Modal/Modal.jsx +173 -0
- package/src/ui/Modal/Modal.scss +179 -0
- package/src/ui/Modal/Modal.spec.ts +12 -0
- package/src/ui/Modal/Modal.stories.jsx +14 -0
- package/src/ui/Modal/Modal.stories.tsx +14 -0
- package/src/ui/Modal/Modal.test.tsx +1 -0
- package/src/ui/Modal/Modal.tsx +6 -0
- package/src/ui/Modal/Modal.types.ts +3 -0
- package/src/ui/Modal/index.js +1 -0
- package/src/ui/Pagination/Pagination.ai.md +30 -0
- package/src/ui/Pagination/Pagination.jsx +237 -0
- package/src/ui/Pagination/Pagination.scss +182 -0
- package/src/ui/Pagination/Pagination.spec.ts +12 -0
- package/src/ui/Pagination/Pagination.stories.jsx +14 -0
- package/src/ui/Pagination/Pagination.stories.tsx +14 -0
- package/src/ui/Pagination/Pagination.test.tsx +1 -0
- package/src/ui/Pagination/Pagination.tsx +6 -0
- package/src/ui/Pagination/Pagination.types.ts +3 -0
- package/src/ui/Pagination/index.js +1 -0
- package/src/ui/PillToggle/PillToggle.ai.md +44 -0
- package/src/ui/PillToggle/PillToggle.jsx +56 -0
- package/src/ui/PillToggle/PillToggle.scss +84 -0
- package/src/ui/PillToggle/PillToggle.spec.ts +12 -0
- package/src/ui/PillToggle/PillToggle.stories.jsx +14 -0
- package/src/ui/PillToggle/PillToggle.stories.tsx +14 -0
- package/src/ui/PillToggle/PillToggle.test.tsx +1 -0
- package/src/ui/PillToggle/PillToggle.tsx +6 -0
- package/src/ui/PillToggle/PillToggle.types.ts +3 -0
- package/src/ui/PillToggle/index.js +1 -0
- package/src/ui/Playground/Playground.ai.md +96 -0
- package/src/ui/Playground/Playground.jsx +524 -0
- package/src/ui/Playground/Playground.scss +310 -0
- package/src/ui/Playground/Playground.spec.ts +12 -0
- package/src/ui/Playground/Playground.stories.jsx +14 -0
- package/src/ui/Playground/Playground.stories.tsx +14 -0
- package/src/ui/Playground/Playground.test.tsx +1 -0
- package/src/ui/Playground/Playground.tsx +6 -0
- package/src/ui/Playground/Playground.types.ts +3 -0
- package/src/ui/Playground/index.js +2 -0
- package/src/ui/ProgressCircle/ProgressCircle.ai.md +36 -0
- package/src/ui/ProgressCircle/ProgressCircle.jsx +147 -0
- package/src/ui/ProgressCircle/ProgressCircle.scss +143 -0
- package/src/ui/ProgressCircle/ProgressCircle.spec.ts +12 -0
- package/src/ui/ProgressCircle/ProgressCircle.stories.jsx +14 -0
- package/src/ui/ProgressCircle/ProgressCircle.stories.tsx +14 -0
- package/src/ui/ProgressCircle/ProgressCircle.test.tsx +1 -0
- package/src/ui/ProgressCircle/ProgressCircle.tsx +6 -0
- package/src/ui/ProgressCircle/ProgressCircle.types.ts +3 -0
- package/src/ui/ProgressCircle/index.js +1 -0
- package/src/ui/ProgressIndicator/ProgressIndicator.ai.md +27 -0
- package/src/ui/ProgressIndicator/ProgressIndicator.jsx +92 -0
- package/src/ui/ProgressIndicator/ProgressIndicator.scss +133 -0
- package/src/ui/ProgressIndicator/ProgressIndicator.spec.ts +12 -0
- package/src/ui/ProgressIndicator/ProgressIndicator.stories.jsx +14 -0
- package/src/ui/ProgressIndicator/ProgressIndicator.stories.tsx +14 -0
- package/src/ui/ProgressIndicator/ProgressIndicator.test.tsx +1 -0
- package/src/ui/ProgressIndicator/ProgressIndicator.tsx +6 -0
- package/src/ui/ProgressIndicator/ProgressIndicator.types.ts +3 -0
- package/src/ui/ProgressIndicator/index.js +1 -0
- package/src/ui/Radio/Radio.ai.md +53 -0
- package/src/ui/Radio/Radio.jsx +57 -0
- package/src/ui/Radio/Radio.scss +89 -0
- package/src/ui/Radio/Radio.spec.ts +12 -0
- package/src/ui/Radio/Radio.stories.jsx +14 -0
- package/src/ui/Radio/Radio.stories.tsx +14 -0
- package/src/ui/Radio/Radio.test.tsx +1 -0
- package/src/ui/Radio/Radio.tsx +6 -0
- package/src/ui/Radio/Radio.types.ts +3 -0
- package/src/ui/Radio/index.js +1 -0
- package/src/ui/Slider/Slider.ai.md +33 -0
- package/src/ui/Slider/Slider.jsx +283 -0
- package/src/ui/Slider/Slider.scss +156 -0
- package/src/ui/Slider/Slider.spec.ts +12 -0
- package/src/ui/Slider/Slider.stories.jsx +14 -0
- package/src/ui/Slider/Slider.stories.tsx +14 -0
- package/src/ui/Slider/Slider.test.tsx +1 -0
- package/src/ui/Slider/Slider.tsx +6 -0
- package/src/ui/Slider/Slider.types.ts +3 -0
- package/src/ui/Slider/index.js +1 -0
- package/src/ui/Status/Status.ai.md +36 -0
- package/src/ui/Status/Status.jsx +66 -0
- package/src/ui/Status/Status.scss +90 -0
- package/src/ui/Status/Status.spec.ts +12 -0
- package/src/ui/Status/Status.stories.jsx +14 -0
- package/src/ui/Status/Status.stories.tsx +14 -0
- package/src/ui/Status/Status.test.tsx +1 -0
- package/src/ui/Status/Status.tsx +6 -0
- package/src/ui/Status/Status.types.ts +3 -0
- package/src/ui/Status/index.js +1 -0
- package/src/ui/Steps/Steps.ai.md +56 -0
- package/src/ui/Steps/Steps.jsx +201 -0
- package/src/ui/Steps/Steps.scss +240 -0
- package/src/ui/Steps/Steps.spec.ts +12 -0
- package/src/ui/Steps/Steps.stories.jsx +14 -0
- package/src/ui/Steps/Steps.stories.tsx +14 -0
- package/src/ui/Steps/Steps.test.tsx +1 -0
- package/src/ui/Steps/Steps.tsx +6 -0
- package/src/ui/Steps/Steps.types.ts +3 -0
- package/src/ui/Steps/index.js +1 -0
- package/src/ui/Table/Table.ai.md +108 -0
- package/src/ui/Table/Table.jsx +143 -0
- package/src/ui/Table/Table.scss +90 -0
- package/src/ui/Table/Table.spec.ts +12 -0
- package/src/ui/Table/Table.stories.jsx +14 -0
- package/src/ui/Table/Table.stories.tsx +14 -0
- package/src/ui/Table/Table.test.tsx +1 -0
- package/src/ui/Table/Table.tsx +6 -0
- package/src/ui/Table/Table.types.ts +3 -0
- package/src/ui/Table/index.js +1 -0
- package/src/ui/Tabs/TabItem.jsx +80 -0
- package/src/ui/Tabs/Tabs.ai.md +52 -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/Tabs.spec.ts +12 -0
- package/src/ui/Tabs/Tabs.stories.jsx +18 -0
- package/src/ui/Tabs/Tabs.stories.tsx +14 -0
- package/src/ui/Tabs/Tabs.test.tsx +1 -0
- package/src/ui/Tabs/Tabs.tsx +6 -0
- package/src/ui/Tabs/Tabs.types.ts +3 -0
- package/src/ui/Tabs/index.js +3 -0
- package/src/ui/Tag/Tag.ai.md +59 -0
- package/src/ui/Tag/Tag.figma.tsx +29 -0
- package/src/ui/Tag/Tag.jsx +93 -0
- package/src/ui/Tag/Tag.scss +258 -0
- package/src/ui/Tag/Tag.spec.ts +12 -0
- package/src/ui/Tag/Tag.stories.jsx +14 -0
- package/src/ui/Tag/Tag.stories.tsx +14 -0
- package/src/ui/Tag/Tag.test.tsx +1 -0
- package/src/ui/Tag/Tag.tsx +6 -0
- package/src/ui/Tag/Tag.types.ts +3 -0
- package/src/ui/Tag/index.js +2 -0
- package/src/ui/Textarea/Textarea.ai.md +40 -0
- package/src/ui/Textarea/Textarea.figma.tsx +35 -0
- package/src/ui/Textarea/Textarea.jsx +68 -0
- package/src/ui/Textarea/Textarea.scss +71 -0
- package/src/ui/Textarea/Textarea.spec.ts +12 -0
- package/src/ui/Textarea/Textarea.stories.jsx +14 -0
- package/src/ui/Textarea/Textarea.stories.tsx +14 -0
- package/src/ui/Textarea/Textarea.test.tsx +1 -0
- package/src/ui/Textarea/Textarea.tsx +6 -0
- package/src/ui/Textarea/Textarea.types.ts +3 -0
- package/src/ui/Textarea/index.js +2 -0
- package/src/ui/Toast/Toast.ai.md +47 -0
- package/src/ui/Toast/Toast.jsx +75 -0
- package/src/ui/Toast/Toast.scss +132 -0
- package/src/ui/Toast/Toast.spec.ts +12 -0
- package/src/ui/Toast/Toast.stories.jsx +14 -0
- package/src/ui/Toast/Toast.stories.tsx +14 -0
- package/src/ui/Toast/Toast.test.tsx +1 -0
- package/src/ui/Toast/Toast.tsx +6 -0
- package/src/ui/Toast/Toast.types.ts +3 -0
- package/src/ui/Toast/index.js +2 -0
- package/src/ui/Toggle/Toggle.ai.md +37 -0
- package/src/ui/Toggle/Toggle.jsx +73 -0
- package/src/ui/Toggle/Toggle.scss +139 -0
- package/src/ui/Toggle/Toggle.spec.ts +12 -0
- package/src/ui/Toggle/Toggle.stories.jsx +14 -0
- package/src/ui/Toggle/Toggle.stories.tsx +14 -0
- package/src/ui/Toggle/Toggle.test.tsx +1 -0
- package/src/ui/Toggle/Toggle.tsx +6 -0
- package/src/ui/Toggle/Toggle.types.ts +3 -0
- package/src/ui/Toggle/index.js +1 -0
- package/src/ui/Tooltip/Tooltip.ai.md +33 -0
- package/src/ui/Tooltip/Tooltip.figma.tsx +24 -0
- package/src/ui/Tooltip/Tooltip.jsx +125 -0
- package/src/ui/Tooltip/Tooltip.scss +80 -0
- package/src/ui/Tooltip/Tooltip.spec.ts +12 -0
- package/src/ui/Tooltip/Tooltip.stories.jsx +14 -0
- package/src/ui/Tooltip/Tooltip.stories.tsx +14 -0
- package/src/ui/Tooltip/Tooltip.test.tsx +1 -0
- package/src/ui/Tooltip/Tooltip.tsx +6 -0
- package/src/ui/Tooltip/Tooltip.types.ts +3 -0
- package/src/ui/Tooltip/index.js +2 -0
- package/src/ui/UDS/UDS.jsx +52 -0
- package/src/ui/UDS/UDS.scss +49 -0
- package/src/ui/UDS/UDS.spec.ts +12 -0
- package/src/ui/UDS/UDS.stories.jsx +22 -0
- package/src/ui/UDS/UDS.stories.tsx +14 -0
- package/src/ui/UDS/UDS.test.tsx +1 -0
- package/src/ui/UDS/UDS.tsx +6 -0
- package/src/ui/UDS/UDS.types.ts +3 -0
- package/src/ui/UDS/index.js +1 -0
- package/src/ui/_spec/createMetaFromSpec.ts +35 -0
- package/src/ui/_spec/createStoryArgsFromSpec.ts +8 -0
- package/src/ui/_spec/generated/spec-props-reference.md +55 -0
- package/src/ui/_spec/specStorySync.test.ts +73 -0
- package/src/ui/_spec/types.ts +21 -0
- package/src/ui/index.js +66 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 CHG Healthcare
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.lib.md
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# @chg/uds-components
|
|
2
|
+
|
|
3
|
+
CHG Healthcare Unified Design System - React Component Library
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @chg/uds-components
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```jsx
|
|
14
|
+
import { Button, Chip, Avatar, Badge } from "@chg/uds-components";
|
|
15
|
+
import "@chg/uds-components/styles.css"; // Required for component styles
|
|
16
|
+
|
|
17
|
+
function App() {
|
|
18
|
+
return (
|
|
19
|
+
<div>
|
|
20
|
+
<Button appearance="primary">Click Me</Button>
|
|
21
|
+
<Chip label="Tag" />
|
|
22
|
+
<Avatar initials="JD" />
|
|
23
|
+
<Badge count={5} variant="red" />
|
|
24
|
+
</div>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Available Components
|
|
30
|
+
|
|
31
|
+
### Layout & Structure
|
|
32
|
+
- `Accordion`, `AccordionItem` - Expandable content sections
|
|
33
|
+
- `Card` - Content container with styling
|
|
34
|
+
- `Divider` - Visual separator
|
|
35
|
+
- `Flex` - Flexbox layout helper
|
|
36
|
+
- `ImageAspect` - Maintains image aspect ratios
|
|
37
|
+
- `Steps` - Step indicator for multi-step flows
|
|
38
|
+
- `Table` - Data table component
|
|
39
|
+
- `Tabs`, `TabItem` - Tabbed navigation
|
|
40
|
+
|
|
41
|
+
### Navigation
|
|
42
|
+
- `ActionMenu` - Dropdown action menu with keyboard support
|
|
43
|
+
- `Breadcrumb` - Navigation breadcrumbs
|
|
44
|
+
- `Dropdown` - Dropdown select component
|
|
45
|
+
- `Menu` - Navigation menu
|
|
46
|
+
- `Pagination` - Page navigation
|
|
47
|
+
|
|
48
|
+
### Form Controls
|
|
49
|
+
- `Button` - Primary interaction element
|
|
50
|
+
- `Checkbox` - Checkbox input
|
|
51
|
+
- `Chip` - Tag/filter chips
|
|
52
|
+
- `Datepicker` - Date selection
|
|
53
|
+
- `Field` - Form field wrapper
|
|
54
|
+
- `FileUpload` - File upload component
|
|
55
|
+
- `Input` - Text input field
|
|
56
|
+
- `PillToggle` - Toggle button group
|
|
57
|
+
- `Radio` - Radio button input
|
|
58
|
+
- `Slider` - Range slider
|
|
59
|
+
- `Textarea` - Multi-line text input
|
|
60
|
+
- `Toggle` - On/off toggle switch
|
|
61
|
+
|
|
62
|
+
### Data Display
|
|
63
|
+
- `Avatar` - User avatar with image or initials
|
|
64
|
+
- `Badge` - Notification badge
|
|
65
|
+
- `DotStatus` - Status dot indicator
|
|
66
|
+
- `Icon` - Phosphor icon wrapper
|
|
67
|
+
- `Key` - Keyboard shortcut display
|
|
68
|
+
- `ProgressCircle` - Circular progress indicator
|
|
69
|
+
- `ProgressIndicator` - Linear progress bar
|
|
70
|
+
- `Status` - Status indicator component
|
|
71
|
+
- `Tag` - Categorization tags
|
|
72
|
+
|
|
73
|
+
### Feedback
|
|
74
|
+
- `Toast` - Notification toast messages
|
|
75
|
+
- `Tooltip` - Hover tooltips
|
|
76
|
+
|
|
77
|
+
### Branding
|
|
78
|
+
- `Branding` - Logo and brand assets
|
|
79
|
+
|
|
80
|
+
## Design Tokens
|
|
81
|
+
|
|
82
|
+
The component library uses CSS custom properties (variables) for theming. Import the styles to get all design tokens:
|
|
83
|
+
|
|
84
|
+
```css
|
|
85
|
+
@import "@chg/uds-components/styles.css";
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Or include them in your build:
|
|
89
|
+
|
|
90
|
+
```scss
|
|
91
|
+
@use "@chg/uds-components/styles.css";
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Peer Dependencies
|
|
95
|
+
|
|
96
|
+
This library requires:
|
|
97
|
+
- `react` >= 17.0.0
|
|
98
|
+
- `react-dom` >= 17.0.0
|
|
99
|
+
- `react-router-dom` (optional, only needed for Card and Breadcrumb components)
|
|
100
|
+
|
|
101
|
+
## License
|
|
102
|
+
|
|
103
|
+
MIT
|
package/README.md
ADDED
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
# CHG Design System (UDS)
|
|
2
|
+
|
|
3
|
+
A unified design system for CHG Healthcare brands, featuring React components, design tokens synced from Figma, and comprehensive documentation.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This design system provides:
|
|
8
|
+
|
|
9
|
+
- **40+ React Components** — Fully styled, accessible UI components
|
|
10
|
+
- **Design Tokens** — Colors, spacing, typography, and more synced directly from Figma
|
|
11
|
+
- **Multi-Brand Support** — Theming for CompHealth, Connect, LocumSmart, Modio, and Weatherby
|
|
12
|
+
- **Figma Code Connect** — Bridge between design and development
|
|
13
|
+
- **Documentation Site** — Interactive component demos and usage guidelines
|
|
14
|
+
|
|
15
|
+
## Getting Started
|
|
16
|
+
|
|
17
|
+
### Prerequisites
|
|
18
|
+
|
|
19
|
+
- Node.js 18+
|
|
20
|
+
- npm or yarn
|
|
21
|
+
|
|
22
|
+
### Installation
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Install dependencies
|
|
26
|
+
npm install
|
|
27
|
+
|
|
28
|
+
# Start the documentation site
|
|
29
|
+
npm start
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The development server runs at [http://localhost:3000](http://localhost:3000).
|
|
33
|
+
|
|
34
|
+
## Available Scripts
|
|
35
|
+
|
|
36
|
+
### Development
|
|
37
|
+
|
|
38
|
+
| Command | Description |
|
|
39
|
+
|---------|-------------|
|
|
40
|
+
| `npm start` | Start the documentation site in development mode |
|
|
41
|
+
| `npm test` | Run tests in watch mode |
|
|
42
|
+
| `npm run sass:watch` | Watch and compile SCSS files |
|
|
43
|
+
| `npm run docs:spec-props` | Generate props reference docs from component specs |
|
|
44
|
+
|
|
45
|
+
### Design Tokens
|
|
46
|
+
|
|
47
|
+
| Command | Description |
|
|
48
|
+
|---------|-------------|
|
|
49
|
+
| `npm run tokens:generate` | Fetch and generate tokens from Figma |
|
|
50
|
+
| `npm run tokens:validate` | Validate token references |
|
|
51
|
+
| `npm run tokens:compile` | Compile SCSS tokens to CSS |
|
|
52
|
+
| `npm run tokens:watch` | Watch and compile token changes |
|
|
53
|
+
|
|
54
|
+
### Library Build
|
|
55
|
+
|
|
56
|
+
| Command | Description |
|
|
57
|
+
|---------|-------------|
|
|
58
|
+
| `npm run build:lib` | Build the component library for distribution |
|
|
59
|
+
| `npm run build:lib:watch` | Build library in watch mode |
|
|
60
|
+
| `npm run publish:lib` | Publish the library package |
|
|
61
|
+
|
|
62
|
+
### Figma Code Connect
|
|
63
|
+
|
|
64
|
+
| Command | Description |
|
|
65
|
+
|---------|-------------|
|
|
66
|
+
| `npm run codeconnect:publish` | Publish Code Connect mappings to Figma |
|
|
67
|
+
| `npm run codeconnect:unpublish` | Remove Code Connect mappings |
|
|
68
|
+
|
|
69
|
+
### Production
|
|
70
|
+
|
|
71
|
+
| Command | Description |
|
|
72
|
+
|---------|-------------|
|
|
73
|
+
| `npm run build` | Build the documentation site for production |
|
|
74
|
+
|
|
75
|
+
## Project Structure
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
├── src/
|
|
79
|
+
│ ├── ui/ # Component library
|
|
80
|
+
│ │ ├── Accordion/
|
|
81
|
+
│ │ ├── Button/
|
|
82
|
+
│ │ ├── Card/
|
|
83
|
+
│ │ └── ...
|
|
84
|
+
│ ├── pages/ # Documentation pages
|
|
85
|
+
│ ├── styles/ # Global styles and tokens
|
|
86
|
+
│ │ ├── _variables.scss # Generated Figma variables
|
|
87
|
+
│ │ ├── tokens.scss # CSS custom properties
|
|
88
|
+
│ │ └── _typography.scss # Typography utilities
|
|
89
|
+
│ └── assets/ # Images and static assets
|
|
90
|
+
├── scripts/
|
|
91
|
+
│ ├── index.js # Token generation script
|
|
92
|
+
│ ├── validate.js # Token validation
|
|
93
|
+
│ └── publish-lib.js # Library publishing
|
|
94
|
+
├── dist/ # Built library output
|
|
95
|
+
└── build/ # Built documentation site
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Components
|
|
99
|
+
|
|
100
|
+
The design system includes a comprehensive set of components:
|
|
101
|
+
|
|
102
|
+
**Form Controls:** Button, Checkbox, Datepicker, Dropdown, Field, FileUpload, Input, Radio, Slider, Textarea, Toggle
|
|
103
|
+
|
|
104
|
+
**Data Display:** Accordion, Avatar, Badge, Card, Chip, DotStatus, Icon, ImageAspect, Key, Status, Table, Tag, Tooltip
|
|
105
|
+
|
|
106
|
+
**Navigation:** ActionMenu, Breadcrumb, Menu, Pagination, PillToggle, Steps, Tabs
|
|
107
|
+
|
|
108
|
+
**Feedback:** ProgressCircle, ProgressIndicator, Toast
|
|
109
|
+
|
|
110
|
+
**Layout:** Divider, Flex
|
|
111
|
+
|
|
112
|
+
## Design Tokens
|
|
113
|
+
|
|
114
|
+
Tokens are synced from Figma and include:
|
|
115
|
+
|
|
116
|
+
- **Colors** — Brand colors, semantic colors, neutrals
|
|
117
|
+
- **Spacing** — Consistent spacing scale
|
|
118
|
+
- **Typography** — Font families, sizes, weights, line heights
|
|
119
|
+
- **Border Radius** — Corner radius values
|
|
120
|
+
- **Shadows** — Elevation and depth
|
|
121
|
+
- **Animation** — Timing and duration values
|
|
122
|
+
|
|
123
|
+
### Syncing Tokens from Figma
|
|
124
|
+
|
|
125
|
+
1. Create a `.env` file with your Figma credentials:
|
|
126
|
+
|
|
127
|
+
```env
|
|
128
|
+
FIGMA_ACCESS_TOKEN=your_figma_token
|
|
129
|
+
FIGMA_FILE_KEY=your_file_key
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
2. Run the token generation script:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
npm run tokens:generate
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Using the Component Library
|
|
139
|
+
|
|
140
|
+
### Installation in Your Project
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
npm install @chg/uds-components
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Usage
|
|
147
|
+
|
|
148
|
+
```jsx
|
|
149
|
+
import { Button, Card, Input } from '@chg/uds-components';
|
|
150
|
+
import '@chg/uds-components/styles.css';
|
|
151
|
+
|
|
152
|
+
function App() {
|
|
153
|
+
return (
|
|
154
|
+
<Card>
|
|
155
|
+
<Input label="Email" type="email" />
|
|
156
|
+
<Button variant="primary">Submit</Button>
|
|
157
|
+
</Card>
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## AI Context Files
|
|
163
|
+
|
|
164
|
+
Every component in the design system ships with a dedicated `.ai.md` file that provides structured, AI-friendly documentation. These files are the fastest way for any AI assistant to understand a component's API, usage patterns, and constraints.
|
|
165
|
+
|
|
166
|
+
### File Location
|
|
167
|
+
|
|
168
|
+
All AI context files follow a predictable convention:
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
src/ui/<ComponentName>/<ComponentName>.ai.md
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
To discover every available file, glob for `src/ui/**/*.ai.md`.
|
|
175
|
+
|
|
176
|
+
### What Each File Contains
|
|
177
|
+
|
|
178
|
+
| Section | Description |
|
|
179
|
+
|---------|-------------|
|
|
180
|
+
| **When to Use** | The component's intended purpose and scenarios |
|
|
181
|
+
| **Props** | Full props table with types, defaults, and accepted values |
|
|
182
|
+
| **Examples** | Code snippets from basic usage to advanced composition |
|
|
183
|
+
| **Composition** | How the component works alongside other components |
|
|
184
|
+
| **Do's and Don'ts** | Common pitfalls and best practices |
|
|
185
|
+
| **Accessibility** | ARIA roles, keyboard interaction, and screen reader notes |
|
|
186
|
+
|
|
187
|
+
### How to Use (for AI Agents)
|
|
188
|
+
|
|
189
|
+
1. **Before writing code that uses a component**, read its `.ai.md` file. It contains the exact prop names, valid values, and import paths you need.
|
|
190
|
+
2. **When combining components**, read the `.ai.md` for each one. The "Composition" sections describe how they interoperate (e.g., `Field` wrapping `Input`, `Table` rendering `Tag` cells).
|
|
191
|
+
3. **When choosing between components**, compare the "When to Use" sections across candidates (e.g., `Chip` vs `Tag` vs `Badge`).
|
|
192
|
+
4. **When styling**, check the `.ai.md` for documented CSS class names and design token references, then consult `src/styles/tokens.css` for token values.
|
|
193
|
+
|
|
194
|
+
### Complete File Manifest
|
|
195
|
+
|
|
196
|
+
| Component | Path |
|
|
197
|
+
|-----------|------|
|
|
198
|
+
| Accordion | `src/ui/Accordion/Accordion.ai.md` |
|
|
199
|
+
| ActionMenu | `src/ui/ActionMenu/ActionMenu.ai.md` |
|
|
200
|
+
| Avatar | `src/ui/Avatar/Avatar.ai.md` |
|
|
201
|
+
| Badge | `src/ui/Badge/Badge.ai.md` |
|
|
202
|
+
| Branding | `src/ui/Branding/Branding.ai.md` |
|
|
203
|
+
| Breadcrumb | `src/ui/Breadcrumb/Breadcrumb.ai.md` |
|
|
204
|
+
| Button | `src/ui/Button/Button.ai.md` |
|
|
205
|
+
| Calendar | `src/ui/Calendar/Calendar.ai.md` |
|
|
206
|
+
| Card | `src/ui/Card/Card.ai.md` |
|
|
207
|
+
| Checkbox | `src/ui/Checkbox/Checkbox.ai.md` |
|
|
208
|
+
| Chip | `src/ui/Chip/Chip.ai.md` |
|
|
209
|
+
| Datepicker | `src/ui/Datepicker/Datepicker.ai.md` |
|
|
210
|
+
| Divider | `src/ui/Divider/Divider.ai.md` |
|
|
211
|
+
| DotStatus | `src/ui/DotStatus/DotStatus.ai.md` |
|
|
212
|
+
| Dropdown | `src/ui/Dropdown/Dropdown.ai.md` |
|
|
213
|
+
| EventCard | `src/ui/EventCard/EventCard.ai.md` |
|
|
214
|
+
| Field | `src/ui/Field/Field.ai.md` |
|
|
215
|
+
| FileUpload | `src/ui/FileUpload/FileUpload.ai.md` |
|
|
216
|
+
| Flex | `src/ui/Flex/Flex.ai.md` |
|
|
217
|
+
| Icon | `src/ui/Icon/Icon.ai.md` |
|
|
218
|
+
| ImageAspect | `src/ui/ImageAspect/ImageAspect.ai.md` |
|
|
219
|
+
| Input | `src/ui/Input/Input.ai.md` |
|
|
220
|
+
| Key | `src/ui/Key/Key.ai.md` |
|
|
221
|
+
| Menu | `src/ui/Menu/Menu.ai.md` |
|
|
222
|
+
| MicroCalendar | `src/ui/MicroCalendar/MicroCalendar.ai.md` |
|
|
223
|
+
| Modal | `src/ui/Modal/Modal.ai.md` |
|
|
224
|
+
| Pagination | `src/ui/Pagination/Pagination.ai.md` |
|
|
225
|
+
| PillToggle | `src/ui/PillToggle/PillToggle.ai.md` |
|
|
226
|
+
| Playground | `src/ui/Playground/Playground.ai.md` |
|
|
227
|
+
| ProgressCircle | `src/ui/ProgressCircle/ProgressCircle.ai.md` |
|
|
228
|
+
| ProgressIndicator | `src/ui/ProgressIndicator/ProgressIndicator.ai.md` |
|
|
229
|
+
| Radio | `src/ui/Radio/Radio.ai.md` |
|
|
230
|
+
| Slider | `src/ui/Slider/Slider.ai.md` |
|
|
231
|
+
| Status | `src/ui/Status/Status.ai.md` |
|
|
232
|
+
| Steps | `src/ui/Steps/Steps.ai.md` |
|
|
233
|
+
| Table | `src/ui/Table/Table.ai.md` |
|
|
234
|
+
| Tabs | `src/ui/Tabs/Tabs.ai.md` |
|
|
235
|
+
| Tag | `src/ui/Tag/Tag.ai.md` |
|
|
236
|
+
| Textarea | `src/ui/Textarea/Textarea.ai.md` |
|
|
237
|
+
| Toast | `src/ui/Toast/Toast.ai.md` |
|
|
238
|
+
| Toggle | `src/ui/Toggle/Toggle.ai.md` |
|
|
239
|
+
| Tooltip | `src/ui/Tooltip/Tooltip.ai.md` |
|
|
240
|
+
|
|
241
|
+
### Key Conventions
|
|
242
|
+
|
|
243
|
+
- **Design tokens** — All styling uses CSS custom properties prefixed `--uds-` (colors, spacing, typography, radius, shadows, animation). See `src/styles/tokens.css`.
|
|
244
|
+
- **BEM class naming** — Components use `uds-<component>`, `uds-<component>__<element>`, `uds-<component>--<modifier>`.
|
|
245
|
+
- **Icons** — Use the `Icon` component with Phosphor icon names: `<Icon name="House" size={20} />`. All [Phosphor icons](https://phosphoricons.com/) are available.
|
|
246
|
+
- **Form fields** — Always wrap inputs with `<Field>` for labels, validation messages, and helper text.
|
|
247
|
+
- **Multi-brand** — The system supports multiple CHG brands. Tokens adapt automatically when the brand attribute changes.
|
|
248
|
+
|
|
249
|
+
## Browser Support
|
|
250
|
+
|
|
251
|
+
- Chrome (last 2 versions)
|
|
252
|
+
- Firefox (last 2 versions)
|
|
253
|
+
- Safari (last 2 versions)
|
|
254
|
+
- Edge (last 2 versions)
|
|
255
|
+
|
|
256
|
+
## Contributing
|
|
257
|
+
|
|
258
|
+
1. Create a feature branch from `main`
|
|
259
|
+
2. Make your changes
|
|
260
|
+
3. Ensure tests pass and components render correctly
|
|
261
|
+
4. Submit a pull request
|
|
262
|
+
|
|
263
|
+
## License
|
|
264
|
+
|
|
265
|
+
See [LICENSE](./LICENSE) for details.
|
package/dist/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 CHG Healthcare
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/README.md
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# @chg/uds-components
|
|
2
|
+
|
|
3
|
+
CHG Healthcare Unified Design System - React Component Library
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @chg/uds-components
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```jsx
|
|
14
|
+
import { Button, Chip, Avatar, Badge } from "@chg/uds-components";
|
|
15
|
+
import "@chg/uds-components/styles.css"; // Required for component styles
|
|
16
|
+
|
|
17
|
+
function App() {
|
|
18
|
+
return (
|
|
19
|
+
<div>
|
|
20
|
+
<Button appearance="primary">Click Me</Button>
|
|
21
|
+
<Chip label="Tag" />
|
|
22
|
+
<Avatar initials="JD" />
|
|
23
|
+
<Badge count={5} variant="red" />
|
|
24
|
+
</div>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Available Components
|
|
30
|
+
|
|
31
|
+
### Layout & Structure
|
|
32
|
+
- `Accordion`, `AccordionItem` - Expandable content sections
|
|
33
|
+
- `Card` - Content container with styling
|
|
34
|
+
- `Divider` - Visual separator
|
|
35
|
+
- `Flex` - Flexbox layout helper
|
|
36
|
+
- `ImageAspect` - Maintains image aspect ratios
|
|
37
|
+
- `Steps` - Step indicator for multi-step flows
|
|
38
|
+
- `Table` - Data table component
|
|
39
|
+
- `Tabs`, `TabItem` - Tabbed navigation
|
|
40
|
+
|
|
41
|
+
### Navigation
|
|
42
|
+
- `ActionMenu` - Dropdown action menu with keyboard support
|
|
43
|
+
- `Breadcrumb` - Navigation breadcrumbs
|
|
44
|
+
- `Dropdown` - Dropdown select component
|
|
45
|
+
- `Menu` - Navigation menu
|
|
46
|
+
- `Pagination` - Page navigation
|
|
47
|
+
|
|
48
|
+
### Form Controls
|
|
49
|
+
- `Button` - Primary interaction element
|
|
50
|
+
- `Checkbox` - Checkbox input
|
|
51
|
+
- `Chip` - Tag/filter chips
|
|
52
|
+
- `Datepicker` - Date selection
|
|
53
|
+
- `Field` - Form field wrapper
|
|
54
|
+
- `FileUpload` - File upload component
|
|
55
|
+
- `Input` - Text input field
|
|
56
|
+
- `PillToggle` - Toggle button group
|
|
57
|
+
- `Radio` - Radio button input
|
|
58
|
+
- `Slider` - Range slider
|
|
59
|
+
- `Textarea` - Multi-line text input
|
|
60
|
+
- `Toggle` - On/off toggle switch
|
|
61
|
+
|
|
62
|
+
### Data Display
|
|
63
|
+
- `Avatar` - User avatar with image or initials
|
|
64
|
+
- `Badge` - Notification badge
|
|
65
|
+
- `DotStatus` - Status dot indicator
|
|
66
|
+
- `Icon` - Phosphor icon wrapper
|
|
67
|
+
- `Key` - Keyboard shortcut display
|
|
68
|
+
- `ProgressCircle` - Circular progress indicator
|
|
69
|
+
- `ProgressIndicator` - Linear progress bar
|
|
70
|
+
- `Status` - Status indicator component
|
|
71
|
+
- `Tag` - Categorization tags
|
|
72
|
+
|
|
73
|
+
### Feedback
|
|
74
|
+
- `Toast` - Notification toast messages
|
|
75
|
+
- `Tooltip` - Hover tooltips
|
|
76
|
+
|
|
77
|
+
### Branding
|
|
78
|
+
- `Branding` - Logo and brand assets
|
|
79
|
+
|
|
80
|
+
## Design Tokens
|
|
81
|
+
|
|
82
|
+
The component library uses CSS custom properties (variables) for theming. Import the styles to get all design tokens:
|
|
83
|
+
|
|
84
|
+
```css
|
|
85
|
+
@import "@chg/uds-components/styles.css";
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Or include them in your build:
|
|
89
|
+
|
|
90
|
+
```scss
|
|
91
|
+
@use "@chg/uds-components/styles.css";
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Peer Dependencies
|
|
95
|
+
|
|
96
|
+
This library requires:
|
|
97
|
+
- `react` >= 17.0.0
|
|
98
|
+
- `react-dom` >= 17.0.0
|
|
99
|
+
- `react-router-dom` (optional, only needed for Card and Breadcrumb components)
|
|
100
|
+
|
|
101
|
+
## License
|
|
102
|
+
|
|
103
|
+
MIT
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@chg/uds-components",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "CHG Healthcare Unified Design System - React Component Library",
|
|
5
|
+
"author": "Michael Stevens",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"main": "uds-components.umd.js",
|
|
8
|
+
"module": "uds-components.es.js",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./uds-components.es.js",
|
|
12
|
+
"require": "./uds-components.umd.js"
|
|
13
|
+
},
|
|
14
|
+
"./styles.css": "./styles.css"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"uds-components.es.js",
|
|
18
|
+
"uds-components.es.js.map",
|
|
19
|
+
"uds-components.umd.js",
|
|
20
|
+
"uds-components.umd.js.map",
|
|
21
|
+
"styles.css",
|
|
22
|
+
"README.md"
|
|
23
|
+
],
|
|
24
|
+
"sideEffects": [
|
|
25
|
+
"**/*.css",
|
|
26
|
+
"**/*.scss"
|
|
27
|
+
],
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "https://github.com/chg-healthcare/uds-components.git"
|
|
31
|
+
},
|
|
32
|
+
"keywords": [
|
|
33
|
+
"react",
|
|
34
|
+
"components",
|
|
35
|
+
"ui",
|
|
36
|
+
"design-system",
|
|
37
|
+
"uds",
|
|
38
|
+
"chg"
|
|
39
|
+
],
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"react": ">=17.0.0",
|
|
42
|
+
"react-dom": ">=17.0.0"
|
|
43
|
+
},
|
|
44
|
+
"peerDependenciesMeta": {
|
|
45
|
+
"react-router-dom": {
|
|
46
|
+
"optional": true
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|