@vielzeug/refine 1.5.3 → 1.7.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/accordion.cjs +1 -1
- package/dist/accordion.cjs.map +1 -1
- package/dist/accordion.js +30 -28
- package/dist/accordion.js.map +1 -1
- package/dist/button-group.cjs.map +1 -1
- package/dist/button-group.js.map +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +1 -0
- package/dist/button.js.map +1 -1
- package/dist/checkbox-group.cjs +3 -3
- package/dist/checkbox-group.cjs.map +1 -1
- package/dist/checkbox-group.js +51 -58
- package/dist/checkbox-group.js.map +1 -1
- package/dist/combobox.cjs +29 -28
- package/dist/combobox.cjs.map +1 -1
- package/dist/combobox.js +201 -195
- 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/chat-message/chat-message.css.cjs +1 -1
- package/dist/content/chat-message/chat-message.css.cjs.map +1 -1
- package/dist/content/chat-message/chat-message.css.js +1 -1
- package/dist/content/chat-message/chat-message.css.js.map +1 -1
- package/dist/content/icon/icon.d.ts.map +1 -1
- package/dist/content/index.d.ts +4 -0
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/list/_list-item-reveal.cjs +2 -0
- package/dist/content/list/_list-item-reveal.cjs.map +1 -0
- package/dist/content/list/_list-item-reveal.d.ts +25 -0
- package/dist/content/list/_list-item-reveal.d.ts.map +1 -0
- package/dist/content/list/_list-item-reveal.js +33 -0
- package/dist/content/list/_list-item-reveal.js.map +1 -0
- package/dist/content/list/list-item.css.cjs +2 -0
- package/dist/content/list/list-item.css.cjs.map +1 -0
- package/dist/content/list/list-item.css.js +6 -0
- package/dist/content/list/list-item.css.js.map +1 -0
- package/dist/content/list/list-item.d.ts +111 -0
- package/dist/content/list/list-item.d.ts.map +1 -0
- package/dist/content/list/list.css.cjs +2 -0
- package/dist/content/list/list.css.cjs.map +1 -0
- package/dist/content/list/list.css.js +6 -0
- package/dist/content/list/list.css.js.map +1 -0
- package/dist/content/list/list.d.ts +93 -0
- package/dist/content/list/list.d.ts.map +1 -0
- package/dist/custom-elements.json +5224 -4621
- package/dist/date-picker.cjs +2 -1
- package/dist/date-picker.cjs.map +1 -1
- package/dist/date-picker.js +2 -0
- package/dist/date-picker.js.map +1 -1
- package/dist/disclosure/tab-item/tab-item.d.ts.map +1 -1
- package/dist/disclosure/tab-panel/tab-panel.d.ts.map +1 -1
- package/dist/disclosure/tabs/tabs.d.ts.map +1 -1
- package/dist/drawer.cjs +1 -1
- package/dist/drawer.cjs.map +1 -1
- package/dist/drawer.js +47 -48
- package/dist/drawer.js.map +1 -1
- package/dist/file-input.cjs +111 -45
- package/dist/file-input.cjs.map +1 -1
- package/dist/file-input.js +216 -156
- package/dist/file-input.js.map +1 -1
- package/dist/headless/aria-reflection.cjs +2 -0
- package/dist/headless/aria-reflection.cjs.map +1 -0
- package/dist/headless/aria-reflection.d.ts +27 -0
- package/dist/headless/aria-reflection.d.ts.map +1 -0
- package/dist/headless/aria-reflection.js +18 -0
- package/dist/headless/aria-reflection.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 +2 -10
- package/dist/headless/checkable.d.ts.map +1 -1
- package/dist/headless/checkable.js +29 -29
- 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 +2 -7
- package/dist/headless/choice-field.d.ts.map +1 -1
- package/dist/headless/choice-field.js +37 -37
- package/dist/headless/choice-field.js.map +1 -1
- package/dist/headless/field-base.cjs +1 -1
- package/dist/headless/field-base.cjs.map +1 -1
- package/dist/headless/field-base.d.ts +17 -0
- package/dist/headless/field-base.d.ts.map +1 -1
- package/dist/headless/field-base.js +21 -6
- package/dist/headless/field-base.js.map +1 -1
- package/dist/headless/focus.cjs +1 -1
- package/dist/headless/focus.cjs.map +1 -1
- package/dist/headless/focus.d.ts +7 -0
- package/dist/headless/focus.d.ts.map +1 -1
- package/dist/headless/focus.js +6 -6
- package/dist/headless/focus.js.map +1 -1
- package/dist/headless/index.d.ts +4 -2
- package/dist/headless/index.d.ts.map +1 -1
- package/dist/headless/nav.cjs +1 -1
- package/dist/headless/nav.cjs.map +1 -1
- package/dist/headless/nav.d.ts +12 -0
- package/dist/headless/nav.d.ts.map +1 -1
- package/dist/headless/nav.js +68 -50
- package/dist/headless/nav.js.map +1 -1
- package/dist/headless/overlay.cjs +1 -1
- package/dist/headless/overlay.cjs.map +1 -1
- package/dist/headless/overlay.d.ts +2 -0
- package/dist/headless/overlay.d.ts.map +1 -1
- package/dist/headless/overlay.js +8 -5
- package/dist/headless/overlay.js.map +1 -1
- package/dist/headless/ref-callback.cjs +2 -0
- package/dist/headless/ref-callback.cjs.map +1 -0
- package/dist/headless/ref-callback.d.ts +26 -0
- package/dist/headless/ref-callback.d.ts.map +1 -0
- package/dist/headless/ref-callback.js +13 -0
- package/dist/headless/ref-callback.js.map +1 -0
- package/dist/headless/swipe.cjs +1 -1
- package/dist/headless/swipe.cjs.map +1 -1
- package/dist/headless/swipe.d.ts +2 -0
- package/dist/headless/swipe.d.ts.map +1 -1
- package/dist/headless/swipe.js +26 -21
- package/dist/headless/swipe.js.map +1 -1
- package/dist/headless.cjs +1 -1
- package/dist/headless.js +28 -26
- package/dist/icon.cjs +1 -1
- package/dist/icon.cjs.map +1 -1
- package/dist/icon.js +36 -38
- package/dist/icon.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +63 -61
- package/dist/input.cjs +29 -26
- package/dist/input.cjs.map +1 -1
- package/dist/input.js +91 -79
- 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/button/button.d.ts +8 -0
- package/dist/inputs/button/button.d.ts.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/combobox/combobox.d.ts +1 -0
- package/dist/inputs/combobox/combobox.d.ts.map +1 -1
- package/dist/inputs/date-picker/date-picker.css.cjs +1 -1
- package/dist/inputs/date-picker/date-picker.css.cjs.map +1 -1
- package/dist/inputs/date-picker/date-picker.css.js +1 -1
- package/dist/inputs/date-picker/date-picker.css.js.map +1 -1
- package/dist/inputs/date-picker/date-picker.d.ts +6 -0
- package/dist/inputs/date-picker/date-picker.d.ts.map +1 -1
- package/dist/inputs/file-input/file-input-upload.cjs +2 -0
- package/dist/inputs/file-input/file-input-upload.cjs.map +1 -0
- package/dist/inputs/file-input/file-input-upload.d.ts +76 -0
- package/dist/inputs/file-input/file-input-upload.d.ts.map +1 -0
- package/dist/inputs/file-input/file-input-upload.js +145 -0
- package/dist/inputs/file-input/file-input-upload.js.map +1 -0
- 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/file-input/file-input.d.ts +54 -1
- package/dist/inputs/file-input/file-input.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 +13 -0
- package/dist/inputs/input/input.d.ts.map +1 -1
- package/dist/inputs/message-composer/message-composer.css.cjs +1 -1
- package/dist/inputs/message-composer/message-composer.css.cjs.map +1 -1
- package/dist/inputs/message-composer/message-composer.css.js +1 -1
- package/dist/inputs/message-composer/message-composer.css.js.map +1 -1
- package/dist/inputs/message-composer/message-composer.d.ts +7 -0
- package/dist/inputs/message-composer/message-composer.d.ts.map +1 -1
- package/dist/inputs/number-input/number-input.css.cjs +1 -1
- package/dist/inputs/number-input/number-input.css.cjs.map +1 -1
- package/dist/inputs/number-input/number-input.css.js +1 -1
- package/dist/inputs/number-input/number-input.css.js.map +1 -1
- package/dist/inputs/number-input/number-input.d.ts +15 -0
- package/dist/inputs/number-input/number-input.d.ts.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/inputs/select/select.d.ts +1 -0
- package/dist/inputs/select/select.d.ts.map +1 -1
- package/dist/inputs/shared/index.d.ts +1 -1
- package/dist/inputs/shared/index.d.ts.map +1 -1
- package/dist/inputs/shared/templates.cjs +26 -3
- package/dist/inputs/shared/templates.cjs.map +1 -1
- package/dist/inputs/shared/templates.d.ts +20 -0
- package/dist/inputs/shared/templates.d.ts.map +1 -1
- package/dist/inputs/shared/templates.js +29 -5
- package/dist/inputs/shared/templates.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/switch/switch.d.ts.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 +14 -0
- package/dist/inputs/textarea/textarea.d.ts.map +1 -1
- package/dist/inputs/time-picker/time-picker.css.cjs +1 -1
- package/dist/inputs/time-picker/time-picker.css.cjs.map +1 -1
- package/dist/inputs/time-picker/time-picker.css.js +1 -1
- package/dist/inputs/time-picker/time-picker.css.js.map +1 -1
- package/dist/inputs/time-picker/time-picker.d.ts +6 -0
- package/dist/inputs/time-picker/time-picker.d.ts.map +1 -1
- package/dist/list-item.cjs +22 -0
- package/dist/list-item.cjs.map +1 -0
- package/dist/list-item.js +91 -0
- package/dist/list-item.js.map +1 -0
- package/dist/list.cjs +2 -0
- package/dist/list.cjs.map +1 -0
- package/dist/list.js +64 -0
- package/dist/list.js.map +1 -0
- package/dist/menu.cjs +4 -4
- package/dist/menu.cjs.map +1 -1
- package/dist/menu.js +60 -59
- package/dist/menu.js.map +1 -1
- package/dist/message-composer.cjs +14 -20
- package/dist/message-composer.cjs.map +1 -1
- package/dist/message-composer.js +63 -64
- package/dist/message-composer.js.map +1 -1
- package/dist/number-input.cjs +5 -3
- package/dist/number-input.cjs.map +1 -1
- package/dist/number-input.js +8 -4
- package/dist/number-input.js.map +1 -1
- package/dist/otp-input.cjs +9 -9
- package/dist/otp-input.cjs.map +1 -1
- package/dist/otp-input.js +70 -62
- package/dist/otp-input.js.map +1 -1
- package/dist/overlay/menu/menu-item.css.cjs +1 -1
- package/dist/overlay/menu/menu-item.css.cjs.map +1 -1
- package/dist/overlay/menu/menu-item.css.js +1 -1
- package/dist/overlay/menu/menu-item.css.js.map +1 -1
- package/dist/overlay/menu/menu-separator.css.cjs +1 -1
- package/dist/overlay/menu/menu-separator.css.cjs.map +1 -1
- package/dist/overlay/menu/menu-separator.css.js +1 -1
- package/dist/overlay/menu/menu-separator.css.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/overlay/shared/use-dialog.cjs +1 -1
- package/dist/overlay/shared/use-dialog.cjs.map +1 -1
- package/dist/overlay/shared/use-dialog.d.ts.map +1 -1
- package/dist/overlay/shared/use-dialog.js +7 -6
- package/dist/overlay/shared/use-dialog.js.map +1 -1
- package/dist/radio-group.cjs +3 -3
- package/dist/radio-group.cjs.map +1 -1
- package/dist/radio-group.js +64 -70
- package/dist/radio-group.js.map +1 -1
- package/dist/radio.cjs +4 -4
- package/dist/radio.cjs.map +1 -1
- package/dist/radio.js +58 -58
- package/dist/radio.js.map +1 -1
- package/dist/rating.cjs.map +1 -1
- package/dist/rating.js.map +1 -1
- package/dist/refine.cjs +426 -233
- package/dist/refine.cjs.map +1 -1
- package/dist/refine.iife.js +431 -238
- package/dist/refine.iife.js.map +1 -1
- package/dist/refine.js +452 -259
- package/dist/refine.js.map +1 -1
- package/dist/select.cjs +21 -21
- package/dist/select.cjs.map +1 -1
- package/dist/select.js +135 -127
- 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 +74 -0
- package/dist/shared/size-presets.d.ts.map +1 -1
- package/dist/shared/size-presets.js +48 -1
- package/dist/shared/size-presets.js.map +1 -1
- package/dist/shared/types.d.ts +5 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/styles/index.cjs +1 -1
- package/dist/styles/index.cjs.map +1 -1
- package/dist/styles/index.d.ts +1 -0
- package/dist/styles/index.d.ts.map +1 -1
- package/dist/styles/index.js +5 -4
- package/dist/styles/index.js.map +1 -1
- package/dist/styles/mixins/field-variants.css.cjs +85 -0
- package/dist/styles/mixins/field-variants.css.cjs.map +1 -0
- package/dist/styles/mixins/field-variants.css.d.ts +66 -0
- package/dist/styles/mixins/field-variants.css.d.ts.map +1 -0
- package/dist/styles/mixins/field-variants.css.js +90 -0
- package/dist/styles/mixins/field-variants.css.js.map +1 -0
- package/dist/switch.cjs +3 -3
- package/dist/switch.cjs.map +1 -1
- package/dist/switch.js +38 -36
- package/dist/switch.js.map +1 -1
- package/dist/tab-item.cjs +8 -8
- package/dist/tab-item.cjs.map +1 -1
- package/dist/tab-item.js +38 -28
- package/dist/tab-item.js.map +1 -1
- package/dist/tab-panel.cjs +7 -7
- package/dist/tab-panel.cjs.map +1 -1
- package/dist/tab-panel.js +34 -26
- package/dist/tab-panel.js.map +1 -1
- package/dist/tabs.cjs +4 -4
- package/dist/tabs.cjs.map +1 -1
- package/dist/tabs.js +64 -60
- package/dist/tabs.js.map +1 -1
- package/dist/textarea.cjs +15 -18
- package/dist/textarea.cjs.map +1 -1
- package/dist/textarea.js +83 -74
- package/dist/textarea.js.map +1 -1
- package/dist/time-picker.cjs +34 -31
- package/dist/time-picker.cjs.map +1 -1
- package/dist/time-picker.js +121 -109
- package/dist/time-picker.js.map +1 -1
- package/package.json +21 -9
- package/dist/headless/dialog-focus.cjs +0 -2
- package/dist/headless/dialog-focus.cjs.map +0 -1
- package/dist/headless/dialog-focus.d.ts +0 -40
- package/dist/headless/dialog-focus.d.ts.map +0 -1
- package/dist/headless/dialog-focus.js +0 -22
- package/dist/headless/dialog-focus.js.map +0 -1
- package/dist/headless/focus-trap.cjs +0 -2
- package/dist/headless/focus-trap.cjs.map +0 -1
- package/dist/headless/focus-trap.d.ts +0 -45
- package/dist/headless/focus-trap.d.ts.map +0 -1
- package/dist/headless/focus-trap.js +0 -51
- package/dist/headless/focus-trap.js.map +0 -1
|
@@ -106,6 +106,80 @@ export declare const MESSAGE_COMPOSER_SIZE_PRESET: {
|
|
|
106
106
|
gap: string;
|
|
107
107
|
};
|
|
108
108
|
};
|
|
109
|
+
/**
|
|
110
|
+
* Size preset for `ore-menu`'s floating panel, `ore-menu-item`'s row, and `ore-menu-separator`'s
|
|
111
|
+
* margin. `--_panel-padding`, `--_item-padding`, and `--_separator-margin` are custom pass-through
|
|
112
|
+
* keys (not one of `SizeConfig`'s named slots) since the panel, its items, and its separators each
|
|
113
|
+
* need independently-scaling spacing; `md`'s values match what `menu.css`/`menu-item.css`/
|
|
114
|
+
* `menu-separator.css` hardcoded before `size` was wired up, so the default look is unchanged.
|
|
115
|
+
* `--_font-size`/`--_gap` are inherited by `ore-menu-item` from `ore-menu`'s own host — custom
|
|
116
|
+
* properties cascade down through light-DOM children the same way they cascade into a shadow root.
|
|
117
|
+
*/
|
|
118
|
+
export declare const MENU_SIZE_PRESET: {
|
|
119
|
+
lg: {
|
|
120
|
+
'--_item-padding': string;
|
|
121
|
+
'--_panel-padding': string;
|
|
122
|
+
'--_separator-margin': string;
|
|
123
|
+
fontSize: string;
|
|
124
|
+
gap: string;
|
|
125
|
+
};
|
|
126
|
+
md: {
|
|
127
|
+
'--_item-padding': string;
|
|
128
|
+
'--_panel-padding': string;
|
|
129
|
+
'--_separator-margin': string;
|
|
130
|
+
fontSize: string;
|
|
131
|
+
gap: string;
|
|
132
|
+
};
|
|
133
|
+
sm: {
|
|
134
|
+
'--_item-padding': string;
|
|
135
|
+
'--_panel-padding': string;
|
|
136
|
+
'--_separator-margin': string;
|
|
137
|
+
fontSize: string;
|
|
138
|
+
gap: string;
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Size preset for `ore-list`'s own host. `ore-list-item` has no `sizeVariantMixin` call of its
|
|
143
|
+
* own — it reads `--_gap`/`--_padding`/`--_padding-inline-end`/`--_font-size`/`--_min-height`/
|
|
144
|
+
* `--_min-height-two-line` inherited straight from its parent `ore-list`'s shadow host (custom
|
|
145
|
+
* properties cascade through light-DOM children the same way `MENU_SIZE_PRESET` cascades from
|
|
146
|
+
* `ore-menu` into `ore-menu-item`), with fallback defaults for standalone use outside an
|
|
147
|
+
* `ore-list`.
|
|
148
|
+
*
|
|
149
|
+
* Follows Material 3's list-item spacing at `md`/`lg`: 16dp between leading/content/trailing
|
|
150
|
+
* (`gap`), 16dp inline-start (`padding`), 24dp inline-end (`--_padding-inline-end` — the trailing
|
|
151
|
+
* edge sits 8dp further out than the other three sides in the M3 spec), 56dp one-line / 72dp
|
|
152
|
+
* two-line row height (`--_min-height`/`--_min-height-two-line`, applied in `list-item.css`).
|
|
153
|
+
* `sm` keeps the same asymmetry and the M3/WCAG 48dp touch-target floor proportionally, for a
|
|
154
|
+
* denser list that still reads as "M3-like" rather than hitting the exact dp values M3 doesn't
|
|
155
|
+
* itself define an alternate density for.
|
|
156
|
+
*/
|
|
157
|
+
export declare const LIST_SIZE_PRESET: {
|
|
158
|
+
lg: {
|
|
159
|
+
'--_min-height': string;
|
|
160
|
+
'--_min-height-two-line': string;
|
|
161
|
+
'--_padding-inline-end': string;
|
|
162
|
+
fontSize: string;
|
|
163
|
+
gap: string;
|
|
164
|
+
padding: string;
|
|
165
|
+
};
|
|
166
|
+
md: {
|
|
167
|
+
'--_min-height': string;
|
|
168
|
+
'--_min-height-two-line': string;
|
|
169
|
+
'--_padding-inline-end': string;
|
|
170
|
+
fontSize: string;
|
|
171
|
+
gap: string;
|
|
172
|
+
padding: string;
|
|
173
|
+
};
|
|
174
|
+
sm: {
|
|
175
|
+
'--_min-height': string;
|
|
176
|
+
'--_min-height-two-line': string;
|
|
177
|
+
'--_padding-inline-end': string;
|
|
178
|
+
fontSize: string;
|
|
179
|
+
gap: string;
|
|
180
|
+
padding: string;
|
|
181
|
+
};
|
|
182
|
+
};
|
|
109
183
|
/** Shared size preset for the file-input dropzone. */
|
|
110
184
|
export declare const FILE_INPUT_SIZE_PRESET: {
|
|
111
185
|
lg: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"size-presets.d.ts","sourceRoot":"","sources":["../../src/shared/size-presets.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;CAmBJ,CAAC;AAE3B,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;CAgBP,CAAC;AAE3B,uEAAuE;AACvE,eAAO,MAAM,mBAAmB;;;;;;;;;;;CAWH,CAAC;AAE9B,wDAAwD;AACxD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;CAeF,CAAC;AAE9B,qDAAqD;AACrD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;CAgBL,CAAC;AAE3B;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;CAgBf,CAAC;AAE3B,sDAAsD;AACtD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;CAaT,CAAC"}
|
|
1
|
+
{"version":3,"file":"size-presets.d.ts","sourceRoot":"","sources":["../../src/shared/size-presets.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;CAmBJ,CAAC;AAE3B,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;CAgBP,CAAC;AAE3B,uEAAuE;AACvE,eAAO,MAAM,mBAAmB;;;;;;;;;;;CAWH,CAAC;AAE9B,wDAAwD;AACxD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;CAeF,CAAC;AAE9B,qDAAqD;AACrD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;CAgBL,CAAC;AAE3B;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;CAgBf,CAAC;AAE3B;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;CAsBH,CAAC;AAE3B;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;CAyBH,CAAC;AAE3B,sDAAsD;AACtD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;CAaT,CAAC"}
|
|
@@ -93,6 +93,53 @@ var e = {
|
|
|
93
93
|
gap: "var(--size-1-5)"
|
|
94
94
|
}
|
|
95
95
|
}, o = {
|
|
96
|
+
lg: {
|
|
97
|
+
"--_item-padding": "var(--size-2) var(--size-3-5)",
|
|
98
|
+
"--_panel-padding": "var(--size-1-5)",
|
|
99
|
+
"--_separator-margin": "var(--size-1-5)",
|
|
100
|
+
fontSize: "var(--text-base)",
|
|
101
|
+
gap: "var(--size-2-5)"
|
|
102
|
+
},
|
|
103
|
+
md: {
|
|
104
|
+
"--_item-padding": "var(--size-1-5) var(--size-3)",
|
|
105
|
+
"--_panel-padding": "var(--size-1)",
|
|
106
|
+
"--_separator-margin": "var(--size-1)",
|
|
107
|
+
fontSize: "var(--text-sm)",
|
|
108
|
+
gap: "var(--size-2)"
|
|
109
|
+
},
|
|
110
|
+
sm: {
|
|
111
|
+
"--_item-padding": "var(--size-1) var(--size-2-5)",
|
|
112
|
+
"--_panel-padding": "var(--size-0-5)",
|
|
113
|
+
"--_separator-margin": "var(--size-0-5)",
|
|
114
|
+
fontSize: "var(--text-xs)",
|
|
115
|
+
gap: "var(--size-1-5)"
|
|
116
|
+
}
|
|
117
|
+
}, s = {
|
|
118
|
+
lg: {
|
|
119
|
+
"--_min-height": "var(--size-14)",
|
|
120
|
+
"--_min-height-two-line": "calc(var(--size-16) + var(--size-2))",
|
|
121
|
+
"--_padding-inline-end": "var(--size-6)",
|
|
122
|
+
fontSize: "var(--text-base)",
|
|
123
|
+
gap: "var(--size-4)",
|
|
124
|
+
padding: "var(--size-3) var(--size-4)"
|
|
125
|
+
},
|
|
126
|
+
md: {
|
|
127
|
+
"--_min-height": "var(--size-14)",
|
|
128
|
+
"--_min-height-two-line": "calc(var(--size-16) + var(--size-2))",
|
|
129
|
+
"--_padding-inline-end": "var(--size-6)",
|
|
130
|
+
fontSize: "var(--text-sm)",
|
|
131
|
+
gap: "var(--size-4)",
|
|
132
|
+
padding: "var(--size-2-5) var(--size-4)"
|
|
133
|
+
},
|
|
134
|
+
sm: {
|
|
135
|
+
"--_min-height": "var(--size-12)",
|
|
136
|
+
"--_min-height-two-line": "var(--size-16)",
|
|
137
|
+
"--_padding-inline-end": "var(--size-4)",
|
|
138
|
+
fontSize: "var(--text-xs)",
|
|
139
|
+
gap: "var(--size-2)",
|
|
140
|
+
padding: "var(--size-1-5) var(--size-2)"
|
|
141
|
+
}
|
|
142
|
+
}, c = {
|
|
96
143
|
lg: {
|
|
97
144
|
"--_min-height": "var(--size-40)",
|
|
98
145
|
fontSize: "var(--text-base)"
|
|
@@ -107,6 +154,6 @@ var e = {
|
|
|
107
154
|
}
|
|
108
155
|
};
|
|
109
156
|
//#endregion
|
|
110
|
-
export { n as CONTROL_SIZE_PRESET, e as FIELD_SIZE_PRESET,
|
|
157
|
+
export { n as CONTROL_SIZE_PRESET, e as FIELD_SIZE_PRESET, c as FILE_INPUT_SIZE_PRESET, s as LIST_SIZE_PRESET, o as MENU_SIZE_PRESET, a as MESSAGE_COMPOSER_SIZE_PRESET, i as SLIDER_SIZE_PRESET, r as SWITCH_SIZE_PRESET, t as TEXTAREA_SIZE_PRESET };
|
|
111
158
|
|
|
112
159
|
//# sourceMappingURL=size-presets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"size-presets.js","names":[],"sources":["../../src/shared/size-presets.ts"],"sourcesContent":["import type { SizeConfig } from '../styles/mixins/shape.css';\nimport type { ComponentSize } from './types';\n\n/** A preset with an entry for every ComponentSize key. */\ntype FullSizePreset = Record<ComponentSize, SizeConfig>;\n\n/** A preset that may omit some ComponentSize keys (sizeVariantMixin fills the gaps with its defaults). */\ntype PartialSizePreset = Partial<Record<ComponentSize, SizeConfig>>;\n\nexport const FIELD_SIZE_PRESET = {\n lg: {\n '--_field-height': 'var(--size-12)',\n '--_padding': 'var(--size-2-5) var(--size-3-5)',\n fontSize: 'var(--text-base)',\n gap: 'var(--size-2-5)',\n },\n md: {\n '--_field-height': 'var(--size-10)',\n '--_padding': 'var(--size-1-5) var(--size-3)',\n fontSize: 'var(--text-sm)',\n gap: 'var(--size-2)',\n },\n sm: {\n '--_field-height': 'var(--size-8)',\n '--_padding': 'var(--size-1) var(--size-2)',\n fontSize: 'var(--text-xs)',\n gap: 'var(--size-1-5)',\n },\n} satisfies FullSizePreset;\n\nexport const TEXTAREA_SIZE_PRESET = {\n lg: {\n '--_padding': 'var(--size-2-5) var(--size-3-5)',\n fontSize: 'var(--text-base)',\n gap: 'var(--size-2-5)',\n },\n md: {\n '--_padding': 'var(--size-1-5) var(--size-3)',\n fontSize: 'var(--text-sm)',\n gap: 'var(--size-2)',\n },\n sm: {\n '--_padding': 'var(--size-1) var(--size-2)',\n fontSize: 'var(--text-xs)',\n gap: 'var(--size-1-5)',\n },\n} satisfies FullSizePreset;\n\n/** Shared size preset for checkbox and radio (icon + label layout). */\nexport const CONTROL_SIZE_PRESET = {\n lg: {\n fontSize: 'var(--text-base)',\n gap: 'var(--size-2-5)',\n size: 'var(--size-6)',\n },\n sm: {\n fontSize: 'var(--text-xs)',\n gap: 'var(--size-1-5)',\n size: 'var(--size-4)',\n },\n} satisfies PartialSizePreset;\n\n/** Shared size preset for the switch toggle control. */\nexport const SWITCH_SIZE_PRESET = {\n lg: {\n fontSize: 'var(--text-base)',\n gap: 'var(--size-3)',\n height: 'var(--size-7)',\n thumbSize: 'var(--size-6)',\n width: 'var(--size-14)',\n },\n sm: {\n fontSize: 'var(--text-xs)',\n gap: 'var(--size-2)',\n height: 'var(--size-5)',\n thumbSize: 'var(--size-4)',\n width: 'var(--size-9)',\n },\n} satisfies PartialSizePreset;\n\n/** Shared size preset for the slider track/thumb. */\nexport const SLIDER_SIZE_PRESET = {\n lg: {\n fontSize: 'var(--text-base)',\n height: 'calc(var(--size-5) - var(--size-1))',\n size: 'var(--size-5)',\n },\n md: {\n fontSize: 'var(--text-base)',\n height: 'var(--size-3)',\n size: 'var(--size-5)',\n },\n sm: {\n fontSize: 'var(--text-xs)',\n height: 'var(--size-2)',\n size: 'var(--size-4)',\n },\n} satisfies FullSizePreset;\n\n/**\n * Size preset for the message composer card. Padding is symmetric (unlike\n * `TEXTAREA_SIZE_PRESET`'s field-shaped padding) since this scales a card that wraps a field\n * *and* a toolbar row, not a bare field — `md`'s padding matches the value the card used before\n * `size` scaled anything, so the default look is unchanged.\n */\nexport const MESSAGE_COMPOSER_SIZE_PRESET = {\n lg: {\n '--_padding': 'var(--size-4)',\n fontSize: 'var(--text-base)',\n gap: 'var(--size-2-5)',\n },\n md: {\n '--_padding': 'var(--size-3)',\n fontSize: 'var(--text-sm)',\n gap: 'var(--size-2)',\n },\n sm: {\n '--_padding': 'var(--size-2)',\n fontSize: 'var(--text-xs)',\n gap: 'var(--size-1-5)',\n },\n} satisfies FullSizePreset;\n\n/** Shared size preset for the file-input dropzone. */\nexport const FILE_INPUT_SIZE_PRESET = {\n lg: {\n '--_min-height': 'var(--size-40)',\n fontSize: 'var(--text-base)',\n },\n md: {\n '--_min-height': 'var(--size-32)',\n fontSize: 'var(--text-sm)',\n },\n sm: {\n '--_min-height': 'var(--size-28)',\n fontSize: 'var(--text-xs)',\n },\n} satisfies FullSizePreset;\n"],"mappings":";AASA,IAAa,IAAoB;CAC/B,IAAI;EACF,mBAAmB;EACnB,cAAc;EACd,UAAU;EACV,KAAK;CACP;CACA,IAAI;EACF,mBAAmB;EACnB,cAAc;EACd,UAAU;EACV,KAAK;CACP;CACA,IAAI;EACF,mBAAmB;EACnB,cAAc;EACd,UAAU;EACV,KAAK;CACP;AACF,GAEa,IAAuB;CAClC,IAAI;EACF,cAAc;EACd,UAAU;EACV,KAAK;CACP;CACA,IAAI;EACF,cAAc;EACd,UAAU;EACV,KAAK;CACP;CACA,IAAI;EACF,cAAc;EACd,UAAU;EACV,KAAK;CACP;AACF,GAGa,IAAsB;CACjC,IAAI;EACF,UAAU;EACV,KAAK;EACL,MAAM;CACR;CACA,IAAI;EACF,UAAU;EACV,KAAK;EACL,MAAM;CACR;AACF,GAGa,IAAqB;CAChC,IAAI;EACF,UAAU;EACV,KAAK;EACL,QAAQ;EACR,WAAW;EACX,OAAO;CACT;CACA,IAAI;EACF,UAAU;EACV,KAAK;EACL,QAAQ;EACR,WAAW;EACX,OAAO;CACT;AACF,GAGa,IAAqB;CAChC,IAAI;EACF,UAAU;EACV,QAAQ;EACR,MAAM;CACR;CACA,IAAI;EACF,UAAU;EACV,QAAQ;EACR,MAAM;CACR;CACA,IAAI;EACF,UAAU;EACV,QAAQ;EACR,MAAM;CACR;AACF,GAQa,IAA+B;CAC1C,IAAI;EACF,cAAc;EACd,UAAU;EACV,KAAK;CACP;CACA,IAAI;EACF,cAAc;EACd,UAAU;EACV,KAAK;CACP;CACA,IAAI;EACF,cAAc;EACd,UAAU;EACV,KAAK;CACP;AACF,GAGa,IAAyB;CACpC,IAAI;EACF,iBAAiB;EACjB,UAAU;CACZ;CACA,IAAI;EACF,iBAAiB;EACjB,UAAU;CACZ;CACA,IAAI;EACF,iBAAiB;EACjB,UAAU;CACZ;AACF"}
|
|
1
|
+
{"version":3,"file":"size-presets.js","names":[],"sources":["../../src/shared/size-presets.ts"],"sourcesContent":["import type { SizeConfig } from '../styles/mixins/shape.css';\nimport type { ComponentSize } from './types';\n\n/** A preset with an entry for every ComponentSize key. */\ntype FullSizePreset = Record<ComponentSize, SizeConfig>;\n\n/** A preset that may omit some ComponentSize keys (sizeVariantMixin fills the gaps with its defaults). */\ntype PartialSizePreset = Partial<Record<ComponentSize, SizeConfig>>;\n\nexport const FIELD_SIZE_PRESET = {\n lg: {\n '--_field-height': 'var(--size-12)',\n '--_padding': 'var(--size-2-5) var(--size-3-5)',\n fontSize: 'var(--text-base)',\n gap: 'var(--size-2-5)',\n },\n md: {\n '--_field-height': 'var(--size-10)',\n '--_padding': 'var(--size-1-5) var(--size-3)',\n fontSize: 'var(--text-sm)',\n gap: 'var(--size-2)',\n },\n sm: {\n '--_field-height': 'var(--size-8)',\n '--_padding': 'var(--size-1) var(--size-2)',\n fontSize: 'var(--text-xs)',\n gap: 'var(--size-1-5)',\n },\n} satisfies FullSizePreset;\n\nexport const TEXTAREA_SIZE_PRESET = {\n lg: {\n '--_padding': 'var(--size-2-5) var(--size-3-5)',\n fontSize: 'var(--text-base)',\n gap: 'var(--size-2-5)',\n },\n md: {\n '--_padding': 'var(--size-1-5) var(--size-3)',\n fontSize: 'var(--text-sm)',\n gap: 'var(--size-2)',\n },\n sm: {\n '--_padding': 'var(--size-1) var(--size-2)',\n fontSize: 'var(--text-xs)',\n gap: 'var(--size-1-5)',\n },\n} satisfies FullSizePreset;\n\n/** Shared size preset for checkbox and radio (icon + label layout). */\nexport const CONTROL_SIZE_PRESET = {\n lg: {\n fontSize: 'var(--text-base)',\n gap: 'var(--size-2-5)',\n size: 'var(--size-6)',\n },\n sm: {\n fontSize: 'var(--text-xs)',\n gap: 'var(--size-1-5)',\n size: 'var(--size-4)',\n },\n} satisfies PartialSizePreset;\n\n/** Shared size preset for the switch toggle control. */\nexport const SWITCH_SIZE_PRESET = {\n lg: {\n fontSize: 'var(--text-base)',\n gap: 'var(--size-3)',\n height: 'var(--size-7)',\n thumbSize: 'var(--size-6)',\n width: 'var(--size-14)',\n },\n sm: {\n fontSize: 'var(--text-xs)',\n gap: 'var(--size-2)',\n height: 'var(--size-5)',\n thumbSize: 'var(--size-4)',\n width: 'var(--size-9)',\n },\n} satisfies PartialSizePreset;\n\n/** Shared size preset for the slider track/thumb. */\nexport const SLIDER_SIZE_PRESET = {\n lg: {\n fontSize: 'var(--text-base)',\n height: 'calc(var(--size-5) - var(--size-1))',\n size: 'var(--size-5)',\n },\n md: {\n fontSize: 'var(--text-base)',\n height: 'var(--size-3)',\n size: 'var(--size-5)',\n },\n sm: {\n fontSize: 'var(--text-xs)',\n height: 'var(--size-2)',\n size: 'var(--size-4)',\n },\n} satisfies FullSizePreset;\n\n/**\n * Size preset for the message composer card. Padding is symmetric (unlike\n * `TEXTAREA_SIZE_PRESET`'s field-shaped padding) since this scales a card that wraps a field\n * *and* a toolbar row, not a bare field — `md`'s padding matches the value the card used before\n * `size` scaled anything, so the default look is unchanged.\n */\nexport const MESSAGE_COMPOSER_SIZE_PRESET = {\n lg: {\n '--_padding': 'var(--size-4)',\n fontSize: 'var(--text-base)',\n gap: 'var(--size-2-5)',\n },\n md: {\n '--_padding': 'var(--size-3)',\n fontSize: 'var(--text-sm)',\n gap: 'var(--size-2)',\n },\n sm: {\n '--_padding': 'var(--size-2)',\n fontSize: 'var(--text-xs)',\n gap: 'var(--size-1-5)',\n },\n} satisfies FullSizePreset;\n\n/**\n * Size preset for `ore-menu`'s floating panel, `ore-menu-item`'s row, and `ore-menu-separator`'s\n * margin. `--_panel-padding`, `--_item-padding`, and `--_separator-margin` are custom pass-through\n * keys (not one of `SizeConfig`'s named slots) since the panel, its items, and its separators each\n * need independently-scaling spacing; `md`'s values match what `menu.css`/`menu-item.css`/\n * `menu-separator.css` hardcoded before `size` was wired up, so the default look is unchanged.\n * `--_font-size`/`--_gap` are inherited by `ore-menu-item` from `ore-menu`'s own host — custom\n * properties cascade down through light-DOM children the same way they cascade into a shadow root.\n */\nexport const MENU_SIZE_PRESET = {\n lg: {\n '--_item-padding': 'var(--size-2) var(--size-3-5)',\n '--_panel-padding': 'var(--size-1-5)',\n '--_separator-margin': 'var(--size-1-5)',\n fontSize: 'var(--text-base)',\n gap: 'var(--size-2-5)',\n },\n md: {\n '--_item-padding': 'var(--size-1-5) var(--size-3)',\n '--_panel-padding': 'var(--size-1)',\n '--_separator-margin': 'var(--size-1)',\n fontSize: 'var(--text-sm)',\n gap: 'var(--size-2)',\n },\n sm: {\n '--_item-padding': 'var(--size-1) var(--size-2-5)',\n '--_panel-padding': 'var(--size-0-5)',\n '--_separator-margin': 'var(--size-0-5)',\n fontSize: 'var(--text-xs)',\n gap: 'var(--size-1-5)',\n },\n} satisfies FullSizePreset;\n\n/**\n * Size preset for `ore-list`'s own host. `ore-list-item` has no `sizeVariantMixin` call of its\n * own — it reads `--_gap`/`--_padding`/`--_padding-inline-end`/`--_font-size`/`--_min-height`/\n * `--_min-height-two-line` inherited straight from its parent `ore-list`'s shadow host (custom\n * properties cascade through light-DOM children the same way `MENU_SIZE_PRESET` cascades from\n * `ore-menu` into `ore-menu-item`), with fallback defaults for standalone use outside an\n * `ore-list`.\n *\n * Follows Material 3's list-item spacing at `md`/`lg`: 16dp between leading/content/trailing\n * (`gap`), 16dp inline-start (`padding`), 24dp inline-end (`--_padding-inline-end` — the trailing\n * edge sits 8dp further out than the other three sides in the M3 spec), 56dp one-line / 72dp\n * two-line row height (`--_min-height`/`--_min-height-two-line`, applied in `list-item.css`).\n * `sm` keeps the same asymmetry and the M3/WCAG 48dp touch-target floor proportionally, for a\n * denser list that still reads as \"M3-like\" rather than hitting the exact dp values M3 doesn't\n * itself define an alternate density for.\n */\nexport const LIST_SIZE_PRESET = {\n lg: {\n '--_min-height': 'var(--size-14)',\n '--_min-height-two-line': 'calc(var(--size-16) + var(--size-2))',\n '--_padding-inline-end': 'var(--size-6)',\n fontSize: 'var(--text-base)',\n gap: 'var(--size-4)',\n padding: 'var(--size-3) var(--size-4)',\n },\n md: {\n '--_min-height': 'var(--size-14)',\n '--_min-height-two-line': 'calc(var(--size-16) + var(--size-2))',\n '--_padding-inline-end': 'var(--size-6)',\n fontSize: 'var(--text-sm)',\n gap: 'var(--size-4)',\n padding: 'var(--size-2-5) var(--size-4)',\n },\n sm: {\n '--_min-height': 'var(--size-12)',\n '--_min-height-two-line': 'var(--size-16)',\n '--_padding-inline-end': 'var(--size-4)',\n fontSize: 'var(--text-xs)',\n gap: 'var(--size-2)',\n padding: 'var(--size-1-5) var(--size-2)',\n },\n} satisfies FullSizePreset;\n\n/** Shared size preset for the file-input dropzone. */\nexport const FILE_INPUT_SIZE_PRESET = {\n lg: {\n '--_min-height': 'var(--size-40)',\n fontSize: 'var(--text-base)',\n },\n md: {\n '--_min-height': 'var(--size-32)',\n fontSize: 'var(--text-sm)',\n },\n sm: {\n '--_min-height': 'var(--size-28)',\n fontSize: 'var(--text-xs)',\n },\n} satisfies FullSizePreset;\n"],"mappings":";AASA,IAAa,IAAoB;CAC/B,IAAI;EACF,mBAAmB;EACnB,cAAc;EACd,UAAU;EACV,KAAK;CACP;CACA,IAAI;EACF,mBAAmB;EACnB,cAAc;EACd,UAAU;EACV,KAAK;CACP;CACA,IAAI;EACF,mBAAmB;EACnB,cAAc;EACd,UAAU;EACV,KAAK;CACP;AACF,GAEa,IAAuB;CAClC,IAAI;EACF,cAAc;EACd,UAAU;EACV,KAAK;CACP;CACA,IAAI;EACF,cAAc;EACd,UAAU;EACV,KAAK;CACP;CACA,IAAI;EACF,cAAc;EACd,UAAU;EACV,KAAK;CACP;AACF,GAGa,IAAsB;CACjC,IAAI;EACF,UAAU;EACV,KAAK;EACL,MAAM;CACR;CACA,IAAI;EACF,UAAU;EACV,KAAK;EACL,MAAM;CACR;AACF,GAGa,IAAqB;CAChC,IAAI;EACF,UAAU;EACV,KAAK;EACL,QAAQ;EACR,WAAW;EACX,OAAO;CACT;CACA,IAAI;EACF,UAAU;EACV,KAAK;EACL,QAAQ;EACR,WAAW;EACX,OAAO;CACT;AACF,GAGa,IAAqB;CAChC,IAAI;EACF,UAAU;EACV,QAAQ;EACR,MAAM;CACR;CACA,IAAI;EACF,UAAU;EACV,QAAQ;EACR,MAAM;CACR;CACA,IAAI;EACF,UAAU;EACV,QAAQ;EACR,MAAM;CACR;AACF,GAQa,IAA+B;CAC1C,IAAI;EACF,cAAc;EACd,UAAU;EACV,KAAK;CACP;CACA,IAAI;EACF,cAAc;EACd,UAAU;EACV,KAAK;CACP;CACA,IAAI;EACF,cAAc;EACd,UAAU;EACV,KAAK;CACP;AACF,GAWa,IAAmB;CAC9B,IAAI;EACF,mBAAmB;EACnB,oBAAoB;EACpB,uBAAuB;EACvB,UAAU;EACV,KAAK;CACP;CACA,IAAI;EACF,mBAAmB;EACnB,oBAAoB;EACpB,uBAAuB;EACvB,UAAU;EACV,KAAK;CACP;CACA,IAAI;EACF,mBAAmB;EACnB,oBAAoB;EACpB,uBAAuB;EACvB,UAAU;EACV,KAAK;CACP;AACF,GAkBa,IAAmB;CAC9B,IAAI;EACF,iBAAiB;EACjB,0BAA0B;EAC1B,yBAAyB;EACzB,UAAU;EACV,KAAK;EACL,SAAS;CACX;CACA,IAAI;EACF,iBAAiB;EACjB,0BAA0B;EAC1B,yBAAyB;EACzB,UAAU;EACV,KAAK;EACL,SAAS;CACX;CACA,IAAI;EACF,iBAAiB;EACjB,0BAA0B;EAC1B,yBAAyB;EACzB,UAAU;EACV,KAAK;EACL,SAAS;CACX;AACF,GAGa,IAAyB;CACpC,IAAI;EACF,iBAAiB;EACjB,UAAU;CACZ;CACA,IAAI;EACF,iBAAiB;EACjB,UAAU;CACZ;CACA,IAAI;EACF,iBAAiB;EACjB,UAAU;CACZ;AACF"}
|
package/dist/shared/types.d.ts
CHANGED
|
@@ -58,6 +58,11 @@ export type BaseFormProps = {
|
|
|
58
58
|
'label-placement'?: 'inset' | 'outside';
|
|
59
59
|
name?: string;
|
|
60
60
|
size?: ComponentSize;
|
|
61
|
+
/**
|
|
62
|
+
* Shows an inline green check icon inside the field to confirm the value has passed
|
|
63
|
+
* validation. Ignored while `error` is set — an error always wins.
|
|
64
|
+
*/
|
|
65
|
+
success?: boolean;
|
|
61
66
|
};
|
|
62
67
|
type FieldVisualProps<TVariant extends VisualVariant> = {
|
|
63
68
|
rounded?: RoundedSize | '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
|
package/dist/styles/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./mixins/accessibility.css.cjs"),t=require("./mixins/shape.css.cjs"),n=require("./mixins/states.css.cjs"),r=require("./mixins/theme.css.cjs"),i=require("./mixins/animation.css.cjs"),a=require("./mixins/variants.css.cjs"),o=require("./mixins/table-base.css.cjs");var
|
|
1
|
+
const e=require("./mixins/accessibility.css.cjs"),t=require("./mixins/shape.css.cjs"),n=require("./mixins/states.css.cjs"),r=require("./mixins/theme.css.cjs"),i=require("./mixins/animation.css.cjs"),a=require("./mixins/variants.css.cjs"),o=require("./mixins/field-variants.css.cjs"),s=require("./mixins/table-base.css.cjs");var c=[r.colorThemeMixin,r.elevationMixin,t.paddingMixin,t.roundedVariantMixin],l=[r.colorThemeMixin,e.coarsePointerMixin,e.reducedMotionMixin,t.roundedVariantMixin,n.disabledLoadingMixin];exports.SR_ONLY_INLINE_STYLE=e.SR_ONLY_INLINE_STYLE,exports.coarsePointerMixin=e.coarsePointerMixin,exports.colorThemeMixin=r.colorThemeMixin,exports.disabledLoadingMixin=n.disabledLoadingMixin,exports.disabledStateMixin=n.disabledStateMixin,exports.elevationMixin=r.elevationMixin,exports.fieldMixins=l,exports.fieldVariantMixin=o.fieldVariantMixin,exports.forcedColorsFocusMixin=r.forcedColorsFocusMixin,exports.forcedColorsFormControlMixin=r.forcedColorsFormControlMixin,exports.forcedColorsMixin=r.forcedColorsMixin,exports.frostVariantMixin=a.frostVariantMixin,exports.rainbowEffectMixin=i.rainbowEffectMixin,exports.reducedMotionMixin=e.reducedMotionMixin,exports.roundedVariantMixin=t.roundedVariantMixin,exports.shineEffectMixin=i.shineEffectMixin,exports.sizeVariantMixin=t.sizeVariantMixin,exports.srOnlyMixin=e.srOnlyMixin,exports.surfaceMixins=c,exports.tableBaseMixin=s.tableBaseMixin;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":[],"sources":["../../src/styles/index.ts"],"sourcesContent":["/**\n * Shared Mixins & Effects\n *\n * Reusable CSS mixins for common component patterns.\n */\n\nimport { coarsePointerMixin, reducedMotionMixin } from './mixins/accessibility.css';\nimport { paddingMixin, roundedVariantMixin } from './mixins/shape.css';\nimport { disabledLoadingMixin } from './mixins/states.css';\nimport { colorThemeMixin, elevationMixin } from './mixins/theme.css';\n\n// Accessibility Mixins\nexport { coarsePointerMixin, reducedMotionMixin, SR_ONLY_INLINE_STYLE, srOnlyMixin } from './mixins/accessibility.css';\n// Effects\nexport {\n rainbowEffectMixin,\n registerRainbowProperty,\n registerShineProperty,\n shineEffectMixin,\n} from './mixins/animation.css';\n// Shape Mixins (padding, rounded, size)\nexport { paddingMixin, roundedVariantMixin, sizeVariantMixin } from './mixins/shape.css';\n// State Mixins\nexport { disabledLoadingMixin, disabledStateMixin, loadingStateMixin } from './mixins/states.css';\n// Theme Mixins (color, elevation, forced-colors)\nexport {\n colorThemeMixin,\n elevationMixin,\n forcedColorsFocusMixin,\n forcedColorsFormControlMixin,\n forcedColorsMixin,\n} from './mixins/theme.css';\n// Frost Mixin\nexport { frostVariantMixin } from './mixins/variants.css';\n// Table Base Mixin\nexport { tableBaseMixin } from './mixins/table-base.css';\n\n// ── Preset Arrays ─────────────────────────────────────────────────────────────\n\n/**\n * Base mixins for elevated surface components (box, card).\n * Covers theming, elevation shadows, padding, and border radius.\n *\n * @example\n * ```ts\n * styles: [...surfaceMixins, frostVariantMixin('.box'), componentStyles]\n * ```\n */\nexport const surfaceMixins = [colorThemeMixin, elevationMixin, paddingMixin, roundedVariantMixin] as const;\n\n/**\n * Base mixins shared by every text input component (input, textarea, file-input).\n * Covers theming, coarse-pointer targets, reduced-motion, border radius, and\n * disabled/loading states.\n *\n * **Required additions** (component-specific arguments, so not included here):\n * - `sizeVariantMixin(YOUR_PRESET)` — supply the component's size config.\n * - `forcedColorsFocusMixin(selector)` — **mandatory** for WCAG forced-colors\n * compliance. Pass the CSS selector for the component's focusable inner\n * element (e.g. `'input'`, `'textarea'`, `'.dropzone'`). Omitting this\n * removes the focus ring in Windows High Contrast mode.\n *\n * @example\n * ```ts\n * styles: [...fieldMixins, sizeVariantMixin(FIELD_SIZE_PRESET), forcedColorsFocusMixin('input'), componentStyles]\n * ```\n */\nexport const fieldMixins = [\n colorThemeMixin,\n coarsePointerMixin,\n reducedMotionMixin,\n roundedVariantMixin,\n disabledLoadingMixin,\n] as const;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../../src/styles/index.ts"],"sourcesContent":["/**\n * Shared Mixins & Effects\n *\n * Reusable CSS mixins for common component patterns.\n */\n\nimport { coarsePointerMixin, reducedMotionMixin } from './mixins/accessibility.css';\nimport { paddingMixin, roundedVariantMixin } from './mixins/shape.css';\nimport { disabledLoadingMixin } from './mixins/states.css';\nimport { colorThemeMixin, elevationMixin } from './mixins/theme.css';\n\n// Accessibility Mixins\nexport { coarsePointerMixin, reducedMotionMixin, SR_ONLY_INLINE_STYLE, srOnlyMixin } from './mixins/accessibility.css';\n// Effects\nexport {\n rainbowEffectMixin,\n registerRainbowProperty,\n registerShineProperty,\n shineEffectMixin,\n} from './mixins/animation.css';\n// Shape Mixins (padding, rounded, size)\nexport { paddingMixin, roundedVariantMixin, sizeVariantMixin } from './mixins/shape.css';\n// State Mixins\nexport { disabledLoadingMixin, disabledStateMixin, loadingStateMixin } from './mixins/states.css';\n// Theme Mixins (color, elevation, forced-colors)\nexport {\n colorThemeMixin,\n elevationMixin,\n forcedColorsFocusMixin,\n forcedColorsFormControlMixin,\n forcedColorsMixin,\n} from './mixins/theme.css';\n// Frost Mixin\nexport { frostVariantMixin } from './mixins/variants.css';\n// Field Variant Mixin (solid/flat/bordered/outline/ghost, shared by text-entry fields)\nexport { fieldVariantMixin, type FieldVariantMixinOptions } from './mixins/field-variants.css';\n// Table Base Mixin\nexport { tableBaseMixin } from './mixins/table-base.css';\n\n// ── Preset Arrays ─────────────────────────────────────────────────────────────\n\n/**\n * Base mixins for elevated surface components (box, card).\n * Covers theming, elevation shadows, padding, and border radius.\n *\n * @example\n * ```ts\n * styles: [...surfaceMixins, frostVariantMixin('.box'), componentStyles]\n * ```\n */\nexport const surfaceMixins = [colorThemeMixin, elevationMixin, paddingMixin, roundedVariantMixin] as const;\n\n/**\n * Base mixins shared by every text input component (input, textarea, file-input).\n * Covers theming, coarse-pointer targets, reduced-motion, border radius, and\n * disabled/loading states.\n *\n * **Required additions** (component-specific arguments, so not included here):\n * - `sizeVariantMixin(YOUR_PRESET)` — supply the component's size config.\n * - `forcedColorsFocusMixin(selector)` — **mandatory** for WCAG forced-colors\n * compliance. Pass the CSS selector for the component's focusable inner\n * element (e.g. `'input'`, `'textarea'`, `'.dropzone'`). Omitting this\n * removes the focus ring in Windows High Contrast mode.\n *\n * @example\n * ```ts\n * styles: [...fieldMixins, sizeVariantMixin(FIELD_SIZE_PRESET), forcedColorsFocusMixin('input'), componentStyles]\n * ```\n */\nexport const fieldMixins = [\n colorThemeMixin,\n coarsePointerMixin,\n reducedMotionMixin,\n roundedVariantMixin,\n disabledLoadingMixin,\n] as const;\n"],"mappings":"oUAkDA,IAAa,EAAgB,CAAC,EAAA,gBAAiB,EAAA,eAAgB,EAAA,aAAc,EAAA,mBAAmB,EAmBnF,EAAc,CACzB,EAAA,gBACA,EAAA,mBACA,EAAA,mBACA,EAAA,oBACA,EAAA,oBACF"}
|
package/dist/styles/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export { paddingMixin, roundedVariantMixin, sizeVariantMixin } from './mixins/sh
|
|
|
9
9
|
export { disabledLoadingMixin, disabledStateMixin, loadingStateMixin } from './mixins/states.css';
|
|
10
10
|
export { colorThemeMixin, elevationMixin, forcedColorsFocusMixin, forcedColorsFormControlMixin, forcedColorsMixin, } from './mixins/theme.css';
|
|
11
11
|
export { frostVariantMixin } from './mixins/variants.css';
|
|
12
|
+
export { fieldVariantMixin, type FieldVariantMixinOptions } from './mixins/field-variants.css';
|
|
12
13
|
export { tableBaseMixin } from './mixins/table-base.css';
|
|
13
14
|
/**
|
|
14
15
|
* Base mixins for elevated surface components (box, card).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEvH,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEzF,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAElG,OAAO,EACL,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,4BAA4B,EAC5B,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAIzD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,uJAAgF,CAAC;AAE3G;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,0LAMd,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEvH,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEzF,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAElG,OAAO,EACL,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,4BAA4B,EAC5B,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAE/F,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAIzD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,uJAAgF,CAAC;AAE3G;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,0LAMd,CAAC"}
|
package/dist/styles/index.js
CHANGED
|
@@ -4,14 +4,15 @@ import { disabledLoadingMixin as s, disabledStateMixin as c } from "./mixins/sta
|
|
|
4
4
|
import { colorThemeMixin as l, elevationMixin as u, forcedColorsFocusMixin as d, forcedColorsFormControlMixin as f, forcedColorsMixin as p } from "./mixins/theme.css.js";
|
|
5
5
|
import { rainbowEffectMixin as m, shineEffectMixin as h } from "./mixins/animation.css.js";
|
|
6
6
|
import { frostVariantMixin as g } from "./mixins/variants.css.js";
|
|
7
|
-
import {
|
|
7
|
+
import { fieldVariantMixin as _ } from "./mixins/field-variants.css.js";
|
|
8
|
+
import { tableBaseMixin as v } from "./mixins/table-base.css.js";
|
|
8
9
|
//#region src/styles/index.ts
|
|
9
|
-
var
|
|
10
|
+
var y = [
|
|
10
11
|
l,
|
|
11
12
|
u,
|
|
12
13
|
i,
|
|
13
14
|
a
|
|
14
|
-
],
|
|
15
|
+
], b = [
|
|
15
16
|
l,
|
|
16
17
|
t,
|
|
17
18
|
n,
|
|
@@ -19,6 +20,6 @@ var v = [
|
|
|
19
20
|
s
|
|
20
21
|
];
|
|
21
22
|
//#endregion
|
|
22
|
-
export { e as SR_ONLY_INLINE_STYLE, t as coarsePointerMixin, l as colorThemeMixin, s as disabledLoadingMixin, c as disabledStateMixin, u as elevationMixin,
|
|
23
|
+
export { e as SR_ONLY_INLINE_STYLE, t as coarsePointerMixin, l as colorThemeMixin, s as disabledLoadingMixin, c as disabledStateMixin, u as elevationMixin, b as fieldMixins, _ as fieldVariantMixin, d as forcedColorsFocusMixin, f as forcedColorsFormControlMixin, p as forcedColorsMixin, g as frostVariantMixin, m as rainbowEffectMixin, n as reducedMotionMixin, a as roundedVariantMixin, h as shineEffectMixin, o as sizeVariantMixin, r as srOnlyMixin, y as surfaceMixins, v as tableBaseMixin };
|
|
23
24
|
|
|
24
25
|
//# sourceMappingURL=index.js.map
|
package/dist/styles/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/styles/index.ts"],"sourcesContent":["/**\n * Shared Mixins & Effects\n *\n * Reusable CSS mixins for common component patterns.\n */\n\nimport { coarsePointerMixin, reducedMotionMixin } from './mixins/accessibility.css';\nimport { paddingMixin, roundedVariantMixin } from './mixins/shape.css';\nimport { disabledLoadingMixin } from './mixins/states.css';\nimport { colorThemeMixin, elevationMixin } from './mixins/theme.css';\n\n// Accessibility Mixins\nexport { coarsePointerMixin, reducedMotionMixin, SR_ONLY_INLINE_STYLE, srOnlyMixin } from './mixins/accessibility.css';\n// Effects\nexport {\n rainbowEffectMixin,\n registerRainbowProperty,\n registerShineProperty,\n shineEffectMixin,\n} from './mixins/animation.css';\n// Shape Mixins (padding, rounded, size)\nexport { paddingMixin, roundedVariantMixin, sizeVariantMixin } from './mixins/shape.css';\n// State Mixins\nexport { disabledLoadingMixin, disabledStateMixin, loadingStateMixin } from './mixins/states.css';\n// Theme Mixins (color, elevation, forced-colors)\nexport {\n colorThemeMixin,\n elevationMixin,\n forcedColorsFocusMixin,\n forcedColorsFormControlMixin,\n forcedColorsMixin,\n} from './mixins/theme.css';\n// Frost Mixin\nexport { frostVariantMixin } from './mixins/variants.css';\n// Table Base Mixin\nexport { tableBaseMixin } from './mixins/table-base.css';\n\n// ── Preset Arrays ─────────────────────────────────────────────────────────────\n\n/**\n * Base mixins for elevated surface components (box, card).\n * Covers theming, elevation shadows, padding, and border radius.\n *\n * @example\n * ```ts\n * styles: [...surfaceMixins, frostVariantMixin('.box'), componentStyles]\n * ```\n */\nexport const surfaceMixins = [colorThemeMixin, elevationMixin, paddingMixin, roundedVariantMixin] as const;\n\n/**\n * Base mixins shared by every text input component (input, textarea, file-input).\n * Covers theming, coarse-pointer targets, reduced-motion, border radius, and\n * disabled/loading states.\n *\n * **Required additions** (component-specific arguments, so not included here):\n * - `sizeVariantMixin(YOUR_PRESET)` — supply the component's size config.\n * - `forcedColorsFocusMixin(selector)` — **mandatory** for WCAG forced-colors\n * compliance. Pass the CSS selector for the component's focusable inner\n * element (e.g. `'input'`, `'textarea'`, `'.dropzone'`). Omitting this\n * removes the focus ring in Windows High Contrast mode.\n *\n * @example\n * ```ts\n * styles: [...fieldMixins, sizeVariantMixin(FIELD_SIZE_PRESET), forcedColorsFocusMixin('input'), componentStyles]\n * ```\n */\nexport const fieldMixins = [\n colorThemeMixin,\n coarsePointerMixin,\n reducedMotionMixin,\n roundedVariantMixin,\n disabledLoadingMixin,\n] as const;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/styles/index.ts"],"sourcesContent":["/**\n * Shared Mixins & Effects\n *\n * Reusable CSS mixins for common component patterns.\n */\n\nimport { coarsePointerMixin, reducedMotionMixin } from './mixins/accessibility.css';\nimport { paddingMixin, roundedVariantMixin } from './mixins/shape.css';\nimport { disabledLoadingMixin } from './mixins/states.css';\nimport { colorThemeMixin, elevationMixin } from './mixins/theme.css';\n\n// Accessibility Mixins\nexport { coarsePointerMixin, reducedMotionMixin, SR_ONLY_INLINE_STYLE, srOnlyMixin } from './mixins/accessibility.css';\n// Effects\nexport {\n rainbowEffectMixin,\n registerRainbowProperty,\n registerShineProperty,\n shineEffectMixin,\n} from './mixins/animation.css';\n// Shape Mixins (padding, rounded, size)\nexport { paddingMixin, roundedVariantMixin, sizeVariantMixin } from './mixins/shape.css';\n// State Mixins\nexport { disabledLoadingMixin, disabledStateMixin, loadingStateMixin } from './mixins/states.css';\n// Theme Mixins (color, elevation, forced-colors)\nexport {\n colorThemeMixin,\n elevationMixin,\n forcedColorsFocusMixin,\n forcedColorsFormControlMixin,\n forcedColorsMixin,\n} from './mixins/theme.css';\n// Frost Mixin\nexport { frostVariantMixin } from './mixins/variants.css';\n// Field Variant Mixin (solid/flat/bordered/outline/ghost, shared by text-entry fields)\nexport { fieldVariantMixin, type FieldVariantMixinOptions } from './mixins/field-variants.css';\n// Table Base Mixin\nexport { tableBaseMixin } from './mixins/table-base.css';\n\n// ── Preset Arrays ─────────────────────────────────────────────────────────────\n\n/**\n * Base mixins for elevated surface components (box, card).\n * Covers theming, elevation shadows, padding, and border radius.\n *\n * @example\n * ```ts\n * styles: [...surfaceMixins, frostVariantMixin('.box'), componentStyles]\n * ```\n */\nexport const surfaceMixins = [colorThemeMixin, elevationMixin, paddingMixin, roundedVariantMixin] as const;\n\n/**\n * Base mixins shared by every text input component (input, textarea, file-input).\n * Covers theming, coarse-pointer targets, reduced-motion, border radius, and\n * disabled/loading states.\n *\n * **Required additions** (component-specific arguments, so not included here):\n * - `sizeVariantMixin(YOUR_PRESET)` — supply the component's size config.\n * - `forcedColorsFocusMixin(selector)` — **mandatory** for WCAG forced-colors\n * compliance. Pass the CSS selector for the component's focusable inner\n * element (e.g. `'input'`, `'textarea'`, `'.dropzone'`). Omitting this\n * removes the focus ring in Windows High Contrast mode.\n *\n * @example\n * ```ts\n * styles: [...fieldMixins, sizeVariantMixin(FIELD_SIZE_PRESET), forcedColorsFocusMixin('input'), componentStyles]\n * ```\n */\nexport const fieldMixins = [\n colorThemeMixin,\n coarsePointerMixin,\n reducedMotionMixin,\n roundedVariantMixin,\n disabledLoadingMixin,\n] as const;\n"],"mappings":";;;;;;;;;AAkDA,IAAa,IAAgB;CAAC;CAAiB;CAAgB;CAAc;AAAmB,GAmBnF,IAAc;CACzB;CACA;CACA;CACA;CACA;AACF"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
let e=require("@vielzeug/ore");var t=({accentVar:t=`--_theme-focus`,container:n,text:r=n,tokenPrefix:i})=>e.css`
|
|
2
|
+
@layer refine.variants {
|
|
3
|
+
/* Solid (default) */
|
|
4
|
+
:host(:not([variant])),
|
|
5
|
+
:host([variant='solid']) {
|
|
6
|
+
--_bg: var(--${i}-bg, var(--color-contrast-50));
|
|
7
|
+
--_border-color: var(--${i}-border-color, var(--color-contrast-300));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
:host(:not([variant])) ${n}, :host([variant='solid']) ${n} {
|
|
11
|
+
box-shadow: var(--shadow-2xs);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/* Flat */
|
|
15
|
+
:host([variant='flat']) {
|
|
16
|
+
--_bg: var(--${i}-bg, var(--color-contrast-100));
|
|
17
|
+
--_border-color: var(--${i}-border-color, color-mix(in oklch, var(${t}) 20%, transparent));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
:host([variant='flat']) ${n} {
|
|
21
|
+
box-shadow: var(--inset-shadow-2xs);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:host([variant='flat']:not([disabled])) ${n}:hover {
|
|
25
|
+
background: var(--${i}-hover-bg, color-mix(in oklch, var(--_theme-base) 6%, var(--color-contrast-100)));
|
|
26
|
+
border-color: var(
|
|
27
|
+
--${i}-hover-border-color,
|
|
28
|
+
color-mix(in oklch, var(--_theme-base) 35%, var(--color-contrast-300))
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
:host([variant='flat']:not([disabled])) ${n}:focus-within {
|
|
33
|
+
background: var(--${i}-focus-bg, color-mix(in oklch, var(--_theme-base) 8%, var(--color-canvas)));
|
|
34
|
+
border-color: var(--${i}-focus-border-color, color-mix(in oklch, var(${t}) 60%, transparent));
|
|
35
|
+
box-shadow: var(--_theme-shadow);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* Bordered */
|
|
39
|
+
:host([variant='bordered']) {
|
|
40
|
+
--_bg: var(--${i}-bg, var(--_theme-backdrop));
|
|
41
|
+
--_border-color: var(--${i}-border-color, color-mix(in oklch, var(${t}) 70%, transparent));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
:host([variant='bordered']:not([disabled])) ${n}:hover {
|
|
45
|
+
border-color: var(--${i}-hover-border-color, var(${t}));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:host([variant='bordered']) ${r} {
|
|
49
|
+
color: var(--_theme-base);
|
|
50
|
+
caret-color: var(--_theme-base);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
:host([variant='bordered']) ${r}::placeholder {
|
|
54
|
+
color: var(--${i}-placeholder-color, color-mix(in oklch, var(--_theme-base) 45%, transparent));
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* Outline — border always visible, so unlike the other variants it can't lean on a
|
|
58
|
+
per-component \`:host{}\` base fallback for \`--_border-color\` that may or may not exist
|
|
59
|
+
(\`ore-message-composer\` has none — every other rule here sets both custom properties, so
|
|
60
|
+
its base layer omits a default on the assumption that always holds). Set explicitly. */
|
|
61
|
+
:host([variant='outline']) {
|
|
62
|
+
--_bg: var(--${i}-bg, transparent);
|
|
63
|
+
--_border-color: var(--${i}-border-color, var(--color-contrast-300));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
:host([variant='outline']) ${n} {
|
|
67
|
+
box-shadow: none;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* Ghost */
|
|
71
|
+
:host([variant='ghost']) {
|
|
72
|
+
--_bg: var(--${i}-bg, transparent);
|
|
73
|
+
--_border-color: var(--${i}-border-color, transparent);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
:host([variant='ghost']) ${n} {
|
|
77
|
+
box-shadow: none;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
:host([variant='ghost']:not([disabled])) ${n}:hover {
|
|
81
|
+
background: var(--${i}-hover-bg, var(--color-contrast-100));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
`;exports.fieldVariantMixin=t;
|
|
85
|
+
//# sourceMappingURL=field-variants.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-variants.css.cjs","names":[],"sources":["../../../src/styles/mixins/field-variants.css.ts"],"sourcesContent":["import { css } from '@vielzeug/ore';\n\nexport type FieldVariantMixinOptions = {\n /**\n * The theme accent custom property `flat`/`bordered` mix into their border color. Defaults to\n * `--_theme-focus` (from `colorThemeMixin`). Override for a component with its own distinct\n * focus/accent concept instead of the shared theme token (`ore-otp-input`'s `--_cell-focus-\n * border`, which isn't theme-color-driven the same way).\n */\n accentVar?: string;\n /** Selector for the element that gets the variant's background/border/shadow — the visual \"box\". */\n container: string;\n /**\n * Selector for the text-bearing element the `bordered` variant tints to the theme color.\n * Defaults to `container` for components where the box and the text-bearing element are the\n * same node (`ore-input`/`ore-textarea`'s `.field`). Pass a distinct selector when they're\n * split (`ore-message-composer`'s `.composer` card vs its bare `.field` textarea).\n */\n text?: string;\n /** CSS custom-property namespace, e.g. `'input'` → `--input-bg`, `--input-hover-bg`, ... */\n tokenPrefix: string;\n};\n\n/**\n * The `solid`/`flat`/`bordered`/`outline`/`ghost` variant switch shared by every text-entry\n * field component (`ore-input`, `ore-textarea`, `ore-message-composer`, `ore-otp-input`) —\n * previously hand-duplicated across them, mostly identically but not quite: this version also\n * uniformly adds a `:not([disabled])` guard to the `flat` variant's hover/focus rules (only\n * `ore-message-composer` had it) and the `bordered` variant's text/placeholder/caret tint\n * (`ore-input`/`ore-otp-input` were missing pieces of it) — clearly-unintentional per-component\n * gaps, not deliberate differences, so this mixin converges on the more complete behavior for\n * every consumer rather than picking one component's version arbitrarily.\n *\n * Deliberately does **not** touch `:focus-within` box-shadow for `solid`/`outline`/`ghost` —\n * every current consumer already covers that with its own single `:host(:not([disabled],\n * [variant='flat'], ...)) ${container}:focus-within` catch-all in its *own* base layer, so a\n * copy here would be pure redundancy for them, and actively wrong for `ore-otp-input`: its\n * `.cell` is the focusable element itself (not a wrapper), so `:focus-within` matches on every\n * keystroke, and it already renders its own bespoke ring (colored by `accentVar`, not\n * `--_theme-shadow`) uniformly across all variants in its base layer — this mixin adding a\n * second, generic one would fight it depending on layer/rule order.\n *\n * Each component keeps its own `:host(:not([variant], ...)) ${container}:hover/:focus-within`\n * base-state rules and any variant beyond this shared set (e.g. `ore-input`'s extra `'text'`\n * variant) in its own stylesheet — this mixin only covers the five variants every consumer has\n * in common.\n *\n * @example\n * ```ts\n * // ore-textarea / ore-input (box and text-bearing element are the same `.field`)\n * styles: [..., fieldVariantMixin({ container: '.field', tokenPrefix: 'textarea' }), componentStyles]\n *\n * // ore-message-composer (card `.composer` vs its own bare `.field` textarea)\n * styles: [\n * ...,\n * fieldVariantMixin({ container: '.composer', text: '.field', tokenPrefix: 'message-composer' }),\n * componentStyles,\n * ]\n *\n * // ore-otp-input (own per-cell accent instead of the shared theme-focus token)\n * styles: [\n * ...,\n * fieldVariantMixin({ accentVar: '--_cell-focus-border', container: '.cell', tokenPrefix: 'otp-cell' }),\n * componentStyles,\n * ]\n * ```\n */\nexport const fieldVariantMixin = ({\n accentVar = '--_theme-focus',\n container,\n text = container,\n tokenPrefix,\n}: FieldVariantMixinOptions) => css`\n @layer refine.variants {\n /* Solid (default) */\n :host(:not([variant])),\n :host([variant='solid']) {\n --_bg: var(--${tokenPrefix}-bg, var(--color-contrast-50));\n --_border-color: var(--${tokenPrefix}-border-color, var(--color-contrast-300));\n }\n\n :host(:not([variant])) ${container}, :host([variant='solid']) ${container} {\n box-shadow: var(--shadow-2xs);\n }\n\n /* Flat */\n :host([variant='flat']) {\n --_bg: var(--${tokenPrefix}-bg, var(--color-contrast-100));\n --_border-color: var(--${tokenPrefix}-border-color, color-mix(in oklch, var(${accentVar}) 20%, transparent));\n }\n\n :host([variant='flat']) ${container} {\n box-shadow: var(--inset-shadow-2xs);\n }\n\n :host([variant='flat']:not([disabled])) ${container}:hover {\n background: var(--${tokenPrefix}-hover-bg, color-mix(in oklch, var(--_theme-base) 6%, var(--color-contrast-100)));\n border-color: var(\n --${tokenPrefix}-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])) ${container}:focus-within {\n background: var(--${tokenPrefix}-focus-bg, color-mix(in oklch, var(--_theme-base) 8%, var(--color-canvas)));\n border-color: var(--${tokenPrefix}-focus-border-color, color-mix(in oklch, var(${accentVar}) 60%, transparent));\n box-shadow: var(--_theme-shadow);\n }\n\n /* Bordered */\n :host([variant='bordered']) {\n --_bg: var(--${tokenPrefix}-bg, var(--_theme-backdrop));\n --_border-color: var(--${tokenPrefix}-border-color, color-mix(in oklch, var(${accentVar}) 70%, transparent));\n }\n\n :host([variant='bordered']:not([disabled])) ${container}:hover {\n border-color: var(--${tokenPrefix}-hover-border-color, var(${accentVar}));\n }\n\n :host([variant='bordered']) ${text} {\n color: var(--_theme-base);\n caret-color: var(--_theme-base);\n }\n\n :host([variant='bordered']) ${text}::placeholder {\n color: var(--${tokenPrefix}-placeholder-color, color-mix(in oklch, var(--_theme-base) 45%, transparent));\n }\n\n /* Outline — border always visible, so unlike the other variants it can't lean on a\n per-component \\`:host{}\\` base fallback for \\`--_border-color\\` that may or may not exist\n (\\`ore-message-composer\\` has none — every other rule here sets both custom properties, so\n its base layer omits a default on the assumption that always holds). Set explicitly. */\n :host([variant='outline']) {\n --_bg: var(--${tokenPrefix}-bg, transparent);\n --_border-color: var(--${tokenPrefix}-border-color, var(--color-contrast-300));\n }\n\n :host([variant='outline']) ${container} {\n box-shadow: none;\n }\n\n /* Ghost */\n :host([variant='ghost']) {\n --_bg: var(--${tokenPrefix}-bg, transparent);\n --_border-color: var(--${tokenPrefix}-border-color, transparent);\n }\n\n :host([variant='ghost']) ${container} {\n box-shadow: none;\n }\n\n :host([variant='ghost']:not([disabled])) ${container}:hover {\n background: var(--${tokenPrefix}-hover-bg, var(--color-contrast-100));\n }\n }\n`;\n"],"mappings":"+BAmEA,IAAa,GAAqB,CAChC,YAAY,iBACZ,YACA,OAAO,EACP,iBAC8B,EAAA,GAAG;;;;;qBAKd,EAAY;+BACF,EAAY;;;6BAGd,EAAU,6BAA6B,EAAU;;;;;;qBAMzD,EAAY;+BACF,EAAY,yCAAyC,EAAU;;;8BAGhE,EAAU;;;;8CAIM,EAAU;0BAC9B,EAAY;;YAE1B,EAAY;;;;;8CAKsB,EAAU;0BAC9B,EAAY;4BACV,EAAY,+CAA+C,EAAU;;;;;;qBAM5E,EAAY;+BACF,EAAY,yCAAyC,EAAU;;;kDAG5C,EAAU;4BAChC,EAAY,2BAA2B,EAAU;;;kCAG3C,EAAK;;;;;kCAKL,EAAK;qBAClB,EAAY;;;;;;;;qBAQZ,EAAY;+BACF,EAAY;;;iCAGV,EAAU;;;;;;qBAMtB,EAAY;+BACF,EAAY;;;+BAGZ,EAAU;;;;+CAIM,EAAU;0BAC/B,EAAY"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export type FieldVariantMixinOptions = {
|
|
2
|
+
/**
|
|
3
|
+
* The theme accent custom property `flat`/`bordered` mix into their border color. Defaults to
|
|
4
|
+
* `--_theme-focus` (from `colorThemeMixin`). Override for a component with its own distinct
|
|
5
|
+
* focus/accent concept instead of the shared theme token (`ore-otp-input`'s `--_cell-focus-
|
|
6
|
+
* border`, which isn't theme-color-driven the same way).
|
|
7
|
+
*/
|
|
8
|
+
accentVar?: string;
|
|
9
|
+
/** Selector for the element that gets the variant's background/border/shadow — the visual "box". */
|
|
10
|
+
container: string;
|
|
11
|
+
/**
|
|
12
|
+
* Selector for the text-bearing element the `bordered` variant tints to the theme color.
|
|
13
|
+
* Defaults to `container` for components where the box and the text-bearing element are the
|
|
14
|
+
* same node (`ore-input`/`ore-textarea`'s `.field`). Pass a distinct selector when they're
|
|
15
|
+
* split (`ore-message-composer`'s `.composer` card vs its bare `.field` textarea).
|
|
16
|
+
*/
|
|
17
|
+
text?: string;
|
|
18
|
+
/** CSS custom-property namespace, e.g. `'input'` → `--input-bg`, `--input-hover-bg`, ... */
|
|
19
|
+
tokenPrefix: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* The `solid`/`flat`/`bordered`/`outline`/`ghost` variant switch shared by every text-entry
|
|
23
|
+
* field component (`ore-input`, `ore-textarea`, `ore-message-composer`, `ore-otp-input`) —
|
|
24
|
+
* previously hand-duplicated across them, mostly identically but not quite: this version also
|
|
25
|
+
* uniformly adds a `:not([disabled])` guard to the `flat` variant's hover/focus rules (only
|
|
26
|
+
* `ore-message-composer` had it) and the `bordered` variant's text/placeholder/caret tint
|
|
27
|
+
* (`ore-input`/`ore-otp-input` were missing pieces of it) — clearly-unintentional per-component
|
|
28
|
+
* gaps, not deliberate differences, so this mixin converges on the more complete behavior for
|
|
29
|
+
* every consumer rather than picking one component's version arbitrarily.
|
|
30
|
+
*
|
|
31
|
+
* Deliberately does **not** touch `:focus-within` box-shadow for `solid`/`outline`/`ghost` —
|
|
32
|
+
* every current consumer already covers that with its own single `:host(:not([disabled],
|
|
33
|
+
* [variant='flat'], ...)) ${container}:focus-within` catch-all in its *own* base layer, so a
|
|
34
|
+
* copy here would be pure redundancy for them, and actively wrong for `ore-otp-input`: its
|
|
35
|
+
* `.cell` is the focusable element itself (not a wrapper), so `:focus-within` matches on every
|
|
36
|
+
* keystroke, and it already renders its own bespoke ring (colored by `accentVar`, not
|
|
37
|
+
* `--_theme-shadow`) uniformly across all variants in its base layer — this mixin adding a
|
|
38
|
+
* second, generic one would fight it depending on layer/rule order.
|
|
39
|
+
*
|
|
40
|
+
* Each component keeps its own `:host(:not([variant], ...)) ${container}:hover/:focus-within`
|
|
41
|
+
* base-state rules and any variant beyond this shared set (e.g. `ore-input`'s extra `'text'`
|
|
42
|
+
* variant) in its own stylesheet — this mixin only covers the five variants every consumer has
|
|
43
|
+
* in common.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* // ore-textarea / ore-input (box and text-bearing element are the same `.field`)
|
|
48
|
+
* styles: [..., fieldVariantMixin({ container: '.field', tokenPrefix: 'textarea' }), componentStyles]
|
|
49
|
+
*
|
|
50
|
+
* // ore-message-composer (card `.composer` vs its own bare `.field` textarea)
|
|
51
|
+
* styles: [
|
|
52
|
+
* ...,
|
|
53
|
+
* fieldVariantMixin({ container: '.composer', text: '.field', tokenPrefix: 'message-composer' }),
|
|
54
|
+
* componentStyles,
|
|
55
|
+
* ]
|
|
56
|
+
*
|
|
57
|
+
* // ore-otp-input (own per-cell accent instead of the shared theme-focus token)
|
|
58
|
+
* styles: [
|
|
59
|
+
* ...,
|
|
60
|
+
* fieldVariantMixin({ accentVar: '--_cell-focus-border', container: '.cell', tokenPrefix: 'otp-cell' }),
|
|
61
|
+
* componentStyles,
|
|
62
|
+
* ]
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare const fieldVariantMixin: ({ accentVar, container, text, tokenPrefix, }: FieldVariantMixinOptions) => import("@vielzeug/ore").CSSResult;
|
|
66
|
+
//# sourceMappingURL=field-variants.css.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-variants.css.d.ts","sourceRoot":"","sources":["../../../src/styles/mixins/field-variants.css.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oGAAoG;IACpG,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,iBAAiB,GAAI,8CAK/B,wBAAwB,sCAmF1B,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { css as e } from "@vielzeug/ore";
|
|
2
|
+
//#region src/styles/mixins/field-variants.css.ts
|
|
3
|
+
var t = ({ accentVar: t = "--_theme-focus", container: n, text: r = n, tokenPrefix: i }) => e`
|
|
4
|
+
@layer refine.variants {
|
|
5
|
+
/* Solid (default) */
|
|
6
|
+
:host(:not([variant])),
|
|
7
|
+
:host([variant='solid']) {
|
|
8
|
+
--_bg: var(--${i}-bg, var(--color-contrast-50));
|
|
9
|
+
--_border-color: var(--${i}-border-color, var(--color-contrast-300));
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
:host(:not([variant])) ${n}, :host([variant='solid']) ${n} {
|
|
13
|
+
box-shadow: var(--shadow-2xs);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* Flat */
|
|
17
|
+
:host([variant='flat']) {
|
|
18
|
+
--_bg: var(--${i}-bg, var(--color-contrast-100));
|
|
19
|
+
--_border-color: var(--${i}-border-color, color-mix(in oklch, var(${t}) 20%, transparent));
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
:host([variant='flat']) ${n} {
|
|
23
|
+
box-shadow: var(--inset-shadow-2xs);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
:host([variant='flat']:not([disabled])) ${n}:hover {
|
|
27
|
+
background: var(--${i}-hover-bg, color-mix(in oklch, var(--_theme-base) 6%, var(--color-contrast-100)));
|
|
28
|
+
border-color: var(
|
|
29
|
+
--${i}-hover-border-color,
|
|
30
|
+
color-mix(in oklch, var(--_theme-base) 35%, var(--color-contrast-300))
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
:host([variant='flat']:not([disabled])) ${n}:focus-within {
|
|
35
|
+
background: var(--${i}-focus-bg, color-mix(in oklch, var(--_theme-base) 8%, var(--color-canvas)));
|
|
36
|
+
border-color: var(--${i}-focus-border-color, color-mix(in oklch, var(${t}) 60%, transparent));
|
|
37
|
+
box-shadow: var(--_theme-shadow);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* Bordered */
|
|
41
|
+
:host([variant='bordered']) {
|
|
42
|
+
--_bg: var(--${i}-bg, var(--_theme-backdrop));
|
|
43
|
+
--_border-color: var(--${i}-border-color, color-mix(in oklch, var(${t}) 70%, transparent));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
:host([variant='bordered']:not([disabled])) ${n}:hover {
|
|
47
|
+
border-color: var(--${i}-hover-border-color, var(${t}));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
:host([variant='bordered']) ${r} {
|
|
51
|
+
color: var(--_theme-base);
|
|
52
|
+
caret-color: var(--_theme-base);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
:host([variant='bordered']) ${r}::placeholder {
|
|
56
|
+
color: var(--${i}-placeholder-color, color-mix(in oklch, var(--_theme-base) 45%, transparent));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* Outline — border always visible, so unlike the other variants it can't lean on a
|
|
60
|
+
per-component \`:host{}\` base fallback for \`--_border-color\` that may or may not exist
|
|
61
|
+
(\`ore-message-composer\` has none — every other rule here sets both custom properties, so
|
|
62
|
+
its base layer omits a default on the assumption that always holds). Set explicitly. */
|
|
63
|
+
:host([variant='outline']) {
|
|
64
|
+
--_bg: var(--${i}-bg, transparent);
|
|
65
|
+
--_border-color: var(--${i}-border-color, var(--color-contrast-300));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
:host([variant='outline']) ${n} {
|
|
69
|
+
box-shadow: none;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* Ghost */
|
|
73
|
+
:host([variant='ghost']) {
|
|
74
|
+
--_bg: var(--${i}-bg, transparent);
|
|
75
|
+
--_border-color: var(--${i}-border-color, transparent);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
:host([variant='ghost']) ${n} {
|
|
79
|
+
box-shadow: none;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
:host([variant='ghost']:not([disabled])) ${n}:hover {
|
|
83
|
+
background: var(--${i}-hover-bg, var(--color-contrast-100));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
`;
|
|
87
|
+
//#endregion
|
|
88
|
+
export { t as fieldVariantMixin };
|
|
89
|
+
|
|
90
|
+
//# sourceMappingURL=field-variants.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-variants.css.js","names":[],"sources":["../../../src/styles/mixins/field-variants.css.ts"],"sourcesContent":["import { css } from '@vielzeug/ore';\n\nexport type FieldVariantMixinOptions = {\n /**\n * The theme accent custom property `flat`/`bordered` mix into their border color. Defaults to\n * `--_theme-focus` (from `colorThemeMixin`). Override for a component with its own distinct\n * focus/accent concept instead of the shared theme token (`ore-otp-input`'s `--_cell-focus-\n * border`, which isn't theme-color-driven the same way).\n */\n accentVar?: string;\n /** Selector for the element that gets the variant's background/border/shadow — the visual \"box\". */\n container: string;\n /**\n * Selector for the text-bearing element the `bordered` variant tints to the theme color.\n * Defaults to `container` for components where the box and the text-bearing element are the\n * same node (`ore-input`/`ore-textarea`'s `.field`). Pass a distinct selector when they're\n * split (`ore-message-composer`'s `.composer` card vs its bare `.field` textarea).\n */\n text?: string;\n /** CSS custom-property namespace, e.g. `'input'` → `--input-bg`, `--input-hover-bg`, ... */\n tokenPrefix: string;\n};\n\n/**\n * The `solid`/`flat`/`bordered`/`outline`/`ghost` variant switch shared by every text-entry\n * field component (`ore-input`, `ore-textarea`, `ore-message-composer`, `ore-otp-input`) —\n * previously hand-duplicated across them, mostly identically but not quite: this version also\n * uniformly adds a `:not([disabled])` guard to the `flat` variant's hover/focus rules (only\n * `ore-message-composer` had it) and the `bordered` variant's text/placeholder/caret tint\n * (`ore-input`/`ore-otp-input` were missing pieces of it) — clearly-unintentional per-component\n * gaps, not deliberate differences, so this mixin converges on the more complete behavior for\n * every consumer rather than picking one component's version arbitrarily.\n *\n * Deliberately does **not** touch `:focus-within` box-shadow for `solid`/`outline`/`ghost` —\n * every current consumer already covers that with its own single `:host(:not([disabled],\n * [variant='flat'], ...)) ${container}:focus-within` catch-all in its *own* base layer, so a\n * copy here would be pure redundancy for them, and actively wrong for `ore-otp-input`: its\n * `.cell` is the focusable element itself (not a wrapper), so `:focus-within` matches on every\n * keystroke, and it already renders its own bespoke ring (colored by `accentVar`, not\n * `--_theme-shadow`) uniformly across all variants in its base layer — this mixin adding a\n * second, generic one would fight it depending on layer/rule order.\n *\n * Each component keeps its own `:host(:not([variant], ...)) ${container}:hover/:focus-within`\n * base-state rules and any variant beyond this shared set (e.g. `ore-input`'s extra `'text'`\n * variant) in its own stylesheet — this mixin only covers the five variants every consumer has\n * in common.\n *\n * @example\n * ```ts\n * // ore-textarea / ore-input (box and text-bearing element are the same `.field`)\n * styles: [..., fieldVariantMixin({ container: '.field', tokenPrefix: 'textarea' }), componentStyles]\n *\n * // ore-message-composer (card `.composer` vs its own bare `.field` textarea)\n * styles: [\n * ...,\n * fieldVariantMixin({ container: '.composer', text: '.field', tokenPrefix: 'message-composer' }),\n * componentStyles,\n * ]\n *\n * // ore-otp-input (own per-cell accent instead of the shared theme-focus token)\n * styles: [\n * ...,\n * fieldVariantMixin({ accentVar: '--_cell-focus-border', container: '.cell', tokenPrefix: 'otp-cell' }),\n * componentStyles,\n * ]\n * ```\n */\nexport const fieldVariantMixin = ({\n accentVar = '--_theme-focus',\n container,\n text = container,\n tokenPrefix,\n}: FieldVariantMixinOptions) => css`\n @layer refine.variants {\n /* Solid (default) */\n :host(:not([variant])),\n :host([variant='solid']) {\n --_bg: var(--${tokenPrefix}-bg, var(--color-contrast-50));\n --_border-color: var(--${tokenPrefix}-border-color, var(--color-contrast-300));\n }\n\n :host(:not([variant])) ${container}, :host([variant='solid']) ${container} {\n box-shadow: var(--shadow-2xs);\n }\n\n /* Flat */\n :host([variant='flat']) {\n --_bg: var(--${tokenPrefix}-bg, var(--color-contrast-100));\n --_border-color: var(--${tokenPrefix}-border-color, color-mix(in oklch, var(${accentVar}) 20%, transparent));\n }\n\n :host([variant='flat']) ${container} {\n box-shadow: var(--inset-shadow-2xs);\n }\n\n :host([variant='flat']:not([disabled])) ${container}:hover {\n background: var(--${tokenPrefix}-hover-bg, color-mix(in oklch, var(--_theme-base) 6%, var(--color-contrast-100)));\n border-color: var(\n --${tokenPrefix}-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])) ${container}:focus-within {\n background: var(--${tokenPrefix}-focus-bg, color-mix(in oklch, var(--_theme-base) 8%, var(--color-canvas)));\n border-color: var(--${tokenPrefix}-focus-border-color, color-mix(in oklch, var(${accentVar}) 60%, transparent));\n box-shadow: var(--_theme-shadow);\n }\n\n /* Bordered */\n :host([variant='bordered']) {\n --_bg: var(--${tokenPrefix}-bg, var(--_theme-backdrop));\n --_border-color: var(--${tokenPrefix}-border-color, color-mix(in oklch, var(${accentVar}) 70%, transparent));\n }\n\n :host([variant='bordered']:not([disabled])) ${container}:hover {\n border-color: var(--${tokenPrefix}-hover-border-color, var(${accentVar}));\n }\n\n :host([variant='bordered']) ${text} {\n color: var(--_theme-base);\n caret-color: var(--_theme-base);\n }\n\n :host([variant='bordered']) ${text}::placeholder {\n color: var(--${tokenPrefix}-placeholder-color, color-mix(in oklch, var(--_theme-base) 45%, transparent));\n }\n\n /* Outline — border always visible, so unlike the other variants it can't lean on a\n per-component \\`:host{}\\` base fallback for \\`--_border-color\\` that may or may not exist\n (\\`ore-message-composer\\` has none — every other rule here sets both custom properties, so\n its base layer omits a default on the assumption that always holds). Set explicitly. */\n :host([variant='outline']) {\n --_bg: var(--${tokenPrefix}-bg, transparent);\n --_border-color: var(--${tokenPrefix}-border-color, var(--color-contrast-300));\n }\n\n :host([variant='outline']) ${container} {\n box-shadow: none;\n }\n\n /* Ghost */\n :host([variant='ghost']) {\n --_bg: var(--${tokenPrefix}-bg, transparent);\n --_border-color: var(--${tokenPrefix}-border-color, transparent);\n }\n\n :host([variant='ghost']) ${container} {\n box-shadow: none;\n }\n\n :host([variant='ghost']:not([disabled])) ${container}:hover {\n background: var(--${tokenPrefix}-hover-bg, var(--color-contrast-100));\n }\n }\n`;\n"],"mappings":";;AAmEA,IAAa,KAAqB,EAChC,eAAY,kBACZ,cACA,UAAO,GACP,qBAC8B,CAAG;;;;;qBAKd,EAAY;+BACF,EAAY;;;6BAGd,EAAU,6BAA6B,EAAU;;;;;;qBAMzD,EAAY;+BACF,EAAY,yCAAyC,EAAU;;;8BAGhE,EAAU;;;;8CAIM,EAAU;0BAC9B,EAAY;;YAE1B,EAAY;;;;;8CAKsB,EAAU;0BAC9B,EAAY;4BACV,EAAY,+CAA+C,EAAU;;;;;;qBAM5E,EAAY;+BACF,EAAY,yCAAyC,EAAU;;;kDAG5C,EAAU;4BAChC,EAAY,2BAA2B,EAAU;;;kCAG3C,EAAK;;;;;kCAKL,EAAK;qBAClB,EAAY;;;;;;;;qBAQZ,EAAY;+BACF,EAAY;;;iCAGV,EAAU;;;;;;qBAMtB,EAAY;+BACF,EAAY;;;+BAGZ,EAAU;;;;+CAIM,EAAU;0BAC/B,EAAY"}
|
package/dist/switch.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./styles/mixins/
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./styles/mixins/accessibility.css.cjs"),t=require("./styles/mixins/shape.css.cjs"),n=require("./styles/mixins/states.css.cjs"),r=require("./styles/mixins/theme.css.cjs"),i=require("./shared/prop-bundles.cjs"),a=require("./shared/size-presets.cjs"),o=require("./headless/ore.cjs"),s=require("./headless/checkable.cjs"),c=require("./inputs/shared/field-binding.cjs"),l=require("./inputs/shared/form-context.cjs"),u=require("./inputs/shared/templates.cjs"),d=require("./inputs/switch/switch.css.cjs");let f=require("@vielzeug/ore"),p=require("@vielzeug/ore/forms");var m=`ore-switch`;(0,f.define)(m,{formAssociated:!0,props:{...i.themableBundle,...i.sizableBundle,...i.disablableBundle,checked:f.prop.bool(!1),error:f.prop.string(),helper:f.prop.string(),name:f.prop.string(),value:f.prop.string(`on`)},setup(e){let t=(0,f.useEmit)(),n=(0,f.inject)(l.FORM_CTX),r=l.useFormContext(e,n),i=s.createCheckable({checked:e.checked,clearIndeterminateFirst:!1,disabled:r.disabled,error:e.error,helper:e.helper,onToggle:e=>{i.triggerValidation(`change`),t(`change`,e)},prefix:`switch`,signal:o.lifecycleSignal(f.onCleanup),validateOn:n?.validateOn,value:e.value});i.attachFormField((0,p.useField)({disabled:i.disabled,toFormValue:e=>e,value:i.checkableFormValue}));let{assistiveId:a,checked:d,disabled:m,errorText:h,handleClick:g,handleKeydown:_,helperText:v,labelId:y}=i;return c.applyCheckableBinding(r.size,{assistiveId:a,checked:d,disabled:m,errorText:h,handleClick:g,handleKeydown:_,helperText:v,labelId:y},`switch`),f.html`
|
|
2
2
|
<div class="switch-wrapper" part="switch">
|
|
3
3
|
<div class="switch-track" part="track">
|
|
4
4
|
<div class="switch-thumb" part="thumb"></div>
|
|
5
5
|
</div>
|
|
6
6
|
</div>
|
|
7
7
|
<span class="label" part="label" id="${y}"><slot></slot></span>
|
|
8
|
-
${
|
|
9
|
-
`},styles:[
|
|
8
|
+
${u.renderHelperRegion(a,h,v)}
|
|
9
|
+
`},styles:[r.colorThemeMixin,r.forcedColorsFormControlMixin,n.disabledStateMixin,e.coarsePointerMixin,t.sizeVariantMixin(a.SWITCH_SIZE_PRESET),d.default]}),exports.SWITCH_TAG=m;
|
|
10
10
|
//# sourceMappingURL=switch.cjs.map
|