@vielzeug/refine 1.3.0 → 1.4.0
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.
- package/dist/button.cjs +1 -1
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +3 -3
- package/dist/button.js.map +1 -1
- package/dist/checkbox-group.cjs +7 -7
- package/dist/checkbox-group.cjs.map +1 -1
- package/dist/checkbox-group.js +35 -26
- package/dist/checkbox-group.js.map +1 -1
- package/dist/checkbox.cjs +3 -3
- package/dist/checkbox.cjs.map +1 -1
- package/dist/checkbox.js +24 -19
- package/dist/checkbox.js.map +1 -1
- package/dist/combobox.cjs +24 -24
- package/dist/combobox.cjs.map +1 -1
- package/dist/combobox.js +133 -129
- package/dist/combobox.js.map +1 -1
- package/dist/content/card/card.css.cjs +1 -1
- package/dist/content/card/card.css.cjs.map +1 -1
- package/dist/content/card/card.css.js +1 -1
- package/dist/content/card/card.css.js.map +1 -1
- package/dist/content/icon/icon.css.cjs +1 -1
- package/dist/content/icon/icon.css.cjs.map +1 -1
- package/dist/content/icon/icon.css.js +1 -1
- package/dist/content/icon/icon.css.js.map +1 -1
- package/dist/custom-elements.json +4711 -4209
- package/dist/feedback/toast/toast.css.cjs +1 -1
- package/dist/feedback/toast/toast.css.cjs.map +1 -1
- package/dist/feedback/toast/toast.css.js +1 -1
- package/dist/feedback/toast/toast.css.js.map +1 -1
- package/dist/headless/auto-resize.cjs +2 -0
- package/dist/headless/auto-resize.cjs.map +1 -0
- package/dist/headless/auto-resize.d.ts +29 -0
- package/dist/headless/auto-resize.d.ts.map +1 -0
- package/dist/headless/auto-resize.js +16 -0
- package/dist/headless/auto-resize.js.map +1 -0
- package/dist/headless/checkable.cjs +1 -1
- package/dist/headless/checkable.cjs.map +1 -1
- package/dist/headless/checkable.d.ts +25 -7
- package/dist/headless/checkable.d.ts.map +1 -1
- package/dist/headless/checkable.js +19 -14
- package/dist/headless/checkable.js.map +1 -1
- package/dist/headless/choice-field.cjs +1 -1
- package/dist/headless/choice-field.cjs.map +1 -1
- package/dist/headless/choice-field.d.ts +21 -0
- package/dist/headless/choice-field.d.ts.map +1 -1
- package/dist/headless/choice-field.js +27 -19
- package/dist/headless/choice-field.js.map +1 -1
- package/dist/headless/composer.cjs +2 -0
- package/dist/headless/composer.cjs.map +1 -0
- package/dist/headless/composer.d.ts +44 -0
- package/dist/headless/composer.d.ts.map +1 -0
- package/dist/headless/composer.js +21 -0
- package/dist/headless/composer.js.map +1 -0
- package/dist/headless/field-base.cjs +1 -1
- package/dist/headless/field-base.cjs.map +1 -1
- package/dist/headless/field-base.d.ts +97 -84
- package/dist/headless/field-base.d.ts.map +1 -1
- package/dist/headless/field-base.js +43 -32
- package/dist/headless/field-base.js.map +1 -1
- package/dist/headless/index.d.ts +3 -1
- package/dist/headless/index.d.ts.map +1 -1
- package/dist/headless/text-field.cjs +1 -1
- package/dist/headless/text-field.cjs.map +1 -1
- package/dist/headless/text-field.d.ts +40 -0
- package/dist/headless/text-field.d.ts.map +1 -1
- package/dist/headless/text-field.js +30 -25
- package/dist/headless/text-field.js.map +1 -1
- package/dist/headless.cjs +1 -1
- package/dist/headless.js +27 -25
- package/dist/index.cjs +1 -1
- package/dist/index.js +61 -60
- package/dist/input.cjs +9 -9
- package/dist/input.cjs.map +1 -1
- package/dist/input.js +49 -44
- package/dist/input.js.map +1 -1
- package/dist/inputs/button/button.css.cjs +1 -1
- package/dist/inputs/button/button.css.cjs.map +1 -1
- package/dist/inputs/button/button.css.js +1 -1
- package/dist/inputs/button/button.css.js.map +1 -1
- package/dist/inputs/checkbox/checkbox.css.cjs +1 -1
- package/dist/inputs/checkbox/checkbox.css.cjs.map +1 -1
- package/dist/inputs/checkbox/checkbox.css.js +1 -1
- package/dist/inputs/checkbox/checkbox.css.js.map +1 -1
- package/dist/inputs/checkbox/checkbox.d.ts +3 -0
- package/dist/inputs/checkbox/checkbox.d.ts.map +1 -1
- package/dist/inputs/checkbox-group/checkbox-group.css.cjs +1 -1
- package/dist/inputs/checkbox-group/checkbox-group.css.cjs.map +1 -1
- package/dist/inputs/checkbox-group/checkbox-group.css.js +1 -1
- package/dist/inputs/checkbox-group/checkbox-group.css.js.map +1 -1
- package/dist/inputs/combobox/combobox.d.ts +1 -0
- package/dist/inputs/combobox/combobox.d.ts.map +1 -1
- package/dist/inputs/combobox/combobox.types.d.ts +2 -0
- package/dist/inputs/combobox/combobox.types.d.ts.map +1 -1
- package/dist/inputs/file-input/file-input.css.cjs +1 -1
- package/dist/inputs/file-input/file-input.css.cjs.map +1 -1
- package/dist/inputs/file-input/file-input.css.js +1 -1
- package/dist/inputs/file-input/file-input.css.js.map +1 -1
- package/dist/inputs/index.d.ts +2 -0
- package/dist/inputs/index.d.ts.map +1 -1
- package/dist/inputs/input/input.css.cjs +1 -1
- package/dist/inputs/input/input.css.cjs.map +1 -1
- package/dist/inputs/input/input.css.js +1 -1
- package/dist/inputs/input/input.css.js.map +1 -1
- package/dist/inputs/input/input.d.ts.map +1 -1
- package/dist/inputs/message-composer/message-composer.css.cjs +2 -0
- package/dist/inputs/message-composer/message-composer.css.cjs.map +1 -0
- package/dist/inputs/message-composer/message-composer.css.js +6 -0
- package/dist/inputs/message-composer/message-composer.css.js.map +1 -0
- package/dist/inputs/message-composer/message-composer.d.ts +139 -0
- package/dist/inputs/message-composer/message-composer.d.ts.map +1 -0
- package/dist/inputs/otp-input/otp-input.css.cjs +1 -1
- package/dist/inputs/otp-input/otp-input.css.cjs.map +1 -1
- package/dist/inputs/otp-input/otp-input.css.js +1 -1
- package/dist/inputs/otp-input/otp-input.css.js.map +1 -1
- package/dist/inputs/radio/radio.css.cjs +1 -1
- package/dist/inputs/radio/radio.css.cjs.map +1 -1
- package/dist/inputs/radio/radio.css.js +1 -1
- package/dist/inputs/radio/radio.css.js.map +1 -1
- package/dist/inputs/radio-group/radio-group.css.cjs +1 -1
- package/dist/inputs/radio-group/radio-group.css.cjs.map +1 -1
- package/dist/inputs/radio-group/radio-group.css.js +1 -1
- package/dist/inputs/radio-group/radio-group.css.js.map +1 -1
- package/dist/inputs/rating/rating.css.cjs +1 -1
- package/dist/inputs/rating/rating.css.cjs.map +1 -1
- package/dist/inputs/rating/rating.css.js +1 -1
- package/dist/inputs/rating/rating.css.js.map +1 -1
- package/dist/inputs/shared/field-binding.cjs +1 -1
- package/dist/inputs/shared/field-binding.cjs.map +1 -1
- package/dist/inputs/shared/field-binding.d.ts +15 -0
- package/dist/inputs/shared/field-binding.d.ts.map +1 -1
- package/dist/inputs/shared/field-binding.js +4 -3
- package/dist/inputs/shared/field-binding.js.map +1 -1
- package/dist/inputs/shared/form-context.cjs.map +1 -1
- package/dist/inputs/shared/form-context.d.ts +6 -0
- package/dist/inputs/shared/form-context.d.ts.map +1 -1
- package/dist/inputs/shared/form-context.js.map +1 -1
- package/dist/inputs/slider/slider.css.cjs +1 -1
- package/dist/inputs/slider/slider.css.cjs.map +1 -1
- package/dist/inputs/slider/slider.css.js +1 -1
- package/dist/inputs/slider/slider.css.js.map +1 -1
- package/dist/inputs/switch/switch.css.cjs +1 -1
- package/dist/inputs/switch/switch.css.cjs.map +1 -1
- package/dist/inputs/switch/switch.css.js +1 -1
- package/dist/inputs/switch/switch.css.js.map +1 -1
- package/dist/inputs/textarea/textarea.css.cjs +1 -1
- package/dist/inputs/textarea/textarea.css.cjs.map +1 -1
- package/dist/inputs/textarea/textarea.css.js +1 -1
- package/dist/inputs/textarea/textarea.css.js.map +1 -1
- package/dist/inputs/textarea/textarea.d.ts.map +1 -1
- package/dist/layout/navbar/navbar.css.cjs +1 -1
- package/dist/layout/navbar/navbar.css.cjs.map +1 -1
- package/dist/layout/navbar/navbar.css.js +1 -1
- package/dist/layout/navbar/navbar.css.js.map +1 -1
- package/dist/layout/sidebar/sidebar.css.cjs +1 -1
- package/dist/layout/sidebar/sidebar.css.cjs.map +1 -1
- package/dist/layout/sidebar/sidebar.css.js +1 -1
- package/dist/layout/sidebar/sidebar.css.js.map +1 -1
- package/dist/message-composer.cjs +52 -0
- package/dist/message-composer.cjs.map +1 -0
- package/dist/message-composer.js +168 -0
- package/dist/message-composer.js.map +1 -0
- package/dist/ore/dist/base-element.cjs +1 -1
- package/dist/ore/dist/base-element.cjs.map +1 -1
- package/dist/ore/dist/base-element.js +13 -3
- package/dist/ore/dist/base-element.js.map +1 -1
- package/dist/ore/dist/forms/field.cjs +1 -1
- package/dist/ore/dist/forms/field.cjs.map +1 -1
- package/dist/ore/dist/forms/field.js +29 -22
- package/dist/ore/dist/forms/field.js.map +1 -1
- package/dist/ore/dist/runtime.cjs +1 -1
- package/dist/ore/dist/runtime.cjs.map +1 -1
- package/dist/ore/dist/runtime.js +3 -1
- package/dist/ore/dist/runtime.js.map +1 -1
- package/dist/overlay/menu/menu.css.cjs +1 -1
- package/dist/overlay/menu/menu.css.cjs.map +1 -1
- package/dist/overlay/menu/menu.css.js +1 -1
- package/dist/overlay/menu/menu.css.js.map +1 -1
- package/dist/radio-group.cjs +9 -9
- package/dist/radio-group.cjs.map +1 -1
- package/dist/radio-group.js +44 -38
- package/dist/radio-group.js.map +1 -1
- package/dist/radio.cjs +3 -3
- package/dist/radio.cjs.map +1 -1
- package/dist/radio.js +23 -24
- package/dist/radio.js.map +1 -1
- package/dist/refine.cjs +228 -181
- package/dist/refine.cjs.map +1 -1
- package/dist/refine.iife.js +228 -181
- package/dist/refine.iife.js.map +1 -1
- package/dist/refine.js +251 -204
- package/dist/refine.js.map +1 -1
- package/dist/select.cjs +31 -31
- package/dist/select.cjs.map +1 -1
- package/dist/select.js +125 -122
- package/dist/select.js.map +1 -1
- package/dist/shared/size-presets.cjs +1 -1
- package/dist/shared/size-presets.cjs.map +1 -1
- package/dist/shared/size-presets.d.ts +23 -0
- package/dist/shared/size-presets.d.ts.map +1 -1
- package/dist/shared/size-presets.js +17 -1
- package/dist/shared/size-presets.js.map +1 -1
- package/dist/styles/mixins/animation.css.cjs +0 -3
- package/dist/styles/mixins/animation.css.cjs.map +1 -1
- package/dist/styles/mixins/animation.css.d.ts +12 -4
- package/dist/styles/mixins/animation.css.d.ts.map +1 -1
- package/dist/styles/mixins/animation.css.js +0 -3
- package/dist/styles/mixins/animation.css.js.map +1 -1
- package/dist/styles/mixins/variants.css.cjs.map +1 -1
- package/dist/styles/mixins/variants.css.d.ts +7 -2
- package/dist/styles/mixins/variants.css.d.ts.map +1 -1
- package/dist/styles/mixins/variants.css.js.map +1 -1
- package/dist/styles/theme.css +341 -132
- package/dist/switch.cjs +3 -3
- package/dist/switch.cjs.map +1 -1
- package/dist/switch.js +17 -18
- package/dist/switch.js.map +1 -1
- package/dist/textarea.cjs +15 -15
- package/dist/textarea.cjs.map +1 -1
- package/dist/textarea.js +64 -60
- package/dist/textarea.js.map +1 -1
- package/package.json +21 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-composer.css.cjs","names":[],"sources":["../../../src/inputs/message-composer/message-composer.css?inline"],"sourcesContent":["/*\n * Unlike the first version of this component, the field here is a plain `<textarea>` owned\n * directly by this stylesheet — not a nested `ore-textarea` with its own chrome suppressed via\n * `::part()` overrides. There is exactly one implementation of \"what the field looks like\" to\n * maintain (this file), not two.\n */\n@layer refine.base {\n :host {\n /* --_bg/--_border-color are set per-variant in @layer refine.variants below (every host\n matches exactly one variant rule, including the implicit \"no attribute\" default) — no\n fallback needed here. --_padding/--_font-size/--_gap are set per-size by\n sizeVariantMixin(MESSAGE_COMPOSER_SIZE_PRESET) (see message-composer.ts's `styles`); this\n is the `--message-composer-padding` public-override fallback for the \"md\" tier, matching\n the same pattern `ore-textarea` uses for `--textarea-padding`. */\n --_radius: var(--message-composer-radius, var(--rounded-2xl));\n --_padding: var(--message-composer-padding, var(--size-3));\n --_surface: var(--_bg);\n\n display: flex;\n width: fit-content;\n max-width: 100%;\n }\n\n :host([fullwidth]) {\n width: 100%;\n }\n\n .composer {\n display: flex;\n flex-direction: column;\n gap: var(--message-composer-gap, var(--_gap));\n width: 100%;\n padding: var(--_padding);\n background: var(--_surface);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--_radius);\n box-shadow: var(--shadow-2xs);\n transition:\n background var(--transition-fast),\n border-color var(--transition-fast),\n box-shadow var(--transition-fast);\n }\n\n /* `flat` excluded — it gets its own theme-tinted hover/focus recipe below instead of the\n plain canvas-background one every other variant shares (mirrors `ore-textarea`). */\n :host(:not([disabled], [variant='bordered'], [variant='flat'])) .composer:hover {\n border-color: var(--color-contrast-400);\n }\n\n :host(:not([disabled], [variant='flat'])) .composer:focus-within {\n --_surface: var(--color-canvas);\n\n border-color: var(--_theme-focus);\n box-shadow: var(--_theme-shadow);\n }\n\n :host([error]:not([error=''])) .composer {\n border-color: var(--color-error);\n }\n\n :host([error]:not([error=''])) .composer:focus-within {\n border-color: var(--color-error);\n box-shadow: var(--color-error-focus-shadow);\n }\n\n .field {\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n\n /* Floor so an inline `height` from auto-resize (JS, set on `<textarea>` directly — see\n auto-resize.ts) can never visually collapse the field below one line, e.g. before the\n first `scrollHeight` read has actually happened. `ore-textarea` has the equivalent\n `--_min-height` for the same reason. */\n min-height: var(--message-composer-min-height, 1lh);\n padding: 0;\n font: inherit;\n font-size: var(--_font-size);\n line-height: var(--leading-relaxed);\n color: var(--text-color-body);\n resize: none;\n outline: none;\n background: transparent;\n border: none;\n }\n\n .field::placeholder {\n color: var(--message-composer-placeholder-color, var(--color-contrast-500));\n }\n\n .helper-text[hidden] {\n display: none;\n }\n\n .helper-text {\n padding-inline: 2px;\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas));\n }\n\n .counter {\n align-self: flex-end;\n padding-inline: 2px;\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: var(--color-contrast-400);\n }\n\n .counter.near-limit {\n color: var(--color-warning);\n }\n\n .counter.at-limit {\n color: var(--color-error);\n }\n\n .toolbar {\n display: flex;\n gap: var(--message-composer-gap, var(--_gap));\n align-items: center;\n justify-content: space-between;\n }\n\n .toolbar-start,\n .toolbar-end {\n display: flex;\n gap: var(--message-composer-gap, var(--_gap));\n align-items: center;\n min-width: 0;\n }\n\n .send-btn {\n flex-shrink: 0;\n }\n}\n\n/*\n * Same five-variant set as `ore-textarea` (solid/flat/bordered/outline/ghost), applied to the\n * card (`.composer`) instead of a bare field — kept consistent with the rest of the field\n * family rather than a bespoke boolean \"flat or not\" so `ore-message-composer` doesn't read as\n * a special case next to `ore-input`/`ore-textarea`.\n */\n@layer refine.variants {\n /* Solid (Default) */\n :host(:not([variant])),\n :host([variant='solid']) {\n --_bg: var(--message-composer-bg, var(--color-contrast-50));\n --_border-color: var(--message-composer-border-color, var(--color-contrast-300));\n }\n\n :host(:not([variant])) .composer,\n :host([variant='solid']) .composer {\n box-shadow: var(--shadow-2xs);\n }\n\n :host(:not([variant], [disabled])) .composer:focus-within,\n :host([variant='solid']:not([disabled])) .composer:focus-within {\n box-shadow: var(--_theme-shadow);\n }\n\n /*\n * Flat — a filled, theme-tinted card that \"sinks in\" via an inset shadow rather than sitting\n * on a border, same recipe as `ore-textarea`'s flat. Previously this was transparent at rest\n * (identical to `ghost`) and only grew a visible identity nobody could see until it happened\n * to line up with `ghost`'s own hover state — the two read as the same variant side-by-side.\n */\n :host([variant='flat']) {\n --_bg: var(--message-composer-bg, var(--color-contrast-100));\n --_border-color: var(--message-composer-border-color, color-mix(in oklch, var(--_theme-focus) 20%, transparent));\n }\n\n :host([variant='flat']) .composer {\n box-shadow: var(--inset-shadow-2xs);\n }\n\n :host([variant='flat']:not([disabled])) .composer:hover {\n background: var(--message-composer-hover-bg, color-mix(in oklch, var(--_theme-base) 6%, var(--color-contrast-100)));\n border-color: var(\n --message-composer-hover-border-color,\n color-mix(in oklch, var(--_theme-base) 35%, var(--color-contrast-300))\n );\n }\n\n :host([variant='flat']:not([disabled])) .composer:focus-within {\n background: var(--message-composer-focus-bg, color-mix(in oklch, var(--_theme-base) 8%, var(--color-canvas)));\n border-color: var(--message-composer-focus-border-color, color-mix(in oklch, var(--_theme-focus) 60%, transparent));\n box-shadow: var(--_theme-shadow);\n }\n\n /* Bordered — theme-tinted backdrop and border; field text picks up the theme color too. */\n :host([variant='bordered']) {\n --_bg: var(--message-composer-bg, var(--_theme-backdrop));\n --_border-color: var(--message-composer-border-color, color-mix(in oklch, var(--_theme-focus) 70%, transparent));\n }\n\n :host([variant='bordered']:not([disabled])) .composer:hover {\n border-color: var(--message-composer-hover-border-color, var(--_theme-focus));\n }\n\n :host([variant='bordered']) .field {\n color: var(--_theme-base);\n }\n\n :host([variant='bordered']) .field::placeholder {\n color: var(--message-composer-placeholder-color, color-mix(in oklch, var(--_theme-base) 45%, transparent));\n }\n\n /* Outline — transparent background, border always visible, theme-colored focus ring. */\n :host([variant='outline']) {\n --_bg: var(--message-composer-bg, transparent);\n }\n\n :host([variant='outline']) .composer {\n box-shadow: none;\n }\n\n :host([variant='outline']:not([disabled])) .composer:focus-within {\n box-shadow: var(--_theme-shadow);\n }\n\n /*\n * Ghost — fully transparent at rest and on hover-only background tint; focus falls through to\n * the shared `:focus-within` rule above (canvas background + theme-focus border + theme\n * shadow) instead of a second, bespoke focus recipe here — same as `ore-textarea`'s ghost.\n */\n :host([variant='ghost']) {\n --_bg: var(--message-composer-bg, transparent);\n --_border-color: var(--message-composer-border-color, transparent);\n }\n\n :host([variant='ghost']) .composer {\n box-shadow: none;\n }\n\n :host([variant='ghost']:not([disabled])) .composer:hover {\n background: var(--message-composer-hover-bg, var(--color-contrast-100));\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/inputs/message-composer/message-composer.css?inline
|
|
2
|
+
var e = "@layer refine.base{:host{--_radius:var(--message-composer-radius,var(--rounded-2xl));--_padding:var(--message-composer-padding,var(--size-3));--_surface:var(--_bg);width:fit-content;max-width:100%;display:flex}:host([fullwidth]){width:100%}.composer{gap:var(--message-composer-gap,var(--_gap));width:100%;padding:var(--_padding);background:var(--_surface);border:var(--border) solid var(--_border-color);border-radius:var(--_radius);box-shadow:var(--shadow-2xs);transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;display:flex}:host(:not([disabled],[variant=bordered],[variant=flat])) .composer:hover{border-color:var(--color-contrast-400)}:host(:not([disabled],[variant=flat])) .composer:focus-within{--_surface:var(--color-canvas);border-color:var(--_theme-focus);box-shadow:var(--_theme-shadow)}:host([error]:not([error=\"\"])) .composer{border-color:var(--color-error)}:host([error]:not([error=\"\"])) .composer:focus-within{border-color:var(--color-error);box-shadow:var(--color-error-focus-shadow)}.field{box-sizing:border-box;width:100%;min-width:0;min-height:var(--message-composer-min-height,1lh);font:inherit;font-size:var(--_font-size);line-height:var(--leading-relaxed);color:var(--text-color-body);resize:none;background:0 0;border:none;outline:none;padding:0}.field::placeholder{color:var(--message-composer-placeholder-color,var(--color-contrast-500))}.helper-text[hidden]{display:none}.helper-text{font-size:var(--text-xs);line-height:var(--leading-tight);color:color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas));padding-left:2px;padding-right:2px}.counter{font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-contrast-400);align-self:flex-end;padding-left:2px;padding-right:2px}.counter.near-limit{color:var(--color-warning)}.counter.at-limit{color:var(--color-error)}.toolbar{gap:var(--message-composer-gap,var(--_gap));justify-content:space-between;align-items:center;display:flex}.toolbar-start,.toolbar-end{gap:var(--message-composer-gap,var(--_gap));align-items:center;min-width:0;display:flex}.send-btn{flex-shrink:0}}@layer refine.variants{:host(:not([variant])),:host([variant=solid]){--_bg:var(--message-composer-bg,var(--color-contrast-50));--_border-color:var(--message-composer-border-color,var(--color-contrast-300))}:host(:not([variant])) .composer,:host([variant=solid]) .composer{box-shadow:var(--shadow-2xs)}:host(:not([variant],[disabled])) .composer:focus-within,:host([variant=solid]:not([disabled])) .composer:focus-within{box-shadow:var(--_theme-shadow)}:host([variant=flat]){--_bg:var(--message-composer-bg,var(--color-contrast-100));--_border-color:var(--message-composer-border-color,color-mix(in oklch, var(--_theme-focus) 20%, transparent))}:host([variant=flat]) .composer{box-shadow:var(--inset-shadow-2xs)}:host([variant=flat]:not([disabled])) .composer:hover{background:var(--message-composer-hover-bg,color-mix(in oklch, var(--_theme-base) 6%, var(--color-contrast-100)));border-color:var(--message-composer-hover-border-color,color-mix(in oklch, var(--_theme-base) 35%, var(--color-contrast-300)))}:host([variant=flat]:not([disabled])) .composer:focus-within{background:var(--message-composer-focus-bg,color-mix(in oklch, var(--_theme-base) 8%, var(--color-canvas)));border-color:var(--message-composer-focus-border-color,color-mix(in oklch, var(--_theme-focus) 60%, transparent));box-shadow:var(--_theme-shadow)}:host([variant=bordered]){--_bg:var(--message-composer-bg,var(--_theme-backdrop));--_border-color:var(--message-composer-border-color,color-mix(in oklch, var(--_theme-focus) 70%, transparent))}:host([variant=bordered]:not([disabled])) .composer:hover{border-color:var(--message-composer-hover-border-color,var(--_theme-focus))}:host([variant=bordered]) .field{color:var(--_theme-base)}:host([variant=bordered]) .field::placeholder{color:var(--message-composer-placeholder-color,color-mix(in oklch, var(--_theme-base) 45%, transparent))}:host([variant=outline]){--_bg:var(--message-composer-bg,transparent)}:host([variant=outline]) .composer{box-shadow:none}:host([variant=outline]:not([disabled])) .composer:focus-within{box-shadow:var(--_theme-shadow)}:host([variant=ghost]){--_bg:var(--message-composer-bg,transparent);--_border-color:var(--message-composer-border-color,transparent)}:host([variant=ghost]) .composer{box-shadow:none}:host([variant=ghost]:not([disabled])) .composer:hover{background:var(--message-composer-hover-bg,var(--color-contrast-100))}}";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { e as default };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=message-composer.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-composer.css.js","names":[],"sources":["../../../src/inputs/message-composer/message-composer.css?inline"],"sourcesContent":["/*\n * Unlike the first version of this component, the field here is a plain `<textarea>` owned\n * directly by this stylesheet — not a nested `ore-textarea` with its own chrome suppressed via\n * `::part()` overrides. There is exactly one implementation of \"what the field looks like\" to\n * maintain (this file), not two.\n */\n@layer refine.base {\n :host {\n /* --_bg/--_border-color are set per-variant in @layer refine.variants below (every host\n matches exactly one variant rule, including the implicit \"no attribute\" default) — no\n fallback needed here. --_padding/--_font-size/--_gap are set per-size by\n sizeVariantMixin(MESSAGE_COMPOSER_SIZE_PRESET) (see message-composer.ts's `styles`); this\n is the `--message-composer-padding` public-override fallback for the \"md\" tier, matching\n the same pattern `ore-textarea` uses for `--textarea-padding`. */\n --_radius: var(--message-composer-radius, var(--rounded-2xl));\n --_padding: var(--message-composer-padding, var(--size-3));\n --_surface: var(--_bg);\n\n display: flex;\n width: fit-content;\n max-width: 100%;\n }\n\n :host([fullwidth]) {\n width: 100%;\n }\n\n .composer {\n display: flex;\n flex-direction: column;\n gap: var(--message-composer-gap, var(--_gap));\n width: 100%;\n padding: var(--_padding);\n background: var(--_surface);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--_radius);\n box-shadow: var(--shadow-2xs);\n transition:\n background var(--transition-fast),\n border-color var(--transition-fast),\n box-shadow var(--transition-fast);\n }\n\n /* `flat` excluded — it gets its own theme-tinted hover/focus recipe below instead of the\n plain canvas-background one every other variant shares (mirrors `ore-textarea`). */\n :host(:not([disabled], [variant='bordered'], [variant='flat'])) .composer:hover {\n border-color: var(--color-contrast-400);\n }\n\n :host(:not([disabled], [variant='flat'])) .composer:focus-within {\n --_surface: var(--color-canvas);\n\n border-color: var(--_theme-focus);\n box-shadow: var(--_theme-shadow);\n }\n\n :host([error]:not([error=''])) .composer {\n border-color: var(--color-error);\n }\n\n :host([error]:not([error=''])) .composer:focus-within {\n border-color: var(--color-error);\n box-shadow: var(--color-error-focus-shadow);\n }\n\n .field {\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n\n /* Floor so an inline `height` from auto-resize (JS, set on `<textarea>` directly — see\n auto-resize.ts) can never visually collapse the field below one line, e.g. before the\n first `scrollHeight` read has actually happened. `ore-textarea` has the equivalent\n `--_min-height` for the same reason. */\n min-height: var(--message-composer-min-height, 1lh);\n padding: 0;\n font: inherit;\n font-size: var(--_font-size);\n line-height: var(--leading-relaxed);\n color: var(--text-color-body);\n resize: none;\n outline: none;\n background: transparent;\n border: none;\n }\n\n .field::placeholder {\n color: var(--message-composer-placeholder-color, var(--color-contrast-500));\n }\n\n .helper-text[hidden] {\n display: none;\n }\n\n .helper-text {\n padding-inline: 2px;\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas));\n }\n\n .counter {\n align-self: flex-end;\n padding-inline: 2px;\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: var(--color-contrast-400);\n }\n\n .counter.near-limit {\n color: var(--color-warning);\n }\n\n .counter.at-limit {\n color: var(--color-error);\n }\n\n .toolbar {\n display: flex;\n gap: var(--message-composer-gap, var(--_gap));\n align-items: center;\n justify-content: space-between;\n }\n\n .toolbar-start,\n .toolbar-end {\n display: flex;\n gap: var(--message-composer-gap, var(--_gap));\n align-items: center;\n min-width: 0;\n }\n\n .send-btn {\n flex-shrink: 0;\n }\n}\n\n/*\n * Same five-variant set as `ore-textarea` (solid/flat/bordered/outline/ghost), applied to the\n * card (`.composer`) instead of a bare field — kept consistent with the rest of the field\n * family rather than a bespoke boolean \"flat or not\" so `ore-message-composer` doesn't read as\n * a special case next to `ore-input`/`ore-textarea`.\n */\n@layer refine.variants {\n /* Solid (Default) */\n :host(:not([variant])),\n :host([variant='solid']) {\n --_bg: var(--message-composer-bg, var(--color-contrast-50));\n --_border-color: var(--message-composer-border-color, var(--color-contrast-300));\n }\n\n :host(:not([variant])) .composer,\n :host([variant='solid']) .composer {\n box-shadow: var(--shadow-2xs);\n }\n\n :host(:not([variant], [disabled])) .composer:focus-within,\n :host([variant='solid']:not([disabled])) .composer:focus-within {\n box-shadow: var(--_theme-shadow);\n }\n\n /*\n * Flat — a filled, theme-tinted card that \"sinks in\" via an inset shadow rather than sitting\n * on a border, same recipe as `ore-textarea`'s flat. Previously this was transparent at rest\n * (identical to `ghost`) and only grew a visible identity nobody could see until it happened\n * to line up with `ghost`'s own hover state — the two read as the same variant side-by-side.\n */\n :host([variant='flat']) {\n --_bg: var(--message-composer-bg, var(--color-contrast-100));\n --_border-color: var(--message-composer-border-color, color-mix(in oklch, var(--_theme-focus) 20%, transparent));\n }\n\n :host([variant='flat']) .composer {\n box-shadow: var(--inset-shadow-2xs);\n }\n\n :host([variant='flat']:not([disabled])) .composer:hover {\n background: var(--message-composer-hover-bg, color-mix(in oklch, var(--_theme-base) 6%, var(--color-contrast-100)));\n border-color: var(\n --message-composer-hover-border-color,\n color-mix(in oklch, var(--_theme-base) 35%, var(--color-contrast-300))\n );\n }\n\n :host([variant='flat']:not([disabled])) .composer:focus-within {\n background: var(--message-composer-focus-bg, color-mix(in oklch, var(--_theme-base) 8%, var(--color-canvas)));\n border-color: var(--message-composer-focus-border-color, color-mix(in oklch, var(--_theme-focus) 60%, transparent));\n box-shadow: var(--_theme-shadow);\n }\n\n /* Bordered — theme-tinted backdrop and border; field text picks up the theme color too. */\n :host([variant='bordered']) {\n --_bg: var(--message-composer-bg, var(--_theme-backdrop));\n --_border-color: var(--message-composer-border-color, color-mix(in oklch, var(--_theme-focus) 70%, transparent));\n }\n\n :host([variant='bordered']:not([disabled])) .composer:hover {\n border-color: var(--message-composer-hover-border-color, var(--_theme-focus));\n }\n\n :host([variant='bordered']) .field {\n color: var(--_theme-base);\n }\n\n :host([variant='bordered']) .field::placeholder {\n color: var(--message-composer-placeholder-color, color-mix(in oklch, var(--_theme-base) 45%, transparent));\n }\n\n /* Outline — transparent background, border always visible, theme-colored focus ring. */\n :host([variant='outline']) {\n --_bg: var(--message-composer-bg, transparent);\n }\n\n :host([variant='outline']) .composer {\n box-shadow: none;\n }\n\n :host([variant='outline']:not([disabled])) .composer:focus-within {\n box-shadow: var(--_theme-shadow);\n }\n\n /*\n * Ghost — fully transparent at rest and on hover-only background tint; focus falls through to\n * the shared `:focus-within` rule above (canvas background + theme-focus border + theme\n * shadow) instead of a second, bespoke focus recipe here — same as `ore-textarea`'s ghost.\n */\n :host([variant='ghost']) {\n --_bg: var(--message-composer-bg, transparent);\n --_border-color: var(--message-composer-border-color, transparent);\n }\n\n :host([variant='ghost']) .composer {\n box-shadow: none;\n }\n\n :host([variant='ghost']:not([disabled])) .composer:hover {\n background: var(--message-composer-hover-bg, var(--color-contrast-100));\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import type { ComponentSize, ThemeColor, VisualVariant } from '../../types';
|
|
2
|
+
import { type SendShortcut } from '../../headless';
|
|
3
|
+
import '../../content/icon/icon';
|
|
4
|
+
import '../button/button';
|
|
5
|
+
export type { SendShortcut } from '../../headless';
|
|
6
|
+
/** Events emitted by the message composer */
|
|
7
|
+
export type OreMessageComposerEvents = {
|
|
8
|
+
/** Fired on every keystroke with the current value. */
|
|
9
|
+
input: {
|
|
10
|
+
originalEvent: Event;
|
|
11
|
+
value: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Fired for a send attempt (the resolved `send-shortcut` or the send button) while the
|
|
15
|
+
* composer isn't blank/disabled/loading. Cancelable — call `preventDefault()` to keep the
|
|
16
|
+
* current text in the field instead of the default clear + refocus.
|
|
17
|
+
*/
|
|
18
|
+
send: {
|
|
19
|
+
originalEvent: KeyboardEvent | MouseEvent;
|
|
20
|
+
value: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
/** Message composer properties */
|
|
24
|
+
export type OreMessageComposerProps = {
|
|
25
|
+
/** Clear the value and refocus after a non-cancelled `send` (default `true`) */
|
|
26
|
+
'clear-on-send'?: boolean;
|
|
27
|
+
/** Theme color (card focus ring + default send button color) */
|
|
28
|
+
color?: ThemeColor;
|
|
29
|
+
/** Disable the whole composer (field, slots, and send action) */
|
|
30
|
+
disabled?: boolean;
|
|
31
|
+
/** Error message shown below the field */
|
|
32
|
+
error?: string;
|
|
33
|
+
/** Stretch the composer to the full width of its container */
|
|
34
|
+
fullwidth?: boolean;
|
|
35
|
+
/** Helper text shown below the field */
|
|
36
|
+
helper?: string;
|
|
37
|
+
/** Accessible name for the field — never rendered visually, only as `aria-label` */
|
|
38
|
+
label?: string;
|
|
39
|
+
/** Blocks further sends (e.g. a send is already in flight) without disabling editing */
|
|
40
|
+
loading?: boolean;
|
|
41
|
+
/** Maximum character count; shows a counter */
|
|
42
|
+
maxlength?: number;
|
|
43
|
+
/** Form field name */
|
|
44
|
+
name?: string;
|
|
45
|
+
/** Placeholder text */
|
|
46
|
+
placeholder?: string;
|
|
47
|
+
/** Make the field read-only */
|
|
48
|
+
readonly?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* JS-only callback fired with the inner `<textarea>` element when it mounts, and with
|
|
51
|
+
* `null` when it unmounts. Set as a JS property: `composer.ref = (el) => { ... }`.
|
|
52
|
+
*/
|
|
53
|
+
ref?: ((el: HTMLTextAreaElement | null) => void) | null;
|
|
54
|
+
/** Require a non-blank value for `<ore-form>` validation */
|
|
55
|
+
required?: boolean;
|
|
56
|
+
/** Number of visible rows before auto-resize grows the field */
|
|
57
|
+
rows?: number;
|
|
58
|
+
/** Lucide icon name for the default send button (default `'arrow-up'`) */
|
|
59
|
+
'send-icon'?: string;
|
|
60
|
+
/** Accessible label for the send button (default `'Send message'`) */
|
|
61
|
+
'send-label'?: string;
|
|
62
|
+
/** Keyboard shortcut that sends: 'enter' (Shift+Enter for a newline) or 'mod+enter' (Enter always inserts a newline; Ctrl/Cmd+Enter sends) */
|
|
63
|
+
'send-shortcut'?: SendShortcut;
|
|
64
|
+
/** Component size */
|
|
65
|
+
size?: ComponentSize;
|
|
66
|
+
/** Current text value */
|
|
67
|
+
value?: string;
|
|
68
|
+
/** Visual variant of the card — same variant set as `ore-textarea`, applied to the card. */
|
|
69
|
+
variant?: Exclude<VisualVariant, 'frost' | 'text'>;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* A message/comment composer — a card with an auto-resizing field on top and a toolbar row
|
|
73
|
+
* below it, built directly on the same headless primitives as `ore-textarea` (`createTextField`,
|
|
74
|
+
* `createAutoResize`) rather than composing `ore-textarea` itself. Nesting a fully-styled sibling
|
|
75
|
+
* component and suppressing most of its chrome (as an earlier version of this component did) is
|
|
76
|
+
* a leaky composition — this owns its single `<textarea>` outright, so there's exactly one
|
|
77
|
+
* implementation of the field's appearance to reason about, not two fighting each other.
|
|
78
|
+
*
|
|
79
|
+
* Handles the send gesture (Enter to send, Shift+Enter for a newline, or a Ctrl/Cmd+Enter
|
|
80
|
+
* alternative), IME-safe composition, and clear-and-refocus after sending.
|
|
81
|
+
*
|
|
82
|
+
* @element ore-message-composer
|
|
83
|
+
*
|
|
84
|
+
* @attr {string} value - Current text value
|
|
85
|
+
* @attr {string} placeholder - Placeholder text
|
|
86
|
+
* @attr {string} label - Accessible name for the field (not rendered visually)
|
|
87
|
+
* @attr {string} name - Form field name
|
|
88
|
+
* @attr {string} helper - Helper text shown below the field
|
|
89
|
+
* @attr {string} error - Error message shown below the field
|
|
90
|
+
* @attr {boolean} disabled - Disable the whole composer
|
|
91
|
+
* @attr {boolean} readonly - Read-only mode
|
|
92
|
+
* @attr {boolean} required - Require a non-blank value for `<ore-form>` validation
|
|
93
|
+
* @attr {boolean} loading - Blocks further sends without disabling editing
|
|
94
|
+
* @attr {number} maxlength - Max character count; shows a counter
|
|
95
|
+
* @attr {number} rows - Visible rows before auto-resize grows the field (default 1)
|
|
96
|
+
* @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'
|
|
97
|
+
* @attr {string} variant - Visual variant of the card: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost'
|
|
98
|
+
* @attr {string} size - 'sm' | 'md' | 'lg'
|
|
99
|
+
* @attr {boolean} fullwidth - Stretch to the full width of the container
|
|
100
|
+
* @attr {string} send-icon - Lucide icon name for the default send button (default 'arrow-up')
|
|
101
|
+
* @attr {string} send-label - Accessible label for the send button (default 'Send message')
|
|
102
|
+
* @attr {string} send-shortcut - 'enter' (default) | 'mod+enter'
|
|
103
|
+
* @attr {boolean} clear-on-send - Clear the value and refocus after a non-cancelled send (default true)
|
|
104
|
+
*
|
|
105
|
+
* @fires input - Fired on every keystroke. detail: { value, originalEvent }
|
|
106
|
+
* @fires send - Fired on a send attempt. Cancelable. detail: { value, originalEvent }
|
|
107
|
+
*
|
|
108
|
+
* @slot prefix - Content at the start of the toolbar row (e.g. an attach menu)
|
|
109
|
+
* @slot suffix - Content at the end of the toolbar row, before the send button (e.g. a model picker)
|
|
110
|
+
* @slot send - Replaces the default send button entirely — the only supported way to customize it
|
|
111
|
+
*
|
|
112
|
+
* @cssprop --message-composer-bg - Card background color
|
|
113
|
+
* @cssprop --message-composer-border-color - Card border color
|
|
114
|
+
* @cssprop --message-composer-radius - Card border radius
|
|
115
|
+
* @cssprop --message-composer-padding - Card inner padding
|
|
116
|
+
* @cssprop --message-composer-gap - Gap between the field/toolbar rows and between toolbar items
|
|
117
|
+
* @cssprop --message-composer-placeholder-color - Field placeholder text color
|
|
118
|
+
* @cssprop --message-composer-min-height - Minimum field height (default one line)
|
|
119
|
+
* @cssprop --message-composer-hover-bg - Card background on hover (flat/ghost variants)
|
|
120
|
+
* @cssprop --message-composer-hover-border-color - Card border on hover (flat/bordered variants)
|
|
121
|
+
* @cssprop --message-composer-focus-bg - Card background when focused (flat variant)
|
|
122
|
+
* @cssprop --message-composer-focus-border-color - Card border when focused (flat variant)
|
|
123
|
+
*
|
|
124
|
+
* @part composer - Root card container
|
|
125
|
+
* @part field - The native `<textarea>` element
|
|
126
|
+
* @part helper - Helper text element
|
|
127
|
+
* @part error - Error text element (`role="alert"`)
|
|
128
|
+
* @part toolbar - Toolbar row below the field
|
|
129
|
+
* @part toolbar-start - Toolbar group holding the `prefix` slot
|
|
130
|
+
* @part toolbar-end - Toolbar group holding the `suffix` slot and the send button
|
|
131
|
+
* @part send-button - The default send button (absent when the `send` slot is used)
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```html
|
|
135
|
+
* <ore-message-composer placeholder="Message…" send-shortcut="mod+enter"></ore-message-composer>
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
export declare const MESSAGE_COMPOSER_TAG: "ore-message-composer";
|
|
139
|
+
//# sourceMappingURL=message-composer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-composer.d.ts","sourceRoot":"","sources":["../../../src/inputs/message-composer/message-composer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AAmBxB,OAAO,yBAAyB,CAAC;AACjC,OAAO,kBAAkB,CAAC;AAG1B,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKnD,6CAA6C;AAC7C,MAAM,MAAM,wBAAwB,GAAG;IACrC,uDAAuD;IACvD,KAAK,EAAE;QAAE,aAAa,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C;;;;OAIG;IACH,IAAI,EAAE;QAAE,aAAa,EAAE,aAAa,GAAG,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,uBAAuB,GAAG;IACpC,gFAAgF;IAChF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gEAAgE;IAChE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACxD,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8IAA8I;IAC9I,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,qBAAqB;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;CACpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,eAAO,MAAM,oBAAoB,EAAG,sBAA+B,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=`@layer refine.base{:host{--_cell-size:var(--otp-cell-size,var(--size-12));--_cell-gap:var(--otp-cell-gap,var(--size-2));--_cell-font-size:var(--otp-cell-font-size,var(--text-xl));--_cell-radius:var(--otp-cell-radius,var(--rounded-lg));--_cell-border:var(--otp-cell-border,var(--border));--_cell-border-color:var(--otp-cell-border-color,var(--color-contrast-300));--_cell-bg:var(--otp-cell-bg,var(--color-canvas));--_cell-focus-border:var(--otp-cell-focus-border,var(--_theme-base,var(--color-contrast-700)));gap:var(--size-1);flex-direction:column;display:inline-flex}.otp-group{gap:var(--_cell-gap);align-items:center;display:flex}.cell{box-sizing:border-box;width:var(--_cell-size);height:var(--_cell-size);font-size:var(--_cell-font-size);font-weight:var(--font-semibold);color:var(--color-contrast-900);text-align:center;caret-color:var(--_cell-focus-border);background:var(--_cell-bg);border:var(--_cell-border) solid var(--_cell-border-color);border-radius:var(--_cell-radius);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:0;line-height:1;display:block}.cell::selection{background:var(--_theme-backdrop,var(--color-contrast-100))}.cell:focus{border-color:var(--_cell-focus-border);box-shadow:0 0 0 var(--border-2) color-mix(in oklch, var(--_cell-focus-border) 20%, transparent);outline:none}.cell:disabled{cursor:not-allowed;opacity:.5}.separator{font-size:var(--_cell-font-size);color:var(--color-contrast-400);-webkit-user-select:none;user-select:none}}@layer refine.variants{:host(:not([variant])),:host([variant=solid]){--_cell-bg:var(--otp-cell-bg,var(--color-contrast-50));--_cell-border-color:var(--otp-cell-border-color,var(--color-contrast-300))}:host(:not([variant])) .cell,:host([variant=solid]) .cell{box-shadow:var(--shadow-2xs)}:host([variant=flat]){--_cell-bg:var(--otp-cell-bg,var(--color-contrast-100));--_cell-border-color:var(--otp-cell-border-color,
|
|
1
|
+
var e=`@layer refine.base{:host{--_cell-size:var(--otp-cell-size,var(--size-12));--_cell-gap:var(--otp-cell-gap,var(--size-2));--_cell-font-size:var(--otp-cell-font-size,var(--text-xl));--_cell-radius:var(--otp-cell-radius,var(--rounded-lg));--_cell-border:var(--otp-cell-border,var(--border));--_cell-border-color:var(--otp-cell-border-color,var(--color-contrast-300));--_cell-bg:var(--otp-cell-bg,var(--color-canvas));--_cell-focus-border:var(--otp-cell-focus-border,var(--_theme-base,var(--color-contrast-700)));gap:var(--size-1);flex-direction:column;display:inline-flex}.otp-group{gap:var(--_cell-gap);align-items:center;display:flex}.cell{box-sizing:border-box;width:var(--_cell-size);height:var(--_cell-size);font-size:var(--_cell-font-size);font-weight:var(--font-semibold);color:var(--color-contrast-900);text-align:center;caret-color:var(--_cell-focus-border);background:var(--_cell-bg);border:var(--_cell-border) solid var(--_cell-border-color);border-radius:var(--_cell-radius);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:0;line-height:1;display:block}.cell::selection{background:var(--_theme-backdrop,var(--color-contrast-100))}.cell:focus{border-color:var(--_cell-focus-border);box-shadow:0 0 0 var(--border-2) color-mix(in oklch, var(--_cell-focus-border) 20%, transparent);outline:none}.cell:disabled{cursor:not-allowed;opacity:.5}.separator{font-size:var(--_cell-font-size);color:var(--color-contrast-400);-webkit-user-select:none;user-select:none}}@layer refine.variants{:host(:not([variant])),:host([variant=solid]){--_cell-bg:var(--otp-cell-bg,var(--color-contrast-50));--_cell-border-color:var(--otp-cell-border-color,var(--color-contrast-300))}:host(:not([variant])) .cell,:host([variant=solid]) .cell{box-shadow:var(--shadow-2xs)}:host([variant=flat]){--_cell-bg:var(--otp-cell-bg,var(--color-contrast-100));--_cell-border-color:var(--otp-cell-border-color,color-mix(in oklch, var(--_cell-focus-border) 20%, transparent))}:host([variant=flat]) .cell{box-shadow:var(--inset-shadow-2xs)}:host([variant=flat]) .cell:hover:not(:disabled){background:var(--otp-cell-hover-bg,color-mix(in oklch, var(--_theme-base) 6%, var(--color-contrast-100)));border-color:var(--otp-cell-hover-border-color,color-mix(in oklch, var(--_theme-base) 35%, var(--color-contrast-300)))}:host([variant=flat]) .cell:focus{background:var(--otp-cell-focus-bg,color-mix(in oklch, var(--_theme-base) 8%, var(--color-canvas)));border-color:var(--otp-cell-focus-border-color,color-mix(in oklch, var(--_cell-focus-border) 60%, transparent));box-shadow:var(--_theme-shadow)}:host([variant=bordered]){--_cell-bg:var(--otp-cell-bg,var(--_theme-backdrop,var(--color-contrast-50)));--_cell-border-color:var(--otp-cell-border-color,color-mix(in oklch, var(--_cell-focus-border) 70%, transparent))}:host([variant=bordered]) .cell{color:var(--_theme-base);caret-color:var(--_theme-base)}:host([variant=bordered]) .cell:hover:not(:disabled){border-color:var(--otp-cell-hover-border-color,var(--_cell-focus-border))}:host([variant=outline]){--_cell-bg:var(--otp-cell-bg,transparent)}:host([variant=outline]) .cell{box-shadow:none}:host([variant=ghost]){--_cell-bg:var(--otp-cell-bg,transparent);--_cell-border-color:var(--otp-cell-border-color,transparent)}:host([variant=ghost]) .cell{box-shadow:none}:host([variant=ghost]) .cell:hover:not(:disabled){background:var(--otp-cell-hover-bg,var(--color-contrast-100))}}@layer refine.utilities{:host([size=sm]){--_cell-size:var(--size-9);--_cell-font-size:var(--text-base)}:host([size=lg]){--_cell-size:var(--size-14);--_cell-font-size:var(--text-2xl)}}`;exports.default=e;
|
|
2
2
|
//# sourceMappingURL=otp-input.css.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otp-input.css.cjs","names":[],"sources":["../../../src/inputs/otp-input/otp-input.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_cell-size: var(--otp-cell-size, var(--size-12));\n --_cell-gap: var(--otp-cell-gap, var(--size-2));\n --_cell-font-size: var(--otp-cell-font-size, var(--text-xl));\n --_cell-radius: var(--otp-cell-radius, var(--rounded-lg));\n --_cell-border: var(--otp-cell-border, var(--border));\n --_cell-border-color: var(--otp-cell-border-color, var(--color-contrast-300));\n --_cell-bg: var(--otp-cell-bg, var(--color-canvas));\n --_cell-focus-border: var(--otp-cell-focus-border, var(--_theme-base, var(--color-contrast-700)));\n\n display: inline-flex;\n flex-direction: column;\n gap: var(--size-1);\n }\n\n .otp-group {\n display: flex;\n gap: var(--_cell-gap);\n align-items: center;\n }\n\n .cell {\n box-sizing: border-box;\n display: block;\n width: var(--_cell-size);\n height: var(--_cell-size);\n padding: 0;\n font-size: var(--_cell-font-size);\n font-weight: var(--font-semibold);\n line-height: 1;\n color: var(--color-contrast-900);\n text-align: center;\n caret-color: var(--_cell-focus-border);\n background: var(--_cell-bg);\n border: var(--_cell-border) solid var(--_cell-border-color);\n border-radius: var(--_cell-radius);\n transition:\n border-color var(--transition-fast),\n box-shadow var(--transition-fast);\n }\n\n .cell::selection {\n background: var(--_theme-backdrop, var(--color-contrast-100));\n }\n\n .cell:focus {\n outline: none;\n border-color: var(--_cell-focus-border);\n box-shadow: 0 0 0 var(--border-2) color-mix(in oklch, var(--_cell-focus-border) 20%, transparent);\n }\n\n .cell:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .separator {\n font-size: var(--_cell-font-size);\n color: var(--color-contrast-400);\n user-select: none;\n }\n}\n\n@layer refine.variants {\n /* Solid (default) */\n :host(:not([variant])),\n :host([variant='solid']) {\n --_cell-bg: var(--otp-cell-bg, var(--color-contrast-50));\n --_cell-border-color: var(--otp-cell-border-color, var(--color-contrast-300));\n }\n\n :host(:not([variant])) .cell,\n :host([variant='solid']) .cell {\n box-shadow: var(--shadow-2xs);\n }\n\n /* Flat */\n :host([variant='flat']) {\n --_cell-bg: var(--otp-cell-bg, var(--color-contrast-100));\n --_cell-border-color: var(--otp-cell-border-color,
|
|
1
|
+
{"version":3,"file":"otp-input.css.cjs","names":[],"sources":["../../../src/inputs/otp-input/otp-input.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_cell-size: var(--otp-cell-size, var(--size-12));\n --_cell-gap: var(--otp-cell-gap, var(--size-2));\n --_cell-font-size: var(--otp-cell-font-size, var(--text-xl));\n --_cell-radius: var(--otp-cell-radius, var(--rounded-lg));\n --_cell-border: var(--otp-cell-border, var(--border));\n --_cell-border-color: var(--otp-cell-border-color, var(--color-contrast-300));\n --_cell-bg: var(--otp-cell-bg, var(--color-canvas));\n --_cell-focus-border: var(--otp-cell-focus-border, var(--_theme-base, var(--color-contrast-700)));\n\n display: inline-flex;\n flex-direction: column;\n gap: var(--size-1);\n }\n\n .otp-group {\n display: flex;\n gap: var(--_cell-gap);\n align-items: center;\n }\n\n .cell {\n box-sizing: border-box;\n display: block;\n width: var(--_cell-size);\n height: var(--_cell-size);\n padding: 0;\n font-size: var(--_cell-font-size);\n font-weight: var(--font-semibold);\n line-height: 1;\n color: var(--color-contrast-900);\n text-align: center;\n caret-color: var(--_cell-focus-border);\n background: var(--_cell-bg);\n border: var(--_cell-border) solid var(--_cell-border-color);\n border-radius: var(--_cell-radius);\n transition:\n border-color var(--transition-fast),\n box-shadow var(--transition-fast);\n }\n\n .cell::selection {\n background: var(--_theme-backdrop, var(--color-contrast-100));\n }\n\n .cell:focus {\n outline: none;\n border-color: var(--_cell-focus-border);\n box-shadow: 0 0 0 var(--border-2) color-mix(in oklch, var(--_cell-focus-border) 20%, transparent);\n }\n\n .cell:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .separator {\n font-size: var(--_cell-font-size);\n color: var(--color-contrast-400);\n user-select: none;\n }\n}\n\n@layer refine.variants {\n /* Solid (default) */\n :host(:not([variant])),\n :host([variant='solid']) {\n --_cell-bg: var(--otp-cell-bg, var(--color-contrast-50));\n --_cell-border-color: var(--otp-cell-border-color, var(--color-contrast-300));\n }\n\n :host(:not([variant])) .cell,\n :host([variant='solid']) .cell {\n box-shadow: var(--shadow-2xs);\n }\n\n /* Flat */\n :host([variant='flat']) {\n --_cell-bg: var(--otp-cell-bg, var(--color-contrast-100));\n --_cell-border-color: var(--otp-cell-border-color, color-mix(in oklch, var(--_cell-focus-border) 20%, transparent));\n }\n\n :host([variant='flat']) .cell {\n box-shadow: var(--inset-shadow-2xs);\n }\n\n :host([variant='flat']) .cell:hover:not(:disabled) {\n background: var(--otp-cell-hover-bg, color-mix(in oklch, var(--_theme-base) 6%, var(--color-contrast-100)));\n border-color: var(\n --otp-cell-hover-border-color,\n color-mix(in oklch, var(--_theme-base) 35%, var(--color-contrast-300))\n );\n }\n\n :host([variant='flat']) .cell:focus {\n background: var(--otp-cell-focus-bg, color-mix(in oklch, var(--_theme-base) 8%, var(--color-canvas)));\n border-color: var(--otp-cell-focus-border-color, color-mix(in oklch, var(--_cell-focus-border) 60%, transparent));\n box-shadow: var(--_theme-shadow);\n }\n\n /* Bordered */\n :host([variant='bordered']) {\n --_cell-bg: var(--otp-cell-bg, var(--_theme-backdrop, var(--color-contrast-50)));\n --_cell-border-color: var(--otp-cell-border-color, color-mix(in oklch, var(--_cell-focus-border) 70%, transparent));\n }\n\n :host([variant='bordered']) .cell {\n color: var(--_theme-base);\n caret-color: var(--_theme-base);\n }\n\n :host([variant='bordered']) .cell:hover:not(:disabled) {\n border-color: var(--otp-cell-hover-border-color, var(--_cell-focus-border));\n }\n\n /* Outline */\n :host([variant='outline']) {\n --_cell-bg: var(--otp-cell-bg, transparent);\n }\n\n :host([variant='outline']) .cell {\n box-shadow: none;\n }\n\n /* Ghost */\n :host([variant='ghost']) {\n --_cell-bg: var(--otp-cell-bg, transparent);\n --_cell-border-color: var(--otp-cell-border-color, transparent);\n }\n\n :host([variant='ghost']) .cell {\n box-shadow: none;\n }\n\n :host([variant='ghost']) .cell:hover:not(:disabled) {\n background: var(--otp-cell-hover-bg, var(--color-contrast-100));\n }\n}\n\n@layer refine.utilities {\n :host([size='sm']) {\n --_cell-size: var(--size-9);\n --_cell-font-size: var(--text-base);\n }\n\n :host([size='lg']) {\n --_cell-size: var(--size-14);\n --_cell-font-size: var(--text-2xl);\n }\n}\n"],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/inputs/otp-input/otp-input.css?inline
|
|
2
|
-
var e = "@layer refine.base{:host{--_cell-size:var(--otp-cell-size,var(--size-12));--_cell-gap:var(--otp-cell-gap,var(--size-2));--_cell-font-size:var(--otp-cell-font-size,var(--text-xl));--_cell-radius:var(--otp-cell-radius,var(--rounded-lg));--_cell-border:var(--otp-cell-border,var(--border));--_cell-border-color:var(--otp-cell-border-color,var(--color-contrast-300));--_cell-bg:var(--otp-cell-bg,var(--color-canvas));--_cell-focus-border:var(--otp-cell-focus-border,var(--_theme-base,var(--color-contrast-700)));gap:var(--size-1);flex-direction:column;display:inline-flex}.otp-group{gap:var(--_cell-gap);align-items:center;display:flex}.cell{box-sizing:border-box;width:var(--_cell-size);height:var(--_cell-size);font-size:var(--_cell-font-size);font-weight:var(--font-semibold);color:var(--color-contrast-900);text-align:center;caret-color:var(--_cell-focus-border);background:var(--_cell-bg);border:var(--_cell-border) solid var(--_cell-border-color);border-radius:var(--_cell-radius);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:0;line-height:1;display:block}.cell::selection{background:var(--_theme-backdrop,var(--color-contrast-100))}.cell:focus{border-color:var(--_cell-focus-border);box-shadow:0 0 0 var(--border-2) color-mix(in oklch, var(--_cell-focus-border) 20%, transparent);outline:none}.cell:disabled{cursor:not-allowed;opacity:.5}.separator{font-size:var(--_cell-font-size);color:var(--color-contrast-400);-webkit-user-select:none;user-select:none}}@layer refine.variants{:host(:not([variant])),:host([variant=solid]){--_cell-bg:var(--otp-cell-bg,var(--color-contrast-50));--_cell-border-color:var(--otp-cell-border-color,var(--color-contrast-300))}:host(:not([variant])) .cell,:host([variant=solid]) .cell{box-shadow:var(--shadow-2xs)}:host([variant=flat]){--_cell-bg:var(--otp-cell-bg,var(--color-contrast-100));--_cell-border-color:var(--otp-cell-border-color,
|
|
2
|
+
var e = "@layer refine.base{:host{--_cell-size:var(--otp-cell-size,var(--size-12));--_cell-gap:var(--otp-cell-gap,var(--size-2));--_cell-font-size:var(--otp-cell-font-size,var(--text-xl));--_cell-radius:var(--otp-cell-radius,var(--rounded-lg));--_cell-border:var(--otp-cell-border,var(--border));--_cell-border-color:var(--otp-cell-border-color,var(--color-contrast-300));--_cell-bg:var(--otp-cell-bg,var(--color-canvas));--_cell-focus-border:var(--otp-cell-focus-border,var(--_theme-base,var(--color-contrast-700)));gap:var(--size-1);flex-direction:column;display:inline-flex}.otp-group{gap:var(--_cell-gap);align-items:center;display:flex}.cell{box-sizing:border-box;width:var(--_cell-size);height:var(--_cell-size);font-size:var(--_cell-font-size);font-weight:var(--font-semibold);color:var(--color-contrast-900);text-align:center;caret-color:var(--_cell-focus-border);background:var(--_cell-bg);border:var(--_cell-border) solid var(--_cell-border-color);border-radius:var(--_cell-radius);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:0;line-height:1;display:block}.cell::selection{background:var(--_theme-backdrop,var(--color-contrast-100))}.cell:focus{border-color:var(--_cell-focus-border);box-shadow:0 0 0 var(--border-2) color-mix(in oklch, var(--_cell-focus-border) 20%, transparent);outline:none}.cell:disabled{cursor:not-allowed;opacity:.5}.separator{font-size:var(--_cell-font-size);color:var(--color-contrast-400);-webkit-user-select:none;user-select:none}}@layer refine.variants{:host(:not([variant])),:host([variant=solid]){--_cell-bg:var(--otp-cell-bg,var(--color-contrast-50));--_cell-border-color:var(--otp-cell-border-color,var(--color-contrast-300))}:host(:not([variant])) .cell,:host([variant=solid]) .cell{box-shadow:var(--shadow-2xs)}:host([variant=flat]){--_cell-bg:var(--otp-cell-bg,var(--color-contrast-100));--_cell-border-color:var(--otp-cell-border-color,color-mix(in oklch, var(--_cell-focus-border) 20%, transparent))}:host([variant=flat]) .cell{box-shadow:var(--inset-shadow-2xs)}:host([variant=flat]) .cell:hover:not(:disabled){background:var(--otp-cell-hover-bg,color-mix(in oklch, var(--_theme-base) 6%, var(--color-contrast-100)));border-color:var(--otp-cell-hover-border-color,color-mix(in oklch, var(--_theme-base) 35%, var(--color-contrast-300)))}:host([variant=flat]) .cell:focus{background:var(--otp-cell-focus-bg,color-mix(in oklch, var(--_theme-base) 8%, var(--color-canvas)));border-color:var(--otp-cell-focus-border-color,color-mix(in oklch, var(--_cell-focus-border) 60%, transparent));box-shadow:var(--_theme-shadow)}:host([variant=bordered]){--_cell-bg:var(--otp-cell-bg,var(--_theme-backdrop,var(--color-contrast-50)));--_cell-border-color:var(--otp-cell-border-color,color-mix(in oklch, var(--_cell-focus-border) 70%, transparent))}:host([variant=bordered]) .cell{color:var(--_theme-base);caret-color:var(--_theme-base)}:host([variant=bordered]) .cell:hover:not(:disabled){border-color:var(--otp-cell-hover-border-color,var(--_cell-focus-border))}:host([variant=outline]){--_cell-bg:var(--otp-cell-bg,transparent)}:host([variant=outline]) .cell{box-shadow:none}:host([variant=ghost]){--_cell-bg:var(--otp-cell-bg,transparent);--_cell-border-color:var(--otp-cell-border-color,transparent)}:host([variant=ghost]) .cell{box-shadow:none}:host([variant=ghost]) .cell:hover:not(:disabled){background:var(--otp-cell-hover-bg,var(--color-contrast-100))}}@layer refine.utilities{:host([size=sm]){--_cell-size:var(--size-9);--_cell-font-size:var(--text-base)}:host([size=lg]){--_cell-size:var(--size-14);--_cell-font-size:var(--text-2xl)}}";
|
|
3
3
|
//#endregion
|
|
4
4
|
export { e as default };
|
|
5
5
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otp-input.css.js","names":[],"sources":["../../../src/inputs/otp-input/otp-input.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_cell-size: var(--otp-cell-size, var(--size-12));\n --_cell-gap: var(--otp-cell-gap, var(--size-2));\n --_cell-font-size: var(--otp-cell-font-size, var(--text-xl));\n --_cell-radius: var(--otp-cell-radius, var(--rounded-lg));\n --_cell-border: var(--otp-cell-border, var(--border));\n --_cell-border-color: var(--otp-cell-border-color, var(--color-contrast-300));\n --_cell-bg: var(--otp-cell-bg, var(--color-canvas));\n --_cell-focus-border: var(--otp-cell-focus-border, var(--_theme-base, var(--color-contrast-700)));\n\n display: inline-flex;\n flex-direction: column;\n gap: var(--size-1);\n }\n\n .otp-group {\n display: flex;\n gap: var(--_cell-gap);\n align-items: center;\n }\n\n .cell {\n box-sizing: border-box;\n display: block;\n width: var(--_cell-size);\n height: var(--_cell-size);\n padding: 0;\n font-size: var(--_cell-font-size);\n font-weight: var(--font-semibold);\n line-height: 1;\n color: var(--color-contrast-900);\n text-align: center;\n caret-color: var(--_cell-focus-border);\n background: var(--_cell-bg);\n border: var(--_cell-border) solid var(--_cell-border-color);\n border-radius: var(--_cell-radius);\n transition:\n border-color var(--transition-fast),\n box-shadow var(--transition-fast);\n }\n\n .cell::selection {\n background: var(--_theme-backdrop, var(--color-contrast-100));\n }\n\n .cell:focus {\n outline: none;\n border-color: var(--_cell-focus-border);\n box-shadow: 0 0 0 var(--border-2) color-mix(in oklch, var(--_cell-focus-border) 20%, transparent);\n }\n\n .cell:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .separator {\n font-size: var(--_cell-font-size);\n color: var(--color-contrast-400);\n user-select: none;\n }\n}\n\n@layer refine.variants {\n /* Solid (default) */\n :host(:not([variant])),\n :host([variant='solid']) {\n --_cell-bg: var(--otp-cell-bg, var(--color-contrast-50));\n --_cell-border-color: var(--otp-cell-border-color, var(--color-contrast-300));\n }\n\n :host(:not([variant])) .cell,\n :host([variant='solid']) .cell {\n box-shadow: var(--shadow-2xs);\n }\n\n /* Flat */\n :host([variant='flat']) {\n --_cell-bg: var(--otp-cell-bg, var(--color-contrast-100));\n --_cell-border-color: var(--otp-cell-border-color,
|
|
1
|
+
{"version":3,"file":"otp-input.css.js","names":[],"sources":["../../../src/inputs/otp-input/otp-input.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_cell-size: var(--otp-cell-size, var(--size-12));\n --_cell-gap: var(--otp-cell-gap, var(--size-2));\n --_cell-font-size: var(--otp-cell-font-size, var(--text-xl));\n --_cell-radius: var(--otp-cell-radius, var(--rounded-lg));\n --_cell-border: var(--otp-cell-border, var(--border));\n --_cell-border-color: var(--otp-cell-border-color, var(--color-contrast-300));\n --_cell-bg: var(--otp-cell-bg, var(--color-canvas));\n --_cell-focus-border: var(--otp-cell-focus-border, var(--_theme-base, var(--color-contrast-700)));\n\n display: inline-flex;\n flex-direction: column;\n gap: var(--size-1);\n }\n\n .otp-group {\n display: flex;\n gap: var(--_cell-gap);\n align-items: center;\n }\n\n .cell {\n box-sizing: border-box;\n display: block;\n width: var(--_cell-size);\n height: var(--_cell-size);\n padding: 0;\n font-size: var(--_cell-font-size);\n font-weight: var(--font-semibold);\n line-height: 1;\n color: var(--color-contrast-900);\n text-align: center;\n caret-color: var(--_cell-focus-border);\n background: var(--_cell-bg);\n border: var(--_cell-border) solid var(--_cell-border-color);\n border-radius: var(--_cell-radius);\n transition:\n border-color var(--transition-fast),\n box-shadow var(--transition-fast);\n }\n\n .cell::selection {\n background: var(--_theme-backdrop, var(--color-contrast-100));\n }\n\n .cell:focus {\n outline: none;\n border-color: var(--_cell-focus-border);\n box-shadow: 0 0 0 var(--border-2) color-mix(in oklch, var(--_cell-focus-border) 20%, transparent);\n }\n\n .cell:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .separator {\n font-size: var(--_cell-font-size);\n color: var(--color-contrast-400);\n user-select: none;\n }\n}\n\n@layer refine.variants {\n /* Solid (default) */\n :host(:not([variant])),\n :host([variant='solid']) {\n --_cell-bg: var(--otp-cell-bg, var(--color-contrast-50));\n --_cell-border-color: var(--otp-cell-border-color, var(--color-contrast-300));\n }\n\n :host(:not([variant])) .cell,\n :host([variant='solid']) .cell {\n box-shadow: var(--shadow-2xs);\n }\n\n /* Flat */\n :host([variant='flat']) {\n --_cell-bg: var(--otp-cell-bg, var(--color-contrast-100));\n --_cell-border-color: var(--otp-cell-border-color, color-mix(in oklch, var(--_cell-focus-border) 20%, transparent));\n }\n\n :host([variant='flat']) .cell {\n box-shadow: var(--inset-shadow-2xs);\n }\n\n :host([variant='flat']) .cell:hover:not(:disabled) {\n background: var(--otp-cell-hover-bg, color-mix(in oklch, var(--_theme-base) 6%, var(--color-contrast-100)));\n border-color: var(\n --otp-cell-hover-border-color,\n color-mix(in oklch, var(--_theme-base) 35%, var(--color-contrast-300))\n );\n }\n\n :host([variant='flat']) .cell:focus {\n background: var(--otp-cell-focus-bg, color-mix(in oklch, var(--_theme-base) 8%, var(--color-canvas)));\n border-color: var(--otp-cell-focus-border-color, color-mix(in oklch, var(--_cell-focus-border) 60%, transparent));\n box-shadow: var(--_theme-shadow);\n }\n\n /* Bordered */\n :host([variant='bordered']) {\n --_cell-bg: var(--otp-cell-bg, var(--_theme-backdrop, var(--color-contrast-50)));\n --_cell-border-color: var(--otp-cell-border-color, color-mix(in oklch, var(--_cell-focus-border) 70%, transparent));\n }\n\n :host([variant='bordered']) .cell {\n color: var(--_theme-base);\n caret-color: var(--_theme-base);\n }\n\n :host([variant='bordered']) .cell:hover:not(:disabled) {\n border-color: var(--otp-cell-hover-border-color, var(--_cell-focus-border));\n }\n\n /* Outline */\n :host([variant='outline']) {\n --_cell-bg: var(--otp-cell-bg, transparent);\n }\n\n :host([variant='outline']) .cell {\n box-shadow: none;\n }\n\n /* Ghost */\n :host([variant='ghost']) {\n --_cell-bg: var(--otp-cell-bg, transparent);\n --_cell-border-color: var(--otp-cell-border-color, transparent);\n }\n\n :host([variant='ghost']) .cell {\n box-shadow: none;\n }\n\n :host([variant='ghost']) .cell:hover:not(:disabled) {\n background: var(--otp-cell-hover-bg, var(--color-contrast-100));\n }\n}\n\n@layer refine.utilities {\n :host([size='sm']) {\n --_cell-size: var(--size-9);\n --_cell-font-size: var(--text-base);\n }\n\n :host([size='lg']) {\n --_cell-size: var(--size-14);\n --_cell-font-size: var(--text-2xl);\n }\n}\n"],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=`@layer refine.base{:host{--_size:var(--radio-size,var(--size-5));--_font-size:var(--radio-font-size,var(--text-sm));--_bg:var(--radio-bg,var(--color-contrast-200));--_border:var(--radio-border-color,var(--color-contrast-300));gap:var(--_gap,var(--size-2));min-height:var(--_touch-target);cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;display:inline-flex}.radio-wrapper{width:var(--_size);height:var(--_size);flex-shrink:0;display:block;position:relative}.circle{box-sizing:border-box;width:var(--_size);height:var(--_size);background:var(--_bg);border:var(--border-2) solid var(--_border);transition:background var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal);border-radius:50%;position:relative}:host(:focus-visible) .circle{box-shadow:var(--_focus-shadow)}.dot{background:var(--_dot-color);opacity:0;width:50%;height:50%;transition:opacity var(--transition-spring), transform var(--transition-spring);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.5)}.label{font-size:var(--_font-size);color:var(--color-contrast)}.helper-text[hidden]{display:none}.helper-text{width:100%;font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-contrast-500)}.helper-text:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:calc(var(--_size) + var(--size-2))}.helper-text:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(var(--_size) + var(--size-2))}.helper-text[role=alert]{color:var(--color-error)}}@layer refine.overrides{:host{--_active-bg:var(--radio-checked-bg,var(--_theme-base));--_dot-color:var(--radio-color,var(--_theme-contrast));--_focus-shadow:var(--_theme-shadow)}:host([checked]) .circle{background:var(--_active-bg);border-color:var(--_active-bg)}:host([checked]) .dot{opacity:1;transform:translate(-50%,-50%)scale(1)}}`;exports.default=e;
|
|
1
|
+
var e=`@layer refine.base{:host{--_size:var(--radio-size,var(--size-5));--_font-size:var(--radio-font-size,var(--text-sm));--_bg:var(--radio-bg,var(--color-contrast-200));--_border:var(--radio-border-color,var(--color-contrast-300));gap:var(--_gap,var(--size-2));min-height:var(--_touch-target);cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;display:inline-flex}.radio-wrapper{width:var(--_size);height:var(--_size);flex-shrink:0;display:block;position:relative}.circle{box-sizing:border-box;width:var(--_size);height:var(--_size);background:var(--_bg);border:var(--border-2) solid var(--_border);transition:background var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal);border-radius:50%;position:relative}:host(:focus-visible) .circle{box-shadow:var(--_focus-shadow)}.dot{background:var(--_dot-color);opacity:0;width:50%;height:50%;transition:opacity var(--transition-spring), transform var(--transition-spring);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.5)}.label{font-size:var(--_font-size);color:var(--color-contrast)}.helper-text[hidden]{display:none}.helper-text{width:100%;font-size:var(--text-xs);line-height:var(--leading-tight);color:color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas))}.helper-text:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:calc(var(--_size) + var(--size-2))}.helper-text:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(var(--_size) + var(--size-2))}.helper-text[role=alert]{color:var(--color-error)}}@layer refine.overrides{:host{--_active-bg:var(--radio-checked-bg,var(--_theme-base));--_dot-color:var(--radio-color,var(--_theme-contrast));--_focus-shadow:var(--_theme-shadow)}:host([checked]) .circle{background:var(--_active-bg);border-color:var(--_active-bg)}:host([checked]) .dot{opacity:1;transform:translate(-50%,-50%)scale(1)}}`;exports.default=e;
|
|
2
2
|
//# sourceMappingURL=radio.css.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio.css.cjs","names":[],"sources":["../../../src/inputs/radio/radio.css?inline"],"sourcesContent":["@layer refine.base {\n /* ========================================\n Base Styles & Defaults\n ======================================== */\n\n :host {\n --_size: var(--radio-size, var(--size-5));\n --_font-size: var(--radio-font-size, var(--text-sm));\n --_bg: var(--radio-bg, var(--color-contrast-200));\n --_border: var(--radio-border-color, var(--color-contrast-300));\n\n display: inline-flex;\n flex-wrap: wrap;\n gap: var(--_gap, var(--size-2));\n align-items: center;\n min-height: var(--_touch-target);\n cursor: pointer;\n user-select: none;\n }\n\n .radio-wrapper {\n position: relative;\n display: block;\n flex-shrink: 0;\n width: var(--_size);\n height: var(--_size);\n }\n\n .circle {\n position: relative;\n box-sizing: border-box;\n width: var(--_size);\n height: var(--_size);\n background: var(--_bg);\n border: var(--border-2) solid var(--_border);\n border-radius: 50%;\n transition:\n background var(--transition-normal),\n border-color var(--transition-normal),\n box-shadow var(--transition-normal);\n }\n\n /* ========================================\n Focus State\n ======================================== */\n\n :host(:focus-visible) .circle {\n box-shadow: var(--_focus-shadow);\n }\n\n /* ========================================\n Inner Dot\n ======================================== */\n\n .dot {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 50%;\n height: 50%;\n background: var(--_dot-color);\n border-radius: 50%;\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.5);\n transition:\n opacity var(--transition-spring),\n transform var(--transition-spring);\n }\n\n /* ========================================\n Label\n ======================================== */\n\n .label {\n font-size: var(--_font-size);\n color: var(--color-contrast);\n }\n\n /* ========================================\n Helper / Error Text\n ======================================== */\n\n .helper-text[hidden] {\n display: none;\n }\n\n .helper-text {\n width: 100%;\n padding-inline-start: calc(var(--_size) + var(--size-2));\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: var(--color-contrast-500);\n }\n\n .helper-text[role='alert'] {\n color: var(--color-error);\n }\n}\n\n@layer refine.overrides {\n /* Map theme variables to radio-specific variables */\n :host {\n --_active-bg: var(--radio-checked-bg, var(--_theme-base));\n --_dot-color: var(--radio-color, var(--_theme-contrast));\n --_focus-shadow: var(--_theme-shadow);\n }\n\n /* ========================================\n Checked State\n ======================================== */\n\n :host([checked]) .circle {\n background: var(--_active-bg);\n border-color: var(--_active-bg);\n }\n\n :host([checked]) .dot {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"radio.css.cjs","names":[],"sources":["../../../src/inputs/radio/radio.css?inline"],"sourcesContent":["@layer refine.base {\n /* ========================================\n Base Styles & Defaults\n ======================================== */\n\n :host {\n --_size: var(--radio-size, var(--size-5));\n --_font-size: var(--radio-font-size, var(--text-sm));\n --_bg: var(--radio-bg, var(--color-contrast-200));\n --_border: var(--radio-border-color, var(--color-contrast-300));\n\n display: inline-flex;\n flex-wrap: wrap;\n gap: var(--_gap, var(--size-2));\n align-items: center;\n min-height: var(--_touch-target);\n cursor: pointer;\n user-select: none;\n }\n\n .radio-wrapper {\n position: relative;\n display: block;\n flex-shrink: 0;\n width: var(--_size);\n height: var(--_size);\n }\n\n .circle {\n position: relative;\n box-sizing: border-box;\n width: var(--_size);\n height: var(--_size);\n background: var(--_bg);\n border: var(--border-2) solid var(--_border);\n border-radius: 50%;\n transition:\n background var(--transition-normal),\n border-color var(--transition-normal),\n box-shadow var(--transition-normal);\n }\n\n /* ========================================\n Focus State\n ======================================== */\n\n :host(:focus-visible) .circle {\n box-shadow: var(--_focus-shadow);\n }\n\n /* ========================================\n Inner Dot\n ======================================== */\n\n .dot {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 50%;\n height: 50%;\n background: var(--_dot-color);\n border-radius: 50%;\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.5);\n transition:\n opacity var(--transition-spring),\n transform var(--transition-spring);\n }\n\n /* ========================================\n Label\n ======================================== */\n\n .label {\n font-size: var(--_font-size);\n color: var(--color-contrast);\n }\n\n /* ========================================\n Helper / Error Text\n ======================================== */\n\n .helper-text[hidden] {\n display: none;\n }\n\n .helper-text {\n width: 100%;\n padding-inline-start: calc(var(--_size) + var(--size-2));\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas));\n }\n\n .helper-text[role='alert'] {\n color: var(--color-error);\n }\n}\n\n@layer refine.overrides {\n /* Map theme variables to radio-specific variables */\n :host {\n --_active-bg: var(--radio-checked-bg, var(--_theme-base));\n --_dot-color: var(--radio-color, var(--_theme-contrast));\n --_focus-shadow: var(--_theme-shadow);\n }\n\n /* ========================================\n Checked State\n ======================================== */\n\n :host([checked]) .circle {\n background: var(--_active-bg);\n border-color: var(--_active-bg);\n }\n\n :host([checked]) .dot {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n"],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/inputs/radio/radio.css?inline
|
|
2
|
-
var e = "@layer refine.base{:host{--_size:var(--radio-size,var(--size-5));--_font-size:var(--radio-font-size,var(--text-sm));--_bg:var(--radio-bg,var(--color-contrast-200));--_border:var(--radio-border-color,var(--color-contrast-300));gap:var(--_gap,var(--size-2));min-height:var(--_touch-target);cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;display:inline-flex}.radio-wrapper{width:var(--_size);height:var(--_size);flex-shrink:0;display:block;position:relative}.circle{box-sizing:border-box;width:var(--_size);height:var(--_size);background:var(--_bg);border:var(--border-2) solid var(--_border);transition:background var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal);border-radius:50%;position:relative}:host(:focus-visible) .circle{box-shadow:var(--_focus-shadow)}.dot{background:var(--_dot-color);opacity:0;width:50%;height:50%;transition:opacity var(--transition-spring), transform var(--transition-spring);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.5)}.label{font-size:var(--_font-size);color:var(--color-contrast)}.helper-text[hidden]{display:none}.helper-text{width:100%;font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-contrast-500)}.helper-text:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:calc(var(--_size) + var(--size-2))}.helper-text:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(var(--_size) + var(--size-2))}.helper-text[role=alert]{color:var(--color-error)}}@layer refine.overrides{:host{--_active-bg:var(--radio-checked-bg,var(--_theme-base));--_dot-color:var(--radio-color,var(--_theme-contrast));--_focus-shadow:var(--_theme-shadow)}:host([checked]) .circle{background:var(--_active-bg);border-color:var(--_active-bg)}:host([checked]) .dot{opacity:1;transform:translate(-50%,-50%)scale(1)}}";
|
|
2
|
+
var e = "@layer refine.base{:host{--_size:var(--radio-size,var(--size-5));--_font-size:var(--radio-font-size,var(--text-sm));--_bg:var(--radio-bg,var(--color-contrast-200));--_border:var(--radio-border-color,var(--color-contrast-300));gap:var(--_gap,var(--size-2));min-height:var(--_touch-target);cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;display:inline-flex}.radio-wrapper{width:var(--_size);height:var(--_size);flex-shrink:0;display:block;position:relative}.circle{box-sizing:border-box;width:var(--_size);height:var(--_size);background:var(--_bg);border:var(--border-2) solid var(--_border);transition:background var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal);border-radius:50%;position:relative}:host(:focus-visible) .circle{box-shadow:var(--_focus-shadow)}.dot{background:var(--_dot-color);opacity:0;width:50%;height:50%;transition:opacity var(--transition-spring), transform var(--transition-spring);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.5)}.label{font-size:var(--_font-size);color:var(--color-contrast)}.helper-text[hidden]{display:none}.helper-text{width:100%;font-size:var(--text-xs);line-height:var(--leading-tight);color:color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas))}.helper-text:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:calc(var(--_size) + var(--size-2))}.helper-text:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:calc(var(--_size) + var(--size-2))}.helper-text[role=alert]{color:var(--color-error)}}@layer refine.overrides{:host{--_active-bg:var(--radio-checked-bg,var(--_theme-base));--_dot-color:var(--radio-color,var(--_theme-contrast));--_focus-shadow:var(--_theme-shadow)}:host([checked]) .circle{background:var(--_active-bg);border-color:var(--_active-bg)}:host([checked]) .dot{opacity:1;transform:translate(-50%,-50%)scale(1)}}";
|
|
3
3
|
//#endregion
|
|
4
4
|
export { e as default };
|
|
5
5
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio.css.js","names":[],"sources":["../../../src/inputs/radio/radio.css?inline"],"sourcesContent":["@layer refine.base {\n /* ========================================\n Base Styles & Defaults\n ======================================== */\n\n :host {\n --_size: var(--radio-size, var(--size-5));\n --_font-size: var(--radio-font-size, var(--text-sm));\n --_bg: var(--radio-bg, var(--color-contrast-200));\n --_border: var(--radio-border-color, var(--color-contrast-300));\n\n display: inline-flex;\n flex-wrap: wrap;\n gap: var(--_gap, var(--size-2));\n align-items: center;\n min-height: var(--_touch-target);\n cursor: pointer;\n user-select: none;\n }\n\n .radio-wrapper {\n position: relative;\n display: block;\n flex-shrink: 0;\n width: var(--_size);\n height: var(--_size);\n }\n\n .circle {\n position: relative;\n box-sizing: border-box;\n width: var(--_size);\n height: var(--_size);\n background: var(--_bg);\n border: var(--border-2) solid var(--_border);\n border-radius: 50%;\n transition:\n background var(--transition-normal),\n border-color var(--transition-normal),\n box-shadow var(--transition-normal);\n }\n\n /* ========================================\n Focus State\n ======================================== */\n\n :host(:focus-visible) .circle {\n box-shadow: var(--_focus-shadow);\n }\n\n /* ========================================\n Inner Dot\n ======================================== */\n\n .dot {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 50%;\n height: 50%;\n background: var(--_dot-color);\n border-radius: 50%;\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.5);\n transition:\n opacity var(--transition-spring),\n transform var(--transition-spring);\n }\n\n /* ========================================\n Label\n ======================================== */\n\n .label {\n font-size: var(--_font-size);\n color: var(--color-contrast);\n }\n\n /* ========================================\n Helper / Error Text\n ======================================== */\n\n .helper-text[hidden] {\n display: none;\n }\n\n .helper-text {\n width: 100%;\n padding-inline-start: calc(var(--_size) + var(--size-2));\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: var(--color-contrast-500);\n }\n\n .helper-text[role='alert'] {\n color: var(--color-error);\n }\n}\n\n@layer refine.overrides {\n /* Map theme variables to radio-specific variables */\n :host {\n --_active-bg: var(--radio-checked-bg, var(--_theme-base));\n --_dot-color: var(--radio-color, var(--_theme-contrast));\n --_focus-shadow: var(--_theme-shadow);\n }\n\n /* ========================================\n Checked State\n ======================================== */\n\n :host([checked]) .circle {\n background: var(--_active-bg);\n border-color: var(--_active-bg);\n }\n\n :host([checked]) .dot {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"radio.css.js","names":[],"sources":["../../../src/inputs/radio/radio.css?inline"],"sourcesContent":["@layer refine.base {\n /* ========================================\n Base Styles & Defaults\n ======================================== */\n\n :host {\n --_size: var(--radio-size, var(--size-5));\n --_font-size: var(--radio-font-size, var(--text-sm));\n --_bg: var(--radio-bg, var(--color-contrast-200));\n --_border: var(--radio-border-color, var(--color-contrast-300));\n\n display: inline-flex;\n flex-wrap: wrap;\n gap: var(--_gap, var(--size-2));\n align-items: center;\n min-height: var(--_touch-target);\n cursor: pointer;\n user-select: none;\n }\n\n .radio-wrapper {\n position: relative;\n display: block;\n flex-shrink: 0;\n width: var(--_size);\n height: var(--_size);\n }\n\n .circle {\n position: relative;\n box-sizing: border-box;\n width: var(--_size);\n height: var(--_size);\n background: var(--_bg);\n border: var(--border-2) solid var(--_border);\n border-radius: 50%;\n transition:\n background var(--transition-normal),\n border-color var(--transition-normal),\n box-shadow var(--transition-normal);\n }\n\n /* ========================================\n Focus State\n ======================================== */\n\n :host(:focus-visible) .circle {\n box-shadow: var(--_focus-shadow);\n }\n\n /* ========================================\n Inner Dot\n ======================================== */\n\n .dot {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 50%;\n height: 50%;\n background: var(--_dot-color);\n border-radius: 50%;\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.5);\n transition:\n opacity var(--transition-spring),\n transform var(--transition-spring);\n }\n\n /* ========================================\n Label\n ======================================== */\n\n .label {\n font-size: var(--_font-size);\n color: var(--color-contrast);\n }\n\n /* ========================================\n Helper / Error Text\n ======================================== */\n\n .helper-text[hidden] {\n display: none;\n }\n\n .helper-text {\n width: 100%;\n padding-inline-start: calc(var(--_size) + var(--size-2));\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas));\n }\n\n .helper-text[role='alert'] {\n color: var(--color-error);\n }\n}\n\n@layer refine.overrides {\n /* Map theme variables to radio-specific variables */\n :host {\n --_active-bg: var(--radio-checked-bg, var(--_theme-base));\n --_dot-color: var(--radio-color, var(--_theme-contrast));\n --_focus-shadow: var(--_theme-shadow);\n }\n\n /* ========================================\n Checked State\n ======================================== */\n\n :host([checked]) .circle {\n background: var(--_active-bg);\n border-color: var(--_active-bg);\n }\n\n :host([checked]) .dot {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n"],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=`@layer refine.base{:host{display:block}fieldset{border:none;min-width:0;margin:0;padding:0}legend{margin-bottom:var(--size-2);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-contrast-600);padding:0}legend[hidden]{display:none}.radio-group-items{flex-direction:var(--radio-group-direction,column);gap:var(--radio-group-gap,var(--size-2));display:flex}.helper-text[hidden]{display:none}.helper-text{margin-top:var(--size-1-5);font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-contrast-500);padding-left:2px;padding-right:2px}.error-text{margin-top:var(--size-1-5);font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-error);padding-left:2px;padding-right:2px}}@layer refine.variants{:host([orientation=horizontal]) .radio-group-items{--radio-group-direction:row;flex-wrap:wrap}}`;exports.default=e;
|
|
1
|
+
var e=`@layer refine.base{:host{display:block}fieldset{border:none;min-width:0;margin:0;padding:0}legend{margin-bottom:var(--size-2);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-contrast-600);padding:0}legend[hidden]{display:none}.radio-group-items{flex-direction:var(--radio-group-direction,column);gap:var(--radio-group-gap,var(--size-2));display:flex}.helper-text[hidden]{display:none}.helper-text{margin-top:var(--size-1-5);font-size:var(--text-xs);line-height:var(--leading-tight);color:color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas));padding-left:2px;padding-right:2px}.error-text{margin-top:var(--size-1-5);font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-error);padding-left:2px;padding-right:2px}}@layer refine.variants{:host([orientation=horizontal]) .radio-group-items{--radio-group-direction:row;flex-wrap:wrap}}`;exports.default=e;
|
|
2
2
|
//# sourceMappingURL=radio-group.css.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-group.css.cjs","names":[],"sources":["../../../src/inputs/radio-group/radio-group.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n display: block;\n }\n\n fieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: none;\n }\n\n legend {\n padding: 0;\n margin-bottom: var(--size-2);\n font-size: var(--text-sm);\n font-weight: var(--font-medium);\n color: var(--color-contrast-600);\n }\n\n legend[hidden] {\n display: none;\n }\n\n .radio-group-items {\n display: flex;\n flex-direction: var(--radio-group-direction, column);\n gap: var(--radio-group-gap, var(--size-2));\n }\n\n .helper-text[hidden] {\n display: none;\n }\n\n .helper-text {\n padding-inline: 2px;\n margin-top: var(--size-1-5);\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: var(--color-contrast-500);\n }\n\n .error-text {\n padding-inline: 2px;\n margin-top: var(--size-1-5);\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: var(--color-error);\n }\n}\n\n@layer refine.variants {\n :host([orientation='horizontal']) .radio-group-items {\n --radio-group-direction: row;\n\n flex-wrap: wrap;\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"radio-group.css.cjs","names":[],"sources":["../../../src/inputs/radio-group/radio-group.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n display: block;\n }\n\n fieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: none;\n }\n\n legend {\n padding: 0;\n margin-bottom: var(--size-2);\n font-size: var(--text-sm);\n font-weight: var(--font-medium);\n color: var(--color-contrast-600);\n }\n\n legend[hidden] {\n display: none;\n }\n\n .radio-group-items {\n display: flex;\n flex-direction: var(--radio-group-direction, column);\n gap: var(--radio-group-gap, var(--size-2));\n }\n\n .helper-text[hidden] {\n display: none;\n }\n\n .helper-text {\n padding-inline: 2px;\n margin-top: var(--size-1-5);\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas));\n }\n\n .error-text {\n padding-inline: 2px;\n margin-top: var(--size-1-5);\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: var(--color-error);\n }\n}\n\n@layer refine.variants {\n :host([orientation='horizontal']) .radio-group-items {\n --radio-group-direction: row;\n\n flex-wrap: wrap;\n }\n}\n"],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/inputs/radio-group/radio-group.css?inline
|
|
2
|
-
var e = "@layer refine.base{:host{display:block}fieldset{border:none;min-width:0;margin:0;padding:0}legend{margin-bottom:var(--size-2);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-contrast-600);padding:0}legend[hidden]{display:none}.radio-group-items{flex-direction:var(--radio-group-direction,column);gap:var(--radio-group-gap,var(--size-2));display:flex}.helper-text[hidden]{display:none}.helper-text{margin-top:var(--size-1-5);font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-contrast-500);padding-left:2px;padding-right:2px}.error-text{margin-top:var(--size-1-5);font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-error);padding-left:2px;padding-right:2px}}@layer refine.variants{:host([orientation=horizontal]) .radio-group-items{--radio-group-direction:row;flex-wrap:wrap}}";
|
|
2
|
+
var e = "@layer refine.base{:host{display:block}fieldset{border:none;min-width:0;margin:0;padding:0}legend{margin-bottom:var(--size-2);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-contrast-600);padding:0}legend[hidden]{display:none}.radio-group-items{flex-direction:var(--radio-group-direction,column);gap:var(--radio-group-gap,var(--size-2));display:flex}.helper-text[hidden]{display:none}.helper-text{margin-top:var(--size-1-5);font-size:var(--text-xs);line-height:var(--leading-tight);color:color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas));padding-left:2px;padding-right:2px}.error-text{margin-top:var(--size-1-5);font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-error);padding-left:2px;padding-right:2px}}@layer refine.variants{:host([orientation=horizontal]) .radio-group-items{--radio-group-direction:row;flex-wrap:wrap}}";
|
|
3
3
|
//#endregion
|
|
4
4
|
export { e as default };
|
|
5
5
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-group.css.js","names":[],"sources":["../../../src/inputs/radio-group/radio-group.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n display: block;\n }\n\n fieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: none;\n }\n\n legend {\n padding: 0;\n margin-bottom: var(--size-2);\n font-size: var(--text-sm);\n font-weight: var(--font-medium);\n color: var(--color-contrast-600);\n }\n\n legend[hidden] {\n display: none;\n }\n\n .radio-group-items {\n display: flex;\n flex-direction: var(--radio-group-direction, column);\n gap: var(--radio-group-gap, var(--size-2));\n }\n\n .helper-text[hidden] {\n display: none;\n }\n\n .helper-text {\n padding-inline: 2px;\n margin-top: var(--size-1-5);\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: var(--color-contrast-500);\n }\n\n .error-text {\n padding-inline: 2px;\n margin-top: var(--size-1-5);\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: var(--color-error);\n }\n}\n\n@layer refine.variants {\n :host([orientation='horizontal']) .radio-group-items {\n --radio-group-direction: row;\n\n flex-wrap: wrap;\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"radio-group.css.js","names":[],"sources":["../../../src/inputs/radio-group/radio-group.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n display: block;\n }\n\n fieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: none;\n }\n\n legend {\n padding: 0;\n margin-bottom: var(--size-2);\n font-size: var(--text-sm);\n font-weight: var(--font-medium);\n color: var(--color-contrast-600);\n }\n\n legend[hidden] {\n display: none;\n }\n\n .radio-group-items {\n display: flex;\n flex-direction: var(--radio-group-direction, column);\n gap: var(--radio-group-gap, var(--size-2));\n }\n\n .helper-text[hidden] {\n display: none;\n }\n\n .helper-text {\n padding-inline: 2px;\n margin-top: var(--size-1-5);\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas));\n }\n\n .error-text {\n padding-inline: 2px;\n margin-top: var(--size-1-5);\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: var(--color-error);\n }\n}\n\n@layer refine.variants {\n :host([orientation='horizontal']) .radio-group-items {\n --radio-group-direction: row;\n\n flex-wrap: wrap;\n }\n}\n"],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=`@layer refine.base{:host{--_star-size:var(--rating-star-size,var(--size-7));--_color-empty:var(--rating-color-empty,var(--color-contrast-200));--_color-filled:var(--rating-color-filled,var(--_theme-base,var(--color-warning)));--_gap:var(--rating-gap,var(--size-0_5));flex-wrap:wrap;align-items:center;display:inline-flex}.stars{gap:var(--_gap);align-items:center;display:flex;position:relative}.sparkle-layer{pointer-events:none;position:absolute;inset:0;overflow:visible}.sparkle{pointer-events:none;background:var(--_color-filled);animation:var(--_motion-animation,sparkle-fly var(--_dur,.5s) var(--ease-out) forwards);border-radius:50%;position:absolute}@keyframes sparkle-fly{0%{opacity:.9;transform:translate(-50%, -50%) rotate(var(--_angle)) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%, -50%) rotate(var(--_angle)) translateY(calc(-1 * var(--_dist))) scale(0)}}.star-btn{all:unset;width:var(--_star-size);min-width:var(--_touch-target);height:var(--_star-size);min-height:var(--_touch-target);color:var(--_color-empty);cursor:pointer;border-radius:var(--rounded-sm);transition:color var(--transition-fast), transform .12s var(--ease-spring);justify-content:center;align-items:center;display:inline-flex}.star-btn[data-filled]{color:var(--_color-filled)}:host([solid]) .star-btn ore-icon::part(svg){fill:none}:host([solid]) .star-btn[data-filled] ore-icon::part(svg){fill:currentColor}.star-btn:hover:not([disabled]),.star-btn:focus-visible:not([disabled]){transform:scale(1.08)}.star-btn:focus-visible{outline:var(--border-2) solid var(--_color-filled);outline-offset:var(--border-2)}.star-btn[disabled]{cursor:default}:host([readonly]) .star-btn,:host([disabled]) .star-btn{pointer-events:none}:host([disabled]){opacity:.5}}@layer refine.utilities{:host([size=sm]){--_star-size:var(--size-5)}:host([size=lg]){--_star-size:var(--size-9)}@media (forced-colors:active){.star-btn{color:buttontext}.star-btn[data-filled]{color:highlight;forced-color-adjust:none}.star-btn:focus-visible{box-shadow:none;outline:2px solid highlight}}.helper-text[hidden]{display:none}.helper-text{width:100%;font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-contrast-500);margin-top:var(--size-1)}.helper-text[role=alert]{color:var(--color-error)}}@media (prefers-reduced-motion:reduce){.sparkle{display:none}}`;exports.default=e;
|
|
1
|
+
var e=`@layer refine.base{:host{--_star-size:var(--rating-star-size,var(--size-7));--_color-empty:var(--rating-color-empty,var(--color-contrast-200));--_color-filled:var(--rating-color-filled,var(--_theme-base,var(--color-warning)));--_gap:var(--rating-gap,var(--size-0_5));flex-wrap:wrap;align-items:center;display:inline-flex}.stars{gap:var(--_gap);align-items:center;display:flex;position:relative}.sparkle-layer{pointer-events:none;position:absolute;inset:0;overflow:visible}.sparkle{pointer-events:none;background:var(--_color-filled);animation:var(--_motion-animation,sparkle-fly var(--_dur,.5s) var(--ease-out) forwards);border-radius:50%;position:absolute}@keyframes sparkle-fly{0%{opacity:.9;transform:translate(-50%, -50%) rotate(var(--_angle)) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%, -50%) rotate(var(--_angle)) translateY(calc(-1 * var(--_dist))) scale(0)}}.star-btn{all:unset;width:var(--_star-size);min-width:var(--_touch-target);height:var(--_star-size);min-height:var(--_touch-target);color:var(--_color-empty);cursor:pointer;border-radius:var(--rounded-sm);transition:color var(--transition-fast), transform .12s var(--ease-spring);justify-content:center;align-items:center;display:inline-flex}.star-btn[data-filled]{color:var(--_color-filled)}:host([solid]) .star-btn ore-icon::part(svg){fill:none}:host([solid]) .star-btn[data-filled] ore-icon::part(svg){fill:currentColor}.star-btn:hover:not([disabled]),.star-btn:focus-visible:not([disabled]){transform:scale(1.08)}.star-btn:focus-visible{outline:var(--border-2) solid var(--_color-filled);outline-offset:var(--border-2)}.star-btn[disabled]{cursor:default}:host([readonly]) .star-btn,:host([disabled]) .star-btn{pointer-events:none}:host([disabled]){opacity:.5}}@layer refine.utilities{:host([size=sm]){--_star-size:var(--size-5)}:host([size=lg]){--_star-size:var(--size-9)}@media (forced-colors:active){.star-btn{color:buttontext}.star-btn[data-filled]{color:highlight;forced-color-adjust:none}.star-btn:focus-visible{box-shadow:none;outline:2px solid highlight}}.helper-text[hidden]{display:none}.helper-text{width:100%;font-size:var(--text-xs);line-height:var(--leading-tight);color:color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas));margin-top:var(--size-1)}.helper-text[role=alert]{color:var(--color-error)}}@media (prefers-reduced-motion:reduce){.sparkle{display:none}}`;exports.default=e;
|
|
2
2
|
//# sourceMappingURL=rating.css.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rating.css.cjs","names":[],"sources":["../../../src/inputs/rating/rating.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_star-size: var(--rating-star-size, var(--size-7));\n --_color-empty: var(--rating-color-empty, var(--color-contrast-200));\n --_color-filled: var(--rating-color-filled, var(--_theme-base, var(--color-warning)));\n --_gap: var(--rating-gap, var(--size-0_5));\n\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n }\n\n .stars {\n position: relative;\n display: flex;\n gap: var(--_gap);\n align-items: center;\n }\n\n .sparkle-layer {\n position: absolute;\n inset: 0;\n overflow: visible;\n pointer-events: none;\n }\n\n .sparkle {\n position: absolute;\n pointer-events: none;\n background: var(--_color-filled);\n border-radius: 50%;\n animation: var(--_motion-animation, sparkle-fly var(--_dur, 500ms) var(--ease-out) forwards);\n }\n\n @keyframes sparkle-fly {\n from {\n opacity: 0.9;\n transform: translate(-50%, -50%) rotate(var(--_angle)) translateY(0) scale(1);\n }\n\n to {\n opacity: 0;\n transform: translate(-50%, -50%) rotate(var(--_angle)) translateY(calc(-1 * var(--_dist))) scale(0);\n }\n }\n\n .star-btn {\n all: unset;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--_star-size);\n min-width: var(--_touch-target);\n height: var(--_star-size);\n min-height: var(--_touch-target);\n color: var(--_color-empty);\n cursor: pointer;\n border-radius: var(--rounded-sm);\n transition:\n color var(--transition-fast),\n transform 120ms var(--ease-spring);\n }\n\n .star-btn[data-filled] {\n color: var(--_color-filled);\n }\n\n :host([solid]) .star-btn ore-icon::part(svg) {\n fill: none;\n }\n\n :host([solid]) .star-btn[data-filled] ore-icon::part(svg) {\n fill: currentcolor;\n }\n\n .star-btn:hover:not([disabled]),\n .star-btn:focus-visible:not([disabled]) {\n transform: scale(1.08);\n }\n\n .star-btn:focus-visible {\n outline: var(--border-2) solid var(--_color-filled);\n outline-offset: var(--border-2);\n }\n\n .star-btn[disabled] {\n cursor: default;\n }\n\n :host([readonly]) .star-btn,\n :host([disabled]) .star-btn {\n pointer-events: none;\n }\n\n :host([disabled]) {\n opacity: 0.5;\n }\n}\n\n@layer refine.utilities {\n :host([size='sm']) {\n --_star-size: var(--size-5);\n }\n\n :host([size='lg']) {\n --_star-size: var(--size-9);\n }\n\n @media (forced-colors: active) {\n /* Distinguish filled vs unfilled stars with system button colors */\n .star-btn {\n color: ButtonText;\n }\n\n .star-btn[data-filled] {\n color: Highlight;\n forced-color-adjust: none;\n }\n\n .star-btn:focus-visible {\n outline: 2px solid Highlight;\n box-shadow: none;\n }\n }\n\n /* ========================================\n Helper / Error Text\n ======================================== */\n\n .helper-text[hidden] {\n display: none;\n }\n\n .helper-text {\n width: 100%;\n margin-block-start: var(--size-1);\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: var(--color-contrast-500);\n }\n\n .helper-text[role='alert'] {\n color: var(--color-error);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .sparkle {\n display: none;\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"rating.css.cjs","names":[],"sources":["../../../src/inputs/rating/rating.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_star-size: var(--rating-star-size, var(--size-7));\n --_color-empty: var(--rating-color-empty, var(--color-contrast-200));\n --_color-filled: var(--rating-color-filled, var(--_theme-base, var(--color-warning)));\n --_gap: var(--rating-gap, var(--size-0_5));\n\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n }\n\n .stars {\n position: relative;\n display: flex;\n gap: var(--_gap);\n align-items: center;\n }\n\n .sparkle-layer {\n position: absolute;\n inset: 0;\n overflow: visible;\n pointer-events: none;\n }\n\n .sparkle {\n position: absolute;\n pointer-events: none;\n background: var(--_color-filled);\n border-radius: 50%;\n animation: var(--_motion-animation, sparkle-fly var(--_dur, 500ms) var(--ease-out) forwards);\n }\n\n @keyframes sparkle-fly {\n from {\n opacity: 0.9;\n transform: translate(-50%, -50%) rotate(var(--_angle)) translateY(0) scale(1);\n }\n\n to {\n opacity: 0;\n transform: translate(-50%, -50%) rotate(var(--_angle)) translateY(calc(-1 * var(--_dist))) scale(0);\n }\n }\n\n .star-btn {\n all: unset;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--_star-size);\n min-width: var(--_touch-target);\n height: var(--_star-size);\n min-height: var(--_touch-target);\n color: var(--_color-empty);\n cursor: pointer;\n border-radius: var(--rounded-sm);\n transition:\n color var(--transition-fast),\n transform 120ms var(--ease-spring);\n }\n\n .star-btn[data-filled] {\n color: var(--_color-filled);\n }\n\n :host([solid]) .star-btn ore-icon::part(svg) {\n fill: none;\n }\n\n :host([solid]) .star-btn[data-filled] ore-icon::part(svg) {\n fill: currentcolor;\n }\n\n .star-btn:hover:not([disabled]),\n .star-btn:focus-visible:not([disabled]) {\n transform: scale(1.08);\n }\n\n .star-btn:focus-visible {\n outline: var(--border-2) solid var(--_color-filled);\n outline-offset: var(--border-2);\n }\n\n .star-btn[disabled] {\n cursor: default;\n }\n\n :host([readonly]) .star-btn,\n :host([disabled]) .star-btn {\n pointer-events: none;\n }\n\n :host([disabled]) {\n opacity: 0.5;\n }\n}\n\n@layer refine.utilities {\n :host([size='sm']) {\n --_star-size: var(--size-5);\n }\n\n :host([size='lg']) {\n --_star-size: var(--size-9);\n }\n\n @media (forced-colors: active) {\n /* Distinguish filled vs unfilled stars with system button colors */\n .star-btn {\n color: ButtonText;\n }\n\n .star-btn[data-filled] {\n color: Highlight;\n forced-color-adjust: none;\n }\n\n .star-btn:focus-visible {\n outline: 2px solid Highlight;\n box-shadow: none;\n }\n }\n\n /* ========================================\n Helper / Error Text\n ======================================== */\n\n .helper-text[hidden] {\n display: none;\n }\n\n .helper-text {\n width: 100%;\n margin-block-start: var(--size-1);\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas));\n }\n\n .helper-text[role='alert'] {\n color: var(--color-error);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .sparkle {\n display: none;\n }\n}\n"],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/inputs/rating/rating.css?inline
|
|
2
|
-
var e = "@layer refine.base{:host{--_star-size:var(--rating-star-size,var(--size-7));--_color-empty:var(--rating-color-empty,var(--color-contrast-200));--_color-filled:var(--rating-color-filled,var(--_theme-base,var(--color-warning)));--_gap:var(--rating-gap,var(--size-0_5));flex-wrap:wrap;align-items:center;display:inline-flex}.stars{gap:var(--_gap);align-items:center;display:flex;position:relative}.sparkle-layer{pointer-events:none;position:absolute;inset:0;overflow:visible}.sparkle{pointer-events:none;background:var(--_color-filled);animation:var(--_motion-animation,sparkle-fly var(--_dur,.5s) var(--ease-out) forwards);border-radius:50%;position:absolute}@keyframes sparkle-fly{0%{opacity:.9;transform:translate(-50%, -50%) rotate(var(--_angle)) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%, -50%) rotate(var(--_angle)) translateY(calc(-1 * var(--_dist))) scale(0)}}.star-btn{all:unset;width:var(--_star-size);min-width:var(--_touch-target);height:var(--_star-size);min-height:var(--_touch-target);color:var(--_color-empty);cursor:pointer;border-radius:var(--rounded-sm);transition:color var(--transition-fast), transform .12s var(--ease-spring);justify-content:center;align-items:center;display:inline-flex}.star-btn[data-filled]{color:var(--_color-filled)}:host([solid]) .star-btn ore-icon::part(svg){fill:none}:host([solid]) .star-btn[data-filled] ore-icon::part(svg){fill:currentColor}.star-btn:hover:not([disabled]),.star-btn:focus-visible:not([disabled]){transform:scale(1.08)}.star-btn:focus-visible{outline:var(--border-2) solid var(--_color-filled);outline-offset:var(--border-2)}.star-btn[disabled]{cursor:default}:host([readonly]) .star-btn,:host([disabled]) .star-btn{pointer-events:none}:host([disabled]){opacity:.5}}@layer refine.utilities{:host([size=sm]){--_star-size:var(--size-5)}:host([size=lg]){--_star-size:var(--size-9)}@media (forced-colors:active){.star-btn{color:buttontext}.star-btn[data-filled]{color:highlight;forced-color-adjust:none}.star-btn:focus-visible{box-shadow:none;outline:2px solid highlight}}.helper-text[hidden]{display:none}.helper-text{width:100%;font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-contrast-500);margin-top:var(--size-1)}.helper-text[role=alert]{color:var(--color-error)}}@media (prefers-reduced-motion:reduce){.sparkle{display:none}}";
|
|
2
|
+
var e = "@layer refine.base{:host{--_star-size:var(--rating-star-size,var(--size-7));--_color-empty:var(--rating-color-empty,var(--color-contrast-200));--_color-filled:var(--rating-color-filled,var(--_theme-base,var(--color-warning)));--_gap:var(--rating-gap,var(--size-0_5));flex-wrap:wrap;align-items:center;display:inline-flex}.stars{gap:var(--_gap);align-items:center;display:flex;position:relative}.sparkle-layer{pointer-events:none;position:absolute;inset:0;overflow:visible}.sparkle{pointer-events:none;background:var(--_color-filled);animation:var(--_motion-animation,sparkle-fly var(--_dur,.5s) var(--ease-out) forwards);border-radius:50%;position:absolute}@keyframes sparkle-fly{0%{opacity:.9;transform:translate(-50%, -50%) rotate(var(--_angle)) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%, -50%) rotate(var(--_angle)) translateY(calc(-1 * var(--_dist))) scale(0)}}.star-btn{all:unset;width:var(--_star-size);min-width:var(--_touch-target);height:var(--_star-size);min-height:var(--_touch-target);color:var(--_color-empty);cursor:pointer;border-radius:var(--rounded-sm);transition:color var(--transition-fast), transform .12s var(--ease-spring);justify-content:center;align-items:center;display:inline-flex}.star-btn[data-filled]{color:var(--_color-filled)}:host([solid]) .star-btn ore-icon::part(svg){fill:none}:host([solid]) .star-btn[data-filled] ore-icon::part(svg){fill:currentColor}.star-btn:hover:not([disabled]),.star-btn:focus-visible:not([disabled]){transform:scale(1.08)}.star-btn:focus-visible{outline:var(--border-2) solid var(--_color-filled);outline-offset:var(--border-2)}.star-btn[disabled]{cursor:default}:host([readonly]) .star-btn,:host([disabled]) .star-btn{pointer-events:none}:host([disabled]){opacity:.5}}@layer refine.utilities{:host([size=sm]){--_star-size:var(--size-5)}:host([size=lg]){--_star-size:var(--size-9)}@media (forced-colors:active){.star-btn{color:buttontext}.star-btn[data-filled]{color:highlight;forced-color-adjust:none}.star-btn:focus-visible{box-shadow:none;outline:2px solid highlight}}.helper-text[hidden]{display:none}.helper-text{width:100%;font-size:var(--text-xs);line-height:var(--leading-tight);color:color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas));margin-top:var(--size-1)}.helper-text[role=alert]{color:var(--color-error)}}@media (prefers-reduced-motion:reduce){.sparkle{display:none}}";
|
|
3
3
|
//#endregion
|
|
4
4
|
export { e as default };
|
|
5
5
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rating.css.js","names":[],"sources":["../../../src/inputs/rating/rating.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_star-size: var(--rating-star-size, var(--size-7));\n --_color-empty: var(--rating-color-empty, var(--color-contrast-200));\n --_color-filled: var(--rating-color-filled, var(--_theme-base, var(--color-warning)));\n --_gap: var(--rating-gap, var(--size-0_5));\n\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n }\n\n .stars {\n position: relative;\n display: flex;\n gap: var(--_gap);\n align-items: center;\n }\n\n .sparkle-layer {\n position: absolute;\n inset: 0;\n overflow: visible;\n pointer-events: none;\n }\n\n .sparkle {\n position: absolute;\n pointer-events: none;\n background: var(--_color-filled);\n border-radius: 50%;\n animation: var(--_motion-animation, sparkle-fly var(--_dur, 500ms) var(--ease-out) forwards);\n }\n\n @keyframes sparkle-fly {\n from {\n opacity: 0.9;\n transform: translate(-50%, -50%) rotate(var(--_angle)) translateY(0) scale(1);\n }\n\n to {\n opacity: 0;\n transform: translate(-50%, -50%) rotate(var(--_angle)) translateY(calc(-1 * var(--_dist))) scale(0);\n }\n }\n\n .star-btn {\n all: unset;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--_star-size);\n min-width: var(--_touch-target);\n height: var(--_star-size);\n min-height: var(--_touch-target);\n color: var(--_color-empty);\n cursor: pointer;\n border-radius: var(--rounded-sm);\n transition:\n color var(--transition-fast),\n transform 120ms var(--ease-spring);\n }\n\n .star-btn[data-filled] {\n color: var(--_color-filled);\n }\n\n :host([solid]) .star-btn ore-icon::part(svg) {\n fill: none;\n }\n\n :host([solid]) .star-btn[data-filled] ore-icon::part(svg) {\n fill: currentcolor;\n }\n\n .star-btn:hover:not([disabled]),\n .star-btn:focus-visible:not([disabled]) {\n transform: scale(1.08);\n }\n\n .star-btn:focus-visible {\n outline: var(--border-2) solid var(--_color-filled);\n outline-offset: var(--border-2);\n }\n\n .star-btn[disabled] {\n cursor: default;\n }\n\n :host([readonly]) .star-btn,\n :host([disabled]) .star-btn {\n pointer-events: none;\n }\n\n :host([disabled]) {\n opacity: 0.5;\n }\n}\n\n@layer refine.utilities {\n :host([size='sm']) {\n --_star-size: var(--size-5);\n }\n\n :host([size='lg']) {\n --_star-size: var(--size-9);\n }\n\n @media (forced-colors: active) {\n /* Distinguish filled vs unfilled stars with system button colors */\n .star-btn {\n color: ButtonText;\n }\n\n .star-btn[data-filled] {\n color: Highlight;\n forced-color-adjust: none;\n }\n\n .star-btn:focus-visible {\n outline: 2px solid Highlight;\n box-shadow: none;\n }\n }\n\n /* ========================================\n Helper / Error Text\n ======================================== */\n\n .helper-text[hidden] {\n display: none;\n }\n\n .helper-text {\n width: 100%;\n margin-block-start: var(--size-1);\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: var(--color-contrast-500);\n }\n\n .helper-text[role='alert'] {\n color: var(--color-error);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .sparkle {\n display: none;\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"rating.css.js","names":[],"sources":["../../../src/inputs/rating/rating.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_star-size: var(--rating-star-size, var(--size-7));\n --_color-empty: var(--rating-color-empty, var(--color-contrast-200));\n --_color-filled: var(--rating-color-filled, var(--_theme-base, var(--color-warning)));\n --_gap: var(--rating-gap, var(--size-0_5));\n\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n }\n\n .stars {\n position: relative;\n display: flex;\n gap: var(--_gap);\n align-items: center;\n }\n\n .sparkle-layer {\n position: absolute;\n inset: 0;\n overflow: visible;\n pointer-events: none;\n }\n\n .sparkle {\n position: absolute;\n pointer-events: none;\n background: var(--_color-filled);\n border-radius: 50%;\n animation: var(--_motion-animation, sparkle-fly var(--_dur, 500ms) var(--ease-out) forwards);\n }\n\n @keyframes sparkle-fly {\n from {\n opacity: 0.9;\n transform: translate(-50%, -50%) rotate(var(--_angle)) translateY(0) scale(1);\n }\n\n to {\n opacity: 0;\n transform: translate(-50%, -50%) rotate(var(--_angle)) translateY(calc(-1 * var(--_dist))) scale(0);\n }\n }\n\n .star-btn {\n all: unset;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--_star-size);\n min-width: var(--_touch-target);\n height: var(--_star-size);\n min-height: var(--_touch-target);\n color: var(--_color-empty);\n cursor: pointer;\n border-radius: var(--rounded-sm);\n transition:\n color var(--transition-fast),\n transform 120ms var(--ease-spring);\n }\n\n .star-btn[data-filled] {\n color: var(--_color-filled);\n }\n\n :host([solid]) .star-btn ore-icon::part(svg) {\n fill: none;\n }\n\n :host([solid]) .star-btn[data-filled] ore-icon::part(svg) {\n fill: currentcolor;\n }\n\n .star-btn:hover:not([disabled]),\n .star-btn:focus-visible:not([disabled]) {\n transform: scale(1.08);\n }\n\n .star-btn:focus-visible {\n outline: var(--border-2) solid var(--_color-filled);\n outline-offset: var(--border-2);\n }\n\n .star-btn[disabled] {\n cursor: default;\n }\n\n :host([readonly]) .star-btn,\n :host([disabled]) .star-btn {\n pointer-events: none;\n }\n\n :host([disabled]) {\n opacity: 0.5;\n }\n}\n\n@layer refine.utilities {\n :host([size='sm']) {\n --_star-size: var(--size-5);\n }\n\n :host([size='lg']) {\n --_star-size: var(--size-9);\n }\n\n @media (forced-colors: active) {\n /* Distinguish filled vs unfilled stars with system button colors */\n .star-btn {\n color: ButtonText;\n }\n\n .star-btn[data-filled] {\n color: Highlight;\n forced-color-adjust: none;\n }\n\n .star-btn:focus-visible {\n outline: 2px solid Highlight;\n box-shadow: none;\n }\n }\n\n /* ========================================\n Helper / Error Text\n ======================================== */\n\n .helper-text[hidden] {\n display: none;\n }\n\n .helper-text {\n width: 100%;\n margin-block-start: var(--size-1);\n font-size: var(--text-xs);\n line-height: var(--leading-tight);\n color: color-mix(in oklch, var(--color-contrast-500) 80%, var(--color-canvas));\n }\n\n .helper-text[role='alert'] {\n color: var(--color-error);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .sparkle {\n display: none;\n }\n}\n"],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
let e=require("@vielzeug/ore");var t=(t,n,r)=>{let{assistiveId:i,checked:a,disabled:o,errorText:s,handleClick:c,handleKeydown:l,helperText:u,indeterminate:d,labelId:f}=n;(0,e.bind)({attr:{...d!==void 0&&{indeterminate:d},ariaChecked:()=>r===`checkbox`&&d?.value?`mixed`:a.value?`true`:`false`,ariaDescribedby:()=>s.value||u.value?i:null,ariaDisabled:()=>o.value?`true`:null,ariaInvalid:()=>s.value?`true`:null,ariaLabelledby:f,checked:a,role:r,size:t,tabindex:()=>o.value?void 0:0},class:()=>({"is-checked":a.value,"is-disabled":o.value,...d!==void 0&&{"is-indeterminate":d.value}}),on:{click:c,keydown:l}})};exports.applyCheckableBinding=t;
|
|
1
|
+
let e=require("@vielzeug/ore");var t=e=>()=>e.value||void 0,n=(t,n,r)=>{let{assistiveId:i,checked:a,disabled:o,errorText:s,handleClick:c,handleKeydown:l,helperText:u,indeterminate:d,labelId:f,required:p}=n;(0,e.bind)({attr:{...d!==void 0&&{indeterminate:d},ariaChecked:()=>r===`checkbox`&&d?.value?`mixed`:a.value?`true`:`false`,ariaDescribedby:()=>s.value||u.value?i:null,ariaDisabled:()=>o.value?`true`:null,ariaInvalid:()=>s.value?`true`:null,ariaLabelledby:f,ariaRequired:()=>p?.value?`true`:null,checked:a,role:r,size:t,tabindex:()=>o.value?void 0:0},class:()=>({"is-checked":a.value,"is-disabled":o.value,...d!==void 0&&{"is-indeterminate":d.value}}),on:{click:c,keydown:l}})};exports.applyCheckableBinding=n,exports.errorAttr=t;
|
|
2
2
|
//# sourceMappingURL=field-binding.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-binding.cjs","names":[],"sources":["../../../src/inputs/shared/field-binding.ts"],"sourcesContent":["import type { Readable, Signal } from '@vielzeug/ripple';\n\nimport { bind } from '@vielzeug/ore';\n\nimport type { ComponentSize } from '../../types';\n\n/**\n * Minimal shape of the handle returned by `createCheckable` that\n * `applyCheckableBinding` needs. Matches both checkbox (with `indeterminate`)\n * and switch (without).\n */\nexport type CheckableBindingHandle = {\n assistiveId: string;\n checked: Signal<boolean>;\n disabled: Readable<boolean>;\n errorText: Readable<string>;\n handleClick: (event: MouseEvent) => boolean;\n handleKeydown: (event: KeyboardEvent) => boolean;\n helperText: Readable<string>;\n indeterminate?: Signal<boolean>;\n labelId: string;\n};\n\n/**\n * Applies the standard host bindings shared by all checkable components\n * (checkbox, switch, radio).\n *\n * Wires `role`, all ARIA attributes, `checked`, `size`, `tabindex`, the\n * `is-checked`/`is-disabled` classes, and the `click`/`keydown` event handlers.\n *\n * Pass `handle.indeterminate` for components that need it (checkbox);\n * omit it for switch/radio.\n */\nexport const applyCheckableBinding = (\n fCtxSize: Readable<ComponentSize | undefined>,\n handle: CheckableBindingHandle,\n role: 'checkbox' | 'radio' | 'switch',\n): void => {\n const {
|
|
1
|
+
{"version":3,"file":"field-binding.cjs","names":[],"sources":["../../../src/inputs/shared/field-binding.ts"],"sourcesContent":["import type { Readable, Signal } from '@vielzeug/ripple';\n\nimport { bind } from '@vielzeug/ore';\n\nimport type { ComponentSize } from '../../types';\n\n/**\n * Minimal shape of the handle returned by `createCheckable` that\n * `applyCheckableBinding` needs. Matches both checkbox (with `indeterminate`)\n * and switch (without).\n */\nexport type CheckableBindingHandle = {\n assistiveId: string;\n checked: Signal<boolean>;\n disabled: Readable<boolean>;\n errorText: Readable<string>;\n handleClick: (event: MouseEvent) => boolean;\n handleKeydown: (event: KeyboardEvent) => boolean;\n helperText: Readable<string>;\n indeterminate?: Signal<boolean>;\n labelId: string;\n /** Reflects `aria-required` — there's no native form control here to carry a real `required` attribute. */\n required?: Readable<boolean | undefined>;\n};\n\n/**\n * `prop.string()` already reflects `error`'s raw value as an attribute, but that leaves the\n * attribute present-but-empty (`error=\"\"`) once set instead of removing it — this normalizes\n * an empty error back to \"no attribute at all\". Shared by every text-field component\n * (`ore-input`, `ore-textarea`, `ore-message-composer`) since `bind()`'s own `error` writer\n * needs a derived getter, not the raw prop, to get that behavior.\n *\n * @example\n * ```ts\n * bind({ attr: { error: errorAttr(errorText), size: fCtxProps.size, variant: fCtxProps.variant } });\n * ```\n */\nexport const errorAttr = (errorText: Readable<string>): (() => string | undefined) => {\n return () => errorText.value || undefined;\n};\n\n/**\n * Applies the standard host bindings shared by all checkable components\n * (checkbox, switch, radio).\n *\n * Wires `role`, all ARIA attributes, `checked`, `size`, `tabindex`, the\n * `is-checked`/`is-disabled` classes, and the `click`/`keydown` event handlers.\n *\n * Pass `handle.indeterminate` for components that need it (checkbox);\n * omit it for switch/radio.\n */\nexport const applyCheckableBinding = (\n fCtxSize: Readable<ComponentSize | undefined>,\n handle: CheckableBindingHandle,\n role: 'checkbox' | 'radio' | 'switch',\n): void => {\n const {\n assistiveId,\n checked,\n disabled,\n errorText,\n handleClick,\n handleKeydown,\n helperText,\n indeterminate,\n labelId,\n required,\n } = handle;\n\n bind({\n attr: {\n ...(indeterminate !== undefined && { indeterminate }),\n ariaChecked: () => {\n if (role === 'checkbox' && indeterminate?.value) return 'mixed';\n\n return checked.value ? 'true' : 'false';\n },\n ariaDescribedby: () => (errorText.value || helperText.value ? assistiveId : null),\n ariaDisabled: () => (disabled.value ? 'true' : null),\n ariaInvalid: () => (errorText.value ? 'true' : null),\n ariaLabelledby: labelId,\n ariaRequired: () => (required?.value ? 'true' : null),\n checked,\n role,\n size: fCtxSize,\n tabindex: () => (disabled.value ? undefined : 0),\n },\n class: () => ({\n 'is-checked': checked.value,\n 'is-disabled': disabled.value,\n ...(indeterminate !== undefined && { 'is-indeterminate': indeterminate.value }),\n }),\n on: {\n click: handleClick,\n keydown: handleKeydown,\n },\n });\n};\n"],"mappings":"+BAqCA,IAAa,EAAa,OACX,EAAU,OAAS,IAAA,GAarB,GACX,EACA,EACA,IACS,CACT,GAAM,CACJ,cACA,UACA,WACA,YACA,cACA,gBACA,aACA,gBACA,UACA,YACE,GAEJ,EAAA,EAAA,KAAA,CAAK,CACH,KAAM,CACJ,GAAI,IAAkB,IAAA,IAAa,CAAE,eAAc,EACnD,gBACM,IAAS,YAAc,GAAe,MAAc,QAEjD,EAAQ,MAAQ,OAAS,QAElC,oBAAwB,EAAU,OAAS,EAAW,MAAQ,EAAc,KAC5E,iBAAqB,EAAS,MAAQ,OAAS,KAC/C,gBAAoB,EAAU,MAAQ,OAAS,KAC/C,eAAgB,EAChB,iBAAqB,GAAU,MAAQ,OAAS,KAChD,UACA,OACA,KAAM,EACN,aAAiB,EAAS,MAAQ,IAAA,GAAY,CAChD,EACA,WAAc,CACZ,aAAc,EAAQ,MACtB,cAAe,EAAS,MACxB,GAAI,IAAkB,IAAA,IAAa,CAAE,mBAAoB,EAAc,KAAM,CAC/E,GACA,GAAI,CACF,MAAO,EACP,QAAS,CACX,CACF,CAAC,CACH"}
|
|
@@ -15,7 +15,22 @@ export type CheckableBindingHandle = {
|
|
|
15
15
|
helperText: Readable<string>;
|
|
16
16
|
indeterminate?: Signal<boolean>;
|
|
17
17
|
labelId: string;
|
|
18
|
+
/** Reflects `aria-required` — there's no native form control here to carry a real `required` attribute. */
|
|
19
|
+
required?: Readable<boolean | undefined>;
|
|
18
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* `prop.string()` already reflects `error`'s raw value as an attribute, but that leaves the
|
|
23
|
+
* attribute present-but-empty (`error=""`) once set instead of removing it — this normalizes
|
|
24
|
+
* an empty error back to "no attribute at all". Shared by every text-field component
|
|
25
|
+
* (`ore-input`, `ore-textarea`, `ore-message-composer`) since `bind()`'s own `error` writer
|
|
26
|
+
* needs a derived getter, not the raw prop, to get that behavior.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* bind({ attr: { error: errorAttr(errorText), size: fCtxProps.size, variant: fCtxProps.variant } });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare const errorAttr: (errorText: Readable<string>) => (() => string | undefined);
|
|
19
34
|
/**
|
|
20
35
|
* Applies the standard host bindings shared by all checkable components
|
|
21
36
|
* (checkbox, switch, radio).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-binding.d.ts","sourceRoot":"","sources":["../../../src/inputs/shared/field-binding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAIzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;IAC5C,aAAa,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC;IACjD,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"field-binding.d.ts","sourceRoot":"","sources":["../../../src/inputs/shared/field-binding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAIzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;IAC5C,aAAa,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC;IACjD,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,2GAA2G;IAC3G,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;CAC1C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,GAAI,WAAW,QAAQ,CAAC,MAAM,CAAC,KAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAEhF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,EAC7C,QAAQ,sBAAsB,EAC9B,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,KACpC,IA0CF,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { bind as e } from "@vielzeug/ore";
|
|
2
2
|
//#region src/inputs/shared/field-binding.ts
|
|
3
|
-
var t = (t, n, r) => {
|
|
4
|
-
let { assistiveId: i, checked: a, disabled: o, errorText: s, handleClick: c, handleKeydown: l, helperText: u, indeterminate: d, labelId: f } = n;
|
|
3
|
+
var t = (e) => () => e.value || void 0, n = (t, n, r) => {
|
|
4
|
+
let { assistiveId: i, checked: a, disabled: o, errorText: s, handleClick: c, handleKeydown: l, helperText: u, indeterminate: d, labelId: f, required: p } = n;
|
|
5
5
|
e({
|
|
6
6
|
attr: {
|
|
7
7
|
...d !== void 0 && { indeterminate: d },
|
|
@@ -10,6 +10,7 @@ var t = (t, n, r) => {
|
|
|
10
10
|
ariaDisabled: () => o.value ? "true" : null,
|
|
11
11
|
ariaInvalid: () => s.value ? "true" : null,
|
|
12
12
|
ariaLabelledby: f,
|
|
13
|
+
ariaRequired: () => p?.value ? "true" : null,
|
|
13
14
|
checked: a,
|
|
14
15
|
role: r,
|
|
15
16
|
size: t,
|
|
@@ -27,6 +28,6 @@ var t = (t, n, r) => {
|
|
|
27
28
|
});
|
|
28
29
|
};
|
|
29
30
|
//#endregion
|
|
30
|
-
export {
|
|
31
|
+
export { n as applyCheckableBinding, t as errorAttr };
|
|
31
32
|
|
|
32
33
|
//# sourceMappingURL=field-binding.js.map
|