rei-kit 2.24.0 → 3.0.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/index.d.ts CHANGED
@@ -46,48 +46,83 @@ export { useVisualViewport } from './composables/use-visual-viewport';
46
46
  export { useToast } from './composables/use-toast';
47
47
  export type { Toast, ToastAction, ToastOptions, ToastTone } from './composables/use-toast';
48
48
  export type { VisualViewportRect } from './composables/use-visual-viewport';
49
+ /** The person, in the corner where the account lives. */
49
50
  export { default as BaseAvatar } from './components/BaseAvatar.vue';
51
+ /** A message the reader has to take in before carrying on. */
50
52
  export { default as BaseAlert } from './components/BaseAlert.vue';
53
+ /** A small standing label: a level, a state, a count. */
51
54
  export { default as BaseBadge } from './components/BaseBadge.vue';
55
+ /** The kit's button, and — when asked — its link. */
52
56
  export { default as BaseButton } from './components/BaseButton.vue';
57
+ /** A text field with its label, hint and error already wired to it. */
53
58
  export { default as BaseInput } from './components/BaseInput.vue';
59
+ /** A list of actions behind one control. */
54
60
  export { default as BaseMenu } from './components/BaseMenu.vue';
61
+ /** Pins the sheet to the area the keyboard has left visible. */
55
62
  export { default as BaseSheet } from './components/BaseSheet.vue';
63
+ /** A surface with a border, and optionally a head and a foot. */
56
64
  export { default as BaseCard } from './components/BaseCard.vue';
65
+ /** A field you type into to narrow a list, then choose from it. */
57
66
  export { default as BaseCombobox } from './components/BaseCombobox.vue';
58
67
  export type { ComboboxOption } from './components/BaseCombobox.vue';
68
+ /** A single checkbox, with its label beside it. */
59
69
  export { default as BaseCheckbox } from './components/BaseCheckbox.vue';
70
+ /** A set of radios, and the reason there is no `BaseRadio`. */
60
71
  export { default as BaseRadioGroup } from './components/BaseRadioGroup.vue';
72
+ /** A native `<select>`, wearing the kit's field. */
61
73
  export { default as BaseSelect } from './components/BaseSelect.vue';
74
+ /** A value picked from a range, where roughly right is the point. */
62
75
  export { default as BaseSlider } from './components/BaseSlider.vue';
63
76
  /**
64
77
  * A slider and a number field on one value: drag to find it, type to land
65
78
  * on it. See `SliderField.vue` for why both carry the same name.
66
79
  */
67
80
  export { default as SliderField } from './components/SliderField.vue';
81
+ /** Work in progress, with no idea how much is left. */
68
82
  export { default as BaseSpinner } from './components/BaseSpinner.vue';
83
+ /** A setting that takes effect the moment it is touched. */
69
84
  export { default as BaseSwitch } from './components/BaseSwitch.vue';
85
+ /** Rows of data, with the parts a hand-written `<table>` leaves out. */
70
86
  export { default as BaseTable } from './components/BaseTable.vue';
71
87
  export type { Column } from './components/BaseTable.vue';
88
+ /** A multi-line field. */
72
89
  export { default as BaseTextarea } from './components/BaseTextarea.vue';
90
+ /** A list with nothing in it yet, said kindly. */
73
91
  export { default as EmptyState } from './components/EmptyState.vue';
92
+ /** A label, a hint, an error, and the wiring between them. */
74
93
  export { default as FormField } from './components/FormField.vue';
94
+ /** Keeps one broken screen from taking the whole app down. */
75
95
  export { default as ErrorBoundary } from './components/ErrorBoundary.vue';
96
+ /** One measure, centred, with the page's gutters. */
76
97
  export { default as PageContainer } from './components/PageContainer.vue';
98
+ /** The bar at the top of a screen: a title with room either side of it. */
77
99
  export { default as PageHeader } from './components/PageHeader.vue';
100
+ /** How far through something somebody is. */
78
101
  export { default as ProgressBar } from './components/ProgressBar.vue';
102
+ /** One plan in a pricing table. */
79
103
  export { default as PriceCard } from './components/PriceCard.vue';
104
+ /** A pill heading for a group of things. */
80
105
  export { default as SectionHeading } from './components/SectionHeading.vue';
106
+ /** A row of mutually exclusive choices. */
81
107
  export { default as SegmentedControl } from './components/SegmentedControl.vue';
108
+ /** A titled run of settings rows. */
82
109
  export { default as SettingsGroup } from './components/SettingsGroup.vue';
110
+ /** One line in a settings card. */
83
111
  export { default as SettingsRow } from './components/SettingsRow.vue';
112
+ /** A length starts with a digit, a dot, or opens a CSS function. */
84
113
  export { default as SkeletonList } from './components/SkeletonList.vue';
114
+ /** One number, with what it means and which way it is going. */
85
115
  export { default as StatCard } from './components/StatCard.vue';
116
+ /** Where the toasts land. One of these, at the app root. */
86
117
  export { default as ToastHost } from './components/ToastHost.vue';
118
+ /** A small coloured dot, optionally labelled. */
87
119
  export { default as ToneDot } from './components/ToneDot.vue';
88
120
  export type { Tone } from './components/SectionHeading.vue';
121
+ /** A flat language switcher for screens with no Settings behind them. */
89
122
  export { default as LocaleLinks } from './components/LocaleLinks.vue';
123
+ /** Sign in with Google, in Google's own clothes. */
90
124
  export { default as GoogleButton } from './components/GoogleButton.vue';
125
+ /** The floating bottom bar. */
91
126
  export { default as TabBar } from './components/TabBar.vue';
92
127
  export type { TabItem } from './components/TabBar.vue';
93
128
  /**
@@ -102,6 +137,7 @@ export { default as ActivityGrid } from './components/ActivityGrid.vue';
102
137
  * it, rather than a picture with a sentence describing it.
103
138
  */
104
139
  export { default as BarChart } from './components/BarChart.vue';
140
+ /** Parts of a whole. */
105
141
  export { default as DonutChart } from './components/DonutChart.vue';
106
142
  /**
107
143
  * `ScrollArea`, a scrolling box with the two things a hand-written one
@@ -143,16 +179,32 @@ export { textDirection } from './utils/direction';
143
179
  export { elementDirection, horizontalStep } from './utils/direction';
144
180
  export type { TextDirection } from './utils/direction';
145
181
  export type { AnnounceOptions } from './composables/use-announce';
182
+ /**
183
+ * The people on a thing, overlapped: who is in a conversation, who shares
184
+ * a list.
185
+ */
146
186
  export { default as AvatarStack } from './components/AvatarStack.vue';
187
+ /** A month of days, for choosing one or a stretch of them. */
147
188
  export { default as BaseCalendar } from './components/BaseCalendar.vue';
189
+ /**
190
+ * A short label with, when it is one of a set someone assembled, a way to
191
+ * take it off: a filter, a recipient, a tag.
192
+ */
148
193
  export { default as BaseChip } from './components/BaseChip.vue';
