├── .changeset ├── README.md └── config.json ├── .editorconfig ├── .eslintrc.json ├── .gitattributes ├── .github ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ ├── bug-report.yml │ └── feature-request.yml └── workflows │ ├── chromatic.yml │ ├── ci.yml │ └── publish.yml ├── .gitignore ├── .npmrc ├── .nvmrc ├── .prettierignore ├── .storybook ├── components │ ├── chromaticWrapper.jsx │ ├── mockup.jsx │ └── section.jsx ├── context │ └── featureContext.ts ├── main.ts ├── manager-head.html ├── manager.js ├── preview-body.html ├── preview-head.html ├── preview.tsx ├── styles.css ├── theme │ └── index.js └── withBrandDecorator.jsx ├── .stylelintrc.json ├── LICENSE ├── README.md ├── __mocks__ ├── fileMock.js └── styleMock.js ├── assets ├── brand.svg ├── igloo-brand.svg └── igloo.svg ├── axe-helper.js ├── babel.config.js ├── jest.config.js ├── lerna.json ├── netlify.toml ├── nx.json ├── package.json ├── packages ├── ActionMenu │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── ActionMenu.stories.tsx │ │ ├── ActionMenu.test.tsx │ │ ├── ActionMenu.tsx │ │ ├── __snapshots__ │ │ │ └── ActionMenu.test.tsx.snap │ │ └── action-menu.scss │ └── tsconfig.json ├── Alert │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Alert.stories.tsx │ │ ├── Alert.test.tsx │ │ ├── Alert.tsx │ │ ├── __snapshots__ │ │ │ └── Alert.test.tsx.snap │ │ ├── alert.scss │ │ ├── intl │ │ │ ├── en-US.json │ │ │ ├── fr-CA.json │ │ │ └── index.ts │ │ ├── legacy │ │ │ └── svgs.tsx │ │ ├── mixins.scss │ │ └── svgs.tsx │ └── tsconfig.json ├── AreaChart │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── AreaChart.stories.tsx │ │ ├── AreaChart.test.tsx │ │ ├── AreaChart.tsx │ │ ├── ChartTooltip.tsx │ │ ├── __snapshots__ │ │ │ └── AreaChart.test.tsx.snap │ │ ├── area-chart.scss │ │ ├── chart-tooltip.scss │ │ ├── helper │ │ │ └── unavailableData.ts │ │ └── hooks │ │ │ └── useDynamicYAxisWidth.tsx │ └── tsconfig.json ├── Avatar │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Avatar.stories.tsx │ │ ├── Avatar.test.tsx │ │ ├── Avatar.tsx │ │ ├── __snapshots__ │ │ │ └── Avatar.test.tsx.snap │ │ └── avatar.scss │ └── tsconfig.json ├── BarChart │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── BarChart.stories.tsx │ │ ├── BarChart.test.tsx │ │ ├── BarChart.tsx │ │ ├── __snapshots__ │ │ │ └── BarChart.test.tsx.snap │ │ └── bar-chart.scss │ └── tsconfig.json ├── Breadcrumb │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Breadcrumb.stories.tsx │ │ ├── Breadcrumb.test.tsx │ │ ├── Breadcrumb.tsx │ │ ├── __snapshots__ │ │ │ └── Breadcrumb.test.tsx.snap │ │ ├── breadcrumb.scss │ │ └── intl │ │ │ ├── en-US.json │ │ │ ├── fr-CA.json │ │ │ └── index.ts │ └── tsconfig.json ├── Button │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Button.stories.tsx │ │ ├── Button.test.tsx │ │ ├── Button.tsx │ │ ├── __snapshots__ │ │ │ └── Button.test.tsx.snap │ │ └── button.scss │ └── tsconfig.json ├── ButtonGroup │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── ButtonGroup.stories.tsx │ │ ├── ButtonGroup.test.tsx │ │ ├── ButtonGroup.tsx │ │ ├── ButtonGroupItem.tsx │ │ └── button-group.scss │ └── tsconfig.json ├── Card │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Card.stories.tsx │ │ ├── Card.test.tsx │ │ ├── Card.tsx │ │ ├── __snapshots__ │ │ │ └── Card.test.tsx.snap │ │ └── card.scss │ └── tsconfig.json ├── Carousel │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Carousel.stories.tsx │ │ ├── Carousel.test.tsx │ │ ├── Carousel.tsx │ │ ├── __snapshots__ │ │ │ └── Carousel.test.tsx.snap │ │ └── carousel.scss │ └── tsconfig.json ├── Checkbox │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Checkbox.stories.tsx │ │ ├── Checkbox.test.tsx │ │ ├── Checkbox.tsx │ │ ├── __snapshots__ │ │ │ └── Checkbox.test.tsx.snap │ │ └── checkbox.scss │ └── tsconfig.json ├── Color │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Color.stories.tsx │ │ ├── Color.test.tsx │ │ ├── Color.tsx │ │ ├── __snapshots__ │ │ │ └── Color.test.tsx.snap │ │ └── color.scss │ └── tsconfig.json ├── ColorPicker │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── ColorPicker.stories.tsx │ │ ├── ColorPicker.test.tsx │ │ ├── ColorPicker.tsx │ │ ├── ColorPickerOption.tsx │ │ ├── __snapshots__ │ │ │ └── ColorPicker.test.tsx.snap │ │ ├── color-picker-option.scss │ │ ├── color-picker.scss │ │ └── intl │ │ │ ├── en-US.json │ │ │ ├── fr-CA.json │ │ │ └── index.ts │ └── tsconfig.json ├── Combobox │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Combobox.stories.tsx │ │ ├── Combobox.test.tsx │ │ ├── Combobox.tsx │ │ ├── ComboboxInput.tsx │ │ ├── __snapshots__ │ │ │ └── Combobox.test.tsx.snap │ │ ├── combobox-input.scss │ │ ├── combobox.scss │ │ └── intl │ │ │ ├── en-US.json │ │ │ ├── fr-CA.json │ │ │ └── index.ts │ └── tsconfig.json ├── Datepicker │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Datepicker.stories.tsx │ │ ├── Datepicker.test.tsx │ │ ├── Datepicker.tsx │ │ ├── __snapshots__ │ │ │ └── Datepicker.test.tsx.snap │ │ ├── components │ │ │ ├── Calendar.tsx │ │ │ ├── CalendarButton.tsx │ │ │ ├── CalendarCell.tsx │ │ │ └── CalendarGrid.tsx │ │ └── datepicker.scss │ └── tsconfig.json ├── Dialog │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Dialog.stories.tsx │ │ ├── Dialog.test.tsx │ │ ├── Dialog.tsx │ │ ├── __snapshots__ │ │ │ └── Dialog.test.tsx.snap │ │ └── dialog.scss │ └── tsconfig.json ├── Disclosure │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Disclosure.stories.tsx │ │ ├── Disclosure.test.tsx │ │ ├── Disclosure.tsx │ │ ├── __snapshots__ │ │ │ └── Disclosure.test.tsx.snap │ │ └── disclosure.scss │ └── tsconfig.json ├── Dropdown │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Dropdown.stories.tsx │ │ ├── Dropdown.test.tsx │ │ ├── Dropdown.tsx │ │ ├── __mocks__ │ │ │ └── Dropdown.mock.tsx │ │ ├── __snapshots__ │ │ │ └── Dropdown.test.tsx.snap │ │ ├── dropdown.scss │ │ └── mixins.scss │ └── tsconfig.json ├── Ellipsis │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Ellipsis.stories.tsx │ │ ├── Ellipsis.test.tsx │ │ ├── Ellipsis.tsx │ │ ├── __snapshots__ │ │ │ └── Ellipsis.test.tsx.snap │ │ └── ellipsis.scss │ └── tsconfig.json ├── Filter │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Filter.stories.tsx │ │ ├── Filter.test.tsx │ │ ├── Filter.tsx │ │ ├── __snapshots__ │ │ │ └── Filter.test.tsx.snap │ │ └── filter.scss │ └── tsconfig.json ├── FormGroup │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── FormGroup.stories.tsx │ │ ├── FormGroup.test.tsx │ │ ├── FormGroup.tsx │ │ ├── __snapshots__ │ │ │ └── FormGroup.test.tsx.snap │ │ └── form-group.scss │ └── tsconfig.json ├── HelperText │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── HelperText.stories.tsx │ │ ├── HelperText.test.tsx │ │ ├── HelperText.tsx │ │ ├── __snapshots__ │ │ │ └── HelperText.test.tsx.snap │ │ └── helper-text.scss │ └── tsconfig.json ├── Hyperlink │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Hyperlink.stories.tsx │ │ ├── Hyperlink.test.tsx │ │ ├── Hyperlink.tsx │ │ ├── __snapshots__ │ │ │ └── Hyperlink.test.tsx.snap │ │ └── hyperlink.scss │ └── tsconfig.json ├── IconButton │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── IconButton.stories.tsx │ │ ├── IconButton.test.tsx │ │ ├── IconButton.tsx │ │ ├── __snapshots__ │ │ │ └── IconButton.test.tsx.snap │ │ └── icon-button.scss │ └── tsconfig.json ├── Input │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Input.stories.tsx │ │ ├── Input.test.tsx │ │ ├── Input.tsx │ │ ├── __snapshots__ │ │ │ └── Input.test.tsx.snap │ │ ├── hooks │ │ │ ├── useCharLength.tsx │ │ │ └── useTruncateValue.tsx │ │ └── input.scss │ └── tsconfig.json ├── List │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── List.stories.tsx │ │ ├── List.test.tsx │ │ ├── List.tsx │ │ ├── ListItem.tsx │ │ ├── __snapshots__ │ │ │ └── List.test.tsx.snap │ │ ├── list-item.scss │ │ └── list.scss │ └── tsconfig.json ├── Metric │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Metric.stories.tsx │ │ ├── Metric.test.tsx │ │ ├── Metric.tsx │ │ ├── Score.tsx │ │ ├── __snapshots__ │ │ │ └── Metric.test.tsx.snap │ │ ├── intl │ │ │ ├── en-US.json │ │ │ ├── fr-CA.json │ │ │ └── index.ts │ │ ├── metric.scss │ │ └── score.scss │ └── tsconfig.json ├── Modal │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Modal.stories.tsx │ │ ├── Modal.test.tsx │ │ ├── Modal.tsx │ │ ├── intl │ │ │ ├── en-US.json │ │ │ ├── fr-CA.json │ │ │ └── index.ts │ │ └── modal.scss │ └── tsconfig.json ├── OptionButton │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── OptionButton.stories.tsx │ │ ├── OptionButton.test.tsx │ │ ├── OptionButton.tsx │ │ ├── __snapshots__ │ │ │ └── OptionButton.test.tsx.snap │ │ ├── option-button.scss │ │ └── svgs.tsx │ └── tsconfig.json ├── Pager │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Pager.stories.tsx │ │ ├── Pager.test.tsx │ │ ├── Pager.tsx │ │ ├── __snapshots__ │ │ │ └── Pager.test.tsx.snap │ │ ├── intl │ │ │ ├── en-US.json │ │ │ ├── fr-CA.json │ │ │ └── index.ts │ │ ├── pager.scss │ │ ├── svgs.tsx │ │ └── usePagination.tsx │ └── tsconfig.json ├── PieChart │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── PieChart.stories.tsx │ │ ├── PieChart.test.tsx │ │ ├── PieChart.tsx │ │ ├── __snapshots__ │ │ │ └── PieChart.test.tsx.snap │ │ └── pie-chart.scss │ └── tsconfig.json ├── Popover │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Popover.stories.tsx │ │ ├── Popover.test.tsx │ │ ├── Popover.tsx │ │ ├── __mocks__ │ │ │ └── Popover.mock.tsx │ │ ├── __snapshots__ │ │ │ └── Popover.test.tsx.snap │ │ ├── intl │ │ │ ├── en-US.json │ │ │ ├── fr-CA.json │ │ │ └── index.ts │ │ └── popover.scss │ └── tsconfig.json ├── ProgressBar │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── ProgressBar.stories.tsx │ │ ├── ProgressBar.test.tsx │ │ ├── ProgressBar.tsx │ │ ├── __snapshots__ │ │ │ └── ProgressBar.test.tsx.snap │ │ └── progress-bar.scss │ └── tsconfig.json ├── Provider │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Provider.stories.tsx │ │ ├── Provider.test.tsx │ │ ├── Provider.tsx │ │ └── provider.scss │ └── tsconfig.json ├── Radio │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Radio.stories.tsx │ │ ├── Radio.test.tsx │ │ ├── Radio.tsx │ │ └── radio.scss │ └── tsconfig.json ├── Select │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Select.stories.tsx │ │ ├── Select.test.tsx │ │ ├── Select.tsx │ │ ├── SelectInput.tsx │ │ ├── SelectValue.tsx │ │ ├── __snapshots__ │ │ │ └── Select.test.tsx.snap │ │ ├── select-input.scss │ │ ├── select-option.scss │ │ ├── select-value.scss │ │ └── select.scss │ └── tsconfig.json ├── StackedBar │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── StackedBar.stories.tsx │ │ ├── StackedBar.test.tsx │ │ ├── StackedBar.tsx │ │ ├── StackedBarTooltip.tsx │ │ ├── __snapshots__ │ │ │ └── StackedBar.test.tsx.snap │ │ ├── stacked-bar-tooltip.scss │ │ └── stacked-bar.scss │ └── tsconfig.json ├── Stepper │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Step.tsx │ │ ├── Stepper.stories.tsx │ │ ├── Stepper.test.tsx │ │ ├── Stepper.tsx │ │ ├── __snapshots__ │ │ │ └── Stepper.test.tsx.snap │ │ ├── step.scss │ │ └── stepper.scss │ └── tsconfig.json ├── Tabs │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Tabs.stories.tsx │ │ ├── Tabs.test.tsx │ │ ├── Tabs.tsx │ │ ├── __snapshots__ │ │ │ └── Tabs.test.tsx.snap │ │ └── tabs.scss │ └── tsconfig.json ├── Tag │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Tag.stories.tsx │ │ ├── Tag.test.tsx │ │ ├── Tag.tsx │ │ ├── __snapshots__ │ │ │ └── Tag.test.tsx.snap │ │ ├── components │ │ │ ├── ColorIcon.tsx │ │ │ ├── UserImage.tsx │ │ │ ├── color-icon.scss │ │ │ └── user-image.scss │ │ ├── intl │ │ │ ├── en-US.json │ │ │ ├── fr-CA.json │ │ │ └── index.ts │ │ ├── mixins.scss │ │ └── tag.scss │ └── tsconfig.json ├── TagPicker │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── TagPicker.stories.tsx │ │ ├── TagPicker.tsx │ │ ├── data.tsx │ │ ├── hooks │ │ │ └── useClickOutside.tsx │ │ ├── mixins.scss │ │ └── tag-picker.scss │ └── tsconfig.json ├── TextEditor │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── TextEditor.stories.tsx │ │ ├── TextEditor.test.tsx │ │ ├── TextEditor.tsx │ │ ├── __snapshots__ │ │ │ └── TextEditor.test.tsx.snap │ │ ├── intl │ │ │ ├── en-US.json │ │ │ ├── fr-CA.json │ │ │ └── index.ts │ │ ├── plugins │ │ │ ├── CodeHighlightPlugin.tsx │ │ │ ├── DisablePlugin.tsx │ │ │ ├── FloatingLinkEditorPlugin.tsx │ │ │ ├── LinkPlugin.tsx │ │ │ ├── MaxLengthPlugin.tsx │ │ │ ├── OnContentIsEmptyPlugin.tsx │ │ │ ├── OnFocusPlugin.tsx │ │ │ ├── ToolbarPlugin.tsx │ │ │ ├── floating-link-editor.scss │ │ │ └── toolbar.scss │ │ ├── text-editor.scss │ │ ├── themes │ │ │ └── TextEditor.theme.tsx │ │ └── utils │ │ │ ├── getSelectedNode.ts │ │ │ └── url.ts │ └── tsconfig.json ├── Textarea │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Textarea.stories.tsx │ │ ├── Textarea.test.tsx │ │ ├── Textarea.tsx │ │ ├── __snapshots__ │ │ │ └── Textarea.test.tsx.snap │ │ ├── hooks │ │ │ ├── useCharLength.tsx │ │ │ ├── useDebounce.ts │ │ │ └── useTruncateValue.tsx │ │ ├── mixins.scss │ │ └── textarea.scss │ └── tsconfig.json ├── Toaster │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Toast.tsx │ │ ├── ToastRegion.tsx │ │ ├── Toaster.stories.tsx │ │ ├── Toaster.test.tsx │ │ ├── Toaster.tsx │ │ ├── __snapshots__ │ │ │ └── Toaster.test.tsx.snap │ │ └── toaster.scss │ └── tsconfig.json ├── Toggle │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Toggle.stories.tsx │ │ ├── Toggle.test.tsx │ │ ├── Toggle.tsx │ │ └── toggle.scss │ └── tsconfig.json ├── Tooltip │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── Tooltip.stories.tsx │ │ ├── Tooltip.test.tsx │ │ ├── Tooltip.tsx │ │ ├── __mocks__ │ │ │ └── Tooltip.mock.tsx │ │ ├── __snapshots__ │ │ │ └── Tooltip.test.tsx.snap │ │ ├── hooks │ │ │ └── useDeviceDetect.tsx │ │ └── tooltip.scss │ └── tsconfig.json └── VerticalBarChart │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── jest.config.js │ ├── package.json │ ├── rollup.config.js │ ├── src │ ├── VerticalBarChart.stories.tsx │ ├── VerticalBarChart.test.tsx │ ├── VerticalBarChart.tsx │ ├── __snapshots__ │ │ └── VerticalBarChart.test.tsx.snap │ └── vertical-bar-chart.scss │ └── tsconfig.json ├── rollup.config.js ├── setupTests.js ├── shared └── components │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── rollup.config.js │ ├── src │ ├── Index.tsx │ └── visual-identifier │ │ ├── VisualIdentifier.stories.tsx │ │ ├── VisualIdentifier.tsx │ │ └── visual-identifier.scss │ └── tsconfig.json ├── tsconfig.build.json ├── tsconfig.json ├── typings ├── axe-helper.d.ts ├── icons.d.ts ├── markdown.d.ts └── storybook.d.ts ├── utils ├── bootstrap │ ├── component.mjs │ ├── helpers │ │ ├── index.mjs │ │ └── template.mjs │ └── template │ │ ├── .npmignore │ │ ├── jest.config.js │ │ ├── package.json │ │ ├── rollup.config.js │ │ └── tsconfig.json ├── generate-api.mjs ├── generate-doc.js └── index.tsx ├── website ├── .eslintrc.json ├── .gitignore ├── CHANGELOG.md ├── README.md ├── components │ ├── Card.js │ ├── ClipboardCopy.js │ ├── Code.js │ ├── ComponentAside.js │ ├── Display.js │ ├── Header.js │ ├── Highlighter.js │ ├── IconsList.js │ ├── IconsOptions.js │ ├── Layout.js │ ├── Nav.js │ ├── Pagination.js │ ├── PropsTable.js │ ├── ReferenceLinks.js │ ├── Roadmap.js │ ├── Tag.js │ ├── Title.js │ ├── Toc.js │ ├── TokenList.js │ └── icons │ │ ├── Check.js │ │ ├── Copy.js │ │ └── index.js ├── data │ └── buttonProps.json ├── example │ ├── ActionMenu.demo.js │ ├── Alert.demo.js │ ├── AreaChart.demo.js │ ├── Avatar.demo.js │ ├── BarChart.demo.js │ ├── Breadcrumb.demo.js │ ├── Button.demo.js │ ├── ButtonGroup.demo.js │ ├── Card.demo.js │ ├── Carousel.demo.js │ ├── Checkbox.demo.js │ ├── Color.demo.js │ ├── ColorPicker.demo.js │ ├── Combobox.demo.js │ ├── Datepicker.demo.js │ ├── Dialog.demo.js │ ├── Disclosure.demo.js │ ├── Dropdown.demo.js │ ├── Ellipsis.demo.js │ ├── Filter.demo.js │ ├── FormGroup.demo.js │ ├── HelperText.demo.js │ ├── Hyperlink.demo.js │ ├── IconButton.demo.js │ ├── Input.demo.js │ ├── List.demo.js │ ├── Metric.demo.js │ ├── Modal.demo.js │ ├── OptionButton.demo.js │ ├── Pager.demo.js │ ├── PieChart.demo.js │ ├── Popover.demo.js │ ├── ProgressBar.demo.js │ ├── Radio.demo.js │ ├── Select.demo.js │ ├── StackedBar.demo.js │ ├── Stepper.demo.js │ ├── Tabs.demo.js │ ├── Tag.demo.js │ ├── TagPicker.demo.js │ ├── TextEditor.demo.js │ ├── Textarea.demo.js │ ├── Toaster.demo.js │ ├── Toggle.demo.js │ ├── Tooltip.demo.js │ └── VerticalBarChart.demo.js ├── lib │ ├── ga │ │ └── index.js │ └── gtm.js ├── navigation.js ├── next.config.js ├── package.json ├── pages │ ├── _app.js │ ├── _document.js │ ├── component │ │ ├── [slug].js │ │ ├── getting-started.js │ │ └── index.js │ ├── icons.js │ ├── index.js │ ├── playroom.js │ └── tokens.js ├── public │ ├── favicon.ico │ └── igloo.svg ├── scripts │ ├── capitalize.js │ ├── files-utils.js │ ├── generate-component-data.mjs │ ├── generate-component-list.mjs │ ├── generate-doc.js │ ├── generate-pagination.js │ └── mdx-utils.js ├── styles │ ├── _layout.scss │ ├── _typography.scss │ ├── abstract │ │ ├── function.scss │ │ └── variables.scss │ ├── base │ │ ├── _colors.scss │ │ ├── _media-query.scss │ │ ├── _sizes.scss │ │ └── _types.scss │ ├── components │ │ ├── _card.scss │ │ ├── _clipboard-copy.scss │ │ ├── _code.scss │ │ ├── _display.scss │ │ ├── _example.scss │ │ ├── _highlighter.scss │ │ ├── _icon.scss │ │ ├── _mdx-content.scss │ │ ├── _nav.scss │ │ ├── _options.scss │ │ ├── _pagination.scss │ │ ├── _reference.scss │ │ ├── _table.scss │ │ ├── _tag.scss │ │ ├── _title.scss │ │ ├── _toc.scss │ │ └── index.scss │ ├── globals.scss │ └── tokens.scss └── svg │ ├── brand.svg │ ├── component.svg │ ├── components │ ├── actionMenu.svg │ ├── alert.svg │ ├── areaChart.svg │ ├── avatar.svg │ ├── barChart.svg │ ├── breadcrumb.svg │ ├── button.svg │ ├── buttonGroup.svg │ ├── card.svg │ ├── carousel.svg │ ├── checkbox.svg │ ├── color.svg │ ├── colorPicker.svg │ ├── combobox.svg │ ├── datepicker.svg │ ├── dialog.svg │ ├── disclosure.svg │ ├── dropdown.svg │ ├── ellipsis.svg │ ├── empty.png │ ├── filter.svg │ ├── formGroup.svg │ ├── helperText.svg │ ├── hyperlink.svg │ ├── iconButton.svg │ ├── input.svg │ ├── list.svg │ ├── metric.svg │ ├── modal.svg │ ├── optionButton.svg │ ├── pager.svg │ ├── pieChart.svg │ ├── popover.svg │ ├── progressBar.svg │ ├── radio.svg │ ├── select.svg │ ├── stackedBar.svg │ ├── stepper.svg │ ├── tabs.svg │ ├── tag.svg │ ├── tagPicker.svg │ ├── textEditor.svg │ ├── textarea.svg │ ├── toaster.svg │ ├── toggle.svg │ ├── tooltip.svg │ └── verticalBarChart.svg │ ├── dark-mode.svg │ ├── github.svg │ ├── icon.svg │ ├── issue.svg │ ├── sb.svg │ └── token.svg └── yarn.lock /.changeset/README.md: -------------------------------------------------------------------------------- 1 | # Changesets 2 | 3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 | with multi-package repos, or single-package repos to help you version and publish your code. You can 5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 | 7 | We have a quick list of common questions to get you started engaging with this project in 8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) 9 | -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@1.6.1/schema.json", 3 | "changelog": "@changesets/cli/changelog", 4 | "commit": false, 5 | "linked": [], 6 | "access": "public", 7 | "baseBranch": "main", 8 | "updateInternalDependencies": "patch" 9 | } 10 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | trim_trailing_whitespace = true 7 | insert_final_newline = true 8 | indent_style = space 9 | indent_size = 4 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.{js,sass,tsx}] 15 | max_line_length = 110 16 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.js text eol=lf 2 | *.ts text eol=lf 3 | *.tsx text eol=lf 4 | *.css text eol=lf 5 | *.scss text eol=lf 6 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | save-exact=true 2 | legacy-peer-deps=true 3 | npm_config_loglevel=error -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 18 -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | # Ignore artifacts: 4 | build 5 | dist 6 | coverage 7 | __snapshots__ 8 | 9 | * 10 | !**/*.css -------------------------------------------------------------------------------- /.storybook/components/chromaticWrapper.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import isChromatic from 'chromatic/isChromatic'; 3 | 4 | const ChromaticWrapper = ({ children }) => { 5 | return isChromatic() ? ( 6 |
7 | {children} 8 |
9 | ) : ( 10 | children 11 | ); 12 | }; 13 | 14 | export default ChromaticWrapper; 15 | -------------------------------------------------------------------------------- /.storybook/components/section.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import cx from 'classnames'; 3 | 4 | const Section = ({ children, column, className, ...rest }) => { 5 | const classes = cx( 6 | 'isb-section', 7 | { 'isb-section--column': column }, 8 | className 9 | ); 10 | 11 | return ( 12 |
13 | {children} 14 |
15 | ); 16 | }; 17 | 18 | export default Section; 19 | -------------------------------------------------------------------------------- /.storybook/context/featureContext.ts: -------------------------------------------------------------------------------- 1 | import { createContext } from 'react'; 2 | 3 | export type FeatureContextType = { 4 | workleap: boolean; 5 | }; 6 | 7 | const defaultValue = { 8 | workleap: true, 9 | }; 10 | 11 | export const FeatureContext = createContext(defaultValue); 12 | -------------------------------------------------------------------------------- /.storybook/manager-head.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.storybook/manager.js: -------------------------------------------------------------------------------- 1 | import { addons } from '@storybook/manager-api'; 2 | import ovTheme from './theme/index'; 3 | 4 | addons.setConfig({ 5 | theme: ovTheme, 6 | }); 7 | -------------------------------------------------------------------------------- /.storybook/preview-body.html: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /.storybook/preview-head.html: -------------------------------------------------------------------------------- 1 | 8 | 15 | 22 | -------------------------------------------------------------------------------- /.storybook/theme/index.js: -------------------------------------------------------------------------------- 1 | import { create } from '@storybook/theming'; 2 | import logo from '../../assets/brand.svg'; 3 | 4 | export default create({ 5 | base: 'light', 6 | 7 | colorSecondary: '#1053FF', 8 | 9 | // UI 10 | appBg: '#FFFFFF', 11 | 12 | // Text colors 13 | textColor: '#233043', 14 | 15 | // Toolbar default and active colors 16 | barTextColor: '#838B95', 17 | barSelectedColor: '#1053FF', 18 | 19 | brandTitle: 'Igloo Design System', 20 | brandUrl: '/', 21 | brandImage: logo, 22 | }); 23 | -------------------------------------------------------------------------------- /.storybook/withBrandDecorator.jsx: -------------------------------------------------------------------------------- 1 | import isChromatic from "chromatic/isChromatic"; 2 | import React from 'react'; 3 | 4 | export const withBrandDecorator = (StoryFn, context) => { 5 | if(isChromatic()) { // The brand selector is not available in Chromatic 6 | return StoryFn(); 7 | } 8 | 9 | return ( 10 | 11 | {StoryFn()} 12 | 13 | ) 14 | } 15 | 16 | export const BrandProvider = ({brand, children}) => { 17 | const [internalBrand, setInternalBrand] = React.useState(); 18 | 19 | React.useEffect(() => { 20 | //document.documentElement refers to html tag inside iframe#storybook-preview-iframe 21 | document.documentElement.setAttribute('data-brand', brand); 22 | setInternalBrand(brand) 23 | 24 | }, [brand]); 25 | 26 | return {children}; 27 | } 28 | -------------------------------------------------------------------------------- /.stylelintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@workleap/stylelint-configs", 3 | "ignoreFiles": ["**/dist/*.css", "website/**/*.scss"], 4 | "customSyntax": "postcss-scss", 5 | "rules": { 6 | "at-rule-no-unknown": null, 7 | "no-invalid-position-at-import-rule": null 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /__mocks__/fileMock.js: -------------------------------------------------------------------------------- 1 | module.exports = 'test-file-stub'; 2 | -------------------------------------------------------------------------------- /__mocks__/styleMock.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /assets/igloo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /axe-helper.js: -------------------------------------------------------------------------------- 1 | // Global helper file (axe-helper.js) 2 | const { configureAxe } = require("jest-axe"); 3 | 4 | const axe = configureAxe({ 5 | rules: { 6 | region: { enabled: false } 7 | } 8 | }); 9 | 10 | module.exports = axe; 11 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | ["@babel/preset-env", { targets: { node: "current" } }], 4 | "@babel/preset-react", 5 | "@babel/preset-typescript" 6 | ] 7 | }; 8 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | roots: ["/packages/"], 3 | setupFilesAfterEnv: [ 4 | "@testing-library/jest-dom/extend-expect", 5 | "/setupTests.js" 6 | ], 7 | coverageDirectory: "/coverage/", 8 | collectCoverageFrom: ["/packages/*/src/**/*.{js,jsx,ts,tsx}"], 9 | testMatch: [ 10 | "**/__tests__/**/*.+(ts|tsx|js)", 11 | "**/?(*.)+(spec|test).+(ts|tsx|js)" 12 | ], 13 | moduleNameMapper: { 14 | "\\.(css|less|sass|scss)$": "/__mocks__/styleMock.js", 15 | "\\.(gif|ttf|eot|svg)$": "/__mocks__/fileMock.js" 16 | }, 17 | preset: "ts-jest/presets/js-with-babel", 18 | transformIgnorePatterns: [ 19 | "node_modules/(?!(@igloo-ui/*|@react-hook/*|@hopper-ui/*)/)" 20 | ] 21 | }; 22 | -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "node_modules/lerna/schemas/lerna-schema.json", 3 | "packages": ["packages/*", "shared/*", "website"], 4 | "version": "independent", 5 | "npmClient": "yarn", 6 | "useWorkspaces": true, 7 | "command": { 8 | "version": { 9 | "message": "chore(release): publish", 10 | "allowBranch": ["main", "fix/*"], 11 | "registry": "https://registry.npmjs.org" 12 | } 13 | }, 14 | "ignoreChanges": [ 15 | "**/*.test.tsx", 16 | "**/*.stories.tsx", 17 | "**/__snapshots__/**", 18 | "**/*.md" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | command = "yarn build:shared && yarn build:components && yarn doc:build" 3 | publish = "website/.next" 4 | 5 | [[plugins]] 6 | package = "@netlify/plugin-nextjs" 7 | 8 | [functions] 9 | included_files = ["!node_modules/.cache/**/*", "!node_modules/@swc/**/*"] 10 | 11 | [build.environment] 12 | NODE_OPTIONS = "--max_old_space_size=8192" 13 | -------------------------------------------------------------------------------- /nx.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "node_modules/nx/schemas/nx-schema.json", 3 | "tasksRunnerOptions": { 4 | "default": { 5 | "runner": "nx/tasks-runners/default", 6 | "options": { 7 | "cacheableOperations": ["build", "api"], 8 | "parallel": 5 9 | } 10 | } 11 | }, 12 | "targetDefaults": { 13 | "build": { 14 | "dependsOn": ["^build"] 15 | }, 16 | "dev": { 17 | "dependsOn": ["^build", "prebuild"] 18 | } 19 | }, 20 | "namedInputs": { 21 | "default": ["{projectRoot}/**/*", "sharedGlobals"], 22 | "sharedGlobals": [], 23 | "production": ["default"] 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /packages/ActionMenu/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/ActionMenu/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.config'); 2 | const { name } = require('./package.json'); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name, 8 | }; 9 | -------------------------------------------------------------------------------- /packages/ActionMenu/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from './package.json'; 2 | import { createRollupConfig } from '../../rollup.config.js'; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/ActionMenu/src/action-menu.scss: -------------------------------------------------------------------------------- 1 | @use '~@igloo-ui/tokens/dist/base10/variables' as tokens; 2 | @use '~@igloo-ui/tokens/dist/fonts'; 3 | 4 | @import url('~@hopper-ui/tokens/fonts.css') layer(hopper-design-system); 5 | @import url('~@hopper-ui/tokens/tokens.css') layer(hopper-design-system); 6 | 7 | @layer igloo { 8 | :root { 9 | /* Default */ 10 | --ids-action-menu-font-family: #{tokens.$primary-font-family}; 11 | --ids-action-menu-font-size: #{tokens.$font-size-4}; 12 | } 13 | 14 | [data-brand="workleap"] { 15 | --ids-action-menu-font-family: var(--hop-body-sm-font-family); 16 | --ids-action-menu-font-size: var(--hop-body-sm-font-size); 17 | } 18 | 19 | .ids-action-menu { 20 | font-family: var(--ids-action-menu-font-family); 21 | font-size: var(--ids-action-menu-font-size); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/ActionMenu/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Alert/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Alert/README.md: -------------------------------------------------------------------------------- 1 | # Alert 2 | 3 | Use to highlight information for the user that requires his attention.
Alerts can be position at the top of the page or into other components. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/alert` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/alert 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/alert 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import Alert from '@igloo-ui/alert'; 29 | 30 | ; 31 | ``` 32 | -------------------------------------------------------------------------------- /packages/Alert/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Alert/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Alert/src/intl/en-US.json: -------------------------------------------------------------------------------- 1 | { 2 | "close": "Close" 3 | } -------------------------------------------------------------------------------- /packages/Alert/src/intl/fr-CA.json: -------------------------------------------------------------------------------- 1 | { 2 | "close": "Fermer" 3 | } -------------------------------------------------------------------------------- /packages/Alert/src/intl/index.ts: -------------------------------------------------------------------------------- 1 | 2 | import enUS from "./en-US.json"; 3 | import frCA from "./fr-CA.json"; 4 | 5 | export default { 6 | "en-US": enUS, 7 | "fr-CA": frCA 8 | }; -------------------------------------------------------------------------------- /packages/Alert/src/mixins.scss: -------------------------------------------------------------------------------- 1 | @mixin ids-alert-mixin-decoration($border-color, $color: "", $background: "", $icon-color: "") { 2 | @if $icon-color == "" { 3 | $icon-color: $border-color; 4 | } 5 | 6 | border-color: $border-color; 7 | 8 | @if $color != "" { 9 | background-color: $background; 10 | 11 | .ids-alert__content, 12 | .ids-alert__title { 13 | color: $color; 14 | } 15 | 16 | .ids-alert__metadata { 17 | color: $color; 18 | } 19 | } 20 | 21 | svg, 22 | svg circle:first-child { 23 | fill: $icon-color; 24 | } 25 | } 26 | 27 | @mixin ids-alert-mixin-icon-position-size($alignSelf, $size) { 28 | align-self: $alignSelf; 29 | 30 | svg { 31 | height: $size; 32 | width: $size; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /packages/Alert/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "src/intl/*.json", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/AreaChart/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/AreaChart/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.config'); 2 | const { name } = require('./package.json'); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name, 8 | }; 9 | -------------------------------------------------------------------------------- /packages/AreaChart/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from './package.json'; 2 | import { createRollupConfig } from '../../rollup.config.js'; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/AreaChart/src/__snapshots__/AreaChart.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`AreaChart It should render without error and a snapshot 1`] = ` 4 | 5 |
9 | 10 | `; 11 | -------------------------------------------------------------------------------- /packages/AreaChart/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Avatar/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Avatar/README.md: -------------------------------------------------------------------------------- 1 | # Avatar 2 | 3 | An image icon used to identify a user. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/avatar` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/avatar 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/avatar 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import Avatar from '@igloo-ui/avatar'; 29 | 30 | ; 31 | ``` 32 | -------------------------------------------------------------------------------- /packages/Avatar/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.config'); 2 | const { name } = require('./package.json'); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name, 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Avatar/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@igloo-ui/avatar", 3 | "version": "0.4.1", 4 | "main": "dist/Avatar.js", 5 | "module": "dist/Avatar.js", 6 | "types": "dist/Avatar.d.ts", 7 | "styles": "dist/avatar.css", 8 | "publishConfig": { 9 | "access": "public" 10 | }, 11 | "repository": "git+https://github.com/workleap/ov-igloo-ui.git", 12 | "author": "Officevibe Inc.", 13 | "contributors": [ 14 | "Vicky Comeau vicky.comeau@gsoft.com" 15 | ], 16 | "license": "Apache-2.0", 17 | "peerDependencies": { 18 | "react": ">= 16.8.6" 19 | }, 20 | "files": [ 21 | "dist" 22 | ], 23 | "scripts": { 24 | "build": "rollup -c rollup.config.js" 25 | }, 26 | "dependencies": { 27 | "@igloo-ui/tokens": "^2.1.0", 28 | "@hopper-ui/tokens": "^4.3.2", 29 | "classnames": "^2.3.2" 30 | }, 31 | "browserslist": [ 32 | "> 1%", 33 | "last 2 versions", 34 | "IE >= 11" 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /packages/Avatar/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from './package.json'; 2 | import { createRollupConfig } from '../../rollup.config.js'; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Avatar/src/__snapshots__/Avatar.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Avatar It should render a snapshot 1`] = ` 4 | 5 |
9 | Avatar 15 |
16 |
17 | `; 18 | -------------------------------------------------------------------------------- /packages/Avatar/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/BarChart/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/BarChart/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.config'); 2 | const { name } = require('./package.json'); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name, 8 | }; 9 | -------------------------------------------------------------------------------- /packages/BarChart/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from './package.json'; 2 | import { createRollupConfig } from '../../rollup.config.js'; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/BarChart/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Breadcrumb/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Breadcrumb/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Breadcrumb/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Breadcrumb/src/intl/en-US.json: -------------------------------------------------------------------------------- 1 | { 2 | "breadcrumb": "Breadcrumb" 3 | } -------------------------------------------------------------------------------- /packages/Breadcrumb/src/intl/fr-CA.json: -------------------------------------------------------------------------------- 1 | { 2 | "breadcrumb": "Le fil d'Ariane" 3 | } -------------------------------------------------------------------------------- /packages/Breadcrumb/src/intl/index.ts: -------------------------------------------------------------------------------- 1 | 2 | import enUS from "./en-US.json"; 3 | import frCA from "./fr-CA.json"; 4 | 5 | export default { 6 | "en-US": enUS, 7 | "fr-CA": frCA 8 | }; -------------------------------------------------------------------------------- /packages/Breadcrumb/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "src/intl/*.json", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Button/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Button/README.md: -------------------------------------------------------------------------------- 1 | # Button 2 | 3 | Buttons are used primarily for user interaction. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/button` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/button 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/button 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import Button from '@igloo-ui/button'; 29 | 30 | ; 31 | ``` 32 | -------------------------------------------------------------------------------- /packages/Button/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.config'); 2 | const { name } = require('./package.json'); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name, 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Button/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from './package.json'; 2 | import { createRollupConfig } from '../../rollup.config.js'; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Button/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ButtonGroup/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/ButtonGroup/README.md: -------------------------------------------------------------------------------- 1 | # ButtonGroup 2 | 3 | ButtonGroup displays multiple related actions or options stacked in a horizontal row to help with arrangement and spacing. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/button-group` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/button-group 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/button-group 21 | ``` 22 | 23 | Then to use the component in your code just import it! 24 | 25 | ```jsx 26 | import ButtonGroup, { ButtonItem } from '@igloo-ui/button-group'; 27 | 28 | 29 | Label 1 30 | Label 2 31 | ; 32 | ``` 33 | -------------------------------------------------------------------------------- /packages/ButtonGroup/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.config'); 2 | const { name } = require('./package.json'); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name, 8 | }; 9 | -------------------------------------------------------------------------------- /packages/ButtonGroup/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from './package.json'; 2 | import { createRollupConfig } from '../../rollup.config.js'; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/ButtonGroup/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Card/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Card/README.md: -------------------------------------------------------------------------------- 1 | # Card 2 | 3 | Cards are used to group similar concepts and tasks to make it easier for users to scan, read, and get things done. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/card` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/card 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/card 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import Card from '@igloo-ui/card'; 29 | 30 | Card content; 31 | ``` 32 | -------------------------------------------------------------------------------- /packages/Card/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Card/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@igloo-ui/card", 3 | "version": "0.2.5", 4 | "main": "dist/Card.js", 5 | "module": "dist/Card.js", 6 | "types": "dist/Card.d.ts", 7 | "styles": "dist/card.css", 8 | "publishConfig": { 9 | "access": "public" 10 | }, 11 | "repository": "git+https://github.com/workleap/ov-igloo-ui.git", 12 | "author": "Officevibe Inc.", 13 | "contributors": [ 14 | "Franck franck.gaudin@gsoft.com" 15 | ], 16 | "license": "Apache-2.0", 17 | "peerDependencies": { 18 | "react": ">= 16.8.6" 19 | }, 20 | "files": [ 21 | "dist" 22 | ], 23 | "scripts": { 24 | "build": "rollup -c rollup.config.js" 25 | }, 26 | "dependencies": { 27 | "@igloo-ui/tokens": "^2.1.0", 28 | "@hopper-ui/tokens": "^4.3.2", 29 | "classnames": "^2.3.2" 30 | }, 31 | "browserslist": [ 32 | "> 1%", 33 | "last 2 versions", 34 | "IE >= 11" 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /packages/Card/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from './package.json'; 2 | import { createRollupConfig } from '../../rollup.config.js'; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Card/src/Card.test.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * @jest-environment jsdom 3 | */ 4 | import React from 'react'; 5 | import { render, screen } from '@testing-library/react'; 6 | 7 | import Card from './Card'; 8 | 9 | describe('Card', () => { 10 | test('It should render without errors', () => { 11 | render(Hello world); 12 | const wrapper = screen.getByText('Hello world'); 13 | expect(wrapper).toBeInTheDocument(); 14 | }); 15 | 16 | test('It should render a small size', (): void => { 17 | render(Hello world); 18 | const wrapper = screen.getByText('Hello world'); 19 | 20 | expect(wrapper).toHaveClass('ids-card--small'); 21 | }); 22 | 23 | test('It should render a snapshot', () => { 24 | const { asFragment } = render(Hello world); 25 | expect(asFragment()).toMatchSnapshot(); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /packages/Card/src/__snapshots__/Card.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Card It should render a snapshot 1`] = ` 4 | 5 |
8 | Hello world 9 |
10 |
11 | `; 12 | -------------------------------------------------------------------------------- /packages/Card/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Carousel/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Carousel/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Carousel/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from './package.json'; 2 | import { createRollupConfig } from '../../rollup.config.js'; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Carousel/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Checkbox/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Checkbox/README.md: -------------------------------------------------------------------------------- 1 | # Checkbox 2 | 3 | Checkboxes are most commonly used to give users a way to make a range of selections (zero, one, or multiple). They may also be used as a way to have users indicate they agree to specific terms and services. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/checkbox` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/checkbox 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/checkbox 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import Checkbox from '@igloo-ui/checkbox'; 29 | 30 | Label; 31 | ``` 32 | -------------------------------------------------------------------------------- /packages/Checkbox/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require('../../jest.config'); 2 | const { name } = require('./package.json'); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name, 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Checkbox/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from './package.json'; 2 | import { createRollupConfig } from '../../rollup.config.js'; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Checkbox/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Color/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Color/README.md: -------------------------------------------------------------------------------- 1 | # Color 2 | 3 | A color can be used in place of an avatar. The background color and text color are customizable. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/color` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/color 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/color 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import Color from '@igloo-ui/color'; 29 | 30 | ; 36 | ``` 37 | -------------------------------------------------------------------------------- /packages/Color/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Color/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@igloo-ui/color", 3 | "version": "0.5.4", 4 | "main": "dist/Color.js", 5 | "module": "dist/Color.js", 6 | "types": "dist/Color.d.ts", 7 | "styles": "dist/color.css", 8 | "publishConfig": { 9 | "access": "public" 10 | }, 11 | "repository": "git+https://github.com/workleap/ov-igloo-ui.git", 12 | "author": "Officevibe Inc.", 13 | "contributors": [ 14 | "Vicky Comeau vicky.comeau@gsoft.com" 15 | ], 16 | "license": "Apache-2.0", 17 | "peerDependencies": { 18 | "react": ">= 16.8.6" 19 | }, 20 | "files": [ 21 | "dist" 22 | ], 23 | "scripts": { 24 | "build": "rollup -c rollup.config.js" 25 | }, 26 | "dependencies": { 27 | "@igloo-ui/tokens": "^2.1.0", 28 | "@hopper-ui/tokens": "^4.3.2", 29 | "classnames": "^2.3.2" 30 | }, 31 | "browserslist": [ 32 | "> 1%", 33 | "last 2 versions", 34 | "IE >= 11" 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /packages/Color/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Color/src/__snapshots__/Color.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Color It should render a snapshot 1`] = ` 4 | 5 |
9 |
12 |
13 | 14 | `; 15 | -------------------------------------------------------------------------------- /packages/Color/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ColorPicker/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/ColorPicker/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/ColorPicker/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/ColorPicker/src/__snapshots__/ColorPicker.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`ColorPicker It should render a snapshot 1`] = ` 4 | 5 |
9 | 25 |
26 |
27 | `; 28 | -------------------------------------------------------------------------------- /packages/ColorPicker/src/intl/en-US.json: -------------------------------------------------------------------------------- 1 | { 2 | "colorOptions": "Color Options" 3 | } -------------------------------------------------------------------------------- /packages/ColorPicker/src/intl/fr-CA.json: -------------------------------------------------------------------------------- 1 | { 2 | "colorOptions": "Options de couleur" 3 | } -------------------------------------------------------------------------------- /packages/ColorPicker/src/intl/index.ts: -------------------------------------------------------------------------------- 1 | 2 | import enUS from "./en-US.json"; 3 | import frCA from "./fr-CA.json"; 4 | 5 | export default { 6 | "en-US": enUS, 7 | "fr-CA": frCA 8 | }; -------------------------------------------------------------------------------- /packages/ColorPicker/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "src/intl/*.json", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Combobox/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Combobox/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Combobox/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Combobox/src/intl/en-US.json: -------------------------------------------------------------------------------- 1 | { 2 | "noResults": "No Results" 3 | } -------------------------------------------------------------------------------- /packages/Combobox/src/intl/fr-CA.json: -------------------------------------------------------------------------------- 1 | { 2 | "noResults": "Aucun résultats" 3 | } -------------------------------------------------------------------------------- /packages/Combobox/src/intl/index.ts: -------------------------------------------------------------------------------- 1 | 2 | import enUS from "./en-US.json"; 3 | import frCA from "./fr-CA.json"; 4 | 5 | export default { 6 | "en-US": enUS, 7 | "fr-CA": frCA 8 | }; -------------------------------------------------------------------------------- /packages/Combobox/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "src/intl/*.json", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | }, 13 | "references": [ 14 | { 15 | "path": "../../shared/components" 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /packages/Datepicker/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Datepicker/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Datepicker/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Datepicker/src/components/CalendarButton.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react"; 2 | import { useButton, type AriaButtonProps } from "react-aria"; 3 | import IconButton from "@igloo-ui/icon-button"; 4 | 5 | export interface ButtonProps extends AriaButtonProps { 6 | className: string; 7 | } 8 | 9 | const Button: React.FunctionComponent = (props: ButtonProps) => { 10 | const { className, children } = props; 11 | 12 | const ref = React.useRef(null); 13 | const { buttonProps } = useButton(props, ref); 14 | 15 | return ( 16 | 26 | ); 27 | }; 28 | 29 | export default Button; 30 | -------------------------------------------------------------------------------- /packages/Datepicker/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Dialog/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Dialog/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Dialog/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Dialog/src/__snapshots__/Dialog.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Dialog It should render without error and a snapshot 1`] = ``; 4 | -------------------------------------------------------------------------------- /packages/Dialog/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Disclosure/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Disclosure/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Disclosure/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Disclosure/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Dropdown/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Dropdown/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Dropdown/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Dropdown/src/Dropdown.test.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * @jest-environment jsdom 3 | */ 4 | import React from 'react'; 5 | import { render, screen } from '@testing-library/react'; 6 | 7 | import Dropdown from './Dropdown'; 8 | 9 | describe('Dropdown', () => { 10 | test('It should render without error and a snapshot', () => { 11 | const { baseElement } = render( 12 | 13 | 14 | 15 | ); 16 | 17 | expect(screen.getByTestId('dropdown1')).toBeInTheDocument(); 18 | expect(baseElement).toMatchSnapshot(); 19 | }); 20 | }); 21 | -------------------------------------------------------------------------------- /packages/Dropdown/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": [ 4 | "src/**/*", 5 | "../../typings/**/*", 6 | "rollup.config.js", 7 | "__mocks__*" 8 | ], 9 | "exclude": ["dist"], 10 | "compilerOptions": { 11 | "outDir": "./dist", 12 | "rootDir": "./src", 13 | "declarationDir": "./dist", 14 | "composite": true, 15 | "baseUrl": ".", 16 | "typeRoots": ["../../typings", "../../node_modules/@types"] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/Ellipsis/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Ellipsis/README.md: -------------------------------------------------------------------------------- 1 | # Ellipsis 2 | 3 | Informs user that text is clipped. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/ellipsis` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/ellipsis 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/ellipsis 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import Ellipsis from '@igloo-ui/ellipsis'; 29 | 30 | 31 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas vestibulum 32 | ex vel felis commodo auctor. Nulla pulvinar velit eget scelerisque mattis. 33 | Curabitur augue leo, gravida non quam at, viverra varius metus. 34 | ; 35 | ``` 36 | -------------------------------------------------------------------------------- /packages/Ellipsis/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Ellipsis/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@igloo-ui/ellipsis", 3 | "version": "0.3.5", 4 | "main": "dist/Ellipsis.js", 5 | "module": "dist/Ellipsis.js", 6 | "types": "dist/Ellipsis.d.ts", 7 | "styles": "dist/ellipsis.css", 8 | "publishConfig": { 9 | "access": "public" 10 | }, 11 | "repository": "git+https://github.com/workleap/ov-igloo-ui.git", 12 | "author": "Officevibe Inc.", 13 | "contributors": [ 14 | "Sylvester sylvester.vuong@gsoft.com" 15 | ], 16 | "license": "Apache-2.0", 17 | "peerDependencies": { 18 | "react": ">= 16.8.6" 19 | }, 20 | "files": [ 21 | "dist" 22 | ], 23 | "scripts": { 24 | "build": "rollup -c rollup.config.js" 25 | }, 26 | "dependencies": { 27 | "@igloo-ui/tokens": "^2.1.0", 28 | "@hopper-ui/tokens": "^4.3.2", 29 | "classnames": "^2.3.2" 30 | }, 31 | "browserslist": [ 32 | "> 1%", 33 | "last 2 versions", 34 | "IE >= 11" 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /packages/Ellipsis/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Ellipsis/src/ellipsis.scss: -------------------------------------------------------------------------------- 1 | @layer igloo { 2 | .ids-ellipsis { 3 | overflow: hidden; 4 | white-space: nowrap; 5 | } 6 | 7 | .ids-ellipsis__content { 8 | overflow: hidden; 9 | white-space: nowrap; 10 | text-overflow: ellipsis; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/Ellipsis/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Filter/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Filter/README.md: -------------------------------------------------------------------------------- 1 | # Filter 2 | 3 | The filter component is a button that is used to filter the items of a list or table. 4 | 5 | 6 | 7 | 8 | ## Installation 9 | 10 | To install `@igloo-ui/filter` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 11 | 12 | ```bash 13 | npm install @igloo-ui/filter 14 | ``` 15 | 16 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 17 | 18 | ```bash 19 | yarn add @igloo-ui/filter 20 | ``` 21 | 22 | ## Usage 23 | 24 | Then to use the component in your code just import it! 25 | 26 | ```jsx 27 | import Filter from '@igloo-ui/filter'; 28 | 29 | { 31 | setSelected(!selected); 32 | alert('Filter was clicked'); 33 | }} 34 | selected={selected} 35 | > 36 | Assigned to me (5) 37 | ; 38 | ``` 39 | -------------------------------------------------------------------------------- /packages/Filter/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Filter/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@igloo-ui/filter", 3 | "version": "0.5.0", 4 | "main": "dist/Filter.js", 5 | "module": "dist/Filter.js", 6 | "types": "dist/Filter.d.ts", 7 | "styles": "dist/filter.css", 8 | "publishConfig": { 9 | "access": "public" 10 | }, 11 | "repository": "git+https://github.com/workleap/ov-igloo-ui.git", 12 | "author": "Officevibe Inc.", 13 | "contributors": [ 14 | "Vicky Comeau vicky.comeau@gsoft.com" 15 | ], 16 | "license": "Apache-2.0", 17 | "peerDependencies": { 18 | "react": ">= 16.8.6" 19 | }, 20 | "files": [ 21 | "dist" 22 | ], 23 | "scripts": { 24 | "build": "rollup -c rollup.config.js" 25 | }, 26 | "dependencies": { 27 | "@igloo-ui/tokens": "^2.1.0", 28 | "@hopper-ui/tokens": "^4.3.2", 29 | "classnames": "^2.3.2" 30 | }, 31 | "browserslist": [ 32 | "> 1%", 33 | "last 2 versions", 34 | "IE >= 11" 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /packages/Filter/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Filter/src/__snapshots__/Filter.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Filter It should render a snapshot 1`] = ` 4 | 5 | 12 | 13 | `; 14 | -------------------------------------------------------------------------------- /packages/Filter/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/FormGroup/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/FormGroup/README.md: -------------------------------------------------------------------------------- 1 | # FormGroup 2 | 3 | The FormGroup is a component that displays a label and an error message for a form input. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/form-group` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/form-group 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/form-group 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import FormGroup from '@igloo-ui/form-group'; 29 | import Input from '@igloo-ui/input'; 30 | 31 | 32 | 33 | ; 34 | ``` 35 | -------------------------------------------------------------------------------- /packages/FormGroup/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/FormGroup/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/FormGroup/src/__snapshots__/FormGroup.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`FormGroup It should render a snapshot 1`] = ` 4 | 5 |
8 | 14 |
15 |
16 | `; 17 | -------------------------------------------------------------------------------- /packages/FormGroup/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/HelperText/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/HelperText/README.md: -------------------------------------------------------------------------------- 1 | # HelperText 2 | 3 | Providing additional information about a form input. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/helper-text` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/helper-text 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/helper-text 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import HelperText from '@igloo-ui/helper-text'; 29 | 30 | Additional information; 31 | ``` 32 | -------------------------------------------------------------------------------- /packages/HelperText/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/HelperText/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/HelperText/src/HelperText.stories.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import { Meta, StoryFn } from '@storybook/react'; 4 | 5 | import readme from '../README.md'; 6 | 7 | import HelperText from './HelperText'; 8 | 9 | export default { 10 | title: 'Components/HelperText', 11 | component: HelperText, 12 | parameters: { 13 | docs: { 14 | description: { 15 | component: readme.replace(//g, '').replace(//g, ''), 16 | } 17 | } 18 | }, 19 | } as Meta; 20 | 21 | export const Overview = { 22 | args: { 23 | children: 'Information', 24 | }, 25 | }; 26 | 27 | export const Error = () => Error; 28 | -------------------------------------------------------------------------------- /packages/HelperText/src/HelperText.test.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * @jest-environment jsdom 3 | */ 4 | import React from 'react'; 5 | import { render, screen } from '@testing-library/react'; 6 | 7 | import HelperText from './HelperText'; 8 | 9 | const childText = 'Information message'; 10 | 11 | const setUp = (props = {}) => { 12 | return render({childText}); 13 | }; 14 | 15 | describe('HelperText', () => { 16 | test('It should render without errors', () => { 17 | setUp(); 18 | const wrapper = screen.getByText(childText); 19 | expect(wrapper).toBeInTheDocument(); 20 | }); 21 | 22 | test('It should render a default appearance', () => { 23 | const { asFragment } = setUp(); 24 | expect(asFragment()).toMatchSnapshot(); 25 | }); 26 | 27 | test('It should render a error appearance', () => { 28 | const { asFragment } = setUp({ appearance: 'error' }); 29 | expect(asFragment()).toMatchSnapshot(); 30 | }); 31 | }); 32 | -------------------------------------------------------------------------------- /packages/HelperText/src/__snapshots__/HelperText.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`HelperText It should render a default appearance 1`] = ` 4 | 5 | 8 | Information message 9 | 10 | 11 | `; 12 | 13 | exports[`HelperText It should render a error appearance 1`] = ` 14 | 15 | 19 | Information message 20 | 21 | 22 | `; 23 | -------------------------------------------------------------------------------- /packages/HelperText/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Hyperlink/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Hyperlink/README.md: -------------------------------------------------------------------------------- 1 | # Hyperlink 2 | 3 | Hyperlink are interactive elements that allow users to navigate in webpage. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/hyperlink` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/hyperlink 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/hyperlink 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import Hyperlink from '@igloo-ui/hyperlink'; 29 | 30 | 31 | Link to ... 32 | ; 33 | ``` 34 | -------------------------------------------------------------------------------- /packages/Hyperlink/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Hyperlink/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Hyperlink/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/IconButton/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/IconButton/README.md: -------------------------------------------------------------------------------- 1 | # IconButton 2 | 3 | IconButton are used primarily for actions. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/icon-button` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/icon-button 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/icon-button 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import IconButton from '@igloo-ui/icon-button'; 29 | import Plus from '@igloo-ui/icons/dist/Plus'; 30 | 31 | } />; 32 | ``` 33 | -------------------------------------------------------------------------------- /packages/IconButton/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/IconButton/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/IconButton/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Input/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Input/README.md: -------------------------------------------------------------------------------- 1 | # Input 2 | 3 | Input enable the user to interact with and used for freeform data entry. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/input` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/input 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/input 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import Input from '@igloo-ui/input'; 29 | 30 | ; 31 | ``` 32 | -------------------------------------------------------------------------------- /packages/Input/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Input/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Input/src/hooks/useCharLength.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react"; 2 | 3 | export default function useCharLength( 4 | value: string, 5 | maxLength: number 6 | ): number { 7 | const [currentCharLength, setCurrentCharLength] = React.useState( 8 | value?.toString().length ?? 0 9 | ); 10 | 11 | React.useEffect(() => { 12 | const currentValue = value?.toString() ?? ""; 13 | const currentValueLength = currentValue.length ?? 0; 14 | 15 | setCurrentCharLength(currentValueLength); 16 | }, [value, maxLength]); 17 | 18 | return currentCharLength; 19 | } 20 | -------------------------------------------------------------------------------- /packages/Input/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/List/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/List/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/List/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/List/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | }, 13 | "references": [ 14 | { 15 | "path": "../../shared/components" 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /packages/Metric/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Metric/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Metric/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Metric/src/intl/en-US.json: -------------------------------------------------------------------------------- 1 | { 2 | "pt": "pt", 3 | "pts": "pts" 4 | } -------------------------------------------------------------------------------- /packages/Metric/src/intl/fr-CA.json: -------------------------------------------------------------------------------- 1 | { 2 | "pt": "pt", 3 | "pts": "pts" 4 | } -------------------------------------------------------------------------------- /packages/Metric/src/intl/index.ts: -------------------------------------------------------------------------------- 1 | 2 | import enUS from "./en-US.json"; 3 | import frCA from "./fr-CA.json"; 4 | 5 | export default { 6 | "en-US": enUS, 7 | "fr-CA": frCA 8 | }; -------------------------------------------------------------------------------- /packages/Metric/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "src/intl/*.json", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Modal/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Modal/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Modal/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Modal/src/intl/en-US.json: -------------------------------------------------------------------------------- 1 | { 2 | "close": "Close" 3 | } -------------------------------------------------------------------------------- /packages/Modal/src/intl/fr-CA.json: -------------------------------------------------------------------------------- 1 | { 2 | "close": "Fermer" 3 | } -------------------------------------------------------------------------------- /packages/Modal/src/intl/index.ts: -------------------------------------------------------------------------------- 1 | 2 | import enUS from "./en-US.json"; 3 | import frCA from "./fr-CA.json"; 4 | 5 | export default { 6 | "en-US": enUS, 7 | "fr-CA": frCA 8 | }; -------------------------------------------------------------------------------- /packages/Modal/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "src/intl/*.json", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/OptionButton/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/OptionButton/README.md: -------------------------------------------------------------------------------- 1 | # OptionButton 2 | 3 | The option button is a component that will often be used in a group of multiple option buttons and will play a role similar to the radio buttons. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/option-button` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/option-button 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/option-button 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import OptionButton from '@igloo-ui/option-button'; 29 | 30 | 31 | Text 32 | ; 33 | ``` 34 | -------------------------------------------------------------------------------- /packages/OptionButton/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/OptionButton/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@igloo-ui/option-button", 3 | "version": "0.3.2", 4 | "main": "dist/OptionButton.js", 5 | "module": "dist/OptionButton.js", 6 | "types": "dist/OptionButton.d.ts", 7 | "styles": "dist/option-button.css", 8 | "publishConfig": { 9 | "access": "public" 10 | }, 11 | "repository": "git+https://github.com/workleap/ov-igloo-ui.git", 12 | "author": "Officevibe Inc.", 13 | "contributors": [ 14 | "Vicky Comeau vicky.comeau@gsoft.com" 15 | ], 16 | "license": "Apache-2.0", 17 | "peerDependencies": { 18 | "react": ">= 16.8.6" 19 | }, 20 | "files": [ 21 | "dist" 22 | ], 23 | "scripts": { 24 | "build": "rollup -c rollup.config.js" 25 | }, 26 | "dependencies": { 27 | "@igloo-ui/tokens": "^2.1.0", 28 | "@hopper-ui/tokens": "^4.3.2", 29 | "classnames": "^2.3.2" 30 | }, 31 | "browserslist": [ 32 | "> 1%", 33 | "last 2 versions", 34 | "IE >= 11" 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /packages/OptionButton/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/OptionButton/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Pager/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Pager/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Pager/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Pager/src/intl/en-US.json: -------------------------------------------------------------------------------- 1 | { 2 | "of": "of", 3 | "goToNextPage": "Go to next page", 4 | "goToPreviousPage": "Go to previous page", 5 | "jumpBack5Pages": "Jump back 5 pages", 6 | "jumpForward5Pages": "Jump forward 5 pages", 7 | "page": "Page", 8 | "goToPage": "Go to page" 9 | } -------------------------------------------------------------------------------- /packages/Pager/src/intl/fr-CA.json: -------------------------------------------------------------------------------- 1 | { 2 | "of": "sur", 3 | "goToNextPage": "Aller à la page suivante", 4 | "goToPreviousPage": "Aller à la page précédente", 5 | "jumpBack5Pages": "Revenir 5 pages en arrière", 6 | "jumpForward5Pages": "Avancer de 5 pages", 7 | "page": "Page", 8 | "goToPage": "Aller à la page" 9 | } -------------------------------------------------------------------------------- /packages/Pager/src/intl/index.ts: -------------------------------------------------------------------------------- 1 | 2 | import enUS from "./en-US.json"; 3 | import frCA from "./fr-CA.json"; 4 | 5 | export default { 6 | "en-US": enUS, 7 | "fr-CA": frCA 8 | }; -------------------------------------------------------------------------------- /packages/Pager/src/svgs.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable max-len */ 2 | import React from "react"; 3 | 4 | export const EllipsisIcon: React.FunctionComponent = () => ( 5 | 12 | 16 | 20 | 24 | 25 | ); 26 | -------------------------------------------------------------------------------- /packages/Pager/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "src/intl/*.json", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/PieChart/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/PieChart/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/PieChart/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@igloo-ui/pie-chart", 3 | "version": "0.3.5", 4 | "main": "dist/PieChart.js", 5 | "module": "dist/PieChart.js", 6 | "types": "dist/PieChart.d.ts", 7 | "styles": "dist/pie-chart.css", 8 | "publishConfig": { 9 | "access": "public" 10 | }, 11 | "repository": "git+https://github.com/workleap/ov-igloo-ui.git", 12 | "author": "Officevibe Inc.", 13 | "contributors": [ 14 | "Vicky Comeau vicky.comeau@gsoft.com" 15 | ], 16 | "license": "Apache-2.0", 17 | "peerDependencies": { 18 | "react": ">= 16.8.6" 19 | }, 20 | "files": [ 21 | "dist" 22 | ], 23 | "scripts": { 24 | "build": "rollup -c rollup.config.js" 25 | }, 26 | "dependencies": { 27 | "@igloo-ui/tokens": "^2.1.0", 28 | "@hopper-ui/tokens": "^4.3.2", 29 | "classnames": "^2.3.2", 30 | "recharts": "^2.9.2" 31 | }, 32 | "browserslist": [ 33 | "> 1%", 34 | "last 2 versions", 35 | "IE >= 11" 36 | ] 37 | } 38 | -------------------------------------------------------------------------------- /packages/PieChart/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/PieChart/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Popover/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Popover/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Popover/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Popover/src/intl/en-US.json: -------------------------------------------------------------------------------- 1 | { 2 | "close": "close" 3 | } -------------------------------------------------------------------------------- /packages/Popover/src/intl/fr-CA.json: -------------------------------------------------------------------------------- 1 | { 2 | "close": "fermer" 3 | } -------------------------------------------------------------------------------- /packages/Popover/src/intl/index.ts: -------------------------------------------------------------------------------- 1 | 2 | import enUS from "./en-US.json"; 3 | import frCA from "./fr-CA.json"; 4 | 5 | export default { 6 | "en-US": enUS, 7 | "fr-CA": frCA 8 | }; -------------------------------------------------------------------------------- /packages/Popover/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "src/intl/*.json", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/ProgressBar/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/ProgressBar/README.md: -------------------------------------------------------------------------------- 1 | # ProgressBar 2 | 3 | Progress bar that displays linear progress. Works best with elements that do not involve specific steps. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/progress-bar` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/progress-bar 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/progress-bar 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import ProgressBar from '@igloo-ui/progress-bar'; 29 | 30 | ; 31 | ``` 32 | -------------------------------------------------------------------------------- /packages/ProgressBar/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/ProgressBar/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/ProgressBar/src/ProgressBar.test.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * @jest-environment jsdom 3 | */ 4 | import React from 'react'; 5 | import { render, screen } from '@testing-library/react'; 6 | 7 | import ProgressBar from './ProgressBar'; 8 | 9 | describe('ProgressBar', () => { 10 | test('It should render without errors and a snapshot', () => { 11 | const { asFragment } = render( 12 | 13 | ); 14 | expect(screen.getByTestId('ids-progress-bar')).toBeInTheDocument(); 15 | expect(asFragment()).toMatchSnapshot(); 16 | }); 17 | }); 18 | -------------------------------------------------------------------------------- /packages/ProgressBar/src/__snapshots__/ProgressBar.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`ProgressBar It should render without errors and a snapshot 1`] = ` 4 | 5 |
10 | 14 |
15 |
16 | `; 17 | -------------------------------------------------------------------------------- /packages/ProgressBar/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Provider/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Provider/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # @igloo-ui/provider 2 | 3 | ## 0.1.5 4 | 5 | ### Patch Changes 6 | 7 | - 2afe0d0: Updated to latest icons and tokens 8 | 9 | ## 0.1.4 10 | 11 | ### Patch Changes 12 | 13 | - d8dc4ea: Updated Hopper-UI tokens dependencies 14 | 15 | ## 0.1.3 16 | 17 | ### Patch Changes 18 | 19 | - 81723d0: Updated Hopper depedency 20 | 21 | ## 0.1.2 22 | 23 | ### Patch Changes 24 | 25 | - 1613653: Updated Hopper Tokens Fonts package 26 | 27 | ## 0.1.1 28 | 29 | ### Patch Changes 30 | 31 | - 4a2812e: Added locale support using Igloo's provider. 32 | 33 | ## 0.1.0 34 | 35 | ### Minor Changes 36 | 37 | - 6ea531f: The initial release of the Provider package. 38 | -------------------------------------------------------------------------------- /packages/Provider/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Provider/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@igloo-ui/provider", 3 | "version": "0.1.5", 4 | "main": "dist/Provider.js", 5 | "module": "dist/Provider.js", 6 | "types": "dist/Provider.d.ts", 7 | "styles": "dist/provider.css", 8 | "publishConfig": { 9 | "access": "public" 10 | }, 11 | "repository": "git+https://github.com/workleap/ov-igloo-ui.git", 12 | "author": "Officevibe Inc.", 13 | "contributors": [ 14 | "Vicky Comeau vicky.comeau@workleap.com" 15 | ], 16 | "license": "Apache-2.0", 17 | "peerDependencies": { 18 | "react": ">= 16.8.6" 19 | }, 20 | "files": [ 21 | "dist" 22 | ], 23 | "scripts": { 24 | "build": "rollup -c rollup.config.js" 25 | }, 26 | "dependencies": { 27 | "@igloo-ui/tokens": "^2.1.0", 28 | "@hopper-ui/tokens": "^4.3.2", 29 | "react-aria": "^3.32.1" 30 | }, 31 | "browserslist": [ 32 | "> 1%", 33 | "last 2 versions", 34 | "IE >= 11" 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /packages/Provider/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Provider/src/Provider.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react"; 2 | 3 | import { I18nProvider, type I18nProviderProps, useLocale, useLocalizedStringFormatter } from "react-aria"; 4 | 5 | import "./provider.scss"; 6 | 7 | export type AvailableLocales = "en-US" | "fr-CA"; 8 | 9 | export interface IglooProviderProps extends Omit { 10 | locale: AvailableLocales; 11 | } 12 | const IglooProvider: React.FunctionComponent = props => { 13 | return ( 14 | 15 | ); 16 | }; 17 | 18 | export { useLocale, useLocalizedStringFormatter }; 19 | 20 | export default IglooProvider; -------------------------------------------------------------------------------- /packages/Provider/src/provider.scss: -------------------------------------------------------------------------------- 1 | /* Placeholder css */ -------------------------------------------------------------------------------- /packages/Provider/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "src/intl/*.json", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Radio/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Radio/README.md: -------------------------------------------------------------------------------- 1 | # Radio 2 | 3 | Use Radio components to be part of an options list where users can only make a single choice. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/radio` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/radio 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/radio 21 | ``` 22 | 23 | Then to use the component in your code just import it! 24 | 25 | ```js 26 | import Radio from '@igloo-ui/radio'; 27 | 28 | Label; 29 | ``` 30 | -------------------------------------------------------------------------------- /packages/Radio/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Radio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@igloo-ui/radio", 3 | "version": "0.3.2", 4 | "main": "dist/Radio.js", 5 | "module": "dist/Radio.js", 6 | "types": "dist/Radio.d.ts", 7 | "styles": "dist/radio.css", 8 | "publishConfig": { 9 | "access": "public" 10 | }, 11 | "repository": "git+https://github.com/workleap/ov-igloo-ui.git", 12 | "author": "Officevibe Inc.", 13 | "contributors": [ 14 | "Franck franck.gaudin@gsoft.com" 15 | ], 16 | "license": "Apache-2.0", 17 | "peerDependencies": { 18 | "react": ">= 16.8.6" 19 | }, 20 | "files": [ 21 | "dist" 22 | ], 23 | "scripts": { 24 | "build": "rollup -c rollup.config.js" 25 | }, 26 | "dependencies": { 27 | "@igloo-ui/tokens": "^2.1.0", 28 | "@hopper-ui/tokens": "^4.3.2", 29 | "classnames": "^2.3.2" 30 | }, 31 | "browserslist": [ 32 | "> 1%", 33 | "last 2 versions", 34 | "IE >= 11" 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /packages/Radio/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Radio/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Select/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Select/README.md: -------------------------------------------------------------------------------- 1 | # Select 2 | 3 | Select inputs let users choose one option from an options menu. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/select` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/select 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/select 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import Select from '@igloo-ui/select'; 29 | 30 | ; 38 | ``` 39 | -------------------------------------------------------------------------------- /packages/Select/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Select/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Select/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | }, 13 | "references": [ 14 | { 15 | "path": "../../shared/components" 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /packages/StackedBar/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/StackedBar/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/StackedBar/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/StackedBar/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Stepper/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Stepper/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Stepper/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Stepper/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Tabs/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Tabs/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Tabs/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Tabs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Tag/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Tag/README.md: -------------------------------------------------------------------------------- 1 | # Tag 2 | 3 | The Tag component informs users of the status of an object or of an action that's been taken. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/tag` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/tag 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/tag 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import Tag from '@igloo-ui/tag'; 29 | import LabelSolid from '@igloo-ui/icons/dist/LabelSolid'; 30 | 31 | } appearance="success" dismissible> 32 | This is a tag 33 | ; 34 | ``` 35 | -------------------------------------------------------------------------------- /packages/Tag/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/Tag/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from './package.json'; 2 | import { createRollupConfig } from '../../rollup.config.js'; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/Tag/src/__snapshots__/Tag.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Tag It should render a snapshot 1`] = ` 4 | 5 |
9 |
12 |
15 |
18 | Render snapshot 19 |
20 |
21 |
22 |
23 |
24 | `; 25 | -------------------------------------------------------------------------------- /packages/Tag/src/intl/en-US.json: -------------------------------------------------------------------------------- 1 | { 2 | "close": "close" 3 | } -------------------------------------------------------------------------------- /packages/Tag/src/intl/fr-CA.json: -------------------------------------------------------------------------------- 1 | { 2 | "close": "fermer" 3 | } -------------------------------------------------------------------------------- /packages/Tag/src/intl/index.ts: -------------------------------------------------------------------------------- 1 | 2 | import enUS from "./en-US.json"; 3 | import frCA from "./fr-CA.json"; 4 | 5 | export default { 6 | "en-US": enUS, 7 | "fr-CA": frCA 8 | }; -------------------------------------------------------------------------------- /packages/Tag/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "src/intl/*.json", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | }, 13 | "references": [ 14 | { 15 | "path": "../../shared/components" 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /packages/TagPicker/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/TagPicker/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/TagPicker/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/TagPicker/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/TextEditor/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/TextEditor/README.md: -------------------------------------------------------------------------------- 1 | # TextEditor 2 | 3 | The text editor is a multiline text component with text formatting capabilities. 4 | It supports bold, italic, underline, strikethrough and markdown shortcuts as well as adding links and lists. 5 | 6 | 7 | 8 | 9 | 10 | ## Installation 11 | 12 | To install `@igloo-ui/text-editor` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 13 | 14 | ```bash 15 | npm install @igloo-ui/text-editor 16 | ``` 17 | 18 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 19 | 20 | ```bash 21 | yarn add @igloo-ui/text-editor 22 | ``` 23 | 24 | ## Usage 25 | 26 | Then to use the component in your code just import it! 27 | 28 | ```jsx 29 | import TextEditor from '@igloo-ui/text-editor'; 30 | 31 | ; 32 | ``` 33 | -------------------------------------------------------------------------------- /packages/TextEditor/jest.config.js: -------------------------------------------------------------------------------- 1 | const base = require("../../jest.config"); 2 | const { name } = require("./package.json"); 3 | 4 | module.exports = { 5 | ...base, 6 | name, 7 | displayName: name 8 | }; 9 | -------------------------------------------------------------------------------- /packages/TextEditor/rollup.config.js: -------------------------------------------------------------------------------- 1 | import * as pkg from "./package.json"; 2 | import { createRollupConfig } from "../../rollup.config.js"; 3 | 4 | const { name } = pkg; 5 | 6 | export default [createRollupConfig(name)]; 7 | -------------------------------------------------------------------------------- /packages/TextEditor/src/intl/en-US.json: -------------------------------------------------------------------------------- 1 | { 2 | "bold": "Bold", 3 | "clear": "Clear", 4 | "clearAllText": "Clear all text", 5 | "italic": "Italic", 6 | "link": "Link", 7 | "orderedList": "Ordered List", 8 | "strikethrough": "Strikethrough", 9 | "underline": "Underline", 10 | "unorderedList": "Unordered List" , 11 | "private": "Visible to you only", 12 | "editLink": "Edit link", 13 | "cancel": "Cancel", 14 | "openInNewTab": "Open in a new tab", 15 | "removeLink": "Remove link", 16 | "save": "Save" 17 | } -------------------------------------------------------------------------------- /packages/TextEditor/src/intl/fr-CA.json: -------------------------------------------------------------------------------- 1 | { 2 | "bold": "Gras", 3 | "clear": "Effacer", 4 | "clearAllText": "Effacer tout le texte", 5 | "italic": "Italique", 6 | "link": "Lien", 7 | "orderedList": "Liste ordonnée", 8 | "strikethrough": "Barré", 9 | "underline": "Souligné", 10 | "unorderedList": "Liste non ordonnée", 11 | "private": "Visible uniquement par vous", 12 | "editLink": "Modifier le lien", 13 | "cancel": "Annuler", 14 | "openInNewTab": "Ouvrir dans un nouvel onglet", 15 | "removeLink": "Supprimer le lien", 16 | "save": "Enregistrer" 17 | } -------------------------------------------------------------------------------- /packages/TextEditor/src/intl/index.ts: -------------------------------------------------------------------------------- 1 | 2 | import enUS from "./en-US.json"; 3 | import frCA from "./fr-CA.json"; 4 | 5 | export default { 6 | "en-US": enUS, 7 | "fr-CA": frCA 8 | }; -------------------------------------------------------------------------------- /packages/TextEditor/src/plugins/CodeHighlightPlugin.tsx: -------------------------------------------------------------------------------- 1 | import { registerCodeHighlighting } from "@lexical/code"; 2 | // eslint-disable-next-line max-len 3 | import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext"; 4 | import { useEffect } from "react"; 5 | 6 | export function CodeHighlightPlugin(): JSX.Element | null { 7 | const [editor] = useLexicalComposerContext(); 8 | 9 | useEffect(() => { 10 | return registerCodeHighlighting(editor); 11 | }, [editor]); 12 | 13 | return null; 14 | } 15 | -------------------------------------------------------------------------------- /packages/TextEditor/src/plugins/DisablePlugin.tsx: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line max-len 2 | import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext"; 3 | import { useEffect } from "react"; 4 | 5 | interface Props { 6 | disabled?: boolean; 7 | } 8 | 9 | export function DisablePlugin({ disabled }: Props): null { 10 | const [editor] = useLexicalComposerContext(); 11 | 12 | useEffect(() => { 13 | editor.setEditable(!disabled); 14 | }, [disabled, editor]); 15 | 16 | return null; 17 | } 18 | -------------------------------------------------------------------------------- /packages/TextEditor/src/plugins/LinkPlugin.tsx: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line max-len 2 | import { LinkPlugin as LexicalLinkPlugin } from "@lexical/react/LexicalLinkPlugin"; 3 | import * as React from "react"; 4 | 5 | import { validateUrl } from "../utils/url"; 6 | 7 | export function LinkPlugin(): JSX.Element { 8 | return ; 9 | } 10 | -------------------------------------------------------------------------------- /packages/TextEditor/src/plugins/OnContentIsEmptyPlugin.tsx: -------------------------------------------------------------------------------- 1 | import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext"; 2 | import { useLexicalIsTextContentEmpty } from "@lexical/react/useLexicalIsTextContentEmpty"; 3 | 4 | type OnContentIsEmpty = (empty: boolean) => void; 5 | 6 | export function OnContentIsEmptyPlugin({ 7 | onContentIsEmpty 8 | }: { 9 | onContentIsEmpty?: OnContentIsEmpty; 10 | }) { 11 | const [editor] = useLexicalComposerContext(); 12 | const contentIsEmpty = useLexicalIsTextContentEmpty(editor); 13 | 14 | if (onContentIsEmpty) { 15 | onContentIsEmpty(contentIsEmpty); 16 | } 17 | 18 | return null; 19 | } 20 | -------------------------------------------------------------------------------- /packages/TextEditor/src/utils/getSelectedNode.ts: -------------------------------------------------------------------------------- 1 | import { $isAtNodeEnd } from "@lexical/selection"; 2 | import type { ElementNode, RangeSelection, TextNode } from "lexical"; 3 | 4 | export function getSelectedNode( 5 | selection: RangeSelection 6 | ): TextNode | ElementNode { 7 | const { anchor } = selection; 8 | const { focus } = selection; 9 | const anchorNode = selection.anchor.getNode(); 10 | const focusNode = selection.focus.getNode(); 11 | if (anchorNode === focusNode) { 12 | return anchorNode; 13 | } 14 | const isBackward = selection.isBackward(); 15 | if (isBackward) { 16 | return $isAtNodeEnd(focus) ? anchorNode : focusNode; 17 | } 18 | 19 | return $isAtNodeEnd(anchor) ? anchorNode : focusNode; 20 | } 21 | -------------------------------------------------------------------------------- /packages/TextEditor/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.build.json", 3 | "include": ["src/**/*", "src/intl/*.json", "../../typings/**/*", "rollup.config.js"], 4 | "exclude": ["dist"], 5 | "compilerOptions": { 6 | "outDir": "./dist", 7 | "rootDir": "./src", 8 | "declarationDir": "./dist", 9 | "composite": true, 10 | "baseUrl": ".", 11 | "typeRoots": ["../../typings", "../../node_modules/@types"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/Textarea/.npmignore: -------------------------------------------------------------------------------- 1 | src/ -------------------------------------------------------------------------------- /packages/Textarea/README.md: -------------------------------------------------------------------------------- 1 | # Textarea 2 | 3 | The textarea component defines a multi-line text input control. 4 | 5 | 6 | 7 | 8 | 9 | ## Installation 10 | 11 | To install `@igloo-ui/textarea` in your project, you will need to run the following command using [npm](https://www.npmjs.com/): 12 | 13 | ```bash 14 | npm install @igloo-ui/textarea 15 | ``` 16 | 17 | If you prefer [Yarn](https://classic.yarnpkg.com/en/), use the following command instead: 18 | 19 | ```bash 20 | yarn add @igloo-ui/textarea 21 | ``` 22 | 23 | ## Usage 24 | 25 | Then to use the component in your code just import it! 26 | 27 | ```jsx 28 | import Textarea from '@igloo-ui/textarea'; 29 | 30 |