12345678910111213141516171819202122232425262728293031323334353637383940 |
- // Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- import type { Classes } from '#shared/form/plugins/utils.ts'
- import { clean, extendClasses } from '#shared/form/plugins/utils.ts'
- /**
- * Textarea can be scrolled, so if we use "aboslute" positioning for label,
- * it will overlap with textarea content. But we still can't use regular solution,
- * becase the label text should be on the same row with the textarea, so we have a trick,
- * where we use "h-2", so it overlaps with the content, until the textarea is populated.
- */
- export const addFloatingTextareaLabel = (classes: Classes = {}) => {
- return extendClasses(classes, {
- outer: clean(`
- floating-textarea relative px-2
- `),
- wrapper: 'relative',
- // text-base ensures there is no zoom when you click on the input on iOS
- input: clean(`
- w-full
- border-none
- bg-transparent
- text-base
- placeholder:text-transparent
- focus:outline-none
- `),
- label: clean(`
- formkit-populated:translate-y-0
- formkit-populated:text-xs
- formkit-populated:opacity-75
- flex
- h-2
- origin-left
- translate-y-4
- cursor-text
- items-end px-2 pt-5 text-base
- transition-all duration-100 ease-in-out
- `),
- })
- }
|