194
+ /** A keyboard key, or a chord of them: `⌘ K`, `Ctrl Shift P`. */
149
195
  export { default as BaseKbd } from './components/BaseKbd.vue';
196
+ /** A list you choose from, open on the page. */
150
197
  export { default as BaseListbox } from './components/BaseListbox.vue';
151
198
  export type { ListboxOption } from './components/BaseListbox.vue';
199
+ /** A link in a sentence — the one thing a button is not. */
152
200
  export { default as BaseLink } from './components/BaseLink.vue';
201
+ /** A score out of five, given or shown. */
153
202
  export { default as BaseRating } from './components/BaseRating.vue';
203
+ /** A line between things — with, when it helps, a word on it. */
154
204
  export { default as BaseSeparator } from './components/BaseSeparator.vue';
205
+ /** One grey box standing in for content that has not arrived. */
155
206
  export { default as BaseSkeleton } from './components/BaseSkeleton.vue';
207
+ /** A colour, as a hex value. */
156
208
  export { default as ColorPicker } from './components/ColorPicker.vue';
157
209
  export type { ColorSwatch } from './components/ColorPicker.vue';
158
210
  /**
@@ -160,25 +212,49 @@ export type { ColorSwatch } from './components/ColorPicker.vue';
160
212
  * focusable when it scrolls, or the end of a long line is unreachable.
161
213
  */
162
214
  export { default as CodeBlock } from './components/CodeBlock.vue';
215
+ /** Copies a piece of text, and says that it did. */
163
216
  export { default as CopyButton } from './components/CopyButton.vue';
217
+ /**
218
+ * Pairs of "what it is" and "what it says": the summary at the top of a
219
+ * detail page, the facts under an invoice.
220
+ */
164
221
  export { default as DescriptionList } from './components/DescriptionList.vue';
165
222
  export type { DescriptionItem } from './components/DescriptionList.vue';
223
+ /** Files, dropped on or chosen from a real file input. */
166
224
  export { default as FileDrop } from './components/FileDrop.vue';
225
+ /** A field that holds several short values: recipients, labels, skills. */
167
226
  export { default as TagsInput } from './components/TagsInput.vue';
227
+ /** A time of day, chosen from two columns. */
168
228
  export { default as TimePicker } from './components/TimePicker.vue';
229
+ /** What happened, in order, on a rail. */
169
230
  export { default as BaseTimeline } from './components/BaseTimeline.vue';
170
231
  export type { TimelineEvent } from './components/BaseTimeline.vue';
171
232
  export type { DateRange } from './components/BaseCalendar.vue';
233
+ /** A date, or a stretch of dates, chosen from a calendar in a popover. */
172
234
  export { default as BaseDatePicker } from './components/BaseDatePicker.vue';
173
235
  export type { DatePreset } from './components/BaseDatePicker.vue';
236
+ /** "Are you sure?", asked beside the button that asked it. */
174
237
  export { default as BasePopconfirm } from './components/BasePopconfirm.vue';
238
+ /**
239
+ * A panel of anything — a form, a picker, a few settings — anchored to the
240
+ * control that opened it.
241
+ */
175
242
  export { default as BasePopover } from './components/BasePopover.vue';
176
243
  export type { PopoverTriggerProps } from './components/BasePopover.vue';
244
+ /** A row of buttons that stay pressed — one at a time, or several at once. */
177
245
  export { default as ToggleGroup } from './components/ToggleGroup.vue';
246
+ /** A number, typed or stepped — a quantity, a price, a count of minutes. */
178
247
  export { default as NumberInput } from './components/NumberInput.vue';
248
+ /** A short code typed one character per box — a sign-in code, a PIN. */
179
249
  export { default as PinInput } from './components/PinInput.vue';
250
+ /** A password field you can look at. */
180
251
  export { default as PasswordInput } from './components/PasswordInput.vue';
252
+ /** Progress as a ring — for a small space, a card's corner, a goal. */
181
253
  export { default as CircularProgress } from './components/CircularProgress.vue';
254
+ /**
255
+ * Where someone is in a process of several steps — a sign-up, a checkout,
256
+ * a form split into pages.
257
+ */
182
258
  export { default as BaseStepper } from './components/BaseStepper.vue';
183
259
  export type { StepperStep } from './components/BaseStepper.vue';
184
260
  export { createI18nRuntime } from './i18n/runtime';
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { a as addDays, c as lastNDays, d as toDateKey, f as todayKey, i as needsIosInstall, l as leadingBlanks, n as isApplePortable, o as eachDayOfYear, r as isInstalled, s as fromDateKey, t as SettingsGroup_default, u as startOfWeek } from "./SettingsGroup-BXkajKGl.js";
2
2
  import { a as formatNumber, i as formatDate, o as setFormatLocale, r as watchVisibility } from "./environment-Cz5KiC1t.js";
3
- import { a as BaseCheckbox_default, c as useBoundValue, d as ensureSheetRoot, i as textDirection, l as useVisualViewport, n as elementDirection, o as BaseSheet_default, r as horizontalStep, t as focusTarget, u as SHEET_ROOT_ID } from "./focus-target-DRgd8UnQ.js";
4
- import { a as FormField_default, c as useOnline, d as readStoredTheme, f as setThemeStorageKey, g as toRedirectPath, h as safeRedirect, i as BaseInput_default, l as applyTheme, m as tapFeedback, n as useAnnounce, o as BaseAlert_default, p as useTheme, r as GoogleButton_default, s as useToast, t as announce, u as isThemePreference } from "./use-announce-qM0ZD9Ey.js";
3
+ import { a as BaseCheckbox_default, c as useBoundValue, d as ensureSheetRoot, i as textDirection, l as useVisualViewport, n as elementDirection, o as BaseSheet_default, r as horizontalStep, t as focusTarget, u as SHEET_ROOT_ID } from "./focus-target-BtcoJdmz.js";
4
+ import { _ as toRedirectPath, a as useFieldAttrs, c as useToast, d as isThemePreference, f as readStoredTheme, g as safeRedirect, h as tapFeedback, i as BaseInput_default, l as useOnline, m as useTheme, n as useAnnounce, o as FormField_default, p as setThemeStorageKey, r as GoogleButton_default, s as BaseAlert_default, t as announce, u as applyTheme } from "./use-announce-B_JGTXHZ.js";
5
5
  import { n as registerErrorMapper, r as toAppError, t as AppError } from "./app-error-DF9cijE0.js";
6
- import { a as BaseSkeleton_default, c as useMediaQuery, l as useDragScroll, n as ScrollArea_default, o as useMenuKeys, s as useAnchoredPanel, t as BaseListbox_default } from "./BaseListbox-BQoSwYdJ.js";
6
+ import { a as BaseSkeleton_default, c as useMediaQuery, l as useDragScroll, n as ScrollArea_default, o as useMenuKeys, s as useAnchoredPanel, t as BaseListbox_default } from "./BaseListbox-D-NQ6nDd.js";
7
7
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.js";
8
- import { t as BaseButton_default } from "./BaseButton-RN2an975.js";
9
- import { t as SettingsRow_default } from "./SettingsRow-Ct1p2C9Q.js";
8
+ import { t as BaseButton_default } from "./BaseButton-BD2HKB1L.js";
9
+ import { t as SettingsRow_default } from "./SettingsRow-C6Spi7Np.js";
10
10
  import { Fragment, Teleport, Transition, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, guardReactiveProps, isRef, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onErrorCaptured, onMounted, onScopeDispose, openBlock, readonly, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, unref, useId, useModel, useTemplateRef, vModelRadio, vModelSelect, vModelText, vShow, watch, watchEffect, withCtx, withDirectives, withKeys, withModifiers } from "vue";
