From 2206ef98db1de53022c30c85f5f958b54dad08fe Mon Sep 17 00:00:00 2001 From: Akbar Khan Date: Fri, 9 Jun 2023 17:27:02 +0500 Subject: [PATCH 1/2] added support for raw queries --- .gitignore | 2 ++ src/index.ts | 20 ++++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 34c6b93..1b033ac 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ node_modules dist yarn.lock package-lock.json + +.idea \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 84b9869..9d31210 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,7 +4,7 @@ export = plugin( function containerQueries({ matchUtilities, matchVariant, theme }) { let values: Record = theme('containers') ?? {} - function parseValue(value: string) { + function parseNumberValue(value: string) { let numericValue = value.match(/^(\d+\.\d+|\d+|\.\d+)\D+/)?.[1] ?? null if (numericValue === null) return null @@ -24,17 +24,29 @@ export = plugin( values: { DEFAULT: 'inline-size', normal: 'normal', + size: 'size' }, modifiers: 'any', } ) - matchVariant( '@', (value = '', { modifier }) => { - let parsed = parseValue(value) + let parsedNumber = null; + let parsedObject = null; + + if(typeof value === 'object') { + parsedObject = JSON.parse(JSON.stringify(value)) || null; + }else{ + parsedNumber = parseNumberValue(value); + } + + + if(parsedObject !== null) { + return `@container ${modifier ?? ''} ${parsedObject.raw}` + } - return parsed !== null ? `@container ${modifier ?? ''} (min-width: ${value})` : [] + return parsedNumber !== null ? `@container ${modifier ?? ''} (min-width: ${value})` : [] }, { values, From cf591665e53599f035295cebf64ec2d0a872a7aa Mon Sep 17 00:00:00 2001 From: Akbar Khan Date: Fri, 9 Jun 2023 17:34:22 +0500 Subject: [PATCH 2/2] updated test for container type --- tests/index.test.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/index.test.ts b/tests/index.test.ts index 077b628..697cfb4 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -7,7 +7,7 @@ it('container queries', () => { { raw: html`
@@ -39,6 +39,7 @@ it('container queries', () => { sm: '320px', md: '768px', lg: '1024px', + "xs-h": { raw: "(max-height: 600px)" }, }, }, corePlugins: { preflight: false }, @@ -58,6 +59,10 @@ it('container queries', () => { container-type: normal; } + .\@container-size { + container-type: size; + } + .\@container\/sidebar { container-type: inline-size; container-name: sidebar;