maz-ui 5.1.0 → 5.2.0-beta.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.
Files changed (45) hide show
  1. package/dist/assets/MazSelect.JjmE1lGO.css +2 -0
  2. package/dist/assets/{MazSlider.B6IG9SKD.css → MazSlider.Cn29GnTJ.css} +1 -1
  3. package/dist/chunks/{MazDialogConfirm.CewOLyYr.js → MazDialogConfirm.BL59GDsx.js} +8 -2
  4. package/dist/chunks/{MazDropzone.BaPph4gM.js → MazDropzone.D180OqDW.js} +1 -1
  5. package/dist/chunks/{MazInputPhoneNumber.CFe6CXyv.js → MazInputPhoneNumber.BXFEI-eS.js} +1 -1
  6. package/dist/chunks/{MazLink.D2hozdtA.js → MazLink.DhJZNmks.js} +1 -1
  7. package/dist/chunks/{MazReadMore.cBAr5X_C.js → MazReadMore.DzcNsBeO.js} +1 -1
  8. package/dist/chunks/{MazSelect.C90-uZWy.js → MazSelect.DC-7menA.js} +2 -2
  9. package/dist/chunks/{MazSelectCountry.DRKCTdop.js → MazSelectCountry.5G-rdIHV.js} +1 -1
  10. package/dist/chunks/{MazSlider.xqineNAn.js → MazSlider.BhyTD25K.js} +13 -10
  11. package/dist/chunks/{dialog.CZ2L20Jb.js → dialog.bL4e40zE.js} +1 -1
  12. package/dist/components/MazDialogConfirm.js +1 -1
  13. package/dist/components/MazDialogConfirm.vue.d.ts +4 -4
  14. package/dist/components/MazDropzone.js +1 -1
  15. package/dist/components/MazInputPhoneNumber.js +1 -1
  16. package/dist/components/MazLink.js +1 -1
  17. package/dist/components/MazLink.vue.d.ts +1 -1
  18. package/dist/components/MazReadMore.js +1 -1
  19. package/dist/components/MazSelect.js +1 -1
  20. package/dist/components/MazSelectCountry.js +1 -1
  21. package/dist/components/MazSlider.js +1 -1
  22. package/dist/components/index.js +8 -8
  23. package/dist/css/main.css +1 -1
  24. package/dist/plugins/dialog.js +1 -1
  25. package/dist/plugins/index.js +1 -1
  26. package/docs/agents/agents-md.md +32 -17
  27. package/docs/agents/claude-rule.md +32 -17
  28. package/docs/components/maz-dialog-confirm.md +2 -2
  29. package/docs/components/maz-dropdown.md +1 -1
  30. package/docs/components/maz-input-number.md +1 -1
  31. package/docs/components/maz-input-phone-number.md +1 -1
  32. package/docs/components/maz-input.md +1 -1
  33. package/docs/components/maz-link.md +1 -1
  34. package/docs/components/maz-pull-to-refresh.md +1 -1
  35. package/docs/components/maz-select-country.md +2 -2
  36. package/docs/composables/use-dialog.md +2 -1
  37. package/docs/ecosystem/icons/index.md +29 -26
  38. package/docs/ecosystem/mcp.md +47 -2
  39. package/docs/ecosystem/node/setup-agents.md +76 -3
  40. package/docs/guide/ai-agents.md +52 -18
  41. package/docs/manifest.json +1 -1
  42. package/docs/plugins/dialog.md +9 -5
  43. package/docs/rules.md +32 -17
  44. package/package.json +27 -9
  45. package/dist/assets/MazSelect.D0EtY2Ea.css +0 -2
@@ -53,7 +53,8 @@ You can display a simple dialog with a title and a message. The dialog will have
53
53
 