11
11
  import { ArrowDown, ArrowRight, ArrowUp, ArrowUpRight, CalendarDays, Check, CheckCircle2, ChevronDown, ChevronLeft, ChevronRight, Clock, Copy, Eye, EyeOff, Info, Minus, Paperclip, Plus, Star, TriangleAlert, Upload, X, XCircle } from "lucide-vue-next";
12
12
  import { RouterLink } from "vue-router";
@@ -57,7 +57,7 @@ function downloadJson(data, filename) {
57
57
  }
58
58
  //#endregion
59
59
  //#region src/palettes/palettes.generated.json
60
- var palettes_generated_default = /*#__PURE__*/ JSON.parse("[{\"name\":\"rei\",\"label\":\"Rei\",\"origin\":\"rei-kit\",\"light\":{\"primary\":\"#26667f\",\"accent\":\"#124170\",\"positive\":\"#67c090\",\"negative\":\"#c9463b\",\"warning\":\"#d89a3e\",\"canvas\":\"#f4faf8\",\"surface\":\"#ffffff\",\"muted\":\"#ddf4e7\",\"ink\":\"#0f2229\",\"inkSoft\":\"#5c7480\",\"hair\":\"#e1edea\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#07141a\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#07141a\"},\"dark\":{\"primary\":\"#5fb0c9\",\"accent\":\"#8cb8e0\",\"positive\":\"#67c090\",\"negative\":\"#f07a6f\",\"warning\":\"#e6ad58\",\"canvas\":\"#07141a\",\"surface\":\"#102630\",\"muted\":\"#12303a\",\"ink\":\"#e6f0ee\",\"inkSoft\":\"#8fa8b2\",\"hair\":\"#1c3945\",\"onPrimary\":\"#07141a\",\"onAccent\":\"#07141a\",\"onPositive\":\"#07141a\",\"onNegative\":\"#07141a\",\"onWarning\":\"#07141a\"},\"swatch\":[\"#26667f\",\"#124170\",\"#67c090\",\"#d89a3e\"]},{\"name\":\"nord\",\"label\":\"Nord\",\"origin\":\"Arctic Ice Studio\",\"light\":{\"primary\":\"#5e81ac\",\"accent\":\"#b48ead\",\"positive\":\"#a3be8c\",\"negative\":\"#bf616a\",\"warning\":\"#ebcb8b\",\"canvas\":\"#eceff4\",\"surface\":\"#ffffff\",\"muted\":\"#e5e9f0\",\"ink\":\"#2e3440\",\"inkSoft\":\"#4c566a\",\"hair\":\"#d8dee9\",\"onPrimary\":\"#111111\",\"onAccent\":\"#111111\",\"onPositive\":\"#2e3440\",\"onNegative\":\"#111111\",\"onWarning\":\"#2e3440\"},\"dark\":{\"primary\":\"#88c0d0\",\"accent\":\"#b48ead\",\"positive\":\"#a3be8c\",\"negative\":\"#bf616a\",\"warning\":\"#ebcb8b\",\"canvas\":\"#2e3440\",\"surface\":\"#3b4252\",\"muted\":\"#434c5e\",\"ink\":\"#eceff4\",\"inkSoft\":\"#d8dee9\",\"hair\":\"#4c566a\",\"onPrimary\":\"#2e3440\",\"onAccent\":\"#111111\",\"onPositive\":\"#2e3440\",\"onNegative\":\"#111111\",\"onWarning\":\"#2e3440\"},\"swatch\":[\"#5e81ac\",\"#b48ead\",\"#a3be8c\",\"#ebcb8b\"]},{\"name\":\"dracula\",\"label\":\"Dracula\",\"origin\":\"Dracula Theme\",\"swatch\":[\"#bd93f9\",\"#ff79c6\",\"#50fa7b\",\"#282a36\"],\"light\":{\"primary\":\"#644ac9\",\"accent\":\"#a3144d\",\"positive\":\"#14710a\",\"negative\":\"#cb3a2a\",\"warning\":\"#a34d14\",\"canvas\":\"#fffbeb\",\"surface\":\"#ffffff\",\"muted\":\"#f3eeda\",\"ink\":\"#1f1f1f\",\"inkSoft\":\"#635d4f\",\"hair\":\"#e6e0c8\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#ffffff\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#ffffff\"},\"dark\":{\"primary\":\"#bd93f9\",\"accent\":\"#ff79c6\",\"positive\":\"#50fa7b\",\"negative\":\"#ff5555\",\"warning\":\"#ffb86c\",\"canvas\":\"#21222c\",\"surface\":\"#282a36\",\"muted\":\"#343746\",\"ink\":\"#f8f8f2\",\"inkSoft\":\"#b6b9cf\",\"hair\":\"#44475a\",\"onPrimary\":\"#1f1f1f\",\"onAccent\":\"#1f1f1f\",\"onPositive\":\"#1f1f1f\",\"onNegative\":\"#1f1f1f\",\"onWarning\":\"#1f1f1f\"}},{\"name\":\"catppuccin\",\"label\":\"Catppuccin\",\"origin\":\"Catppuccin\",\"light\":{\"primary\":\"#8839ef\",\"accent\":\"#1e66f5\",\"positive\":\"#40a02b\",\"negative\":\"#d20f39\",\"warning\":\"#df8e1d\",\"canvas\":\"#eff1f5\",\"surface\":\"#ffffff\",\"muted\":\"#e6e9ef\",\"ink\":\"#4c4f69\",\"inkSoft\":\"#5c5f77\",\"hair\":\"#ccd0da\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#1e1e2e\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#1e1e2e\"},\"dark\":{\"primary\":\"#cba6f7\",\"accent\":\"#89b4fa\",\"positive\":\"#a6e3a1\",\"negative\":\"#f38ba8\",\"warning\":\"#f9e2af\",\"canvas\":\"#1e1e2e\",\"surface\":\"#24273a\",\"muted\":\"#313244\",\"ink\":\"#cdd6f4\",\"inkSoft\":\"#a6adc8\",\"hair\":\"#45475a\",\"onPrimary\":\"#1e1e2e\",\"onAccent\":\"#1e1e2e\",\"onPositive\":\"#1e1e2e\",\"onNegative\":\"#1e1e2e\",\"onWarning\":\"#1e1e2e\"},\"swatch\":[\"#8839ef\",\"#1e66f5\",\"#40a02b\",\"#df8e1d\"]},{\"name\":\"solarized\",\"label\":\"Solarized\",\"origin\":\"Ethan Schoonover\",\"light\":{\"primary\":\"#268bd2\",\"accent\":\"#6a6fc0\",\"positive\":\"#859900\",\"negative\":\"#dc322f\",\"warning\":\"#b58900\",\"canvas\":\"#fdf6e3\",\"surface\":\"#fffcf3\",\"muted\":\"#eee8d5\",\"ink\":\"#073642\",\"inkSoft\":\"#586e75\",\"hair\":\"#e4dcc4\",\"onPrimary\":\"#111111\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#002b36\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#002b36\"},\"dark\":{\"primary\":\"#268bd2\",\"accent\":\"#6a6fc0\",\"positive\":\"#859900\",\"negative\":\"#dc322f\",\"warning\":\"#b58900\",\"canvas\":\"#002b36\",\"surface\":\"#073642\",\"muted\":\"#0b3f4c\",\"ink\":\"#eee8d5\",\"inkSoft\":\"#93a1a1\",\"hair\":\"#16505e\",\"onPrimary\":\"#111111\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#002b36\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#002b36\"},\"swatch\":[\"#268bd2\",\"#6a6fc0\",\"#859900\",\"#b58900\"]},{\"name\":\"gruvbox\",\"label\":\"Gruvbox\",\"origin\":\"morhetz\",\"light\":{\"primary\":\"#076678\",\"accent\":\"#8f3f71\",\"positive\":\"#79740e\",\"negative\":\"#9d0006\",\"warning\":\"#b57614\",\"canvas\":\"#fbf1c7\",\"surface\":\"#fdf7dd\",\"muted\":\"#ebdbb2\",\"ink\":\"#3c3836\",\"inkSoft\":\"#665c54\",\"hair\":\"#e2cfa4\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#ffffff\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#111111\"},\"dark\":{\"primary\":\"#83a598\",\"accent\":\"#d3869b\",\"positive\":\"#b8bb26\",\"negative\":\"#fb4934\",\"warning\":\"#fabd2f\",\"canvas\":\"#282828\",\"surface\":\"#32302f\",\"muted\":\"#3c3836\",\"ink\":\"#ebdbb2\",\"inkSoft\":\"#bdae93\",\"hair\":\"#504945\",\"onPrimary\":\"#282828\",\"onAccent\":\"#282828\",\"onPositive\":\"#282828\",\"onNegative\":\"#111111\",\"onWarning\":\"#282828\"},\"swatch\":[\"#076678\",\"#8f3f71\",\"#79740e\",\"#b57614\"]},{\"name\":\"tokyo-night\",\"label\":\"Tokyo Night\",\"origin\":\"enkia\",\"swatch\":[\"#7aa2f7\",\"#bb9af7\",\"#9ece6a\",\"#1a1b26\"],\"light\":{\"primary\":\"#2e7de9\",\"accent\":\"#9351ea\",\"positive\":\"#587539\",\"negative\":\"#f52a65\",\"warning\":\"#8c6c3e\",\"canvas\":\"#e1e2e7\",\"surface\":\"#f5f5f8\",\"muted\":\"#d5d6db\",\"ink\":\"#3760bf\",\"inkSoft\":\"#536297\",\"hair\":\"#c4c8da\",\"onPrimary\":\"#111111\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#ffffff\",\"onNegative\":\"#16161e\",\"onWarning\":\"#ffffff\"},\"dark\":{\"primary\":\"#7aa2f7\",\"accent\":\"#bb9af7\",\"positive\":\"#9ece6a\",\"negative\":\"#f7768e\",\"warning\":\"#e0af68\",\"canvas\":\"#16161e\",\"surface\":\"#1a1b26\",\"muted\":\"#292e42\",\"ink\":\"#c0caf5\",\"inkSoft\":\"#a9b1d6\",\"hair\":\"#2f3549\",\"onPrimary\":\"#16161e\",\"onAccent\":\"#16161e\",\"onPositive\":\"#16161e\",\"onNegative\":\"#16161e\",\"onWarning\":\"#16161e\"}},{\"name\":\"rose-pine\",\"label\":\"Rosé Pine\",\"origin\":\"Rosé Pine\",\"light\":{\"primary\":\"#286983\",\"accent\":\"#907aa9\",\"positive\":\"#56949f\",\"negative\":\"#b4637a\",\"warning\":\"#ea9d34\",\"canvas\":\"#faf4ed\",\"surface\":\"#fffaf3\",\"muted\":\"#f2e9e1\",\"ink\":\"#575279\",\"inkSoft\":\"#716d89\",\"hair\":\"#dfdad9\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#191724\",\"onPositive\":\"#191724\",\"onNegative\":\"#111111\",\"onWarning\":\"#191724\"},\"dark\":{\"primary\":\"#9ccfd8\",\"accent\":\"#c4a7e7\",\"positive\":\"#31748f\",\"negative\":\"#eb6f92\",\"warning\":\"#f6c177\",\"canvas\":\"#191724\",\"surface\":\"#1f1d2e\",\"muted\":\"#26233a\",\"ink\":\"#e0def4\",\"inkSoft\":\"#908caa\",\"hair\":\"#403d52\",\"onPrimary\":\"#191724\",\"onAccent\":\"#191724\",\"onPositive\":\"#ffffff\",\"onNegative\":\"#191724\",\"onWarning\":\"#191724\"},\"swatch\":[\"#286983\",\"#907aa9\",\"#56949f\",\"#ea9d34\"]},{\"name\":\"sakura\",\"label\":\"Sakura\",\"origin\":\"rei-kit\",\"light\":{\"primary\":\"#c2415d\",\"accent\":\"#7a3b4f\",\"positive\":\"#3f8f6a\",\"negative\":\"#c43d3d\",\"warning\":\"#c98a2a\",\"canvas\":\"#fdf6f7\",\"surface\":\"#ffffff\",\"muted\":\"#fbe4e8\",\"ink\":\"#2a1b1f\",\"inkSoft\":\"#6f5a5f\",\"hair\":\"#f0dde1\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#1a1013\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#1a1013\"},\"dark\":{\"primary\":\"#f08aa0\",\"accent\":\"#d7a1b3\",\"positive\":\"#6fc39a\",\"negative\":\"#f07a7a\",\"warning\":\"#e6b060\",\"canvas\":\"#1a1013\",\"surface\":\"#24171b\",\"muted\":\"#321f25\",\"ink\":\"#f6e8eb\",\"inkSoft\":\"#c3a9b0\",\"hair\":\"#3d2930\",\"onPrimary\":\"#1a1013\",\"onAccent\":\"#1a1013\",\"onPositive\":\"#1a1013\",\"onNegative\":\"#1a1013\",\"onWarning\":\"#1a1013\"},\"swatch\":[\"#c2415d\",\"#7a3b4f\",\"#3f8f6a\",\"#c98a2a\"]},{\"name\":\"matcha\",\"label\":\"Matcha\",\"origin\":\"rei-kit\",\"light\":{\"primary\":\"#5a7a2e\",\"accent\":\"#3d5a3a\",\"positive\":\"#4a8a4f\",\"negative\":\"#b8473a\",\"warning\":\"#b8862c\",\"canvas\":\"#f6f7f0\",\"surface\":\"#ffffff\",\"muted\":\"#e7ecd6\",\"ink\":\"#1e2418\",\"inkSoft\":\"#5b6450\",\"hair\":\"#e1e6d3\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#111111\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#11140d\"},\"dark\":{\"primary\":\"#a8c77a\",\"accent\":\"#8fb58a\",\"positive\":\"#7cc281\",\"negative\":\"#e8826f\",\"warning\":\"#e0b35c\",\"canvas\":\"#11140d\",\"surface\":\"#191d13\",\"muted\":\"#242a1b\",\"ink\":\"#eef1e6\",\"inkSoft\":\"#aab39e\",\"hair\":\"#2e3525\",\"onPrimary\":\"#11140d\",\"onAccent\":\"#11140d\",\"onPositive\":\"#11140d\",\"onNegative\":\"#11140d\",\"onWarning\":\"#11140d\"},\"swatch\":[\"#5a7a2e\",\"#3d5a3a\",\"#4a8a4f\",\"#b8862c\"]}]");
60
+ var palettes_generated_default = /*#__PURE__*/ JSON.parse("[{\"name\":\"rei\",\"label\":\"Rei\",\"origin\":\"rei-kit\",\"light\":{\"primary\":\"#26667f\",\"accent\":\"#124170\",\"positive\":\"#67c090\",\"negative\":\"#c7453a\",\"warning\":\"#d89a3e\",\"canvas\":\"#f4faf8\",\"surface\":\"#ffffff\",\"muted\":\"#ddf4e7\",\"ink\":\"#0f2229\",\"inkSoft\":\"#586f7b\",\"hair\":\"#e1edea\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#07141a\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#07141a\"},\"dark\":{\"primary\":\"#5fb0c9\",\"accent\":\"#8cb8e0\",\"positive\":\"#67c090\",\"negative\":\"#f07a6f\",\"warning\":\"#e6ad58\",\"canvas\":\"#07141a\",\"surface\":\"#102630\",\"muted\":\"#12303a\",\"ink\":\"#e6f0ee\",\"inkSoft\":\"#8fa8b2\",\"hair\":\"#1c3945\",\"onPrimary\":\"#07141a\",\"onAccent\":\"#07141a\",\"onPositive\":\"#07141a\",\"onNegative\":\"#07141a\",\"onWarning\":\"#07141a\"},\"swatch\":[\"#26667f\",\"#124170\",\"#67c090\",\"#d89a3e\"]},{\"name\":\"nord\",\"label\":\"Nord\",\"origin\":\"Arctic Ice Studio\",\"light\":{\"primary\":\"#506e93\",\"accent\":\"#b48ead\",\"positive\":\"#a3be8c\",\"negative\":\"#a6545c\",\"warning\":\"#ebcb8b\",\"canvas\":\"#eceff4\",\"surface\":\"#ffffff\",\"muted\":\"#e5e9f0\",\"ink\":\"#2e3440\",\"inkSoft\":\"#4c566a\",\"hair\":\"#d8dee9\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#111111\",\"onPositive\":\"#2e3440\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#2e3440\"},\"dark\":{\"primary\":\"#88c0d0\",\"accent\":\"#b48ead\",\"positive\":\"#a3be8c\",\"negative\":\"#d89fa4\",\"warning\":\"#ebcb8b\",\"canvas\":\"#2e3440\",\"surface\":\"#3b4252\",\"muted\":\"#434c5e\",\"ink\":\"#eceff4\",\"inkSoft\":\"#d8dee9\",\"hair\":\"#4c566a\",\"onPrimary\":\"#2e3440\",\"onAccent\":\"#111111\",\"onPositive\":\"#2e3440\",\"onNegative\":\"#2e3440\",\"onWarning\":\"#2e3440\"},\"swatch\":[\"#506e93\",\"#b48ead\",\"#a3be8c\",\"#ebcb8b\"]},{\"name\":\"dracula\",\"label\":\"Dracula\",\"origin\":\"Dracula Theme\",\"swatch\":[\"#bd93f9\",\"#ff79c6\",\"#50fa7b\",\"#282a36\"],\"light\":{\"primary\":\"#644ac9\",\"accent\":\"#a3144d\",\"positive\":\"#14710a\",\"negative\":\"#cb3a2a\",\"warning\":\"#a34d14\",\"canvas\":\"#fffbeb\",\"surface\":\"#ffffff\",\"muted\":\"#f3eeda\",\"ink\":\"#1f1f1f\",\"inkSoft\":\"#635d4f\",\"hair\":\"#e6e0c8\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#ffffff\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#ffffff\"},\"dark\":{\"primary\":\"#bd93f9\",\"accent\":\"#ff79c6\",\"positive\":\"#50fa7b\",\"negative\":\"#ff5555\",\"warning\":\"#ffb86c\",\"canvas\":\"#21222c\",\"surface\":\"#282a36\",\"muted\":\"#343746\",\"ink\":\"#f8f8f2\",\"inkSoft\":\"#b6b9cf\",\"hair\":\"#44475a\",\"onPrimary\":\"#1f1f1f\",\"onAccent\":\"#1f1f1f\",\"onPositive\":\"#1f1f1f\",\"onNegative\":\"#1f1f1f\",\"onWarning\":\"#1f1f1f\"}},{\"name\":\"catppuccin\",\"label\":\"Catppuccin\",\"origin\":\"Catppuccin\",\"light\":{\"primary\":\"#8839ef\",\"accent\":\"#1e66f5\",\"positive\":\"#40a02b\",\"negative\":\"#d20f39\",\"warning\":\"#df8e1d\",\"canvas\":\"#eff1f5\",\"surface\":\"#ffffff\",\"muted\":\"#e6e9ef\",\"ink\":\"#4c4f69\",\"inkSoft\":\"#5c5f77\",\"hair\":\"#ccd0da\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#1e1e2e\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#1e1e2e\"},\"dark\":{\"primary\":\"#cba6f7\",\"accent\":\"#89b4fa\",\"positive\":\"#a6e3a1\",\"negative\":\"#f38ba8\",\"warning\":\"#f9e2af\",\"canvas\":\"#1e1e2e\",\"surface\":\"#24273a\",\"muted\":\"#313244\",\"ink\":\"#cdd6f4\",\"inkSoft\":\"#a6adc8\",\"hair\":\"#45475a\",\"onPrimary\":\"#1e1e2e\",\"onAccent\":\"#1e1e2e\",\"onPositive\":\"#1e1e2e\",\"onNegative\":\"#1e1e2e\",\"onWarning\":\"#1e1e2e\"},\"swatch\":[\"#8839ef\",\"#1e66f5\",\"#40a02b\",\"#df8e1d\"]},{\"name\":\"solarized\",\"label\":\"Solarized\",\"origin\":\"Ethan Schoonover\",\"light\":{\"primary\":\"#2075b2\",\"accent\":\"#6a6fc0\",\"positive\":\"#859900\",\"negative\":\"#d5312e\",\"warning\":\"#b58900\",\"canvas\":\"#fdf6e3\",\"surface\":\"#fffcf3\",\"muted\":\"#eee8d5\",\"ink\":\"#073642\",\"inkSoft\":\"#566c73\",\"hair\":\"#e4dcc4\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#002b36\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#002b36\"},\"dark\":{\"primary\":\"#4b9fda\",\"accent\":\"#6a6fc0\",\"positive\":\"#859900\",\"negative\":\"#e87674\",\"warning\":\"#b58900\",\"canvas\":\"#002b36\",\"surface\":\"#073642\",\"muted\":\"#0b3f4c\",\"ink\":\"#eee8d5\",\"inkSoft\":\"#97a5a5\",\"hair\":\"#16505e\",\"onPrimary\":\"#002b36\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#002b36\",\"onNegative\":\"#002b36\",\"onWarning\":\"#002b36\"},\"swatch\":[\"#2075b2\",\"#6a6fc0\",\"#859900\",\"#b58900\"]},{\"name\":\"gruvbox\",\"label\":\"Gruvbox\",\"origin\":\"morhetz\",\"light\":{\"primary\":\"#076678\",\"accent\":\"#8f3f71\",\"positive\":\"#79740e\",\"negative\":\"#9d0006\",\"warning\":\"#b57614\",\"canvas\":\"#fbf1c7\",\"surface\":\"#fdf7dd\",\"muted\":\"#ebdbb2\",\"ink\":\"#3c3836\",\"inkSoft\":\"#665c54\",\"hair\":\"#e2cfa4\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#ffffff\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#111111\"},\"dark\":{\"primary\":\"#83a598\",\"accent\":\"#d3869b\",\"positive\":\"#b8bb26\",\"negative\":\"#fc6857\",\"warning\":\"#fabd2f\",\"canvas\":\"#282828\",\"surface\":\"#32302f\",\"muted\":\"#3c3836\",\"ink\":\"#ebdbb2\",\"inkSoft\":\"#bdae93\",\"hair\":\"#504945\",\"onPrimary\":\"#282828\",\"onAccent\":\"#282828\",\"onPositive\":\"#282828\",\"onNegative\":\"#282828\",\"onWarning\":\"#282828\"},\"swatch\":[\"#076678\",\"#8f3f71\",\"#79740e\",\"#b57614\"]},{\"name\":\"tokyo-night\",\"label\":\"Tokyo Night\",\"origin\":\"enkia\",\"swatch\":[\"#7aa2f7\",\"#bb9af7\",\"#9ece6a\",\"#1a1b26\"],\"light\":{\"primary\":\"#2463b8\",\"accent\":\"#9351ea\",\"positive\":\"#587539\",\"negative\":\"#c0214f\",\"warning\":\"#8c6c3e\",\"canvas\":\"#e1e2e7\",\"surface\":\"#f5f5f8\",\"muted\":\"#d5d6db\",\"ink\":\"#2e51a3\",\"inkSoft\":\"#4d5b8c\",\"hair\":\"#c4c8da\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#ffffff\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#ffffff\"},\"dark\":{\"primary\":\"#7aa2f7\",\"accent\":\"#bb9af7\",\"positive\":\"#9ece6a\",\"negative\":\"#f7768e\",\"warning\":\"#e0af68\",\"canvas\":\"#16161e\",\"surface\":\"#1a1b26\",\"muted\":\"#292e42\",\"ink\":\"#c0caf5\",\"inkSoft\":\"#a9b1d6\",\"hair\":\"#2f3549\",\"onPrimary\":\"#16161e\",\"onAccent\":\"#16161e\",\"onPositive\":\"#16161e\",\"onNegative\":\"#16161e\",\"onWarning\":\"#16161e\"}},{\"name\":\"rose-pine\",\"label\":\"Rosé Pine\",\"origin\":\"Rosé Pine\",\"light\":{\"primary\":\"#286983\",\"accent\":\"#907aa9\",\"positive\":\"#56949f\",\"negative\":\"#a45a6f\",\"warning\":\"#ea9d34\",\"canvas\":\"#faf4ed\",\"surface\":\"#fffaf3\",\"muted\":\"#f2e9e1\",\"ink\":\"#575279\",\"inkSoft\":\"#6a6681\",\"hair\":\"#dfdad9\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#191724\",\"onPositive\":\"#191724\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#191724\"},\"dark\":{\"primary\":\"#9ccfd8\",\"accent\":\"#c4a7e7\",\"positive\":\"#31748f\",\"negative\":\"#eb6f92\",\"warning\":\"#f6c177\",\"canvas\":\"#191724\",\"surface\":\"#1f1d2e\",\"muted\":\"#26233a\",\"ink\":\"#e0def4\",\"inkSoft\":\"#908caa\",\"hair\":\"#403d52\",\"onPrimary\":\"#191724\",\"onAccent\":\"#191724\",\"onPositive\":\"#ffffff\",\"onNegative\":\"#191724\",\"onWarning\":\"#191724\"},\"swatch\":[\"#286983\",\"#907aa9\",\"#56949f\",\"#ea9d34\"]},{\"name\":\"sakura\",\"label\":\"Sakura\",\"origin\":\"rei-kit\",\"light\":{\"primary\":\"#c2415d\",\"accent\":\"#7a3b4f\",\"positive\":\"#3f8f6a\",\"negative\":\"#c43d3d\",\"warning\":\"#c98a2a\",\"canvas\":\"#fdf6f7\",\"surface\":\"#ffffff\",\"muted\":\"#fbe4e8\",\"ink\":\"#2a1b1f\",\"inkSoft\":\"#6f5a5f\",\"hair\":\"#f0dde1\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#1a1013\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#1a1013\"},\"dark\":{\"primary\":\"#f08aa0\",\"accent\":\"#d7a1b3\",\"positive\":\"#6fc39a\",\"negative\":\"#f07a7a\",\"warning\":\"#e6b060\",\"canvas\":\"#1a1013\",\"surface\":\"#24171b\",\"muted\":\"#321f25\",\"ink\":\"#f6e8eb\",\"inkSoft\":\"#c3a9b0\",\"hair\":\"#3d2930\",\"onPrimary\":\"#1a1013\",\"onAccent\":\"#1a1013\",\"onPositive\":\"#1a1013\",\"onNegative\":\"#1a1013\",\"onWarning\":\"#1a1013\"},\"swatch\":[\"#c2415d\",\"#7a3b4f\",\"#3f8f6a\",\"#c98a2a\"]},{\"name\":\"matcha\",\"label\":\"Matcha\",\"origin\":\"rei-kit\",\"light\":{\"primary\":\"#5a7a2e\",\"accent\":\"#3d5a3a\",\"positive\":\"#4a8a4f\",\"negative\":\"#b8473a\",\"warning\":\"#b8862c\",\"canvas\":\"#f6f7f0\",\"surface\":\"#ffffff\",\"muted\":\"#e7ecd6\",\"ink\":\"#1e2418\",\"inkSoft\":\"#5b6450\",\"hair\":\"#e1e6d3\",\"onPrimary\":\"#ffffff\",\"onAccent\":\"#ffffff\",\"onPositive\":\"#111111\",\"onNegative\":\"#ffffff\",\"onWarning\":\"#11140d\"},\"dark\":{\"primary\":\"#a8c77a\",\"accent\":\"#8fb58a\",\"positive\":\"#7cc281\",\"negative\":\"#e8826f\",\"warning\":\"#e0b35c\",\"canvas\":\"#11140d\",\"surface\":\"#191d13\",\"muted\":\"#242a1b\",\"ink\":\"#eef1e6\",\"inkSoft\":\"#aab39e\",\"hair\":\"#2e3525\",\"onPrimary\":\"#11140d\",\"onAccent\":\"#11140d\",\"onPositive\":\"#11140d\",\"onNegative\":\"#11140d\",\"onWarning\":\"#11140d\"},\"swatch\":[\"#5a7a2e\",\"#3d5a3a\",\"#4a8a4f\",\"#b8862c\"]}]");
61
61
  //#endregion
