├── .gitignore ├── .husky └── pre-commit ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── examples ├── _shared │ └── defaultListbox.js └── geo │ ├── App.jsx │ ├── components │ ├── cancelButton │ │ ├── cancelButton.jsx │ │ └── cancelButton.module.css │ ├── clearButton │ │ ├── clearButton.jsx │ │ └── clearButton.module.css │ ├── groupName │ │ ├── groupName.jsx │ │ └── groupName.module.css │ └── itemContents │ │ ├── itemContents.jsx │ │ └── itemContents.module.css │ ├── images │ └── newyork.jpg │ ├── index.html │ ├── main.jsx │ └── styles │ ├── App.module.css │ ├── autocomplete.module.css │ └── index.css ├── images ├── example.gif ├── example.old.gif └── turnstone.svg ├── index.html ├── package.json ├── src ├── App.jsx ├── data.js ├── favicon.svg ├── index.css ├── lib │ ├── __snapshots__ │ │ └── index.test.jsx.snap │ ├── __tests__ │ │ └── turnstone.test.jsx │ ├── actions │ │ ├── actionTypes.js │ │ ├── actions.js │ │ └── actions.test.js │ ├── components │ │ ├── __snapshots__ │ │ │ ├── container.test.jsx.snap │ │ │ ├── item.test.jsx.snap │ │ │ ├── itemFirst.test.jsx.snap │ │ │ ├── listBox.test.jsx.snap │ │ │ └── matchingText.test.jsx.snap │ │ ├── container.jsx │ │ ├── container.test.jsx │ │ ├── errorbox.jsx │ │ ├── hooks │ │ │ ├── containerEffects.js │ │ │ ├── containerEffects.test.js │ │ │ ├── useData.js │ │ │ └── useData.test.js │ │ ├── item.jsx │ │ ├── item.test.jsx │ │ ├── itemFirst.jsx │ │ ├── itemFirst.test.jsx │ │ ├── listBox.jsx │ │ ├── listBox.test.jsx │ │ ├── matchingText.jsx │ │ ├── matchingText.test.jsx │ │ └── styles │ │ │ ├── container.styles.js │ │ │ └── listBox.styles.js │ ├── context │ │ ├── __snapshots__ │ │ │ ├── state.test.jsx.snap │ │ │ └── turnstone.test.jsx.snap │ │ ├── state.jsx │ │ └── state.test.jsx │ ├── index.jsx │ ├── index.test.jsx │ ├── reducers │ │ ├── reducer.js │ │ └── reducer.test.js │ └── utils │ │ ├── isUndefined.js │ │ ├── isUndefined.test.jsx │ │ ├── itemText.js │ │ ├── startsWithCaseInsensitive.js │ │ ├── startsWithCaseInsensitive.test.js │ │ ├── swrLaggyMiddleware.js │ │ ├── undef.js │ │ └── undef.test.jsx └── main.jsx ├── vite.config.js └── vitest.config.js /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/.gitignore -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/.husky/pre-commit -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/README.md -------------------------------------------------------------------------------- /examples/_shared/defaultListbox.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/_shared/defaultListbox.js -------------------------------------------------------------------------------- /examples/geo/App.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/geo/App.jsx -------------------------------------------------------------------------------- /examples/geo/components/cancelButton/cancelButton.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/geo/components/cancelButton/cancelButton.jsx -------------------------------------------------------------------------------- /examples/geo/components/cancelButton/cancelButton.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/geo/components/cancelButton/cancelButton.module.css -------------------------------------------------------------------------------- /examples/geo/components/clearButton/clearButton.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/geo/components/clearButton/clearButton.jsx -------------------------------------------------------------------------------- /examples/geo/components/clearButton/clearButton.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/geo/components/clearButton/clearButton.module.css -------------------------------------------------------------------------------- /examples/geo/components/groupName/groupName.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/geo/components/groupName/groupName.jsx -------------------------------------------------------------------------------- /examples/geo/components/groupName/groupName.module.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: inline-block; 3 | padding-right: 6px; 4 | } -------------------------------------------------------------------------------- /examples/geo/components/itemContents/itemContents.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/geo/components/itemContents/itemContents.jsx -------------------------------------------------------------------------------- /examples/geo/components/itemContents/itemContents.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/geo/components/itemContents/itemContents.module.css -------------------------------------------------------------------------------- /examples/geo/images/newyork.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/geo/images/newyork.jpg -------------------------------------------------------------------------------- /examples/geo/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/geo/index.html -------------------------------------------------------------------------------- /examples/geo/main.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/geo/main.jsx -------------------------------------------------------------------------------- /examples/geo/styles/App.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/geo/styles/App.module.css -------------------------------------------------------------------------------- /examples/geo/styles/autocomplete.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/geo/styles/autocomplete.module.css -------------------------------------------------------------------------------- /examples/geo/styles/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/examples/geo/styles/index.css -------------------------------------------------------------------------------- /images/example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/images/example.gif -------------------------------------------------------------------------------- /images/example.old.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/images/example.old.gif -------------------------------------------------------------------------------- /images/turnstone.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/images/turnstone.svg -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/index.html -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/package.json -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/App.jsx -------------------------------------------------------------------------------- /src/data.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/data.js -------------------------------------------------------------------------------- /src/favicon.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/favicon.svg -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/index.css -------------------------------------------------------------------------------- /src/lib/__snapshots__/index.test.jsx.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/__snapshots__/index.test.jsx.snap -------------------------------------------------------------------------------- /src/lib/__tests__/turnstone.test.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/__tests__/turnstone.test.jsx -------------------------------------------------------------------------------- /src/lib/actions/actionTypes.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/actions/actionTypes.js -------------------------------------------------------------------------------- /src/lib/actions/actions.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/actions/actions.js -------------------------------------------------------------------------------- /src/lib/actions/actions.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/actions/actions.test.js -------------------------------------------------------------------------------- /src/lib/components/__snapshots__/container.test.jsx.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/__snapshots__/container.test.jsx.snap -------------------------------------------------------------------------------- /src/lib/components/__snapshots__/item.test.jsx.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/__snapshots__/item.test.jsx.snap -------------------------------------------------------------------------------- /src/lib/components/__snapshots__/itemFirst.test.jsx.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/__snapshots__/itemFirst.test.jsx.snap -------------------------------------------------------------------------------- /src/lib/components/__snapshots__/listBox.test.jsx.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/__snapshots__/listBox.test.jsx.snap -------------------------------------------------------------------------------- /src/lib/components/__snapshots__/matchingText.test.jsx.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/__snapshots__/matchingText.test.jsx.snap -------------------------------------------------------------------------------- /src/lib/components/container.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/container.jsx -------------------------------------------------------------------------------- /src/lib/components/container.test.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/container.test.jsx -------------------------------------------------------------------------------- /src/lib/components/errorbox.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/errorbox.jsx -------------------------------------------------------------------------------- /src/lib/components/hooks/containerEffects.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/hooks/containerEffects.js -------------------------------------------------------------------------------- /src/lib/components/hooks/containerEffects.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/hooks/containerEffects.test.js -------------------------------------------------------------------------------- /src/lib/components/hooks/useData.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/hooks/useData.js -------------------------------------------------------------------------------- /src/lib/components/hooks/useData.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/hooks/useData.test.js -------------------------------------------------------------------------------- /src/lib/components/item.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/item.jsx -------------------------------------------------------------------------------- /src/lib/components/item.test.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/item.test.jsx -------------------------------------------------------------------------------- /src/lib/components/itemFirst.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/itemFirst.jsx -------------------------------------------------------------------------------- /src/lib/components/itemFirst.test.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/itemFirst.test.jsx -------------------------------------------------------------------------------- /src/lib/components/listBox.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/listBox.jsx -------------------------------------------------------------------------------- /src/lib/components/listBox.test.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/listBox.test.jsx -------------------------------------------------------------------------------- /src/lib/components/matchingText.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/matchingText.jsx -------------------------------------------------------------------------------- /src/lib/components/matchingText.test.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/matchingText.test.jsx -------------------------------------------------------------------------------- /src/lib/components/styles/container.styles.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/styles/container.styles.js -------------------------------------------------------------------------------- /src/lib/components/styles/listBox.styles.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/components/styles/listBox.styles.js -------------------------------------------------------------------------------- /src/lib/context/__snapshots__/state.test.jsx.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/context/__snapshots__/state.test.jsx.snap -------------------------------------------------------------------------------- /src/lib/context/__snapshots__/turnstone.test.jsx.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/context/__snapshots__/turnstone.test.jsx.snap -------------------------------------------------------------------------------- /src/lib/context/state.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/context/state.jsx -------------------------------------------------------------------------------- /src/lib/context/state.test.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/context/state.test.jsx -------------------------------------------------------------------------------- /src/lib/index.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/index.jsx -------------------------------------------------------------------------------- /src/lib/index.test.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/index.test.jsx -------------------------------------------------------------------------------- /src/lib/reducers/reducer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/reducers/reducer.js -------------------------------------------------------------------------------- /src/lib/reducers/reducer.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/reducers/reducer.test.js -------------------------------------------------------------------------------- /src/lib/utils/isUndefined.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/utils/isUndefined.js -------------------------------------------------------------------------------- /src/lib/utils/isUndefined.test.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/utils/isUndefined.test.jsx -------------------------------------------------------------------------------- /src/lib/utils/itemText.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/utils/itemText.js -------------------------------------------------------------------------------- /src/lib/utils/startsWithCaseInsensitive.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/utils/startsWithCaseInsensitive.js -------------------------------------------------------------------------------- /src/lib/utils/startsWithCaseInsensitive.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/utils/startsWithCaseInsensitive.test.js -------------------------------------------------------------------------------- /src/lib/utils/swrLaggyMiddleware.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/utils/swrLaggyMiddleware.js -------------------------------------------------------------------------------- /src/lib/utils/undef.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/utils/undef.js -------------------------------------------------------------------------------- /src/lib/utils/undef.test.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/lib/utils/undef.test.jsx -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/src/main.jsx -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/vite.config.js -------------------------------------------------------------------------------- /vitest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomsouthall/turnstone/HEAD/vitest.config.js --------------------------------------------------------------------------------