54
54
  ```vue
55
55
  <script lang="ts" setup>
56
- import { useDialog, useToast } from 'maz-ui/composables'
56
+ import { useDialog } from 'maz-ui/composables/useDialog'
57
+ import { useToast } from 'maz-ui/composables/useToast'
57
58
 
58
59
  const dialog = useDialog()
59
60
  const toast = useToast()
@@ -91,7 +92,8 @@ The buttons property allows you to display custom buttons in the dialog and repl
91
92
 
92
93
  ```vue
93
94
  <script lang="ts" setup>
94
- import { useDialog, useToast } from 'maz-ui/composables'
95
+ import { useDialog } from 'maz-ui/composables/useDialog'
96
+ import { useToast } from 'maz-ui/composables/useToast'
95
97
 
96
98
  const dialog = useDialog()
97
99
  const toast = useToast()
@@ -143,7 +145,8 @@ The buttons property allows you to display custom buttons in the dialog and repl
143
145
 
144
146
  ```vue
145
147
  <script lang="ts" setup>
146
- import { useDialog, useToast } from 'maz-ui/composables'
148
+ import { useDialog } from 'maz-ui/composables/useDialog'
149
+ import { useToast } from 'maz-ui/composables/useToast'
147
150
 
148
151
  const dialog = useDialog()
149
152
  const toast = useToast()
@@ -161,7 +164,7 @@ async function openDialogResponse() {
161
164
  },
162
165
  {
163
166
  text: 'Accept',
164
- type: 'resolve',
167
+ type: 'accept',
165
168
  response: 'Accepted Response',
166
169
  color: 'secondary',
167
170
  }
@@ -193,7 +196,8 @@ You can close the dialog programmatically by calling the close method returned b
193
196
 
194
197
  ```vue
195
198
  <script lang="ts" setup>
196
- import { useDialog, useToast } from 'maz-ui/composables'
199
+ import { useDialog } from 'maz-ui/composables/useDialog'
200
+ import { useToast } from 'maz-ui/composables/useToast'
197
201
 
198
202
  const dialog = useDialog()
199
203
 
package/docs/rules.md CHANGED
@@ -7,42 +7,57 @@ description: "How to use maz-ui and its ecosystem in this project: look-up workf
7
7
 
8
8
  > These rules and the docs in `node_modules/maz-ui/docs` match the installed version of maz-ui (`node_modules/maz-ui/package.json`).
9
9
 
10
- This project is built with **maz-ui** and its ecosystem (`@maz-ui/themes`, `@maz-ui/icons`, `@maz-ui/utils`, `@maz-ui/translations`, `@maz-ui/nuxt`). Reuse what it provides instead of re-implementing it: most UI elements, helpers, icons and styles you need already exist.
10
+ This project is built with **maz-ui** and its ecosystem. Reuse what it provides instead of re-implementing it: most UI elements, helpers, icons and styles you need already exist.
11
11
 
12
12
  ### Look it up before you write it
13
13
 
14
- Before creating a component, composable, helper, icon or style, check what maz-ui offers:
14
+ - **MCP server `maz-ui`** (when available): `search_docs` (describe the need: "confirm before delete"), `get_component_api`, `find_icons`, `get_theme_tokens`, `get_doc`, `review_code`.
15
+ - **Version-matched docs** in `node_modules/maz-ui/docs/` (start with `README.md`; in a monorepo, the `maz-ui` of the app).
15
16
 
16
- - **MCP server `maz-ui`** (when available): `search_docs` (describe the need: "confirm before delete", "phone input"), `get_component_api` (exact props, events, slots), `find_icons`, `get_theme_tokens` (Tailwind classes of the project and of maz-ui), `get_doc`, `review_code`.
17
- - **Version-matched docs** in `node_modules/maz-ui/docs/` (start with `README.md`; in a monorepo, resolve `maz-ui` from the app package). Read the relevant page before using an API.
17
+ Never guess an API: only use documented props, events, slots and imports.
18
18
 
19
- Never guess an API: only use props, events, slots and imports that are documented.
19
+ ### Which package for what
20
+
21
+ `maz-ui` (components, composables, directives, plugins), `@maz-ui/themes` (brand colors, fonts, dark mode), `@maz-ui/icons` (icons, logos, flags), `@maz-ui/utils` (helpers), `@maz-ui/translations` (texts of the components), `@maz-ui/nuxt` (Nuxt module).
20
22
 