62
62
  //#region src/utils/appearance.ts
63
63
  var MATERIALS = [
@@ -348,15 +348,15 @@ var BaseBadge_default = /* @__PURE__ */ defineComponent({
348
348
  props: { tone: { default: "neutral" } },
349
349
  setup(__props) {
350
350
  const TONES = {
351
- neutral: "bg-muted text-ink-soft",
352
- primary: "bg-primary/10 text-primary",
353
- success: "bg-positive/12 text-positive",
354
- warning: "bg-warning/15 text-warning",
355
- danger: "bg-negative/12 text-negative"
351
+ neutral: "border-hair bg-muted text-ink",
352
+ primary: "border-primary/30 bg-primary/10 text-ink",
353
+ success: "border-positive/35 bg-positive/12 text-ink",
354
+ warning: "border-warning/40 bg-warning/15 text-ink",
355
+ danger: "border-negative/35 bg-negative/12 text-ink"
356
356
  };
357
357
  const skin = computed(() => TONES[__props.tone]);
358
358
  return (_ctx, _cache) => {
359
- return openBlock(), createElementBlock("span", { class: normalizeClass(["rounded-cell inline-flex items-center gap-1 px-2.5 py-1 text-xs font-medium whitespace-nowrap", skin.value]) }, [renderSlot(_ctx.$slots, "default")], 2);
359
+ return openBlock(), createElementBlock("span", { class: normalizeClass(["rounded-cell inline-flex items-center gap-1 border px-2.5 py-1 text-xs font-medium whitespace-nowrap", skin.value]) }, [renderSlot(_ctx.$slots, "default")], 2);
360
360
  };
361
361
  }
362
362
  });
@@ -1599,10 +1599,13 @@ var BaseTextarea_default = /* @__PURE__ */ defineComponent({
1599
1599
  },
1600
1600
  emits: ["update:modelValue"],
1601
1601
  setup(__props, { emit: __emit }) {
1602
+ const { fieldClass, fieldStyle, controlAttrs } = useFieldAttrs();
1602
1603
  const emit = __emit;
1603
1604
  const model = useBoundValue(() => __props.modelValue, (value) => emit("update:modelValue", value));
1604
1605
  return (_ctx, _cache) => {
1605
1606
  return openBlock(), createBlock(FormField_default, {
1607
+ class: normalizeClass(unref(fieldClass)),
1608
+ style: normalizeStyle(unref(fieldStyle)),
1606
1609
  label: __props.label,
1607
1610
  error: __props.error,
1608
1611
  hint: __props.hint,
@@ -1615,13 +1618,15 @@ var BaseTextarea_default = /* @__PURE__ */ defineComponent({
1615
1618
  rows: __props.rows,
1616
1619
  "aria-invalid": invalid,
1617
1620
  "aria-describedby": describedBy
1618
- }, _ctx.$attrs, { class: [
1621
+ }, unref(controlAttrs), { class: [
1619
1622
  __props.variant === "unstyled" ? "" : "control text-ink rounded-card focus-visible:outline-primary resize-y px-3 py-2 leading-relaxed focus-visible:outline-2 focus-visible:outline-offset-1",
1620
1623
  "text-base",
1621
1624
  __props.variant !== "unstyled" && invalid ? "border-negative" : ""
1622
1625
  ] }), null, 16, _hoisted_1$40), [[vModelText, unref(model)]])]),
1623
1626
  _: 1
1624
1627
  }, 8, [
1628
+ "class",
1629
+ "style",
1625
1630
  "label",
1626
1631
  "error",
1627
1632
  "hint",
@@ -1864,17 +1869,17 @@ var PriceCard_default = /* @__PURE__ */ defineComponent({
1864
1869
  neutral: {
1865
1870
  ring: "",
1866
1871
  soft: "bg-muted text-ink-soft",
1867
- icon: "bg-primary/10 text-primary"
1872
+ icon: "bg-primary/10 text-ink"
1868
1873
  },
1869
1874
  warm: {
1870
1875
  ring: "[--surface-border-color:color-mix(in_oklab,var(--color-warning)_40%,transparent)]",
1871
1876
  soft: "bg-warning/15 text-ink",
1872
- icon: "bg-warning/15 text-warning"
1877
+ icon: "bg-warning/15 text-ink"
1873
1878
  },
1874
1879
  cool: {
1875
1880
  ring: "[--surface-border-color:color-mix(in_oklab,var(--color-accent)_38%,transparent)]",
1876
1881
  soft: "bg-accent/12 text-ink",
1877
- icon: "bg-accent/12 text-accent"
1882
+ icon: "bg-accent/12 text-ink"
1878
1883
  }
1879
1884
  };
1880
1885
  const palette = computed(() => TONE[__props.tone]);
@@ -1983,7 +1988,7 @@ var SegmentedControl_default = /* @__PURE__ */ defineComponent({
1983
1988
  value: option.value,
1984
1989
  name: unref(name),
1985
1990
  class: "peer sr-only"
1986
- }, null, 8, _hoisted_2$31), [[vModelRadio, model.value]]), createElementVNode("span", { class: normalizeClass(["peer-focus-visible:outline-primary flex h-10 items-center justify-center rounded-xl px-2 text-sm font-medium transition-colors select-none peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2", model.value === option.value ? "bg-surface text-ink shadow-(--shadow-control)" : "text-ink-soft"]) }, toDisplayString(option.label), 3)]);
1991
+ }, null, 8, _hoisted_2$31), [[vModelRadio, model.value]]), createElementVNode("span", { class: normalizeClass(["peer-focus-visible:outline-primary rounded-control flex h-10 items-center justify-center px-2 text-sm font-medium transition-colors select-none peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2", model.value === option.value ? "bg-surface text-ink shadow-(--shadow-control)" : "text-ink-soft"]) }, toDisplayString(option.label), 3)]);
1987
1992
  }), 128))]);
