@popsure/dirty-swan 0.65.1 → 0.66.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/cjs/index.d.ts +2 -2
  2. package/dist/cjs/index.js +361 -209
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/lib/components/searchableDropdown/index.d.ts +22 -0
  5. package/dist/cjs/lib/components/searchableDropdown/index.stories.d.ts +108 -0
  6. package/dist/cjs/lib/components/searchableDropdown/index.test.d.ts +1 -0
  7. package/dist/cjs/lib/hooks/useDropdownAlignment.d.ts +5 -0
  8. package/dist/cjs/lib/index.d.ts +3 -2
  9. package/dist/esm/{Calendar-C7I0F5Gv.js → Calendar-8rhyapMz.js} +3 -19
  10. package/dist/esm/Calendar-8rhyapMz.js.map +1 -0
  11. package/dist/esm/components/dateSelector/components/Calendar.js +2 -1
  12. package/dist/esm/components/dateSelector/components/Calendar.js.map +1 -1
  13. package/dist/esm/components/dateSelector/index.js +2 -1
  14. package/dist/esm/components/dateSelector/index.js.map +1 -1
  15. package/dist/esm/components/dateSelector/index.stories.js +2 -1
  16. package/dist/esm/components/dateSelector/index.stories.js.map +1 -1
  17. package/dist/esm/components/dateSelector/index.test.js +2 -1
  18. package/dist/esm/components/dateSelector/index.test.js.map +1 -1
  19. package/dist/esm/components/searchableDropdown/index.js +13 -0
  20. package/dist/esm/components/searchableDropdown/index.js.map +1 -0
  21. package/dist/esm/components/searchableDropdown/index.stories.js +201 -0
  22. package/dist/esm/components/searchableDropdown/index.stories.js.map +1 -0
  23. package/dist/esm/components/searchableDropdown/index.test.js +607 -0
  24. package/dist/esm/components/searchableDropdown/index.test.js.map +1 -0
  25. package/dist/esm/components/toast/index.js +1 -1
  26. package/dist/esm/components/toast/index.stories.js +1 -1
  27. package/dist/esm/components/toast/index.test.js +1 -1
  28. package/dist/esm/{index-C4IAMlRE.js → index-CT0_LjIR.js} +2 -2
  29. package/dist/esm/{index-C4IAMlRE.js.map → index-CT0_LjIR.js.map} +1 -1
  30. package/dist/esm/index-QeP_xz9v.js +175 -0
  31. package/dist/esm/index-QeP_xz9v.js.map +1 -0
  32. package/dist/esm/index.d.ts +2 -2
  33. package/dist/esm/index.js +7 -17
  34. package/dist/esm/index.js.map +1 -1
  35. package/dist/esm/lib/components/searchableDropdown/index.d.ts +22 -0
  36. package/dist/esm/lib/components/searchableDropdown/index.stories.d.ts +108 -0
  37. package/dist/esm/lib/components/searchableDropdown/index.test.d.ts +1 -0
  38. package/dist/esm/lib/hooks/useDropdownAlignment.d.ts +5 -0
  39. package/dist/esm/lib/index.d.ts +3 -2
  40. package/dist/esm/useOnClickOutside-B5hujnpp.js +21 -0
  41. package/dist/esm/useOnClickOutside-B5hujnpp.js.map +1 -0
  42. package/dist/esm/util/images/index.stories.js +2 -1
  43. package/dist/esm/util/images/index.stories.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/index.tsx +3 -0
  46. package/src/lib/components/searchableDropdown/index.stories.tsx +286 -0
  47. package/src/lib/components/searchableDropdown/index.test.tsx +355 -0
  48. package/src/lib/components/searchableDropdown/index.tsx +267 -0
  49. package/src/lib/components/searchableDropdown/style.module.scss +137 -0
  50. package/src/lib/hooks/useDropdownAlignment.test.ts +210 -0
  51. package/src/lib/hooks/useDropdownAlignment.ts +34 -0
  52. package/src/lib/index.tsx +8 -0
  53. package/dist/esm/Calendar-C7I0F5Gv.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sources":["../../../../../src/lib/components/searchableDropdown/index.test.tsx"],"sourcesContent":["import { render, screen } from '../../util/testUtils';\n\nimport { SearchableDropdown, SearchableDropdownProps } from '.';\n\nconst options = [\n { id: 'de', label: 'Germany' },\n { id: 'fr', label: 'France' },\n { id: 'es', label: 'Spain' },\n { id: 'it', label: 'Italy' },\n { id: 'pt', label: 'Portugal' },\n];\n\nconst defaultProps: SearchableDropdownProps = {\n options,\n value: 'de',\n onChange: jest.fn(),\n groupName: 'country',\n};\n\nconst setup = (props: Partial<SearchableDropdownProps> = {}) => {\n const onChange = jest.fn();\n const utils = render(\n <SearchableDropdown {...defaultProps} onChange={onChange} {...props} />\n );\n return { ...utils, onChange };\n};\n\ndescribe('SearchableDropdown', () => {\n describe('rendering', () => {\n it('should render the selected option label in the trigger', () => {\n setup();\n expect(screen.getByRole('button')).toHaveTextContent('Germany');\n });\n\n it('should render triggerPlaceholder when value is null', () => {\n setup({ value: null, triggerPlaceholder: 'Select a country' });\n expect(screen.getByRole('button')).toHaveTextContent('Select a country');\n });\n\n it('should not render the dropdown when closed', () => {\n setup();\n expect(screen.queryByRole('radiogroup')).not.toBeInTheDocument();\n });\n\n it('should render all options when opened', async () => {\n const { user } = setup();\n await user.click(screen.getByRole('button'));\n\n options.forEach((option) => {\n expect(screen.getByLabelText(option.label)).toBeInTheDocument();\n });\n });\n\n it('should render icons in options', async () => {\n const { user } = setup({\n options: [\n { id: 'de', label: 'Germany', icon: <span data-testid=\"icon-de\">flag</span> },\n ],\n });\n await user.click(screen.getByRole('button'));\n\n expect(screen.getAllByTestId('icon-de')).toHaveLength(2); // trigger + option\n });\n\n it('should render the selected option icon in the trigger', () => {\n setup({\n options: [\n { id: 'de', label: 'Germany', icon: <span data-testid=\"trigger-icon\">flag</span> },\n ],\n value: 'de',\n });\n\n expect(screen.getByTestId('trigger-icon')).toBeInTheDocument();\n });\n\n it('should show no results text when search has no matches', async () => {\n const { user } = setup({ searchable: true, noResultsText: 'Nothing here' });\n await user.click(screen.getByRole('button'));\n await user.type(screen.getByPlaceholderText('Search'), 'zzzzz');\n\n expect(screen.getByText('Nothing here')).toBeInTheDocument();\n });\n });\n\n describe('open / close', () => {\n it('should open the dropdown on trigger click', async () => {\n const { user } = setup();\n await user.click(screen.getByRole('button'));\n\n expect(screen.getByRole('radiogroup')).toBeInTheDocument();\n });\n\n it('should close the dropdown on second trigger click', async () => {\n const { user } = setup();\n const trigger = screen.getByRole('button');\n await user.click(trigger);\n await user.click(trigger);\n\n expect(screen.queryByRole('radiogroup')).not.toBeInTheDocument();\n });\n\n it('should close the dropdown on Escape', async () => {\n const { user } = setup();\n await user.click(screen.getByRole('button'));\n expect(screen.getByRole('radiogroup')).toBeInTheDocument();\n\n await user.keyboard('{Escape}');\n expect(screen.queryByRole('radiogroup')).not.toBeInTheDocument();\n });\n\n it('should close the dropdown when clicking outside', async () => {\n const { user } = setup();\n await user.click(screen.getByRole('button'));\n expect(screen.getByRole('radiogroup')).toBeInTheDocument();\n\n await user.click(document.body);\n expect(screen.queryByRole('radiogroup')).not.toBeInTheDocument();\n });\n });\n\n describe('selection', () => {\n it('should call onChange when an option is clicked', async () => {\n const { user, onChange } = setup();\n await user.click(screen.getByRole('button'));\n await user.click(screen.getByLabelText('France'));\n\n expect(onChange).toHaveBeenCalledWith('fr');\n });\n\n it('should close the dropdown after selecting an option', async () => {\n const { user } = setup();\n await user.click(screen.getByRole('button'));\n await user.click(screen.getByLabelText('France'));\n\n expect(screen.queryByRole('radiogroup')).not.toBeInTheDocument();\n });\n\n it('should mark the current value as checked', async () => {\n const { user } = setup({ value: 'fr' });\n await user.click(screen.getByRole('button'));\n\n expect(screen.getByRole('radio', { name: 'France' })).toBeChecked();\n });\n });\n\n describe('search', () => {\n it('should filter options based on search term', async () => {\n const { user } = setup({ searchable: true });\n await user.click(screen.getByRole('button'));\n await user.type(screen.getByPlaceholderText('Search'), 'ger');\n\n expect(screen.getByLabelText('Germany')).toBeInTheDocument();\n expect(screen.queryByLabelText('France')).not.toBeInTheDocument();\n });\n\n it('should prioritize options that start with the search term', async () => {\n const { user } = setup({\n searchable: true,\n options: [\n { id: 'al', label: 'Algeria' },\n { id: 'po', label: 'Portugal' },\n { id: 'pl', label: 'Poland' },\n ],\n });\n await user.click(screen.getByRole('button'));\n await user.type(screen.getByPlaceholderText('Search'), 'po');\n\n const radios = screen.getAllByRole('radio');\n expect(radios[0]).toHaveAttribute('value', 'po');\n expect(radios[1]).toHaveAttribute('value', 'pl');\n });\n\n it('should clear the search term when dropdown closes', async () => {\n const { user } = setup({ searchable: true });\n await user.click(screen.getByRole('button'));\n await user.type(screen.getByPlaceholderText('Search'), 'ger');\n await user.keyboard('{Escape}');\n\n await user.click(screen.getByRole('button'));\n expect(screen.getByPlaceholderText('Search')).toHaveValue('');\n expect(screen.getAllByRole('radio')).toHaveLength(options.length);\n });\n\n it('should select the first filtered option on Enter in search input', async () => {\n const { user, onChange } = setup({ searchable: true });\n await user.click(screen.getByRole('button'));\n await user.type(screen.getByPlaceholderText('Search'), 'fra');\n await user.keyboard('{Enter}');\n\n expect(onChange).toHaveBeenCalledWith('fr');\n });\n\n it('should use custom placeholder text', async () => {\n const { user } = setup({ searchable: true, placeholder: 'Find a country' });\n await user.click(screen.getByRole('button'));\n\n expect(screen.getByPlaceholderText('Find a country')).toBeInTheDocument();\n });\n });\n\n describe('keyboard navigation', () => {\n it('should move focus to the first option on ArrowDown from search input', async () => {\n const { user } = setup({ searchable: true });\n await user.click(screen.getByRole('button'));\n await user.keyboard('{ArrowDown}');\n\n expect(screen.getByRole('radio', { name: 'Germany' })).toHaveFocus();\n });\n\n it('should move focus to the last option on ArrowUp from search input', async () => {\n const { user } = setup({ searchable: true });\n await user.click(screen.getByRole('button'));\n await user.keyboard('{ArrowUp}');\n\n expect(screen.getByRole('radio', { name: 'Portugal' })).toHaveFocus();\n });\n\n it('should navigate between options with ArrowDown and ArrowUp', async () => {\n const { user } = setup({ searchable: true });\n await user.click(screen.getByRole('button'));\n await user.keyboard('{ArrowDown}');\n\n expect(screen.getByRole('radio', { name: 'Germany' })).toHaveFocus();\n\n await user.keyboard('{ArrowDown}');\n expect(screen.getByRole('radio', { name: 'France' })).toHaveFocus();\n\n await user.keyboard('{ArrowUp}');\n expect(screen.getByRole('radio', { name: 'Germany' })).toHaveFocus();\n });\n\n it('should not go past the last option on ArrowDown', async () => {\n const { user } = setup({\n searchable: true,\n options: [\n { id: 'a', label: 'Alpha' },\n { id: 'b', label: 'Beta' },\n ],\n });\n await user.click(screen.getByRole('button'));\n await user.keyboard('{ArrowDown}{ArrowDown}{ArrowDown}');\n\n expect(screen.getByRole('radio', { name: 'Beta' })).toHaveFocus();\n });\n\n it('should not go past the first option on ArrowUp', async () => {\n const { user } = setup({\n searchable: true,\n options: [\n { id: 'a', label: 'Alpha' },\n { id: 'b', label: 'Beta' },\n ],\n });\n await user.click(screen.getByRole('button'));\n await user.keyboard('{ArrowDown}{ArrowUp}{ArrowUp}');\n\n expect(screen.getByRole('radio', { name: 'Alpha' })).toHaveFocus();\n });\n\n it('should select option and close on Enter key', async () => {\n const { user, onChange } = setup({ searchable: true });\n await user.click(screen.getByRole('button'));\n await user.keyboard('{ArrowDown}{ArrowDown}{Enter}');\n\n expect(onChange).toHaveBeenCalledWith('fr');\n expect(screen.queryByRole('radiogroup')).not.toBeInTheDocument();\n });\n\n it('should select option and close on Space key', async () => {\n const { user, onChange } = setup({ searchable: true });\n await user.click(screen.getByRole('button'));\n await user.keyboard('{ArrowDown}{ArrowDown} ');\n\n expect(onChange).toHaveBeenCalledWith('fr');\n expect(screen.queryByRole('radiogroup')).not.toBeInTheDocument();\n });\n });\n\n describe('disabled', () => {\n it('should not open the dropdown when disabled', async () => {\n const { user } = setup({ disabled: true });\n await user.click(screen.getByRole('button'));\n\n expect(screen.queryByRole('radiogroup')).not.toBeInTheDocument();\n });\n\n it('should have the disabled attribute on the trigger', () => {\n setup({ disabled: true });\n expect(screen.getByRole('button')).toBeDisabled();\n });\n });\n\n describe('accessibility', () => {\n it('should have aria-expanded false when closed', () => {\n setup();\n expect(screen.getByRole('button')).toHaveAttribute('aria-expanded', 'false');\n });\n\n it('should have aria-expanded true when open', async () => {\n const { user } = setup();\n await user.click(screen.getByRole('button'));\n\n expect(screen.getByRole('button')).toHaveAttribute('aria-expanded', 'true');\n });\n\n it('should have aria-haspopup on the trigger', () => {\n setup();\n expect(screen.getByRole('button')).toHaveAttribute('aria-haspopup', 'listbox');\n });\n\n it('should have aria-controls linking to the dropdown when open', async () => {\n const { user } = setup();\n await user.click(screen.getByRole('button'));\n\n const trigger = screen.getByRole('button');\n const controlsId = trigger.getAttribute('aria-controls');\n expect(controlsId).toBeTruthy();\n expect(document.getElementById(controlsId!)).toBeInTheDocument();\n });\n\n it('should have a radiogroup with aria-label', async () => {\n const { user } = setup({ groupName: 'test-group' });\n await user.click(screen.getByRole('button'));\n\n expect(screen.getByRole('radiogroup')).toHaveAttribute('aria-label', 'test-group');\n });\n\n it('should return focus to the trigger after selection', async () => {\n const { user } = setup();\n await user.click(screen.getByRole('button'));\n await user.click(screen.getByLabelText('France'));\n\n expect(screen.getByRole('button')).toHaveFocus();\n });\n\n it('should return focus to the trigger after pressing Escape', async () => {\n const { user } = setup();\n await user.click(screen.getByRole('button'));\n await user.keyboard('{Escape}');\n\n expect(screen.getByRole('button')).toHaveFocus();\n });\n });\n\n describe('groupName', () => {\n it('should auto-generate a groupName when not provided', async () => {\n const { user } = setup({ groupName: undefined });\n await user.click(screen.getByRole('button'));\n\n expect(screen.getByRole('radiogroup')).toHaveAttribute('aria-label');\n const radios = screen.getAllByRole('radio');\n expect(radios[0]).toHaveAttribute('name');\n });\n });\n});\n"],"names":["render","_jsx"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import '../../tslib.es6-CVlKGIvp.js';
2
2
  import 'react/jsx-runtime';
3
3
  import '../../index-DLQEsiym.js';
4
- export { T as Toast, a as Toaster, t as toast } from '../../index-C4IAMlRE.js';
4
+ export { a as Toast, T as Toaster, t as toast } from '../../index-CT0_LjIR.js';
5
5
  import '../../index-D_8pWbzR.js';
6
6
  import 'react';
7
7
  import '../icon/icons/X.js';
@@ -1,6 +1,6 @@
1
1
  import { b as __assign } from '../../tslib.es6-CVlKGIvp.js';
2
2
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
- import { T as Toast, a as Toaster, t as toast, s as styles } from '../../index-C4IAMlRE.js';
3
+ import { a as Toast, T as Toaster, t as toast, s as styles } from '../../index-CT0_LjIR.js';
4
4
  import { Button } from '../button/index.js';
5
5
  import { c as classNames } from '../../index-DLQEsiym.js';
6
6
  import '../../style-inject.es-tgCJW-Cu.js';
@@ -1,7 +1,7 @@
1
1
  import { _ as __awaiter, a as __generator } from '../../tslib.es6-CVlKGIvp.js';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { c as customRender, s as screen } from '../../customRender-DzdqZxUd.js';
4
- import { T as Toast } from '../../index-C4IAMlRE.js';
4
+ import { a as Toast } from '../../index-CT0_LjIR.js';
5
5
  import '../../_commonjsHelpers-BFTU3MAI.js';
6
6
  import 'react';
7
7
  import 'react-dom';
@@ -28,5 +28,5 @@ var toast = function (title, _a) {
28
28
  return (n(function (t) { return (jsx(Toast, __assign({ title: title, onDismiss: function () { return n.dismiss(t.id); } }, toastOptions))); }, { duration: duration }));
29
29
  };
30
30
 
31
- export { Toast as T, Toaster as a, styles as s, toast as t };
32
- //# sourceMappingURL=index-C4IAMlRE.js.map
31
+ export { Toaster as T, Toast as a, styles as s, toast as t };
32
+ //# sourceMappingURL=index-CT0_LjIR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-C4IAMlRE.js","sources":["../../../src/lib/components/toast/index.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport classNames from 'classnames';\n\nimport styles from './style.module.scss';\nimport { Toaster as HotToaster, toast as hotToast } from 'react-hot-toast';\nimport { XIcon } from '../icon';\n\nexport interface ToasterProps {\n classNames?: {\n wrapper?: string;\n toast?: string;\n };\n}\n\nexport type ToastType = 'warning' | 'error' | 'success' | 'information';\n\nexport interface ToastOptions {\n type?: ToastType;\n description?: ReactNode;\n duration?: number;\n action?: {\n title: string;\n onClick: () => void;\n }\n};\n\nexport interface ToastProps extends ToastOptions { \n onDismiss: () => void,\n title: string \n};\n\nconst Toaster = ({ classNames: toasterClassNames }: ToasterProps) => (\n <HotToaster \n containerClassName={toasterClassNames?.wrapper}\n toastOptions={{\n className: classNames(styles.toast, 'bs-lg', toasterClassNames?.toast),\n }}\n />\n);\n\nconst Toast = ({\n action,\n description,\n onDismiss,\n title,\n type = \"success\"\n}: ToastProps) => (\n <div \n className={classNames(\n styles.toastContent,\n 'd-flex jc-between w100'\n )}>\n <div\n className={classNames(\n styles.toastSidebar, \n styles[`toastSidebar--${type}`]\n )}\n />\n <div className='d-flex fd-column jc-center ta-left mr8'>\n <h4 className='p-h4'>{title}</h4>\n \n {description && (\n <p className='p-p p-p--small mt8 tc-neutral-700'>{description}</p>\n )}\n\n {action && (\n <button\n className={classNames(\n styles.actionButton,\n styles[`actionButton--${type}`],\n 'mt8 c-pointer ta-left'\n )}\n onClick={() => {\n action.onClick();\n onDismiss();\n }}\n type=\"button\"\n >\n {action.title}\n </button>\n )}\n </div>\n\n <div className='d-flex ai-center'>\n <button\n className={classNames(styles.closeButton, 'c-pointer')}\n onClick={onDismiss}\n data-testid=\"toast-close-button\"\n >\n <XIcon size={24} /> \n </button>\n </div>\n </div>\n);\n\nconst toast = (title: string, { duration = 3000, ...toastOptions }: ToastOptions) => (\n hotToast((t) => (\n <Toast\n title={title} \n onDismiss={() => hotToast.dismiss(t.id)} \n {...toastOptions}\n />\n ), { duration })\n);\n\nexport { Toaster, Toast, toast };\n"],"names":["_jsx","HotToaster","_jsxs","hotToast"],"mappings":"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"}
1
+ {"version":3,"file":"index-CT0_LjIR.js","sources":["../../../src/lib/components/toast/index.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport classNames from 'classnames';\n\nimport styles from './style.module.scss';\nimport { Toaster as HotToaster, toast as hotToast } from 'react-hot-toast';\nimport { XIcon } from '../icon';\n\nexport interface ToasterProps {\n classNames?: {\n wrapper?: string;\n toast?: string;\n };\n}\n\nexport type ToastType = 'warning' | 'error' | 'success' | 'information';\n\nexport interface ToastOptions {\n type?: ToastType;\n description?: ReactNode;\n duration?: number;\n action?: {\n title: string;\n onClick: () => void;\n }\n};\n\nexport interface ToastProps extends ToastOptions { \n onDismiss: () => void,\n title: string \n};\n\nconst Toaster = ({ classNames: toasterClassNames }: ToasterProps) => (\n <HotToaster \n containerClassName={toasterClassNames?.wrapper}\n toastOptions={{\n className: classNames(styles.toast, 'bs-lg', toasterClassNames?.toast),\n }}\n />\n);\n\nconst Toast = ({\n action,\n description,\n onDismiss,\n title,\n type = \"success\"\n}: ToastProps) => (\n <div \n className={classNames(\n styles.toastContent,\n 'd-flex jc-between w100'\n )}>\n <div\n className={classNames(\n styles.toastSidebar, \n styles[`toastSidebar--${type}`]\n )}\n />\n <div className='d-flex fd-column jc-center ta-left mr8'>\n <h4 className='p-h4'>{title}</h4>\n \n {description && (\n <p className='p-p p-p--small mt8 tc-neutral-700'>{description}</p>\n )}\n\n {action && (\n <button\n className={classNames(\n styles.actionButton,\n styles[`actionButton--${type}`],\n 'mt8 c-pointer ta-left'\n )}\n onClick={() => {\n action.onClick();\n onDismiss();\n }}\n type=\"button\"\n >\n {action.title}\n </button>\n )}\n </div>\n\n <div className='d-flex ai-center'>\n <button\n className={classNames(styles.closeButton, 'c-pointer')}\n onClick={onDismiss}\n data-testid=\"toast-close-button\"\n >\n <XIcon size={24} /> \n </button>\n </div>\n </div>\n);\n\nconst toast = (title: string, { duration = 3000, ...toastOptions }: ToastOptions) => (\n hotToast((t) => (\n <Toast\n title={title} \n onDismiss={() => hotToast.dismiss(t.id)} \n {...toastOptions}\n />\n ), { duration })\n);\n\nexport { Toaster, Toast, toast };\n"],"names":["_jsx","HotToaster","_jsxs","hotToast"],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ import { d as __spreadArray } from './tslib.es6-CVlKGIvp.js';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { useState, useCallback, useEffect, useRef, useMemo } from 'react';
4
+ import { c as classNames } from './index-DLQEsiym.js';
5
+ import { Input } from './components/input/index.js';
6
+ import ChevronDownIcon from './components/icon/icons/ChevronDown.js';
7
+ import { u as useOnClickOutside } from './useOnClickOutside-B5hujnpp.js';
8
+ import { g as generateId } from './index-CNcEE5dn.js';
9
+ import { s as styleInject } from './style-inject.es-tgCJW-Cu.js';
10
+
11
+ var useDropdownAlignment = function (containerRef, dropdownRef, isOpen) {
12
+ var _a = useState(false), alignRight = _a[0], setAlignRight = _a[1];
13
+ var _b = useState(false), alignUp = _b[0], setAlignUp = _b[1];
14
+ var updateAlignment = useCallback(function () {
15
+ if (containerRef.current && dropdownRef.current) {
16
+ var containerRect = containerRef.current.getBoundingClientRect();
17
+ var dropdownWidth = dropdownRef.current.offsetWidth;
18
+ var dropdownHeight = dropdownRef.current.offsetHeight;
19
+ var spaceOnRight = window.innerWidth - containerRect.left;
20
+ var spaceBelow = window.innerHeight - containerRect.bottom;
21
+ setAlignRight(spaceOnRight < dropdownWidth);
22
+ setAlignUp(spaceBelow < dropdownHeight && containerRect.top > spaceBelow);
23
+ }
24
+ }, [containerRef, dropdownRef]);
25
+ useEffect(function () {
26
+ if (!isOpen)
27
+ return;
28
+ updateAlignment();
29
+ var observer = new ResizeObserver(updateAlignment);
30
+ observer.observe(document.documentElement);
31
+ return function () { return observer.disconnect(); };
32
+ }, [isOpen, updateAlignment]);
33
+ return { alignRight: alignRight, alignUp: alignUp };
34
+ };
35
+
36
+ var useEscapeKey = function (callback) {
37
+ var handleOnEscape = useCallback(function (e) {
38
+ if (e.key === 'Escape') {
39
+ callback();
40
+ }
41
+ }, [callback]);
42
+ useEffect(function () {
43
+ window.addEventListener('keydown', handleOnEscape);
44
+ return function () { return window.removeEventListener('keydown', handleOnEscape); };
45
+ }, [handleOnEscape]);
46
+ };
47
+
48
+ var css_248z = ".style-module_bs-xs__2KEsk {\n box-shadow: 0 2px 12px rgba(38, 38, 46, 0.03);\n}\n\n.style-module_bs-sm__3u9QM {\n box-shadow: 0 2px 20px 0 rgba(38, 38, 46, 0.04);\n}\n\n.style-module_bs-md__2LfxW {\n box-shadow: 0 2px 28px rgba(38, 38, 46, 0.08);\n}\n\n.style-module_bs-lg__2Qx0R {\n box-shadow: 0 2px 32px rgba(38, 38, 46, 0.1);\n}\n\n.style-module_bs-xl__kaOuM {\n box-shadow: 0 2px 50px rgba(38, 38, 46, 0.18);\n}\n\n.style-module_container__2064q {\n position: relative;\n}\n\n.style-module_selectTrigger__1GiSB {\n padding: 10px 12px;\n border: 1px solid #e7e7ed;\n}\n.style-module_selectTrigger__1GiSB:hover {\n border-color: #b8b8c0;\n}\n.style-module_selectTrigger__1GiSB:focus-visible {\n outline: 1px solid #26262e;\n outline-offset: 1px;\n}\n.style-module_selectTriggerOpen__29Kor {\n border-color: #26262e;\n box-shadow: 0 2px 12px rgba(38, 38, 46, 0.03);\n}\n\n.style-module_disabled__2BlO- {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.style-module_chevronOpen__Ot3RV {\n transform: rotate(180deg);\n}\n\n.style-module_condensed__GDq0d {\n width: auto;\n padding: 8px 10px;\n gap: 8px;\n}\n\n.style-module_bordered__tRh9H {\n border: 1px solid #e7e7ed;\n}\n.style-module_bordered__tRh9H:hover {\n border-color: #b8b8c0;\n}\n\n.style-module_dropdown__1A-wl {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n min-width: 280px;\n border: 1px solid #e7e7ed;\n box-shadow: 0 2px 28px rgba(38, 38, 46, 0.08);\n z-index: 10;\n}\n\n.style-module_dropdownRight__lLMiT {\n left: auto;\n right: 0;\n}\n\n.style-module_dropdownUp__2PCvx {\n top: auto;\n bottom: calc(100% + 4px);\n}\n.style-module_dropdownUp__2PCvx .style-module_searchContainer__4O1qv {\n order: 2;\n padding-bottom: 0;\n padding-top: 8px;\n}\n.style-module_dropdownUp__2PCvx .style-module_optionList__-2I8l {\n order: 1;\n}\n\n.style-module_searchContainer__4O1qv {\n position: sticky;\n top: 0;\n}\n\n.style-module_optionList__-2I8l {\n max-height: 308px;\n overflow-y: auto;\n scrollbar-width: none;\n}\n.style-module_optionList__-2I8l::-webkit-scrollbar {\n display: none;\n}\n\n.style-module_optionWrapper__3GVCB {\n position: relative;\n}\n\n.style-module_optionRadio__3GBog {\n position: absolute;\n opacity: 0;\n width: 0;\n height: 0;\n}\n.style-module_optionRadio__3GBog:focus-visible + label {\n outline: 2px solid #26262e;\n outline-offset: -2px;\n border-radius: 8px;\n}\n\n.style-module_option__1HkKR {\n padding: 10px 12px;\n border: none;\n background-color: transparent;\n}\n.style-module_option__1HkKR:hover {\n background-color: #f7f7fd;\n}\n.style-module_optionSelected__2pPt9 {\n background-color: #F6F6FE;\n}\n.style-module_optionSelected__2pPt9:hover {\n background-color: #F6F6FE;\n}\n\n.style-module_optionIcon__2hBSY {\n flex-shrink: 0;\n}\n\n.style-module_noResults__18exv {\n padding: 10px 12px;\n}";
49
+ var styles = {"container":"style-module_container__2064q","selectTrigger":"style-module_selectTrigger__1GiSB","selectTriggerOpen":"style-module_selectTriggerOpen__29Kor","disabled":"style-module_disabled__2BlO-","chevronOpen":"style-module_chevronOpen__Ot3RV","condensed":"style-module_condensed__GDq0d","bordered":"style-module_bordered__tRh9H","dropdown":"style-module_dropdown__1A-wl","dropdownRight":"style-module_dropdownRight__lLMiT","dropdownUp":"style-module_dropdownUp__2PCvx","searchContainer":"style-module_searchContainer__4O1qv","optionList":"style-module_optionList__-2I8l","optionWrapper":"style-module_optionWrapper__3GVCB","optionRadio":"style-module_optionRadio__3GBog","option":"style-module_option__1HkKR","optionSelected":"style-module_optionSelected__2pPt9","optionIcon":"style-module_optionIcon__2hBSY","noResults":"style-module_noResults__18exv"};
50
+ styleInject(css_248z);
51
+
52
+ var SearchableDropdown = function (_a) {
53
+ var _b, _c, _d;
54
+ var _e;
55
+ var options = _a.options, value = _a.value, onChange = _a.onChange, _f = _a.searchable, searchable = _f === void 0 ? false : _f, _g = _a.placeholder, placeholder = _g === void 0 ? 'Search' : _g, triggerPlaceholder = _a.triggerPlaceholder, _h = _a.noResultsText, noResultsText = _h === void 0 ? 'No results found' : _h, groupNameProp = _a.groupName, _j = _a.dropUp, dropUp = _j === void 0 ? false : _j, _k = _a.condensed, condensed = _k === void 0 ? false : _k, _l = _a.bordered, bordered = _l === void 0 ? false : _l, _m = _a.showChevron, showChevron = _m === void 0 ? false : _m, _o = _a.disabled, disabled = _o === void 0 ? false : _o;
56
+ var _p = useState(false), isOpen = _p[0], setIsOpen = _p[1];
57
+ var _q = useState(''), searchTerm = _q[0], setSearchTerm = _q[1];
58
+ var _r = useState(value), localValue = _r[0], setLocalValue = _r[1];
59
+ var searchInputRef = useRef(null);
60
+ var containerRef = useRef(null);
61
+ var triggerRef = useRef(null);
62
+ var dropdownRef = useRef(null);
63
+ var optionRefs = useRef(new Map());
64
+ var groupName = useState(function () { return groupNameProp !== null && groupNameProp !== void 0 ? groupNameProp : "sd-".concat(generateId()); })[0];
65
+ var dropdownId = "".concat(groupName, "-dropdown");
66
+ var closeAndRestoreFocus = useCallback(function () {
67
+ var _a;
68
+ setIsOpen(false);
69
+ (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
70
+ }, []);
71
+ useOnClickOutside(containerRef, function () { return isOpen && closeAndRestoreFocus(); });
72
+ useEscapeKey(useCallback(function () {
73
+ if (isOpen)
74
+ closeAndRestoreFocus();
75
+ }, [isOpen, closeAndRestoreFocus]));
76
+ var _s = useDropdownAlignment(containerRef, dropdownRef, isOpen), alignRight = _s.alignRight, alignUp = _s.alignUp;
77
+ useEffect(function () {
78
+ if (isOpen && searchable && searchInputRef.current) {
79
+ searchInputRef.current.focus();
80
+ }
81
+ }, [isOpen, searchable]);
82
+ useEffect(function () {
83
+ if (!isOpen) {
84
+ setSearchTerm('');
85
+ setLocalValue(value);
86
+ }
87
+ }, [isOpen, value]);
88
+ var filteredOptions = useMemo(function () {
89
+ if (!searchTerm)
90
+ return options;
91
+ return __spreadArray([], options, true).filter(function (option) {
92
+ return option.label.toLowerCase().includes(searchTerm.toLowerCase());
93
+ })
94
+ .sort(function (a, b) {
95
+ var term = searchTerm.toLowerCase();
96
+ var aStartsWith = a.label.toLowerCase().startsWith(term);
97
+ var bStartsWith = b.label.toLowerCase().startsWith(term);
98
+ if (aStartsWith && !bStartsWith)
99
+ return -1;
100
+ if (!aStartsWith && bStartsWith)
101
+ return 1;
102
+ return 0;
103
+ });
104
+ }, [options, searchTerm]);
105
+ var selectedOption = options.find(function (option) { return option.id === value; });
106
+ var handleTriggerClick = function () {
107
+ if (!disabled)
108
+ setIsOpen(!isOpen);
109
+ };
110
+ var handleSearchKeyDown = function (e) {
111
+ var _a;
112
+ if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {
113
+ e.preventDefault();
114
+ var target = e.key === 'ArrowDown'
115
+ ? filteredOptions[0]
116
+ : filteredOptions[filteredOptions.length - 1];
117
+ if (target) {
118
+ setLocalValue(target.id);
119
+ (_a = optionRefs.current.get(target.id)) === null || _a === void 0 ? void 0 : _a.focus();
120
+ }
121
+ }
122
+ else if (e.key === 'Enter') {
123
+ e.preventDefault();
124
+ var target = filteredOptions[0];
125
+ if (target) {
126
+ onChange(target.id);
127
+ closeAndRestoreFocus();
128
+ }
129
+ }
130
+ };
131
+ var handleOptionClick = function (optionId) {
132
+ onChange(optionId);
133
+ closeAndRestoreFocus();
134
+ };
135
+ var handleOptionRef = function (optionId, el) {
136
+ if (el)
137
+ optionRefs.current.set(optionId, el);
138
+ else
139
+ optionRefs.current.delete(optionId);
140
+ };
141
+ var handleOptionKeyDown = function (e, optionId) {
142
+ var _a;
143
+ if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {
144
+ e.preventDefault();
145
+ var currentIndex = filteredOptions.findIndex(function (o) { return o.id === optionId; });
146
+ var nextIndex = e.key === 'ArrowDown'
147
+ ? Math.min(currentIndex + 1, filteredOptions.length - 1)
148
+ : Math.max(currentIndex - 1, 0);
149
+ var next = filteredOptions[nextIndex];
150
+ if (next) {
151
+ setLocalValue(next.id);
152
+ (_a = optionRefs.current.get(next.id)) === null || _a === void 0 ? void 0 : _a.focus();
153
+ }
154
+ }
155
+ else if (e.key === 'Enter' || e.key === ' ') {
156
+ e.preventDefault();
157
+ onChange(optionId);
158
+ closeAndRestoreFocus();
159
+ }
160
+ };
161
+ return (jsxs("div", { className: classNames(styles.container, { 'd-inline-block': condensed }), ref: containerRef, children: [jsxs("button", { ref: triggerRef, type: "button", className: classNames('d-flex ai-center jc-between w100 br8 bg-white c-pointer ta-left tc-neutral-900', styles.selectTrigger, (_b = {},
162
+ _b[styles.selectTriggerOpen] = isOpen,
163
+ _b[styles.condensed] = condensed,
164
+ _b[styles.bordered] = bordered,
165
+ _b[styles.disabled] = disabled,
166
+ _b)), onClick: handleTriggerClick, disabled: disabled, "aria-expanded": isOpen, "aria-haspopup": "listbox", "aria-controls": isOpen ? dropdownId : undefined, children: [jsxs("span", { className: 'd-flex ai-center gap8', children: [(selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.icon) && (jsx("span", { className: styles.optionIcon, children: selectedOption.icon })), !condensed && (jsx("span", { className: "p-p", children: (_e = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) !== null && _e !== void 0 ? _e : triggerPlaceholder }))] }), showChevron && (jsx(ChevronDownIcon, { className: classNames('ml8', (_c = {}, _c[styles.chevronOpen] = isOpen, _c)), size: 20, noMargin: true, color: "neutral-600" }))] }), isOpen && (jsxs("div", { id: dropdownId, ref: dropdownRef, className: classNames(styles.dropdown, 'bg-white br8 p8 d-flex fd-column', (_d = {}, _d[styles.dropdownUp] = dropUp || alignUp, _d[styles.dropdownRight] = alignRight, _d)), children: [searchable && (jsx("div", { className: classNames('pb8 bg-white', styles.searchContainer), children: jsx(Input, { ref: searchInputRef, type: "text", placeholder: placeholder, value: searchTerm, onChange: function (e) { return setSearchTerm(e.target.value); }, label: placeholder, hideLabel: true, onKeyDown: handleSearchKeyDown }) })), jsxs("div", { className: styles.optionList, role: "radiogroup", "aria-label": groupName, children: [filteredOptions.map(function (option) {
167
+ var _a;
168
+ return (jsxs("div", { className: styles.optionWrapper, children: [jsx("input", { type: "radio", id: "".concat(groupName, "-").concat(option.id), name: groupName, value: option.id, checked: option.id === localValue, onChange: function () { return setLocalValue(option.id); }, onClick: function () { return handleOptionClick(option.id); }, tabIndex: option.id === localValue ? 0 : -1, className: styles.optionRadio, ref: function (el) { return handleOptionRef(option.id, el); }, onKeyDown: function (e) { return handleOptionKeyDown(e, option.id); } }), jsxs("label", { htmlFor: "".concat(groupName, "-").concat(option.id), className: classNames('d-flex ai-center gap8 w100 br8 c-pointer ta-left tc-neutral-900', styles.option, (_a = {},
169
+ _a[styles.optionSelected] = option.id === localValue,
170
+ _a)), children: [option.icon && (jsx("span", { className: styles.optionIcon, children: option.icon })), jsx("span", { className: "p-p", children: option.label })] })] }, option.id));
171
+ }), filteredOptions.length === 0 && (jsx("p", { className: "p-p tc-neutral-500 ".concat(styles.noResults), children: noResultsText }))] })] }))] }));
172
+ };
173
+
174
+ export { SearchableDropdown as S, useEscapeKey as u };
175
+ //# sourceMappingURL=index-QeP_xz9v.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-QeP_xz9v.js","sources":["../../../src/lib/hooks/useDropdownAlignment.ts","../../../src/lib/hooks/useEscapeKey.ts","../../../src/lib/components/searchableDropdown/index.tsx"],"sourcesContent":["import { RefObject, useCallback, useEffect, useState } from 'react';\n\nexport const useDropdownAlignment = (\n containerRef: RefObject<HTMLElement | null>,\n dropdownRef: RefObject<HTMLElement | null>,\n isOpen: boolean\n) => {\n const [alignRight, setAlignRight] = useState(false);\n const [alignUp, setAlignUp] = useState(false);\n\n const updateAlignment = useCallback(() => {\n if (containerRef.current && dropdownRef.current) {\n const containerRect = containerRef.current.getBoundingClientRect();\n const dropdownWidth = dropdownRef.current.offsetWidth;\n const dropdownHeight = dropdownRef.current.offsetHeight;\n const spaceOnRight = window.innerWidth - containerRect.left;\n const spaceBelow = window.innerHeight - containerRect.bottom;\n setAlignRight(spaceOnRight < dropdownWidth);\n setAlignUp(spaceBelow < dropdownHeight && containerRect.top > spaceBelow);\n }\n }, [containerRef, dropdownRef]);\n\n useEffect(() => {\n if (!isOpen) return;\n\n updateAlignment();\n\n const observer = new ResizeObserver(updateAlignment);\n observer.observe(document.documentElement);\n return () => observer.disconnect();\n }, [isOpen, updateAlignment]);\n\n return { alignRight, alignUp };\n};\n","import { useCallback, useEffect } from 'react';\n\nexport const useEscapeKey = (callback: () => void) => {\n const handleOnEscape = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n callback();\n }\n },\n [callback]\n );\n\n useEffect(() => {\n window.addEventListener('keydown', handleOnEscape);\n\n return () => window.removeEventListener('keydown', handleOnEscape);\n }, [handleOnEscape]);\n};\n","import { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport classnames from 'classnames';\n\nimport { Input } from '../input';\nimport { ChevronDownIcon } from '../icon';\nimport { useDropdownAlignment } from '../../hooks/useDropdownAlignment';\nimport { useEscapeKey } from '../../hooks/useEscapeKey';\nimport { useOnClickOutside } from '../../hooks/useOnClickOutside';\nimport generateId from '../../util/generateId';\n\nimport styles from './style.module.scss';\n\nexport interface SearchableDropdownOption {\n id: string;\n label: string;\n icon?: ReactNode;\n}\n\nexport interface SearchableDropdownProps {\n options: SearchableDropdownOption[];\n value: string | null;\n onChange: (value: string) => void;\n searchable?: boolean;\n placeholder?: string;\n triggerPlaceholder?: string;\n noResultsText?: string;\n groupName?: string;\n dropUp?: boolean;\n condensed?: boolean;\n bordered?: boolean;\n showChevron?: boolean;\n disabled?: boolean;\n}\n\nexport const SearchableDropdown = ({\n options,\n value,\n onChange,\n searchable = false,\n placeholder = 'Search',\n triggerPlaceholder,\n noResultsText = 'No results found',\n groupName: groupNameProp,\n dropUp = false,\n condensed = false,\n bordered = false,\n showChevron = false,\n disabled = false,\n}: SearchableDropdownProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const [searchTerm, setSearchTerm] = useState('');\n const [localValue, setLocalValue] = useState(value);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const optionRefs = useRef<Map<string, HTMLInputElement>>(new Map());\n const [groupName] = useState(() => groupNameProp ?? `sd-${generateId()}`);\n const dropdownId = `${groupName}-dropdown`;\n\n const closeAndRestoreFocus = useCallback(() => {\n setIsOpen(false);\n triggerRef.current?.focus();\n }, []);\n\n useOnClickOutside(containerRef, () => isOpen && closeAndRestoreFocus());\n useEscapeKey(\n useCallback(() => {\n if (isOpen) closeAndRestoreFocus();\n }, [isOpen, closeAndRestoreFocus])\n );\n\n const { alignRight, alignUp } = useDropdownAlignment(containerRef, dropdownRef, isOpen);\n\n useEffect(() => {\n if (isOpen && searchable && searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }, [isOpen, searchable]);\n\n useEffect(() => {\n if (!isOpen) {\n setSearchTerm('');\n setLocalValue(value);\n }\n }, [isOpen, value]);\n\n const filteredOptions = useMemo(() => {\n if (!searchTerm) return options;\n return [...options]\n .filter((option) =>\n option.label.toLowerCase().includes(searchTerm.toLowerCase())\n )\n .sort((a, b) => {\n const term = searchTerm.toLowerCase();\n const aStartsWith = a.label.toLowerCase().startsWith(term);\n const bStartsWith = b.label.toLowerCase().startsWith(term);\n if (aStartsWith && !bStartsWith) return -1;\n if (!aStartsWith && bStartsWith) return 1;\n return 0;\n });\n }, [options, searchTerm]);\n\n const selectedOption = options.find((option) => option.id === value);\n\n const handleTriggerClick = () => {\n if (!disabled) setIsOpen(!isOpen);\n };\n\n const handleSearchKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n const target =\n e.key === 'ArrowDown'\n ? filteredOptions[0]\n : filteredOptions[filteredOptions.length - 1];\n if (target) {\n setLocalValue(target.id);\n optionRefs.current.get(target.id)?.focus();\n }\n } else if (e.key === 'Enter') {\n e.preventDefault();\n const target = filteredOptions[0];\n if (target) {\n onChange(target.id);\n closeAndRestoreFocus();\n }\n }\n };\n\n const handleOptionClick = (optionId: string) => {\n onChange(optionId);\n closeAndRestoreFocus();\n };\n\n const handleOptionRef = (optionId: string, el: HTMLInputElement | null) => {\n if (el) optionRefs.current.set(optionId, el);\n else optionRefs.current.delete(optionId);\n };\n\n const handleOptionKeyDown = (e: React.KeyboardEvent, optionId: string) => {\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n const currentIndex = filteredOptions.findIndex(\n (o) => o.id === optionId\n );\n const nextIndex =\n e.key === 'ArrowDown'\n ? Math.min(currentIndex + 1, filteredOptions.length - 1)\n : Math.max(currentIndex - 1, 0);\n const next = filteredOptions[nextIndex];\n if (next) {\n setLocalValue(next.id);\n optionRefs.current.get(next.id)?.focus();\n }\n } else if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onChange(optionId);\n closeAndRestoreFocus();\n }\n };\n\n return (\n <div className={classnames(styles.container, { 'd-inline-block': condensed })} ref={containerRef}>\n <button\n ref={triggerRef}\n type=\"button\"\n className={classnames(\n 'd-flex ai-center jc-between w100 br8 bg-white c-pointer ta-left tc-neutral-900',\n styles.selectTrigger, {\n [styles.selectTriggerOpen]: isOpen,\n [styles.condensed]: condensed,\n [styles.bordered]: bordered,\n [styles.disabled]: disabled,\n }\n )}\n onClick={handleTriggerClick}\n disabled={disabled}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-controls={isOpen ? dropdownId : undefined}\n >\n <span className={'d-flex ai-center gap8'}>\n {selectedOption?.icon && (\n <span className={styles.optionIcon}>{selectedOption.icon}</span>\n )}\n {!condensed && (\n <span className=\"p-p\">\n {selectedOption?.label ?? triggerPlaceholder}\n </span>\n )}\n </span>\n {showChevron && (\n <ChevronDownIcon\n className={classnames('ml8', { [styles.chevronOpen]: isOpen })}\n size={20}\n noMargin\n color=\"neutral-600\"\n />\n )}\n </button>\n {isOpen && (\n <div\n id={dropdownId}\n ref={dropdownRef}\n className={classnames(\n styles.dropdown,\n 'bg-white br8 p8 d-flex fd-column',\n { [styles.dropdownUp]: dropUp || alignUp, [styles.dropdownRight]: alignRight }\n )}\n >\n {searchable && (\n <div className={classnames('pb8 bg-white', styles.searchContainer)}>\n <Input\n ref={searchInputRef}\n type=\"text\"\n placeholder={placeholder}\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n label={placeholder}\n hideLabel\n onKeyDown={handleSearchKeyDown}\n />\n </div>\n )}\n <div className={styles.optionList} role=\"radiogroup\" aria-label={groupName}>\n {filteredOptions.map((option) => (\n <div key={option.id} className={styles.optionWrapper}>\n <input\n type=\"radio\"\n id={`${groupName}-${option.id}`}\n name={groupName}\n value={option.id}\n checked={option.id === localValue}\n onChange={() => setLocalValue(option.id)}\n onClick={() => handleOptionClick(option.id)}\n tabIndex={option.id === localValue ? 0 : -1}\n className={styles.optionRadio}\n ref={(el) => handleOptionRef(option.id, el)}\n onKeyDown={(e) => handleOptionKeyDown(e, option.id)}\n />\n <label\n htmlFor={`${groupName}-${option.id}`}\n className={classnames(\n 'd-flex ai-center gap8 w100 br8 c-pointer ta-left tc-neutral-900',\n styles.option, {\n [styles.optionSelected]: option.id === localValue,\n })}\n >\n {option.icon && (\n <span className={styles.optionIcon}>{option.icon}</span>\n )}\n <span className=\"p-p\">{option.label}</span>\n </label>\n </div>\n ))}\n {filteredOptions.length === 0 && (\n <p className={`p-p tc-neutral-500 ${styles.noResults}`}>\n {noResultsText}\n </p>\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n"],"names":["_jsxs","classnames","_jsx"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export { Accordion, DateSelector, SignaturePad, AutocompleteAddress, Input, MultiDropzone, IbanInput, CurrencyInput, BottomModal, RegularModal, BottomOrRegularModal, FullScreenModal, InfoCard, CardButton, Card, Button, AutoSuggestMultiSelect, Chip, AutoSuggestInput, ComparisonTable, TableRating, TableTrueFalse, TableRowHeader, TableButton, TableInfoButton, SegmentedControl, DownloadButton, Checkbox, Radio, Link, InformationBox, Badge, images, illustrations, Spinner, Table, Toggle, Toaster, toast, useEscapeKey, useFocusWithin, useMediaQuery, useOnClickOutside, LogoColor, LogoWhite, LogoBlack, LogoOrangeBox, LogoInvertedColor, LogoInverted, LogoPositiveColor, LogoPositiveBlack, } from './lib';
1
+ export { Accordion, DateSelector, SignaturePad, AutocompleteAddress, Input, MultiDropzone, IbanInput, CurrencyInput, BottomModal, RegularModal, BottomOrRegularModal, FullScreenModal, InfoCard, CardButton, Card, Button, AutoSuggestMultiSelect, Chip, AutoSuggestInput, ComparisonTable, TableRating, TableTrueFalse, TableRowHeader, TableButton, TableInfoButton, SegmentedControl, DownloadButton, Checkbox, Radio, Link, InformationBox, Badge, images, illustrations, Spinner, Table, Toggle, Toaster, toast, useEscapeKey, useFocusWithin, useMediaQuery, useOnClickOutside, LogoColor, LogoWhite, LogoBlack, LogoOrangeBox, LogoInvertedColor, LogoInverted, LogoPositiveColor, LogoPositiveBlack, SearchableDropdown, } from './lib';
2
2
  export * from './lib/components/icon';
3
- export type { AccordionProps, BadgeProps, DownloadStatus, InformationBoxProps, InputProps, IllustrationKeys, FileType, MultiDropzoneProps, TableHeader, UploadedFile, UploadStatus, CardProps, IconWrapperProps, TableData, TableProps, } from './lib';
3
+ export type { AccordionProps, BadgeProps, DownloadStatus, InformationBoxProps, InputProps, IllustrationKeys, FileType, MultiDropzoneProps, TableHeader, UploadedFile, UploadStatus, CardProps, IconWrapperProps, TableData, TableProps, SearchableDropdownProps, SearchableDropdownOption, } from './lib';
package/dist/esm/index.js CHANGED
@@ -23,16 +23,17 @@ export { default as Chip } from './components/chip/index.js';
23
23
  export { AutoSuggestInput } from './components/input/autoSuggestInput/index.js';
24
24
  export { ComparisonTable } from './components/comparisonTable/index.js';
25
25
  export { SegmentedControl } from './components/segmentedControl/index.js';
26
+ export { S as SearchableDropdown, u as useEscapeKey } from './index-QeP_xz9v.js';
26
27
  export { Link } from './components/link/index.js';
27
28
  export { a as illustrations, i as images } from './index-C4hs4X-e.js';
28
29
  export { Spinner } from './components/spinner/index.js';
29
30
  export { Toggle } from './components/input/toggle/index.js';
30
- export { a as Toaster, t as toast } from './index-C4IAMlRE.js';
31
+ export { T as Toaster, t as toast } from './index-CT0_LjIR.js';
31
32
  export { Accordion } from './components/accordion/index.js';
32
33
  export { Table } from './components/table/Table.js';
33
- import { useCallback, useEffect } from 'react';
34
+ import { useEffect } from 'react';
34
35
  export { u as useMediaQuery } from './useMediaQuery-BlEUymPA.js';
35
- export { u as useOnClickOutside } from './Calendar-C7I0F5Gv.js';
36
+ export { u as useOnClickOutside } from './useOnClickOutside-B5hujnpp.js';
36
37
  export { LogoColor } from './components/logo/LogoColor.js';
37
38
  export { LogoWhite } from './components/logo/LogoWhite.js';
38
39
  export { LogoBlack } from './components/logo/LogoBlack.js';
@@ -439,6 +440,7 @@ export { default as TableButton } from './components/comparisonTable/components/
439
440
  export { default as TableInfoButton } from './components/comparisonTable/components/TableInfoButton/index.js';
440
441
  import './tslib.es6-CVlKGIvp.js';
441
442
  import 'react/jsx-runtime';
443
+ import './Calendar-8rhyapMz.js';
442
444
  import './_commonjsHelpers-BFTU3MAI.js';
443
445
  import './style-inject.es-tgCJW-Cu.js';
444
446
  import './index-DLQEsiym.js';
@@ -465,7 +467,6 @@ import './components/table/components/TableCell/BaseCell/MiniProgressBar/MiniPro
465
467
  import './components/table/components/TableCell/CTACell/CTACell.js';
466
468
  import './components/table/components/IconRenderer/IconRenderer.js';
467
469
  import './components/table/components/TableCell/CardCell/CardCell.js';
468
- import './components/icon/IconWrapper/IconWrapper.js';
469
470
  import './components/table/components/TableCell/ButtonCell/ButtonCell.js';
470
471
  import './components/table/components/TableContents/TableContents.js';
471
472
  import './TableSection-CEhD4eoy.js';
@@ -474,21 +475,10 @@ import './useTableNavigation-CrxoXTVd.js';
474
475
  import './components/table/components/TableControls/TableControls.js';
475
476
  import './useScrollSync-C5UXYPIB.js';
476
477
  import './components/logo/LogoWrapper/LogoWrapper.js';
478
+ import './components/icon/IconWrapper/IconWrapper.js';
477
479
  import './components/comparisonTable/components/TableRating/StarIcon.js';
478
480
  import './components/comparisonTable/components/TableRating/ZapIcon.js';
479
481
 
480
- var useEscapeKey = function (callback) {
481
- var handleOnEscape = useCallback(function (e) {
482
- if (e.key === 'Escape') {
483
- callback();
484
- }
485
- }, [callback]);
486
- useEffect(function () {
487
- window.addEventListener('keydown', handleOnEscape);
488
- return function () { return window.removeEventListener('keydown', handleOnEscape); };
489
- }, [handleOnEscape]);
490
- };
491
-
492
482
  var useFocusWithin = function (ref, callback) {
493
483
  useEffect(function () {
494
484
  var handleOnFocusIn = function () {
@@ -503,5 +493,5 @@ var useFocusWithin = function (ref, callback) {
503
493
  }, [callback, ref]);
504
494
  };
505
495
 
506
- export { useEscapeKey, useFocusWithin };
496
+ export { useFocusWithin };
507
497
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/lib/hooks/useEscapeKey.ts","../../../src/lib/hooks/useFocusWithin.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react';\n\nexport const useEscapeKey = (callback: () => void) => {\n const handleOnEscape = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n callback();\n }\n },\n [callback]\n );\n\n useEffect(() => {\n window.addEventListener('keydown', handleOnEscape);\n\n return () => window.removeEventListener('keydown', handleOnEscape);\n }, [handleOnEscape]);\n};\n","import { useEffect } from 'react';\n\nexport const useFocusWithin = (\n ref: HTMLElement | null,\n callback: (isFocusWithin: boolean) => void\n) => {\n useEffect(() => {\n const handleOnFocusIn = () => {\n if (!ref) {\n return;\n }\n\n const hasFocus = ref?.contains(document.activeElement);\n\n callback(Boolean(hasFocus));\n };\n\n document.addEventListener('focusin', handleOnFocusIn);\n\n return () => document?.removeEventListener('focusin', handleOnFocusIn);\n }, [callback, ref]);\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAM,YAAY,GAAG,UAAC,QAAoB,EAAA;AAC/C,IAAA,IAAM,cAAc,GAAG,WAAW,CAChC,UAAC,CAAgB,EAAA;AACf,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;AACtB,YAAA,QAAQ,EAAE;QACZ;AACF,IAAA,CAAC,EACD,CAAC,QAAQ,CAAC,CACX;AAED,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC;AAElD,QAAA,OAAO,YAAA,EAAM,OAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA,CAArD,CAAqD;AACpE,IAAA,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;AACtB;;ACfO,IAAM,cAAc,GAAG,UAC5B,GAAuB,EACvB,QAA0C,EAAA;AAE1C,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,IAAM,eAAe,GAAG,YAAA;YACtB,IAAI,CAAC,GAAG,EAAE;gBACR;YACF;AAEA,YAAA,IAAM,QAAQ,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,MAAA,GAAA,MAAA,GAAH,GAAG,CAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;AAEtD,YAAA,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC7B,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC;AAErD,QAAA,OAAO,cAAM,OAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,uBAAR,QAAQ,CAAE,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA,CAAzD,CAAyD;AACxE,IAAA,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACrB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/lib/hooks/useFocusWithin.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nexport const useFocusWithin = (\n ref: HTMLElement | null,\n callback: (isFocusWithin: boolean) => void\n) => {\n useEffect(() => {\n const handleOnFocusIn = () => {\n if (!ref) {\n return;\n }\n\n const hasFocus = ref?.contains(document.activeElement);\n\n callback(Boolean(hasFocus));\n };\n\n document.addEventListener('focusin', handleOnFocusIn);\n\n return () => document?.removeEventListener('focusin', handleOnFocusIn);\n }, [callback, ref]);\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAM,cAAc,GAAG,UAC5B,GAAuB,EACvB,QAA0C,EAAA;AAE1C,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,IAAM,eAAe,GAAG,YAAA;YACtB,IAAI,CAAC,GAAG,EAAE;gBACR;YACF;AAEA,YAAA,IAAM,QAAQ,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,MAAA,GAAA,MAAA,GAAH,GAAG,CAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;AAEtD,YAAA,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC7B,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC;AAErD,QAAA,OAAO,cAAM,OAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,uBAAR,QAAQ,CAAE,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA,CAAzD,CAAyD;AACxE,IAAA,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACrB;;;;"}
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from 'react';
2
+ export interface SearchableDropdownOption {
3
+ id: string;
4
+ label: string;
5
+ icon?: ReactNode;
6
+ }
7
+ export interface SearchableDropdownProps {
8
+ options: SearchableDropdownOption[];
9
+ value: string | null;
10
+ onChange: (value: string) => void;
11
+ searchable?: boolean;
12
+ placeholder?: string;
13
+ triggerPlaceholder?: string;
14
+ noResultsText?: string;
15
+ groupName?: string;
16
+ dropUp?: boolean;
17
+ condensed?: boolean;
18
+ bordered?: boolean;
19
+ showChevron?: boolean;
20
+ disabled?: boolean;
21
+ }
22
+ export declare const SearchableDropdown: ({ options, value, onChange, searchable, placeholder, triggerPlaceholder, noResultsText, groupName: groupNameProp, dropUp, condensed, bordered, showChevron, disabled, }: SearchableDropdownProps) => JSX.Element;
@@ -0,0 +1,108 @@
1
+ import { SearchableDropdownProps } from '.';
2
+ declare const story: {
3
+ title: string;
4
+ component: ({ options, value, onChange, searchable, placeholder, triggerPlaceholder, noResultsText, groupName: groupNameProp, dropUp, condensed, bordered, showChevron, disabled, }: SearchableDropdownProps) => JSX.Element;
5
+ argTypes: {
6
+ options: {
7
+ description: string;
8
+ table: {
9
+ type: {
10
+ summary: string;
11
+ };
12
+ };
13
+ };
14
+ value: {
15
+ description: string;
16
+ };
17
+ onChange: {
18
+ action: boolean;
19
+ table: {
20
+ category: string;
21
+ };
22
+ };
23
+ searchable: {
24
+ description: string;
25
+ control: string;
26
+ };
27
+ placeholder: {
28
+ description: string;
29
+ control: string;
30
+ };
31
+ triggerPlaceholder: {
32
+ description: string;
33
+ control: string;
34
+ };
35
+ noResultsText: {
36
+ description: string;
37
+ control: string;
38
+ };
39
+ groupName: {
40
+ description: string;
41
+ control: string;
42
+ };
43
+ dropUp: {
44
+ description: string;
45
+ control: string;
46
+ };
47
+ condensed: {
48
+ description: string;
49
+ control: string;
50
+ };
51
+ bordered: {
52
+ description: string;
53
+ control: string;
54
+ };
55
+ showChevron: {
56
+ description: string;
57
+ control: string;
58
+ };
59
+ };
60
+ args: {
61
+ options: {
62
+ id: string;
63
+ label: string;
64
+ }[];
65
+ value: string;
66
+ searchable: boolean;
67
+ placeholder: string;
68
+ triggerPlaceholder: string;
69
+ noResultsText: string;
70
+ groupName: string;
71
+ dropUp: boolean;
72
+ condensed: boolean;
73
+ bordered: boolean;
74
+ showChevron: boolean;
75
+ };
76
+ parameters: {
77
+ componentSubtitle: string;
78
+ };
79
+ };
80
+ export declare const Default: {
81
+ render: (args: SearchableDropdownProps) => JSX.Element;
82
+ name: string;
83
+ };
84
+ export declare const Searchable: {
85
+ render: (args: SearchableDropdownProps) => JSX.Element;
86
+ name: string;
87
+ };
88
+ export declare const WithIcons: {
89
+ render: (args: SearchableDropdownProps) => JSX.Element;
90
+ name: string;
91
+ };
92
+ export declare const Condensed: {
93
+ render: (args: SearchableDropdownProps) => JSX.Element;
94
+ name: string;
95
+ };
96
+ export declare const WithChevron: {
97
+ render: (args: SearchableDropdownProps) => JSX.Element;
98
+ name: string;
99
+ };
100
+ export declare const Disabled: {
101
+ render: (args: SearchableDropdownProps) => JSX.Element;
102
+ name: string;
103
+ };
104
+ export declare const DropUp: {
105
+ render: (args: SearchableDropdownProps) => JSX.Element;
106
+ name: string;
107
+ };
108
+ export default story;
@@ -0,0 +1,5 @@
1
+ import { RefObject } from 'react';
2
+ export declare const useDropdownAlignment: (containerRef: RefObject<HTMLElement | null>, dropdownRef: RefObject<HTMLElement | null>, isOpen: boolean) => {
3
+ alignRight: boolean;
4
+ alignUp: boolean;
5
+ };