21
23
  ### Components
22
24
 
23
- - Use `Maz*` components instead of native elements or hand-made widgets: `MazBtn` (not `<button>`), `MazInput`, `MazSelect`, `MazCheckbox`, `MazSwitch`, `MazTextarea`, `MazDialog`, `MazDialogConfirm`, `MazDrawer`, `MazBottomSheet`, `MazPopover`, `MazDropdown`, `MazTabs`, `MazTable`, `MazCard`, `MazAvatar`, `MazBadge`, `MazAlert`, `MazSkeleton`, `MazSpinner`, `MazDatePicker`, `MazInputPhoneNumber`, `MazDropzone`, `MazStepper`, `MazSidebar`, `MazPagination`...
25
+ - Use `Maz*` components instead of native elements or hand-made widgets: `MazBtn` (not `<button>`), `MazLink`, `MazInput`, `MazSelect`, `MazCheckbox`, `MazDialog`, `MazDrawer`, `MazPopover`, `MazDropdown`, `MazTabs`, `MazTable`, `MazCard`, `MazAvatar`, `MazBadge`, `MazAlert`, `MazDatePicker`, `MazInputPhoneNumber`, `MazDropzone`, `MazPagination`...
24
26
  - Prop values are typed: colors are `primary | secondary | accent | info | success | warning | destructive | contrast | transparent` (plus `surface` on some components), sizes `mini | xs | sm | md | lg | xl`.
25
- - Feedback and overlays: `useToast()` for notifications, `useDialog()` or `MazDialogConfirm` for confirmations, `useWait()` for loading states.
27
+ - A button with only an icon needs an `aria-label`.
28
+
29
+ ### Feedback, overlays and forms
30
+
31
+ - `useToast()` for notifications, `useDialog()` or `MazDialogConfirm` for confirmations, `useWait()` for loading states, `MazSkeleton` / `MazSpinner` while data loads.
32
+ - These composables need their plugin. Vue: `app.use(ToastPlugin)` from `maz-ui/plugins/toast` (`DialogPlugin`, `WaitPlugin`, `AosPlugin` likewise). Nuxt: `mazUi: { plugins: { toast: true } }`, off by default like the directives (`mazUi.directives.vTooltip`, or import the directive).
26
33
  - Forms: `useFormValidator` / `useFormField` with your Standard Schema library (Zod, Valibot, ArkType).
27
34
 
28
35
  ### Icons
29
36
 
30
- Use `@maz-ui/icons` (860+ icons: `MazTrash`, `MazXMark`, `MazMagnifyingGlass`, `MazFlagFR`, `MazLogoVue`...). Never inline SVG or add another icon library. Pass icon components to icon props: `<MazBtn :start-icon="MazTrash">`.
37
+ Use `@maz-ui/icons`, never inline SVG nor another icon library. Pick the format by usage:
38
+
39
+ - **Icon props** (`<MazBtn :start-icon>`, `<MazIcon :icon>`...): the raw SVG string, the lightest, `@maz-ui/icons/raw/MazTrash`.
40
+ - **Directly in a template**: the component, `@maz-ui/icons/static/MazTrash`, then `<MazTrash class="size-5 text-muted" />` (size and color from the text: `1em`, `currentColor`).
41
+ - **Not visible at first render** (`v-if`, menus, dialogs, tabs): the lazy component, `@maz-ui/icons/lazy/MazTrash`. Never for icons visible on load: each one is an extra request.
42
+ - `<img>` or CSS only for multicolor icons (flags, logos): `@maz-ui/icons/svg/<name>.svg`, the text color does not apply there.
31
43
 
32
- ### Helpers and composables
44
+ ### Helpers
33
45
 