1988
1993
  };
1989
1994
  }
@@ -3116,7 +3121,7 @@ var BaseCalendar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
3116
3121
  ]);
3117
3122
  };
3118
3123
  }
3119
- }), [["__scopeId", "data-v-d682f18a"]]);
3124
+ }), [["__scopeId", "data-v-36cbc7fd"]]);
3120
3125
  //#endregion
3121
3126
  //#region src/components/BaseChip.vue?vue&type=script&setup=true&lang.ts
3122
3127
  var _hoisted_1$19 = { class: "truncate" };
@@ -3177,7 +3182,7 @@ var BaseChip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
3177
3182
  })], 8, _hoisted_2$17)) : createCommentVNode("", true)], 2);
3178
3183
  };
3179
3184
  }
3180
- }), [["__scopeId", "data-v-c94a820d"]]);
3185
+ }), [["__scopeId", "data-v-7939c4e0"]]);
3181
3186
  //#endregion
3182
3187
  //#region src/components/BaseKbd.vue?vue&type=script&setup=true&lang.ts
3183
3188
  var _hoisted_1$18 = {
@@ -4696,6 +4701,7 @@ var PasswordInput_default = /* @__PURE__ */ defineComponent({
4696
4701
  },
4697
4702
  emits: ["update:modelValue", "toggle"],
4698
4703
  setup(__props, { emit: __emit }) {
4704
+ const { fieldClass, fieldStyle, controlAttrs } = useFieldAttrs();
4699
4705
  /**
4700
4706
  * A password field you can look at.
4701
4707
  *
@@ -4740,6 +4746,8 @@ var PasswordInput_default = /* @__PURE__ */ defineComponent({
4740
4746
  }
4741
4747
  return (_ctx, _cache) => {
4742
4748
  return openBlock(), createBlock(FormField_default, {
4749
+ class: normalizeClass(unref(fieldClass)),
4750
+ style: normalizeStyle(unref(fieldStyle)),
4743
4751
  label: __props.label,
4744
4752
  error: __props.error,
4745
4753
  hint: __props.hint,
@@ -4755,7 +4763,7 @@ var PasswordInput_default = /* @__PURE__ */ defineComponent({
4755
4763
  "aria-describedby": describedBy,
4756
4764
  autocapitalize: "none",
4757
4765
  spellcheck: false
4758
- }, _ctx.$attrs, {
4766
+ }, unref(controlAttrs), {
4759
4767
  class: ["control text-ink rounded-card focus-visible:outline-primary w-full ps-3 pe-11 focus-visible:outline-2 focus-visible:outline-offset-1", [CONTROL_CLASS, invalid ? "border-negative" : ""]],
4760
4768
  onInput: _cache[0] || (_cache[0] = ($event) => emit("update:modelValue", $event.target.value))
4761
4769
  }), null, 16, _hoisted_2$2), createElementVNode("button", {
@@ -4775,6 +4783,8 @@ var PasswordInput_default = /* @__PURE__ */ defineComponent({
4775
4783
  }))], 8, _hoisted_3$2)])]),
4776
4784
  _: 1
4777
4785
  }, 8, [
4786
+ "class",
4787
+ "style",
4778
4788
  "label",
4779
4789
  "error",
4780
4790
  "hint",
@@ -5094,7 +5104,7 @@ function createI18nRuntime(options) {
5094
5104
  *
5095
5105
  * The fallback keeps `vitest` and `vite dev` honest, where no define runs.
5096
5106
  */
5097
- var VERSION = "2.24.0";
5107
+ var VERSION = "3.0.0";
5098
5108
  //#endregion
5099
5109
  export { ActivityGrid_default as ActivityGrid, AnnounceHost_default as AnnounceHost, AppError, AvatarStack_default as AvatarStack, BarChart_default as BarChart, BaseAlert_default as BaseAlert, BaseAvatar_default as BaseAvatar, BaseBadge_default as BaseBadge, BaseButton_default as BaseButton, BaseCalendar_default as BaseCalendar, BaseCard_default as BaseCard, BaseCheckbox_default as BaseCheckbox, BaseChip_default as BaseChip, BaseCombobox_default as BaseCombobox, BaseDatePicker_default as BaseDatePicker, BaseInput_default as BaseInput, BaseKbd_default as BaseKbd, BaseLink_default as BaseLink, BaseListbox_default as BaseListbox, BaseMenu_default as BaseMenu, BasePopconfirm_default as BasePopconfirm, BasePopover_default as BasePopover, BaseRadioGroup_default as BaseRadioGroup, BaseRating_default as BaseRating, BaseSelect_default as BaseSelect, BaseSeparator_default as BaseSeparator, BaseSheet_default as BaseSheet, BaseSkeleton_default as BaseSkeleton, BaseSlider_default as BaseSlider, BaseSpinner_default as BaseSpinner, BaseStepper_default as BaseStepper, BaseSwitch_default as BaseSwitch, BaseTable_default as BaseTable, BaseTextarea_default as BaseTextarea, BaseTimeline_default as BaseTimeline, CircularProgress_default as CircularProgress, CodeBlock_default as CodeBlock, ColorPicker_default as ColorPicker, CopyButton_default as CopyButton, DescriptionList_default as DescriptionList, DonutChart_default as DonutChart, EmptyState_default as EmptyState, ErrorBoundary_default as ErrorBoundary, ErrorSummary_default as ErrorSummary, FileDrop_default as FileDrop, FormField_default as FormField, GoogleButton_default as GoogleButton, LocaleLinks_default as LocaleLinks, MATERIALS, NumberInput_default as NumberInput, PALETTES, PageContainer_default as PageContainer, PageHeader_default as PageHeader, PasswordInput_default as PasswordInput, PinInput_default as PinInput, PriceCard_default as PriceCard, ProgressBar_default as ProgressBar, SHEET_ROOT_ID, ScrollArea_default as ScrollArea, SectionHeading_default as SectionHeading, SegmentedControl_default as SegmentedControl, SettingsGroup_default as SettingsGroup, SettingsRow_default as SettingsRow, SkeletonList_default as SkeletonList, SliderField_default as SliderField, StatCard_default as StatCard, TabBar_default as TabBar, TagsInput_default as TagsInput, TimePicker_default as TimePicker, ToastHost_default as ToastHost, ToggleGroup_default as ToggleGroup, ToneDot_default as ToneDot, VERSION, VirtualList_default as VirtualList, addDays, announce, applyMaterial, applyPalette, applyTheme, createI18nRuntime, downloadJson, eachDayOfYear, elementDirection, ensureSheetRoot, formatDate, formatNumber, fromDateKey, horizontalStep, isApplePortable, isInstalled, isMaterial, isPaletteName, isThemePreference, lastNDays, leadingBlanks, needsIosInstall, readStoredTheme, registerErrorMapper, relativeDayLabel, safeRedirect, setFormatLocale, setMaterialStorageKey, setPaletteStorageKey, setThemeStorageKey, startOfWeek, tapFeedback, textDirection, toAppError, toDateKey, toRedirectPath, todayKey, useAnnounce, useDebouncedCallback, useDragScroll, useMaterial, useMediaQuery, useOnline, usePalette, useTheme, useToast, useToday, useVisualViewport };
5100
5110