34
- Use `@maz-ui/utils` and maz-ui composables instead of lodash, VueUse or hand-written code: `debounce`, `throttle`, `sleep`, `isEqual`, `capitalize`, `formatCurrency`, `formatDate`, `formatNumber`, `formatPhoneNumber`, `getCookie`/`setCookie`, `useBreakpoints`, `useWindowSize`, `useTimer`, `useIdleTimeout`, `useSwipe`, `vClickOutside`, `vTooltip`, `vLazyImg`...
46
+ Use `@maz-ui/utils/helpers/<name>` and the maz-ui composables instead of lodash, VueUse or hand-written code: `debounce`, `throttle`, `sleep`, `isEqual`, `formatCurrency`, `formatDate`, `formatNumber`, `formatPhoneNumber`, `capitalize`, `normalizeString`, `getCookie` / `setCookie`, `useBreakpoints`, `useWindowSize`, `useTimer`, `useIdleTimeout`, `useSwipe`, `vClickOutside`, `vTooltip`, `vLazyImg`...
47
+
48
+ ### Texts and languages
49
+
50
+ The texts built in the components come from `@maz-ui/translations`: change the language with `useTranslations().setLocale('fr')` and customize the texts in its options, not in every component.
35
51
 
36
52
  ### Styling with Tailwind
37
53
 
38
54
  The maz-ui theme is exposed to Tailwind (`@import 'maz-ui/tailwindcss/theme.css'`) and the project usually extends it. Only use theme tokens:
39
55
 
40
- - **Project tokens first**: the Tailwind entry of the project (the CSS file that imports `maz-ui/tailwindcss/theme.css`) adds its own `@theme` tokens (fonts, animations, colors...), `@custom-variant` and `@utility`, and the `definePreset` file sets the brand values of the maz-ui tokens. `get_theme_tokens` lists both; without the MCP server, read these files. When a value is missing, add a token to the project `@theme` and use its class instead of an arbitrary value.
41
-
42
- - Colors: `primary`, `secondary`, `accent`, `info`, `success`, `warning`, `destructive`, `contrast` (each with `-foreground` and `-50` to `-950`), `surface`, `foreground`, `muted`, `divider`, `overlay`, plus `bg-container` and `bg-input`. Example: `bg-surface text-foreground border-divider`, `bg-primary text-primary-foreground`, `text-muted`.
43
- - Never use the default Tailwind palette (`bg-blue-500`, `text-gray-600`, `bg-white`, `text-black`) nor hard-coded colors (`#fff`, `rgb()`, `bg-[#...]`). Theme colors already adapt to dark mode: do not add `dark:` color overrides.
56
+ - **Project tokens first**: the Tailwind entry of the project adds its own `@theme` tokens, variants and utilities, and the `definePreset` file sets the brand values. `get_theme_tokens` lists both (or read these files). When a value is missing, add a token to the project `@theme` instead of an arbitrary value.
57
+ - Colors: `primary`, `secondary`, `accent`, `info`, `success`, `warning`, `destructive`, `contrast` (each with `-foreground` and `-50` to `-950`), `surface`, `foreground`, `muted`, `divider`, `overlay`, `bg-container`, `bg-input`. Example: `bg-surface text-foreground border-divider`.
58
+ - Never the default Tailwind palette (`bg-blue-500`, `text-gray-600`, `bg-white`, `text-black`) nor hard-coded colors (`#fff`, `rgb()`, `bg-[#...]`). Theme colors already adapt to dark mode: no `dark:` color overrides.
44
59
  - Radius `rounded-*`, shadows `shadow-sm` to `shadow-xl` and `shadow-elevation`, spacing scale (`p-4`, `gap-2`), breakpoints `mob-*`, `tab-*`, `lap-*` (plus `sm` to `2xl`), utilities `flex-center`, `padded-container`.
45
- - **No `maz:` prefix** in this project: it is internal to the maz-ui library and its documentation.
60
+ - **No `maz:` prefix** in this project: it is internal to the maz-ui library.
46
61
  - In custom CSS, use the variables: `var(--maz-primary)`, `var(--maz-rounded-md)`, `calc(var(--maz-space) * 4)`.
47
62
 
48
63
  ### Theme
@@ -51,8 +66,8 @@ Brand colors, fonts, radius and spacing come from a `@maz-ui/themes` preset (`de
51
66
 
52
67
  ### Imports
53
68
 
54
- - Deep imports: `maz-ui/components/MazBtn`, `maz-ui/composables/useToast`, `maz-ui/directives/vTooltip`, `@maz-ui/utils/helpers/debounce`, `@maz-ui/icons/static/MazTrash`. The `maz-ui` root entry only exports types. Never import from `maz-ui/src` or `maz-ui/dist`.
55
- - With `@maz-ui/nuxt`, components and composables are auto-imported: do not import them.
69
+ - Deep imports: `maz-ui/components/MazBtn`, `maz-ui/composables/useToast`, `maz-ui/directives/vTooltip`, `maz-ui/plugins/toast`, `@maz-ui/utils/helpers/debounce`, `@maz-ui/icons/raw/MazTrash`. The `maz-ui` root entry only exports types. Never import from `maz-ui/src` or `maz-ui/dist`.
70
+ - With `@maz-ui/nuxt`, components and composables are auto-imported: do not import them. Icons are not: import them. The theme and the translations are set in the `mazUi` options of `nuxt.config`, not with the `MazUi` Vue plugin.
56
71
 
57
72
  ### Before you finish
58
73
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "maz-ui",
3
3
  "type": "module",
4
- "version": "5.1.0",
4
+ "version": "5.2.0-beta.0",
5
5
  "description": "A standalone components library for Vue.Js 3 & Nuxt.Js 3",
6
6
  "author": "Louis Mazel <me@loicmazuel.com>",
7
7
  "license": "MIT",
@@ -201,10 +201,10 @@
201
201
  },
202
202
  "dependencies": {
203
203
  "@floating-ui/vue": "^2.0.1",
204
- "@maz-ui/icons": "5.0.0",
205
- "@maz-ui/themes": "5.0.0",
206
- "@maz-ui/translations": "5.0.0",
207
- "@maz-ui/utils": "5.0.0",
204
+ "@maz-ui/icons": "^5.2.0-beta.0",
205
+ "@maz-ui/themes": "^5.2.0-beta.0",
206
+ "@maz-ui/translations": "^5.2.0-beta.0",
207
+ "@maz-ui/utils": "^5.2.0-beta.0",
208
208
  "@tanstack/vue-virtual": "^3.13.47",
209
209
  "chart.js": "^4.5.1",
210
210
  "dayjs": "^1.11.23",
@@ -213,27 +213,45 @@
213
213
  "marked": "^18.1.1"
214
214
  },
215
215
  "devDependencies": {
216
- "@maz-ui/eslint-config": "5.0.0",
217
- "@maz-ui/node": "5.1.0",
218
- "@maz-ui/stylelint-config": "5.0.0",
219
- "@maz-ui/vite-config": "0.0.0",
216
+ "@codecov/vite-plugin": "^2.0.1",
217
+ "@maz-ui/eslint-config": "^5.0.0",
218
+ "@maz-ui/node": "^5.2.0-beta.0",
219
+ "@maz-ui/stylelint-config": "^5.2.0-beta.0",
220
+ "@maz-ui/vite-config": "^0.0.0",
220
221
  "@tailwindcss/cli": "^4.3.3",
221
222
  "@tailwindcss/postcss": "^4.3.3",
222
223
  "@tailwindcss/vite": "^4.3.3",
224
+ "@types/node": "^22.20.5",
225
+ "@vitejs/plugin-vue": "^6.0.10",
226
+ "@vitest/coverage-v8": "^5.0.5",
223
227
  "@vue/test-utils": "^2.5.1",
224
228
  "autoprefixer": "^10.6.1",
229
+ "cross-env": "^10.1.0",
230
+ "eslint": "^10.13.0",
231
+ "glob": "^13.0.6",
225
232
  "jsdom": "^30.1.3",
226
233
  "lightningcss": "^1.33.0",
227
234
  "nuxt": "^4.6.2",
235
+ "postcss": "^8.5.31",
228
236
  "postcss-nested": "^9.0.0",
229
237
  "sass": "^1.105.2",
230
238
  "shiki": "^4.5.0",
239
+ "stylelint": "^17.16.0",
231
240
  "tailwindcss": "^4.3.3",
241
+ "tsx": "^4.23.15",
242
+ "typescript": "^6.0.3",
232
243
  "unplugin-auto-import": "^21.1.0",
233
244
  "unplugin-vue-components": "^32.1.0",
234
245
  "valibot": "^1.5.0",
246
+ "vite": "^8.3.4",
247
+ "vite-plugin-dts": "^5.1.2",
248
+ "vite-plugin-lib-inject-css": "^2.2.2",
249
+ "vite-svg-loader": "^5.1.3",
250
+ "vitest": "5.0.5",
235
251
  "vitest-axe": "^0.1.0",
252
+ "vue": "^3.5.44",
236
253
  "vue-router": "^5.4.0",
254
+ "vue-tsc": "3.3.13",
237
255
  "zod": "^4.6.7"
238
256
  },
239
257
  "lint-staged": {
@@ -1,2 +0,0 @@
1
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-2e0180bb],[data-v-2e0180bb]:before,[data-v-2e0180bb]:after{--tw-duration:initial;--tw-ease:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-border-style:solid;--tw-scrollbar-thumb:#0000;--tw-scrollbar-track:#0000}[data-v-2e0180bb]::backdrop{--tw-duration:initial;--tw-ease:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-border-style:solid;--tw-scrollbar-thumb:#0000;--tw-scrollbar-track:#0000}}}.m-select.--disabled .m-select-input[data-v-2e0180bb]{cursor:var(--maz-disabled-cursor)}.m-select[data-v-2e0180bb]:not(.--disabled) .m-input-input{cursor:pointer}.m-select.--is-open .m-select-chevron[data-v-2e0180bb]{transform:rotate(180deg)}.m-select button.maz-custom[data-v-2e0180bb]{cursor:pointer;appearance:none;--tw-border-style:none;border-style:none}.m-select button.maz-custom[data-v-2e0180bb]:disabled{cursor:var(--maz-disabled-cursor)}.m-select-chevron[data-v-2e0180bb]{color:var(--maz-color-muted,var(--maz-muted));transition-property:all;transition-timing-function:var(--tw-ease,var(--ease-out));transition-duration:var(--tw-duration,var(--duration-normal));--tw-duration:.3s;--tw-ease:var(--maz-easing-out,cubic-bezier(.4, 0, .2, 1));transition-duration:.3s;transition-timing-function:var(--maz-easing-out,cubic-bezier(.4, 0, .2, 1));font-size:1.2em}.m-select-input[data-v-2e0180bb]{cursor:pointer;width:100%;height:100%}.m-select-input[data-v-2e0180bb] input{caret-color:#0000}.m-select-input__toggle-button[data-v-2e0180bb]{background-color:#0000;justify-content:center;align-items:center;height:100%;padding-inline-start:0;display:flex}.m-select-list[data-v-2e0180bb]{z-index:1050;gap:var(--maz-space);border-radius:var(--maz-rounded-md);background-color:var(--maz-container-bg,var(--maz-surface));--tw-shadow:var(--maz-shadow-style-elevation);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f));--tw-drop-shadow:drop-shadow(var(--maz-drop-shadow-md,0 3px 3px #0000001f));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);flex-direction:column;min-inline-size:3.5rem;display:flex;overflow:hidden}.m-select-list-item[data-v-2e0180bb]{cursor:pointer;align-items:center;gap:calc(var(--maz-space) * 3);text-overflow:ellipsis;white-space:nowrap;border-radius:var(--maz-rounded-md);border-style:var(--tw-border-style);border-width:var(--maz-border-width);--tw-border-style:solid;width:100%;padding-inline:calc(var(--maz-space) * 3);padding-block:calc(var(--maz-space) * 2);text-align:start;--tw-outline-style:none;background-color:#0000;border-style:solid;border-color:#0000;outline-style:none;display:flex;overflow:hidden}@media (forced-colors:active){.m-select-list-item[data-v-2e0180bb]{outline-offset:2px;outline:2px solid #0000}}.m-select-list-item[data-v-2e0180bb]{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--ease-out));transition-duration:var(--tw-duration,var(--duration-normal));--tw-duration:.3s;--tw-ease:var(--maz-easing-in-out,cubic-bezier(.4, 0, .2, 1));transition-duration:.3s;transition-timing-function:var(--maz-easing-in-out,cubic-bezier(.4, 0, .2, 1))}.m-select-list-item[data-v-2e0180bb]:focus-within{background-color:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h))}@media (hover:hover){.m-select-list-item[data-v-2e0180bb]:hover{background-color:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h))}}.m-select-list-item[data-v-2e0180bb]:where(.dark,.dark *):focus-within{background-color:var(--maz-color-surface-400,oklch(from var(--maz-surface) clamp(0, calc(l + .06), 1) c h))}@media (hover:hover){.m-select-list-item[data-v-2e0180bb]:where(.dark,.dark *):hover{background-color:var(--maz-color-surface-400,oklch(from var(--maz-surface) clamp(0, calc(l + .06), 1) c h))}}.m-select-list-item span[data-v-2e0180bb]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.m-select-list-item.--is-none-value[data-v-2e0180bb]{color:var(--maz-color-muted,var(--maz-muted))}.m-select-list-item.--is-selected[data-v-2e0180bb]{color:var(--selected-text-color);background-color:var(--selected-bg-color)}.m-select-list-item.--is-selected[data-v-2e0180bb]:focus-within{outline:var(--selected-text-color) solid var(--maz-border-width);outline-offset:2px}.m-select-list-item.--is-selected.--transparent[data-v-2e0180bb]{background-color:var(--maz-color-surface,var(--maz-surface))}.m-select-list__no-results[data-v-2e0180bb]{padding:calc(var(--maz-space) * 4);justify-content:center;align-items:center;display:flex}.m-select-list__scroll-wrapper[data-v-2e0180bb]{gap:var(--maz-space);padding:calc(var(--maz-space) * 2);flex-direction:column;flex:1;display:flex;overflow:auto}.m-select-list__scroll-wrapper[data-v-2e0180bb]::-webkit-scrollbar{inline-size:.1875rem}.m-select-list__scroll-wrapper[data-v-2e0180bb]::-webkit-scrollbar-track{background:0 0}.m-select-list__scroll-wrapper[data-v-2e0180bb]::-webkit-scrollbar-thumb{background-color:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h))}.m-select-list__scroll-wrapper[data-v-2e0180bb]::-webkit-scrollbar-thumb:where(){background-color:var(--maz-color-surface-400,oklch(from var(--maz-surface) clamp(0, calc(l + .06), 1) c h))}.m-select-list__scroll-wrapper[data-v-2e0180bb]::-webkit-scrollbar-thumb{border-radius:1000px}.m-select-list__scroll-wrapper[data-v-2e0180bb]{scrollbar-width:thin;--tw-scrollbar-thumb:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h));--tw-scrollbar-track:transparent;scrollbar-color:var(--tw-scrollbar-thumb) var(--tw-scrollbar-track)}.m-select-list__search-wrapper[data-v-2e0180bb]{padding-inline:calc(var(--maz-space) * 2);padding-top:calc(var(--maz-space) * 2)}.m-select-list-optgroup[data-v-2e0180bb]{padding:calc(var(--maz-space) * .5);text-align:start;color:var(--maz-color-muted,var(--maz-muted));flex:none;font-size:.875em}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-scrollbar-thumb{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-scrollbar-track{syntax:"<color>";inherits:false;initial-value:#0000}