magoo 0.1.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 (93) hide show
  1. package/README.md +159 -0
  2. package/README.pt-BR.md +167 -0
  3. package/dist/favicon.svg +1 -0
  4. package/dist/icons.svg +24 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/magoo.css +2 -0
  7. package/dist/magoo.es.js +2084 -0
  8. package/dist/magoo.umd.js +1 -0
  9. package/dist/src/App.vue.d.ts +2 -0
  10. package/dist/src/components/MButton/MButton.spec.d.ts +1 -0
  11. package/dist/src/components/MButton/MButton.stories.d.ts +8 -0
  12. package/dist/src/components/MButton/MButton.vue.d.ts +31 -0
  13. package/dist/src/components/MButton/index.d.ts +1 -0
  14. package/dist/src/components/MCheckbox/MCheckbox.spec.d.ts +1 -0
  15. package/dist/src/components/MCheckbox/MCheckbox.stories.d.ts +8 -0
  16. package/dist/src/components/MCheckbox/MCheckbox.vue.d.ts +35 -0
  17. package/dist/src/components/MCheckbox/index.d.ts +1 -0
  18. package/dist/src/components/MCheckboxList/MCheckboxList.spec.d.ts +1 -0
  19. package/dist/src/components/MCheckboxList/MCheckboxList.stories.d.ts +8 -0
  20. package/dist/src/components/MCheckboxList/MCheckboxList.vue.d.ts +45 -0
  21. package/dist/src/components/MCheckboxList/index.d.ts +1 -0
  22. package/dist/src/components/MErrorMessage/MErrorMessage.spec.d.ts +1 -0
  23. package/dist/src/components/MErrorMessage/MErrorMessage.stories.d.ts +8 -0
  24. package/dist/src/components/MErrorMessage/MErrorMessage.vue.d.ts +8 -0
  25. package/dist/src/components/MErrorMessage/index.d.ts +1 -0
  26. package/dist/src/components/MFieldsetPanel/MFieldsetPanel.spec.d.ts +1 -0
  27. package/dist/src/components/MFieldsetPanel/MFieldsetPanel.stories.d.ts +7 -0
  28. package/dist/src/components/MFieldsetPanel/MFieldsetPanel.vue.d.ts +26 -0
  29. package/dist/src/components/MFieldsetPanel/index.d.ts +1 -0
  30. package/dist/src/components/MFileUpload/MFileUpload.spec.d.ts +1 -0
  31. package/dist/src/components/MFileUpload/MFileUpload.stories.d.ts +10 -0
  32. package/dist/src/components/MFileUpload/MFileUpload.vue.d.ts +65 -0
  33. package/dist/src/components/MFileUpload/index.d.ts +1 -0
  34. package/dist/src/components/MForm/MForm.spec.d.ts +1 -0
  35. package/dist/src/components/MForm/MForm.stories.d.ts +7 -0
  36. package/dist/src/components/MForm/MForm.vue.d.ts +46 -0
  37. package/dist/src/components/MForm/index.d.ts +1 -0
  38. package/dist/src/components/MInput/MInput.spec.d.ts +1 -0
  39. package/dist/src/components/MInput/MInput.stories.d.ts +12 -0
  40. package/dist/src/components/MInput/MInput.vue.d.ts +39 -0
  41. package/dist/src/components/MInput/index.d.ts +1 -0
  42. package/dist/src/components/MList/MList.spec.d.ts +1 -0
  43. package/dist/src/components/MList/MList.stories.d.ts +15 -0
  44. package/dist/src/components/MList/MList.vue.d.ts +142 -0
  45. package/dist/src/components/MList/index.d.ts +1 -0
  46. package/dist/src/components/MNumber/MNumber.spec.d.ts +1 -0
  47. package/dist/src/components/MNumber/MNumber.stories.d.ts +9 -0
  48. package/dist/src/components/MNumber/MNumber.vue.d.ts +41 -0
  49. package/dist/src/components/MNumber/index.d.ts +1 -0
  50. package/dist/src/components/MPassword/MPassword.spec.d.ts +1 -0
  51. package/dist/src/components/MPassword/MPassword.stories.d.ts +8 -0
  52. package/dist/src/components/MPassword/MPassword.vue.d.ts +43 -0
  53. package/dist/src/components/MPassword/index.d.ts +1 -0
  54. package/dist/src/components/MRadio/MRadio.spec.d.ts +1 -0
  55. package/dist/src/components/MRadio/MRadio.stories.d.ts +8 -0
  56. package/dist/src/components/MRadio/MRadio.vue.d.ts +33 -0
  57. package/dist/src/components/MRadio/index.d.ts +1 -0
  58. package/dist/src/components/MRadioList/MRadioList.spec.d.ts +1 -0
  59. package/dist/src/components/MRadioList/MRadioList.stories.d.ts +8 -0
  60. package/dist/src/components/MRadioList/MRadioList.vue.d.ts +45 -0
  61. package/dist/src/components/MRadioList/index.d.ts +1 -0
  62. package/dist/src/components/MSelect/MSelect.spec.d.ts +1 -0
  63. package/dist/src/components/MSelect/MSelect.stories.d.ts +8 -0
  64. package/dist/src/components/MSelect/MSelect.vue.d.ts +43 -0
  65. package/dist/src/components/MSelect/index.d.ts +1 -0
  66. package/dist/src/components/MSwitch/MSwitch.spec.d.ts +1 -0
  67. package/dist/src/components/MSwitch/MSwitch.stories.d.ts +11 -0
  68. package/dist/src/components/MSwitch/MSwitch.vue.d.ts +41 -0
  69. package/dist/src/components/MSwitch/index.d.ts +1 -0
  70. package/dist/src/components/MTextarea/MTextarea.spec.d.ts +1 -0
  71. package/dist/src/components/MTextarea/MTextarea.stories.d.ts +8 -0
  72. package/dist/src/components/MTextarea/MTextarea.vue.d.ts +37 -0
  73. package/dist/src/components/MTextarea/index.d.ts +1 -0
  74. package/dist/src/components/MValidationSummary/MValidationSummary.spec.d.ts +1 -0
  75. package/dist/src/components/MValidationSummary/MValidationSummary.stories.d.ts +8 -0
  76. package/dist/src/components/MValidationSummary/MValidationSummary.vue.d.ts +25 -0
  77. package/dist/src/components/MValidationSummary/index.d.ts +1 -0
  78. package/dist/src/components/index.d.ts +17 -0
  79. package/dist/src/composables/useFieldDescribedBy.d.ts +4 -0
  80. package/dist/src/composables/useFieldErrors.d.ts +7 -0
  81. package/dist/src/composables/useFieldIds.d.ts +6 -0
  82. package/dist/src/index.d.ts +9 -0
  83. package/dist/src/main.d.ts +0 -0
  84. package/dist/src/themes/theme.d.ts +3 -0
  85. package/dist/src/types/forms.d.ts +32 -0
  86. package/dist/src/types/index.d.ts +1 -0
  87. package/dist/src/validation/index.d.ts +4 -0
  88. package/dist/src/validation/types.d.ts +40 -0
  89. package/dist/src/validation/useFormValidation.d.ts +56 -0
  90. package/dist/src/validation/useFormValidation.spec.d.ts +1 -0
  91. package/dist/src/validation/utils.d.ts +17 -0
  92. package/dist/src/validation/utils.spec.d.ts +1 -0
  93. package/package.json +72 -0
package/README.md ADDED
@@ -0,0 +1,159 @@
1
+ # Magoo
2
+
3
+ [Português (Brasil)](README.pt-BR.md)
4
+
5
+ Magoo is a Vue 3 component library focused on accessible form primitives, predictable APIs, and token-based theming.
6
+
7
+ ## Status
8
+
9
+ The current public API is an early release centered on forms. See the [component documentation](docs/COMPONENTS.md) and the [development roadmap](docs/PLANO-DESENVOLVIMENTO.md) before adopting it in production.
10
+
11
+ ## Requirements
12
+
13
+ - Vue `^3.5.0`
14
+ - Node.js LTS for local development
15
+
16
+ Vue is a peer dependency and must be installed by the host application.
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ npm install magoo vue
22
+ ```
23
+
24
+ Import the stylesheet once in the application entry point:
25
+
26
+ ```ts
27
+ import 'magoo/styles'
28
+ ```
29
+
30
+ Components can be imported individually:
31
+
32
+ ```ts
33
+ import { MButton, MInput } from 'magoo'
34
+ ```
35
+
36
+ Or register the library globally:
37
+
38
+ ```ts
39
+ import { createApp } from 'vue'
40
+ import Magoo from 'magoo'
41
+ import 'magoo/styles'
42
+
43
+ const app = createApp(App)
44
+ app.use(Magoo)
45
+ app.mount('#app')
46
+ ```
47
+
48
+ ## Basic usage
49
+
50
+ ```vue
51
+ <script setup lang="ts">
52
+ import { ref } from 'vue'
53
+ import { MButton, MInput } from 'magoo'
54
+
55
+ const email = ref('')
56
+ </script>
57
+
58
+ <template>
59
+ <MInput v-model="email" id="email" name="email" label="Email" hint="We will use this address to contact you." />
60
+ <MButton label="Save" type="submit" />
61
+ </template>
62
+ ```
63
+
64
+ ## Forms and external errors
65
+
66
+ Form fields support `v-model`, external errors as a string or string array, controlled `invalid`, `disabled` and `loading` states, and `blur`/`focus` events. Errors can be provided directly or by `MForm` using the field `name`:
67
+
68
+ ```vue
69
+ <MForm :errors="errors" @submit="save">
70
+ <MInput v-model="email" name="email" label="Email" />
71
+ </MForm>
72
+ ```
73
+
74
+ Magoo presents validation state but does not define validation rules or depend on a specific validation library. Use the exported `MagooFieldAdapterState` type to map an external solution to the public field contract.
75
+
76
+ An optional, decoupled validation engine is also available. `useFormValidation` orchestrates sync/async rules, multiple messages per field, cross-field dependencies, server errors and submit handling, while `MForm` focuses the first invalid control and `MValidationSummary` lists every error with links to the fields:
77
+
78
+ ```vue
79
+ <script setup lang="ts">
80
+ import { MForm, MInput, MValidationSummary, useFormValidation } from 'magoo'
81
+
82
+ const form = useFormValidation({
83
+ values: { email: '' },
84
+ schema: { email: [(value) => (value ? undefined : 'Email is required.')] },
85
+ })
86
+ </script>
87
+
88
+ <template>
89
+ <MForm :validation="form" @submit="save">
90
+ <MValidationSummary :errors="form.visibleErrors.value" :labels="{ email: 'Email' }" />
91
+ <MInput v-bind="form.field('email')" label="Email" />
92
+ </MForm>
93
+ </template>
94
+ ```
95
+
96
+ ## Themes
97
+
98
+ Magoo exposes CSS custom properties and supports light, dark, and system themes:
99
+
100
+ ```ts
101
+ import { applyTheme } from 'magoo'
102
+
103
+ applyTheme('light')
104
+ applyTheme('dark')
105
+ applyTheme('system')
106
+ ```
107
+
108
+ Host applications can override tokens:
109
+
110
+ ```css
111
+ :root {
112
+ --magoo-color-primary: #4f46e5;
113
+ --magoo-color-bg: #ffffff;
114
+ }
115
+ ```
116
+
117
+ See [Themes and accessibility](docs/COMPONENTS.md#themes-and-accessibility) for guidance.
118
+
119
+ ## Components
120
+
121
+ The current public component set is `MButton`, `MCheckbox`, `MCheckboxList`, `MErrorMessage`, `MFieldsetPanel`, `MFileUpload`, `MForm`, `MInput`, `MList`, `MNumber`, `MPassword`, `MRadio`, `MRadioList`, `MSelect`, `MSwitch`, `MTextarea`, and `MValidationSummary`, plus the `useFormValidation` composable.
122
+
123
+ See the [complete component documentation](docs/COMPONENTS.md). Stories are available in the local Storybook.
124
+
125
+ ## Development
126
+
127
+ ```bash
128
+ npm install
129
+ npm run dev
130
+ npm run test
131
+ npm run typecheck
132
+ npm run lint
133
+ npm run build
134
+ ```
135
+
136
+ Run Storybook with `npm run storybook`.
137
+
138
+ ## Pre-release publishing
139
+
140
+ The package is being prepared through npm pre-releases while the public API is
141
+ still evolving. Test releases should use the `beta` dist-tag:
142
+
143
+ ```bash
144
+ npm install magoo@beta
145
+ ```
146
+
147
+ The recommended baseline is `0.1.0-beta.0`, followed by `beta.1`, release
148
+ candidates, and a stable release only after the API and accessibility review
149
+ are complete. Publish with `npm publish --tag beta`; do not move the package to
150
+ `latest` during the beta phase. See the [developer guide](docs/GUIA-DESENVOLVEDOR.md)
151
+ for the release checklist.
152
+
153
+ ## Accessibility
154
+
155
+ Accessibility is part of the component contract. The implementation covers semantic native controls, labels, stable IDs, hints, error associations, visible focus, keyboard-compatible interactions, and light/dark theme tokens. The [WCAG/eMAG matrix](docs/MATRIZ-WCAG-eMAG.md) records automated evidence and remaining manual validation.
156
+
157
+ ## Contributing and license
158
+
159
+ Development conventions are described in the [developer guide](docs/GUIA-DESENVOLVEDOR.md). Contributions should include relevant tests, stories, and documentation updates. The license will be published with the package metadata.
@@ -0,0 +1,167 @@
1
+ # Magoo
2
+
3
+ [English](README.md)
4
+
5
+ Magoo é uma biblioteca de componentes Vue 3 focada em primitivas acessíveis para formulários, APIs previsíveis e tematização baseada em tokens.
6
+
7
+ ## Status
8
+
9
+ A API pública atual está em uma versão inicial, concentrada em formulários. Consulte a [documentação dos componentes](docs/COMPONENTS.pt-BR.md) e o [roadmap de desenvolvimento](docs/PLANO-DESENVOLVIMENTO.md) antes de adotá-la em produção.
10
+
11
+ ## Requisitos
12
+
13
+ - Vue `^3.5.0`
14
+ - Node.js LTS para desenvolvimento local
15
+
16
+ Vue é uma dependência peer e deve ser instalado pela aplicação hospedeira.
17
+
18
+ ## Instalação
19
+
20
+ ```bash
21
+ npm install magoo vue
22
+ ```
23
+
24
+ Importe a folha de estilos uma vez no ponto de entrada da aplicação:
25
+
26
+ ```ts
27
+ import 'magoo/styles'
28
+ ```
29
+
30
+ Os componentes podem ser importados individualmente:
31
+
32
+ ```ts
33
+ import { MButton, MInput } from 'magoo'
34
+ ```
35
+
36
+ Ou a biblioteca pode ser registrada globalmente:
37
+
38
+ ```ts
39
+ import { createApp } from 'vue'
40
+ import Magoo from 'magoo'
41
+ import 'magoo/styles'
42
+
43
+ const app = createApp(App)
44
+ app.use(Magoo)
45
+ app.mount('#app')
46
+ ```
47
+
48
+ ## Uso básico
49
+
50
+ ```vue
51
+ <script setup lang="ts">
52
+ import { ref } from 'vue'
53
+ import { MButton, MInput } from 'magoo'
54
+
55
+ const email = ref('')
56
+ </script>
57
+
58
+ <template>
59
+ <MInput
60
+ v-model="email"
61
+ id="email"
62
+ name="email"
63
+ label="E-mail"
64
+ hint="Usaremos este endereço para contato."
65
+ />
66
+ <MButton label="Salvar" type="submit" />
67
+ </template>
68
+ ```
69
+
70
+ ## Formulários e erros externos
71
+
72
+ Os campos aceitam `v-model`, erros externos como string ou lista de strings, os estados controlados `invalid`, `disabled` e `loading`, além dos eventos `blur`/`focus`. Os erros podem ser fornecidos diretamente ou pelo `MForm`, usando o `name` do campo:
73
+
74
+ ```vue
75
+ <MForm :errors="errors" @submit="save">
76
+ <MInput v-model="email" name="email" label="E-mail" />
77
+ </MForm>
78
+ ```
79
+
80
+ O Magoo apresenta o estado de validação, mas não define regras nem depende de uma biblioteca específica. Use o tipo exportado `MagooFieldAdapterState` para adaptar uma solução externa ao contrato público dos campos.
81
+
82
+ Também há um motor de validação opcional e desacoplado. `useFormValidation` orquestra regras síncronas/assíncronas, múltiplas mensagens por campo, dependências entre campos, erros do servidor e o envio, enquanto o `MForm` foca o primeiro controle inválido e o `MValidationSummary` lista todos os erros com links para os campos:
83
+
84
+ ```vue
85
+ <script setup lang="ts">
86
+ import { MForm, MInput, MValidationSummary, useFormValidation } from 'magoo'
87
+
88
+ const form = useFormValidation({
89
+ values: { email: '' },
90
+ schema: { email: [(value) => (value ? undefined : 'Informe o e-mail.')] },
91
+ })
92
+ </script>
93
+
94
+ <template>
95
+ <MForm :validation="form" @submit="save">
96
+ <MValidationSummary :errors="form.visibleErrors.value" :labels="{ email: 'E-mail' }" />
97
+ <MInput v-bind="form.field('email')" label="E-mail" />
98
+ </MForm>
99
+ </template>
100
+ ```
101
+
102
+ ## Temas
103
+
104
+ O Magoo expõe propriedades customizadas de CSS e suporta os temas claro, escuro e do sistema:
105
+
106
+ ```ts
107
+ import { applyTheme } from 'magoo'
108
+
109
+ applyTheme('light')
110
+ applyTheme('dark')
111
+ applyTheme('system')
112
+ ```
113
+
114
+ A aplicação hospedeira pode sobrescrever tokens:
115
+
116
+ ```css
117
+ :root {
118
+ --magoo-color-primary: #4f46e5;
119
+ --magoo-color-bg: #ffffff;
120
+ }
121
+ ```
122
+
123
+ Consulte [Temas e acessibilidade](docs/COMPONENTS.pt-BR.md#temas-e-acessibilidade) para as orientações atuais.
124
+
125
+ ## Componentes
126
+
127
+ A API pública atual contém:
128
+
129
+ `MButton`, `MCheckbox`, `MCheckboxList`, `MErrorMessage`, `MFieldsetPanel`, `MFileUpload`, `MForm`, `MInput`, `MList`, `MNumber`, `MPassword`, `MRadio`, `MRadioList`, `MSelect`, `MSwitch`, `MTextarea` e `MValidationSummary`, além do composable `useFormValidation`.
130
+
131
+ As props, eventos, modelos, comportamento de acessibilidade e exemplos estão na [documentação dos componentes](docs/COMPONENTS.pt-BR.md). As stories estão disponíveis no Storybook local.
132
+
133
+ ## Desenvolvimento
134
+
135
+ ```bash
136
+ npm install
137
+ npm run dev
138
+ npm run test
139
+ npm run typecheck
140
+ npm run lint
141
+ npm run build
142
+ ```
143
+
144
+ Execute o Storybook com `npm run storybook`.
145
+
146
+ ## Publicação pré-release
147
+
148
+ O pacote deve ser publicado inicialmente como pré-release enquanto a API
149
+ pública ainda evolui. As versões de teste devem usar a dist-tag `beta`:
150
+
151
+ ```bash
152
+ npm install magoo@beta
153
+ ```
154
+
155
+ A versão inicial recomendada é `0.1.0-beta.0`, seguida por `beta.1`, release
156
+ candidates e uma versão estável somente depois da revisão da API e da
157
+ acessibilidade. Publique com `npm publish --tag beta`; não mova o pacote para
158
+ `latest` durante a fase beta. Consulte o [guia do desenvolvedor](docs/GUIA-DESENVOLVEDOR.md)
159
+ para o checklist de release.
160
+
161
+ ## Acessibilidade
162
+
163
+ A acessibilidade faz parte do contrato dos componentes. A implementação atual contempla controles nativos semânticos, labels, IDs estáveis, hints, associação de erros, foco visível, interações compatíveis com teclado e tokens para temas claro/escuro. A [matriz WCAG/eMAG](docs/MATRIZ-WCAG-eMAG.md) registra as evidências automatizadas e as validações manuais restantes.
164
+
165
+ ## Contribuição e licença
166
+
167
+ As convenções de desenvolvimento estão no [guia do desenvolvedor](docs/GUIA-DESENVOLVEDOR.md). Contribuições devem incluir os testes, stories e atualizações de documentação pertinentes. A licença será publicada com os metadados do pacote.
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="48" height="46" fill="none" viewBox="0 0 48 46"><path fill="#863bff" d="M25.946 44.938c-.664.845-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.287c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.497 0-3.578-1.842-3.578H1.237c-.92 0-1.456-1.04-.92-1.788L10.013.474c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.579 1.842 3.579h11.377c.943 0 1.473 1.088.89 1.83L25.947 44.94z" style="fill:#863bff;fill:color(display-p3 .5252 .23 1);fill-opacity:1"/><mask id="a" width="48" height="46" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#000" d="M25.842 44.938c-.664.844-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.183c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.498 0-3.579-1.842-3.579H1.133c-.92 0-1.456-1.04-.92-1.787L9.91.473c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.578 1.842 3.578h11.377c.943 0 1.473 1.088.89 1.832L25.843 44.94z" style="fill:#000;fill-opacity:1"/></mask><g mask="url(#a)"><g filter="url(#b)"><ellipse cx="5.508" cy="14.704" fill="#ede6ff" rx="5.508" ry="14.704" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -4.47 31.516)"/></g><g filter="url(#c)"><ellipse cx="10.399" cy="29.851" fill="#ede6ff" rx="10.399" ry="29.851" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -39.328 7.883)"/></g><g filter="url(#d)"><ellipse cx="5.508" cy="30.487" fill="#7e14ff" rx="5.508" ry="30.487" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -25.913 -14.639)scale(1 -1)"/></g><g filter="url(#e)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -32.644 -3.334)scale(1 -1)"/></g><g filter="url(#f)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -34.34 30.47)"/></g><g filter="url(#g)"><ellipse cx="14.072" cy="22.078" fill="#ede6ff" rx="14.072" ry="22.078" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="rotate(93.35 24.506 48.493)scale(-1 1)"/></g><g filter="url(#h)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#i)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#j)"><ellipse cx=".387" cy="8.972" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(39.51 .387 8.972)"/></g><g filter="url(#k)"><ellipse cx="47.523" cy="-6.092" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 47.523 -6.092)"/></g><g filter="url(#l)"><ellipse cx="41.412" cy="6.333" fill="#47bfff" rx="5.971" ry="9.665" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 41.412 6.333)"/></g><g filter="url(#m)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#n)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#o)"><ellipse cx="35.651" cy="29.907" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 35.651 29.907)"/></g><g filter="url(#p)"><ellipse cx="38.418" cy="32.4" fill="#47bfff" rx="5.971" ry="15.297" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 38.418 32.4)"/></g></g><defs><filter id="b" width="60.045" height="41.654" x="-19.77" y="16.149" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="c" width="90.34" height="51.437" x="-54.613" y="-7.533" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="d" width="79.355" height="29.4" x="-49.64" y="2.03" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="e" width="79.579" height="29.4" x="-45.045" y="20.029" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="f" width="79.579" height="29.4" x="-43.513" y="21.178" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="g" width="74.749" height="58.852" x="15.756" y="-17.901" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="h" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="i" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="j" width="56.045" height="63.649" x="-27.636" y="-22.853" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="k" width="54.814" height="64.646" x="20.116" y="-38.415" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="l" width="33.541" height="35.313" x="24.641" y="-11.323" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="m" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="n" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="o" width="54.814" height="64.646" x="8.244" y="-2.416" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="p" width="39.409" height="43.623" x="18.713" y="10.588" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter></defs></svg>
package/dist/icons.svg ADDED
@@ -0,0 +1,24 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg">
2
+ <symbol id="bluesky-icon" viewBox="0 0 16 17">
3
+ <g clip-path="url(#bluesky-clip)"><path fill="#08060d" d="M7.75 7.735c-.693-1.348-2.58-3.86-4.334-5.097-1.68-1.187-2.32-.981-2.74-.79C.188 2.065.1 2.812.1 3.251s.241 3.602.398 4.13c.52 1.744 2.367 2.333 4.07 2.145-2.495.37-4.71 1.278-1.805 4.512 3.196 3.309 4.38-.71 4.987-2.746.608 2.036 1.307 5.91 4.93 2.746 2.72-2.746.747-4.143-1.747-4.512 1.702.189 3.55-.4 4.07-2.145.156-.528.397-3.691.397-4.13s-.088-1.186-.575-1.406c-.42-.19-1.06-.395-2.741.79-1.755 1.24-3.64 3.752-4.334 5.099"/></g>
4
+ <defs><clipPath id="bluesky-clip"><path fill="#fff" d="M.1.85h15.3v15.3H.1z"/></clipPath></defs>
5
+ </symbol>
6
+ <symbol id="discord-icon" viewBox="0 0 20 19">
7
+ <path fill="#08060d" d="M16.224 3.768a14.5 14.5 0 0 0-3.67-1.153c-.158.286-.343.67-.47.976a13.5 13.5 0 0 0-4.067 0c-.128-.306-.317-.69-.476-.976A14.4 14.4 0 0 0 3.868 3.77C1.546 7.28.916 10.703 1.231 14.077a14.7 14.7 0 0 0 4.5 2.306q.545-.748.965-1.587a9.5 9.5 0 0 1-1.518-.74q.191-.14.372-.293c2.927 1.369 6.107 1.369 8.999 0q.183.152.372.294-.723.437-1.52.74.418.838.963 1.588a14.6 14.6 0 0 0 4.504-2.308c.37-3.911-.63-7.302-2.644-10.309m-9.13 8.234c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.894 0 1.614.82 1.599 1.82.001 1-.705 1.82-1.6 1.82m5.91 0c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.893 0 1.614.82 1.599 1.82 0 1-.706 1.82-1.6 1.82"/>
8
+ </symbol>
9
+ <symbol id="documentation-icon" viewBox="0 0 21 20">
10
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="m15.5 13.333 1.533 1.322c.645.555.967.833.967 1.178s-.322.623-.967 1.179L15.5 18.333m-3.333-5-1.534 1.322c-.644.555-.966.833-.966 1.178s.322.623.966 1.179l1.534 1.321"/>
11
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M17.167 10.836v-4.32c0-1.41 0-2.117-.224-2.68-.359-.906-1.118-1.621-2.08-1.96-.599-.21-1.349-.21-2.848-.21-2.623 0-3.935 0-4.983.369-1.684.591-3.013 1.842-3.641 3.428C3 6.449 3 7.684 3 10.154v2.122c0 2.558 0 3.838.706 4.726q.306.383.713.671c.76.536 1.79.64 3.581.66"/>
12
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M3 10a2.78 2.78 0 0 1 2.778-2.778c.555 0 1.209.097 1.748-.047.48-.129.854-.503.982-.982.145-.54.048-1.194.048-1.749a2.78 2.78 0 0 1 2.777-2.777"/>
13
+ </symbol>
14
+ <symbol id="github-icon" viewBox="0 0 19 19">
15
+ <path fill="#08060d" fill-rule="evenodd" d="M9.356 1.85C5.05 1.85 1.57 5.356 1.57 9.694a7.84 7.84 0 0 0 5.324 7.44c.387.079.528-.168.528-.376 0-.182-.013-.805-.013-1.454-2.165.467-2.616-.935-2.616-.935-.349-.91-.864-1.143-.864-1.143-.71-.48.051-.48.051-.48.787.051 1.2.805 1.2.805.695 1.194 1.817.857 2.268.649.064-.507.27-.857.49-1.052-1.728-.182-3.545-.857-3.545-3.87 0-.857.31-1.558.8-2.104-.078-.195-.349-1 .077-2.078 0 0 .657-.208 2.14.805a7.5 7.5 0 0 1 1.946-.26c.657 0 1.328.092 1.946.26 1.483-1.013 2.14-.805 2.14-.805.426 1.078.155 1.883.078 2.078.502.546.799 1.247.799 2.104 0 3.013-1.818 3.675-3.558 3.87.284.247.528.714.528 1.454 0 1.052-.012 1.896-.012 2.156 0 .208.142.455.528.377a7.84 7.84 0 0 0 5.324-7.441c.013-4.338-3.48-7.844-7.773-7.844" clip-rule="evenodd"/>
16
+ </symbol>
17
+ <symbol id="social-icon" viewBox="0 0 20 20">
18
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M12.5 6.667a4.167 4.167 0 1 0-8.334 0 4.167 4.167 0 0 0 8.334 0"/>
19
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M2.5 16.667a5.833 5.833 0 0 1 8.75-5.053m3.837.474.513 1.035c.07.144.257.282.414.309l.93.155c.596.1.736.536.307.965l-.723.73a.64.64 0 0 0-.152.531l.207.903c.164.715-.213.991-.84.618l-.872-.52a.63.63 0 0 0-.577 0l-.872.52c-.624.373-1.003.094-.84-.618l.207-.903a.64.64 0 0 0-.152-.532l-.723-.729c-.426-.43-.289-.864.306-.964l.93-.156a.64.64 0 0 0 .412-.31l.513-1.034c.28-.562.735-.562 1.012 0"/>
20
+ </symbol>
21
+ <symbol id="x-icon" viewBox="0 0 19 19">
22
+ <path fill="#08060d" fill-rule="evenodd" d="M1.893 1.98c.052.072 1.245 1.769 2.653 3.77l2.892 4.114c.183.261.333.48.333.486s-.068.089-.152.183l-.522.593-.765.867-3.597 4.087c-.375.426-.734.834-.798.905a1 1 0 0 0-.118.148c0 .01.236.017.664.017h.663l.729-.83c.4-.457.796-.906.879-.999a692 692 0 0 0 1.794-2.038c.034-.037.301-.34.594-.675l.551-.624.345-.392a7 7 0 0 1 .34-.374c.006 0 .93 1.306 2.052 2.903l2.084 2.965.045.063h2.275c1.87 0 2.273-.003 2.266-.021-.008-.02-1.098-1.572-3.894-5.547-2.013-2.862-2.28-3.246-2.273-3.266.008-.019.282-.332 2.085-2.38l2-2.274 1.567-1.782c.022-.028-.016-.03-.65-.03h-.674l-.3.342a871 871 0 0 1-1.782 2.025c-.067.075-.405.458-.75.852a100 100 0 0 1-.803.91c-.148.172-.299.344-.99 1.127-.304.343-.32.358-.345.327-.015-.019-.904-1.282-1.976-2.808L6.365 1.85H1.8zm1.782.91 8.078 11.294c.772 1.08 1.413 1.973 1.425 1.984.016.017.241.02 1.05.017l1.03-.004-2.694-3.766L7.796 5.75 5.722 2.852l-1.039-.004-1.039-.004z" clip-rule="evenodd"/>
23
+ </symbol>
24
+ </svg>
@@ -0,0 +1 @@
1
+ export {}
package/dist/magoo.css ADDED
@@ -0,0 +1,2 @@
1
+ :root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--magoo-color-bg:#fff;--magoo-color-surface:#f8fafc;--magoo-color-surface-strong:#eef2f7;--magoo-color-glass:#ffffffc7;--magoo-color-glass-strong:#ffffffeb;--magoo-color-text:#0f172a;--magoo-color-text-muted:#475569;--magoo-color-border:#cbd5e1;--magoo-color-glass-border:#94a3b88c;--magoo-shadow-glass:0 .75rem 1.75rem #0f172a1a, inset 0 1px 0 #fffc;--magoo-color-primary:#2563eb;--magoo-color-primary-contrast:#fff;--magoo-color-focus:#1d4ed8;--magoo-color-danger:#b91c1c;--magoo-radius-sm:.25rem;--magoo-radius-md:.375rem;--magoo-radius-lg:.5rem;--magoo-space-1:.25rem;--magoo-space-2:.5rem;--magoo-space-3:.75rem;--magoo-space-4:1rem;--magoo-space-5:1.25rem;--magoo-space-6:1.5rem;--magoo-font-sans:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--magoo-font-size-sm:.875rem;--magoo-font-size-md:1rem;--magoo-font-size-lg:1.125rem;--magoo-control-height:2.5rem}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--magoo-color-bg:#0f172a;--magoo-color-surface:#111827;--magoo-color-surface-strong:#1f2937;--magoo-color-glass:#1e293bc7;--magoo-color-glass-strong:#1e293bf0;--magoo-color-text:#f8fafc;--magoo-color-text-muted:#cbd5e1;--magoo-color-border:#475569;--magoo-color-glass-border:#94a3b86b;--magoo-shadow-glass:0 .75rem 1.75rem #02061759, inset 0 1px 0 #ffffff1f;--magoo-color-primary:#60a5fa;--magoo-color-primary-contrast:#0f172a;--magoo-color-focus:#93c5fd;--magoo-color-danger:#f87171}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--magoo-color-bg:#0f172a;--magoo-color-surface:#111827;--magoo-color-surface-strong:#1f2937;--magoo-color-glass:#1e293bc7;--magoo-color-glass-strong:#1e293bf0;--magoo-color-text:#f8fafc;--magoo-color-text-muted:#cbd5e1;--magoo-color-border:#475569;--magoo-color-glass-border:#94a3b86b;--magoo-shadow-glass:0 .75rem 1.75rem #02061759, inset 0 1px 0 #ffffff1f;--magoo-color-primary:#60a5fa;--magoo-color-primary-contrast:#0f172a;--magoo-color-focus:#93c5fd;--magoo-color-danger:#f87171}}@media (prefers-reduced-motion:reduce){.m-button,.m-input__field,.m-password__field,.m-password__toggle,.m-number__field,.m-select__field,.m-textarea__field,.m-checkbox__input,.m-checkbox-list__input,.m-radio__input,.m-radio-list__input,.m-file-upload__dropzone,.m-file-upload__remove,.m-switch__input,.m-switch__input:after{transition:none!important}.m-button:hover:not(:disabled){transform:none!important}}@media (forced-colors:active){.m-button,.m-input__field,.m-password__field,.m-password__toggle,.m-number__field,.m-select__field,.m-textarea__field,.m-fieldset-panel,.m-form,.m-checkbox,.m-checkbox-list,.m-checkbox-list__option,.m-radio,.m-radio-list,.m-radio-list__option,.m-file-upload__dropzone,.m-file-upload__item,.m-file-upload__remove,.m-switch,.m-validation-summary,.m-list__toolbar,.m-list__item,.m-list__empty,.m-list__loading,.m-list__search,.m-list__sort,.m-list__sort-direction,.m-list__page-size,.m-list__search-clear,.m-list__page-button,.m-error-message{forced-color-adjust:auto;box-shadow:none!important;color:canvastext!important;background:canvas!important;border-color:buttontext!important}.m-button{color:buttontext!important;background:buttonface!important}.m-checkbox__input,.m-checkbox-list__input,.m-radio__input,.m-radio-list__input{appearance:auto;box-shadow:none!important;background:canvas!important;border:1px solid buttontext!important}.m-button:focus-visible,.m-input__field:focus-visible,.m-password__field:focus-visible,.m-password__toggle:focus-visible,.m-number__field:focus-visible,.m-select__field:focus-visible,.m-textarea__field:focus-visible,.m-checkbox__input:focus-visible,.m-checkbox-list__input:focus-visible,.m-radio__input:focus-visible,.m-radio-list__input:focus-visible,.m-file-upload__dropzone:focus-within,.m-file-upload__remove:focus-visible,.m-switch__input:focus-visible,.m-list__search:focus-visible,.m-list__sort:focus-visible,.m-list__sort-direction:focus-visible,.m-list__page-size:focus-visible,.m-list__search-clear:focus-visible,.m-list__page-button:focus-visible{outline-offset:2px;box-shadow:none!important;outline:2px solid highlight!important}}.m-button[data-v-2090cb52]{box-sizing:border-box;min-height:var(--magoo-control-height);border:1px solid color-mix(in srgb, var(--magoo-color-primary) 75%, #0f172a 25%);border-radius:var(--magoo-radius-md);background:var(--magoo-color-primary);color:var(--magoo-color-primary-contrast);cursor:pointer;box-shadow:0 .35rem .9rem color-mix(in srgb, var(--magoo-color-primary) 28%, transparent), inset 0 1px 0 #ffffff47;justify-content:center;align-items:center;padding:.5rem .875rem;transition:transform .16s,box-shadow .16s,filter .16s;display:inline-flex}.m-button[data-v-2090cb52]:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 .55rem 1.1rem #2563eb57,inset 0 1px #ffffff52;box-shadow:0 .55rem 1.1rem color-mix(in srgb, var(--magoo-color-primary) 34%, transparent), inset 0 1px 0 #ffffff52;transform:translateY(-1px)}.m-button[data-v-2090cb52]:focus-visible{box-shadow:0 0 0 3px #1d4ed852,0 .35rem .9rem #2563eb47,inset 0 1px #ffffff47;box-shadow:0 0 0 3px color-mix(in srgb, var(--magoo-color-focus) 32%, transparent), 0 .35rem .9rem color-mix(in srgb, var(--magoo-color-primary) 28%, transparent), inset 0 1px 0 #ffffff47;outline:none}.m-button--disabled[data-v-2090cb52]{opacity:.65;cursor:not-allowed;box-shadow:none}.m-checkbox-group[data-v-9f2587a4]{flex-direction:column;gap:.25rem;display:flex}.m-checkbox[data-v-9f2587a4]{color:var(--magoo-color-text);border:1px solid var(--magoo-color-glass-border);border-radius:var(--magoo-radius-sm);background:var(--magoo-color-glass);box-shadow:var(--magoo-shadow-glass);align-items:center;gap:.5rem;min-height:2.75rem;padding:.5rem .625rem;display:inline-flex}.m-checkbox__input[data-v-9f2587a4]{appearance:none;border:1px solid var(--magoo-color-border);border-radius:var(--magoo-radius-sm);background:var(--magoo-color-glass-strong);width:1.125rem;height:1.125rem;color:var(--magoo-color-primary-contrast);cursor:pointer;flex:none;place-content:center;margin:0;transition:background .16s,border-color .16s,box-shadow .16s;display:grid;box-shadow:inset 0 1px #ffffff59}.m-checkbox__input[data-v-9f2587a4]:after{content:"";opacity:0;border:2px solid;border-width:0 2px 2px 0;width:.3rem;height:.55rem;transform:rotate(45deg)translate(-1px,-1px)}.m-checkbox__input[data-v-9f2587a4]:checked{border-color:var(--magoo-color-primary);background:var(--magoo-color-primary)}.m-checkbox__input[data-v-9f2587a4]:checked:after{opacity:1}.m-checkbox__input[data-v-9f2587a4]:focus-visible{border-color:var(--magoo-color-focus);box-shadow:0 0 0 3px #1d4ed847,inset 0 1px #ffffff59;box-shadow:0 0 0 3px color-mix(in srgb, var(--magoo-color-focus) 28%, transparent), inset 0 1px 0 #ffffff59;outline:none}.m-checkbox__input[data-v-9f2587a4]:hover:not(:disabled){border-color:var(--magoo-color-primary)}.m-checkbox__input[data-v-9f2587a4]:disabled{opacity:.65;cursor:not-allowed}.m-checkbox__label[data-v-9f2587a4]{font-size:var(--magoo-font-size-md)}.m-checkbox__errors[data-v-9f2587a4]{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.m-checkbox__error[data-v-9f2587a4]{color:var(--magoo-color-danger);align-items:flex-start;gap:.5rem;margin:0;font-size:.875rem;display:flex}.m-checkbox__error[data-v-9f2587a4]:before{content:"×";flex:none;margin-top:.15rem;font-size:1rem;font-weight:700;line-height:1}.m-checkbox-list[data-v-97a198c2]{border:1px solid var(--magoo-color-glass-border);border-radius:var(--magoo-radius-md);background:var(--magoo-color-glass);box-shadow:var(--magoo-shadow-glass);flex-direction:column;gap:.5rem;margin:0;padding:.75rem;display:flex}.m-checkbox-list__legend[data-v-97a198c2]{color:var(--magoo-color-text);margin-bottom:.25rem;font-weight:600}.m-checkbox-list__option[data-v-97a198c2]{color:var(--magoo-color-text);border-radius:var(--magoo-radius-sm);background:color-mix(in srgb, var(--magoo-color-glass-strong) 72%, transparent);border:1px solid #0000;align-items:center;gap:.5rem;min-height:2.75rem;padding:.5rem .625rem;display:inline-flex}.m-checkbox-list__option[data-v-97a198c2]:hover{border-color:var(--magoo-color-glass-border)}.m-checkbox-list__input[data-v-97a198c2]{appearance:none;border:1px solid var(--magoo-color-border);border-radius:var(--magoo-radius-sm);background:var(--magoo-color-glass-strong);width:1.125rem;height:1.125rem;color:var(--magoo-color-primary-contrast);cursor:pointer;flex:none;place-content:center;margin:0;transition:background .16s,border-color .16s,box-shadow .16s;display:grid;box-shadow:inset 0 1px #ffffff59}.m-checkbox-list__input[data-v-97a198c2]:after{content:"";opacity:0;border:2px solid;border-width:0 2px 2px 0;width:.3rem;height:.55rem;transform:rotate(45deg)translate(-1px,-1px)}.m-checkbox-list__input[data-v-97a198c2]:checked{border-color:var(--magoo-color-primary);background:var(--magoo-color-primary)}.m-checkbox-list__input[data-v-97a198c2]:checked:after{opacity:1}.m-checkbox-list__input[data-v-97a198c2]:focus-visible{border-color:var(--magoo-color-focus);box-shadow:0 0 0 3px #1d4ed847,inset 0 1px #ffffff59;box-shadow:0 0 0 3px color-mix(in srgb, var(--magoo-color-focus) 28%, transparent), inset 0 1px 0 #ffffff59;outline:none}.m-checkbox-list__input[data-v-97a198c2]:hover:not(:disabled){border-color:var(--magoo-color-primary)}.m-checkbox-list__input[data-v-97a198c2]:disabled{opacity:.65;cursor:not-allowed}.m-checkbox-list__errors[data-v-97a198c2]{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.m-checkbox-list__error[data-v-97a198c2]{color:var(--magoo-color-danger);align-items:flex-start;gap:.5rem;margin:0;font-size:.875rem;display:flex}.m-checkbox-list__error[data-v-97a198c2]:before{content:"×";flex:none;margin-top:.15rem;font-size:1rem;font-weight:700;line-height:1}.m-error-message[data-v-07d4b185]{color:var(--magoo-color-danger);border:1px solid color-mix(in srgb, var(--magoo-color-danger) 42%, transparent);border-radius:var(--magoo-radius-sm);background:#b91c1c1a;background:color-mix(in srgb, var(--magoo-color-danger) 10%, var(--magoo-color-glass));margin:0;padding:.625rem .75rem;font-size:.875rem;list-style:none}.m-error-message li[data-v-07d4b185]{align-items:flex-start;gap:.5rem;display:flex}.m-error-message li[data-v-07d4b185]:before{content:"!";flex:none;margin-top:.15rem;font-size:1rem;font-weight:700;line-height:1}.m-fieldset-panel[data-v-665adfd6]{border:1px solid var(--magoo-color-border);border-radius:var(--magoo-radius-md);background:var(--magoo-color-glass);box-shadow:var(--magoo-shadow-glass);-webkit-backdrop-filter:blur(.75rem);backdrop-filter:blur(.75rem);flex-direction:column;gap:.75rem;margin:0;padding:.875rem;display:flex}.m-fieldset-panel__legend[data-v-665adfd6]{color:var(--magoo-color-text);font-weight:600}.m-fieldset-panel__content[data-v-665adfd6]{flex-direction:column;gap:.75rem;display:flex}.m-fieldset-panel__hint[data-v-665adfd6]{color:var(--magoo-color-text-muted);margin:0;font-size:.875rem}.m-form[data-v-2de65f24]{border:1px solid var(--magoo-color-glass-border);border-radius:var(--magoo-radius-lg);background:var(--magoo-color-glass);box-shadow:var(--magoo-shadow-glass);-webkit-backdrop-filter:blur(.75rem);backdrop-filter:blur(.75rem);flex-direction:column;gap:1rem;padding:1rem;display:flex}.m-input[data-v-829056e7]{flex-direction:column;gap:.375rem;display:flex}.m-input__label[data-v-829056e7]{color:var(--magoo-color-text);font-weight:600}.m-input__field[data-v-829056e7]{box-sizing:border-box;min-height:var(--magoo-control-height);border:1px solid var(--magoo-color-border);border-radius:var(--magoo-radius-md);background:var(--magoo-color-glass-strong);color:var(--magoo-color-text);box-shadow:var(--magoo-shadow-glass);padding:.5rem .75rem;transition:border-color .16s,box-shadow .16s}.m-input__field--error[data-v-829056e7]{border-color:var(--magoo-color-danger)}.m-input__field[data-v-829056e7]:focus-visible{border-color:var(--magoo-color-focus);box-shadow:0 0 0 3px #1d4ed838, var(--magoo-shadow-glass);box-shadow:0 0 0 3px color-mix(in srgb, var(--magoo-color-focus) 22%, transparent), var(--magoo-shadow-glass);outline:none}.m-input__field[data-v-829056e7]:disabled{opacity:.65;cursor:not-allowed}.m-input__errors[data-v-829056e7]{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.m-input__error[data-v-829056e7]{align-items:flex-start;gap:.5rem;display:flex}.m-input__error[data-v-829056e7]:before{content:"×";flex:none;margin-top:.15rem;font-size:1rem;font-weight:700;line-height:1}.m-number[data-v-70635ebe]{flex-direction:column;gap:.375rem;display:flex}.m-number__label[data-v-70635ebe]{color:var(--magoo-color-text);font-weight:600}.m-number__field[data-v-70635ebe]{box-sizing:border-box;min-height:var(--magoo-control-height);border:1px solid var(--magoo-color-border);border-radius:var(--magoo-radius-md);background:var(--magoo-color-glass-strong);color:var(--magoo-color-text);box-shadow:var(--magoo-shadow-glass);padding:.5rem .75rem;transition:border-color .16s,box-shadow .16s}.m-number__field--error[data-v-70635ebe]{border-color:var(--magoo-color-danger)}.m-number__field[data-v-70635ebe]:focus-visible{border-color:var(--magoo-color-focus);box-shadow:0 0 0 3px #1d4ed838, var(--magoo-shadow-glass);box-shadow:0 0 0 3px color-mix(in srgb, var(--magoo-color-focus) 22%, transparent), var(--magoo-shadow-glass);outline:none}.m-number__field[data-v-70635ebe]:disabled{opacity:.65;cursor:not-allowed}.m-number__errors[data-v-70635ebe]{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.m-number__error[data-v-70635ebe]{color:var(--magoo-color-danger);align-items:flex-start;gap:.5rem;margin:0;font-size:.875rem;display:flex}.m-number__error[data-v-70635ebe]:before{content:"×";flex:none;margin-top:.15rem;font-size:1rem;font-weight:700;line-height:1}.m-password[data-v-f6042b04]{flex-direction:column;gap:.375rem;display:flex}.m-password__label[data-v-f6042b04]{color:var(--magoo-color-text);font-weight:600}.m-password__control[data-v-f6042b04]{align-items:stretch;display:flex}.m-password__field[data-v-f6042b04]{box-sizing:border-box;min-width:0;min-height:var(--magoo-control-height);border:1px solid var(--magoo-color-border);border-radius:var(--magoo-radius-md) 0 0 var(--magoo-radius-md);background:var(--magoo-color-glass-strong);color:var(--magoo-color-text);box-shadow:var(--magoo-shadow-glass);border-right:0;flex:1;padding:.5rem .75rem;transition:border-color .16s,box-shadow .16s}.m-password__field--error[data-v-f6042b04]{border-color:var(--magoo-color-danger)}.m-password__field[data-v-f6042b04]:focus-visible{z-index:1;border-color:var(--magoo-color-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--magoo-color-focus) 22%, transparent), var(--magoo-shadow-glass);outline:none}.m-password__field[data-v-f6042b04]:disabled,.m-password__toggle[data-v-f6042b04]:disabled{opacity:.65;cursor:not-allowed}.m-password__toggle[data-v-f6042b04]{min-height:var(--magoo-control-height);border:1px solid var(--magoo-color-border);border-radius:0 var(--magoo-radius-md) var(--magoo-radius-md) 0;background:var(--magoo-color-surface-strong);color:var(--magoo-color-text);cursor:pointer;font:inherit;white-space:nowrap;padding:.5rem .75rem}.m-password__toggle[data-v-f6042b04]:hover:not(:disabled){background:var(--magoo-color-surface)}.m-password__toggle[data-v-f6042b04]:focus-visible{z-index:1;outline:2px solid var(--magoo-color-focus);outline-offset:2px}.m-password__errors[data-v-f6042b04]{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.m-password__error[data-v-f6042b04]{color:var(--magoo-color-danger);align-items:flex-start;gap:.5rem;display:flex}.m-password__error[data-v-f6042b04]:before{content:"×";flex:none;margin-top:.15rem;font-size:1rem;font-weight:700;line-height:1}.m-file-upload[data-v-b3bc0fc7]{flex-direction:column;gap:.5rem;display:flex}.m-file-upload__label[data-v-b3bc0fc7]{color:var(--magoo-color-text);font-weight:600}.m-file-upload__dropzone[data-v-b3bc0fc7]{border:1px dashed var(--magoo-color-border);border-radius:var(--magoo-radius-md);background:var(--magoo-color-glass-strong);box-shadow:var(--magoo-shadow-glass);color:var(--magoo-color-text);text-align:center;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:1.25rem 1rem;transition:border-color .16s,box-shadow .16s,background .16s;display:flex;position:relative}.m-file-upload__dropzone[data-v-b3bc0fc7]:focus-within{border-color:var(--magoo-color-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--magoo-color-focus) 22%, transparent), var(--magoo-shadow-glass);outline:none}.m-file-upload__dropzone--dragging[data-v-b3bc0fc7]{border-color:var(--magoo-color-primary);background:color-mix(in srgb, var(--magoo-color-primary) 10%, var(--magoo-color-glass-strong))}.m-file-upload__dropzone--error[data-v-b3bc0fc7]{border-color:var(--magoo-color-danger)}.m-file-upload__dropzone--disabled[data-v-b3bc0fc7]{opacity:.65;cursor:not-allowed}.m-file-upload__input[data-v-b3bc0fc7]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.m-file-upload__button-label[data-v-b3bc0fc7]{color:var(--magoo-color-primary);font-weight:600}.m-file-upload__drop-hint[data-v-b3bc0fc7]{color:var(--magoo-color-text-muted);font-size:.875rem}.m-file-upload__progress[data-v-b3bc0fc7]{width:100%;height:.5rem;accent-color:var(--magoo-color-primary)}.m-file-upload__list[data-v-b3bc0fc7]{flex-direction:column;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.m-file-upload__item[data-v-b3bc0fc7]{border:1px solid var(--magoo-color-glass-border);border-radius:var(--magoo-radius-sm);background:var(--magoo-color-glass);align-items:center;gap:.5rem;padding:.5rem .625rem;display:flex}.m-file-upload__item-name[data-v-b3bc0fc7]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.m-file-upload__item-size[data-v-b3bc0fc7]{color:var(--magoo-color-text-muted);flex:none;font-size:.875rem}.m-file-upload__remove[data-v-b3bc0fc7]{border:1px solid var(--magoo-color-border);border-radius:var(--magoo-radius-sm);background:var(--magoo-color-surface-strong);min-width:1.75rem;min-height:1.75rem;color:var(--magoo-color-text);cursor:pointer;flex:none;line-height:1}.m-file-upload__remove[data-v-b3bc0fc7]:hover:not(:disabled){background:var(--magoo-color-surface)}.m-file-upload__remove[data-v-b3bc0fc7]:focus-visible{outline:2px solid var(--magoo-color-focus);outline-offset:2px}.m-file-upload__remove[data-v-b3bc0fc7]:disabled{opacity:.65;cursor:not-allowed}.m-file-upload__errors[data-v-b3bc0fc7]{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.m-file-upload__error[data-v-b3bc0fc7]{color:var(--magoo-color-danger);align-items:flex-start;gap:.5rem;margin:0;font-size:.875rem;display:flex}.m-file-upload__error[data-v-b3bc0fc7]:before{content:"×";flex:none;margin-top:.15rem;font-size:1rem;font-weight:700;line-height:1}.m-file-upload__hint[data-v-b3bc0fc7]{color:var(--magoo-color-text-muted);margin:0;font-size:.875rem}.m-switch-group[data-v-5a12d26e]{flex-direction:column;gap:.25rem;display:flex}.m-switch[data-v-5a12d26e]{border:1px solid var(--magoo-color-glass-border);border-radius:var(--magoo-radius-sm);background:var(--magoo-color-glass);min-height:2.75rem;box-shadow:var(--magoo-shadow-glass);color:var(--magoo-color-text);cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .625rem;display:flex}.m-switch--disabled[data-v-5a12d26e]{cursor:not-allowed}.m-switch__label[data-v-5a12d26e]{font-size:var(--magoo-font-size-md);flex:1}.m-switch__control[data-v-5a12d26e]{align-items:center;gap:.5rem;display:inline-flex}.m-switch__state[data-v-5a12d26e]{font-size:var(--magoo-font-size-sm);color:var(--magoo-color-text-muted)}.m-switch__input[data-v-5a12d26e]{appearance:none;border:1px solid var(--magoo-color-border);background:var(--magoo-color-surface-strong);cursor:pointer;border-radius:999px;flex:none;width:2.75rem;height:1.5rem;margin:0;transition:background .16s,border-color .16s,box-shadow .16s;position:relative}.m-switch__input[data-v-5a12d26e]:after{content:"";background:var(--magoo-color-text-muted);border-radius:50%;width:1.125rem;height:1.125rem;transition:transform .16s,background .16s;position:absolute;top:50%;left:.125rem;transform:translateY(-50%)}.m-switch__input[data-v-5a12d26e]:checked{border-color:var(--magoo-color-primary);background:var(--magoo-color-primary)}.m-switch__input[data-v-5a12d26e]:checked:after{background:var(--magoo-color-primary-contrast);transform:translate(1.25rem,-50%)}.m-switch__input[data-v-5a12d26e]:hover:not(:disabled){border-color:var(--magoo-color-primary)}.m-switch__input[data-v-5a12d26e]:focus-visible{border-color:var(--magoo-color-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--magoo-color-focus) 28%, transparent);outline:none}.m-switch__input--error[data-v-5a12d26e],.m-switch__input--error[data-v-5a12d26e]:checked{border-color:var(--magoo-color-danger)}.m-switch__input[data-v-5a12d26e]:disabled{opacity:.65;cursor:not-allowed}.m-switch__hint[data-v-5a12d26e]{color:var(--magoo-color-text-muted);margin:0;font-size:.875rem}.m-switch__errors[data-v-5a12d26e]{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.m-switch__error[data-v-5a12d26e]{color:var(--magoo-color-danger);align-items:flex-start;gap:.5rem;margin:0;font-size:.875rem;display:flex}.m-switch__error[data-v-5a12d26e]:before{content:"×";flex:none;margin-top:.15rem;font-size:1rem;font-weight:700;line-height:1}@media (forced-colors:active){.m-switch__input[data-v-5a12d26e]{forced-color-adjust:none;background:canvas;border-color:buttontext}.m-switch__input[data-v-5a12d26e]:after{background:buttontext}.m-switch__input[data-v-5a12d26e]:checked{background:highlight;border-color:highlight}.m-switch__input[data-v-5a12d26e]:checked:after{background:highlighttext}.m-switch__input[data-v-5a12d26e]:disabled{opacity:1;border-color:graytext}.m-switch__input[data-v-5a12d26e]:disabled:after{background:graytext}}.m-radio-group[data-v-9820cd2e]{flex-direction:column;gap:.25rem;display:flex}.m-radio[data-v-9820cd2e]{color:var(--magoo-color-text);border:1px solid var(--magoo-color-glass-border);border-radius:var(--magoo-radius-sm);background:var(--magoo-color-glass);box-shadow:var(--magoo-shadow-glass);align-items:center;gap:.5rem;min-height:2.75rem;padding:.5rem .625rem;display:inline-flex}.m-radio__input[data-v-9820cd2e]{appearance:none;border:1px solid var(--magoo-color-border);background:var(--magoo-color-glass-strong);cursor:pointer;border-radius:50%;flex:none;place-content:center;width:1.125rem;height:1.125rem;margin:0;transition:background .16s,border-color .16s,box-shadow .16s;display:grid;box-shadow:inset 0 1px #ffffff59}.m-radio__input[data-v-9820cd2e]:after{background:var(--magoo-color-primary-contrast);content:"";opacity:0;border-radius:50%;width:.5rem;height:.5rem}.m-radio__input[data-v-9820cd2e]:checked{border-color:var(--magoo-color-primary);background:var(--magoo-color-primary)}.m-radio__input[data-v-9820cd2e]:checked:after{opacity:1}.m-radio__input[data-v-9820cd2e]:focus-visible{border-color:var(--magoo-color-focus);box-shadow:0 0 0 3px #1d4ed847,inset 0 1px #ffffff59;box-shadow:0 0 0 3px color-mix(in srgb, var(--magoo-color-focus) 28%, transparent), inset 0 1px 0 #ffffff59;outline:none}.m-radio__input[data-v-9820cd2e]:hover:not(:disabled){border-color:var(--magoo-color-primary)}.m-radio__input[data-v-9820cd2e]:disabled{opacity:.65;cursor:not-allowed}.m-radio__label[data-v-9820cd2e]{font-size:var(--magoo-font-size-md)}.m-radio__errors[data-v-9820cd2e]{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.m-radio__error[data-v-9820cd2e]{color:var(--magoo-color-danger);align-items:flex-start;gap:.5rem;margin:0;font-size:.875rem;display:flex}.m-radio__error[data-v-9820cd2e]:before{content:"×";flex:none;margin-top:.15rem;font-size:1rem;font-weight:700;line-height:1}.m-radio-list[data-v-d21c3236]{border:1px solid var(--magoo-color-glass-border);border-radius:var(--magoo-radius-md);background:var(--magoo-color-glass);box-shadow:var(--magoo-shadow-glass);flex-direction:column;gap:.5rem;margin:0;padding:.75rem;display:flex}.m-radio-list__legend[data-v-d21c3236]{color:var(--magoo-color-text);margin-bottom:.25rem;font-weight:600}.m-radio-list__option[data-v-d21c3236]{color:var(--magoo-color-text);border-radius:var(--magoo-radius-sm);background:color-mix(in srgb, var(--magoo-color-glass-strong) 72%, transparent);border:1px solid #0000;align-items:center;gap:.5rem;min-height:2.75rem;padding:.5rem .625rem;display:inline-flex}.m-radio-list__option[data-v-d21c3236]:hover{border-color:var(--magoo-color-glass-border)}.m-radio-list__input[data-v-d21c3236]{appearance:none;border:1px solid var(--magoo-color-border);background:var(--magoo-color-glass-strong);cursor:pointer;border-radius:50%;flex:none;place-content:center;width:1.125rem;height:1.125rem;margin:0;transition:background .16s,border-color .16s,box-shadow .16s;display:grid;box-shadow:inset 0 1px #ffffff59}.m-radio-list__input[data-v-d21c3236]:after{background:var(--magoo-color-primary-contrast);content:"";opacity:0;border-radius:50%;width:.5rem;height:.5rem}.m-radio-list__input[data-v-d21c3236]:checked{border-color:var(--magoo-color-primary);background:var(--magoo-color-primary)}.m-radio-list__input[data-v-d21c3236]:checked:after{opacity:1}.m-radio-list__input[data-v-d21c3236]:focus-visible{border-color:var(--magoo-color-focus);box-shadow:0 0 0 3px #1d4ed847,inset 0 1px #ffffff59;box-shadow:0 0 0 3px color-mix(in srgb, var(--magoo-color-focus) 28%, transparent), inset 0 1px 0 #ffffff59;outline:none}.m-radio-list__input[data-v-d21c3236]:hover:not(:disabled){border-color:var(--magoo-color-primary)}.m-radio-list__input[data-v-d21c3236]:disabled{opacity:.65;cursor:not-allowed}.m-radio-list__errors[data-v-d21c3236]{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.m-radio-list__error[data-v-d21c3236]{color:var(--magoo-color-danger);align-items:flex-start;gap:.5rem;margin:0;font-size:.875rem;display:flex}.m-radio-list__error[data-v-d21c3236]:before{content:"×";flex:none;margin-top:.15rem;font-size:1rem;font-weight:700;line-height:1}.m-select[data-v-9e2fad3b]{flex-direction:column;gap:.375rem;display:flex}.m-select__label[data-v-9e2fad3b]{color:var(--magoo-color-text);font-weight:600}.m-select__field[data-v-9e2fad3b]{box-sizing:border-box;min-height:var(--magoo-control-height);border:1px solid var(--magoo-color-border);border-radius:var(--magoo-radius-md);background:var(--magoo-color-glass-strong);color:var(--magoo-color-text);box-shadow:var(--magoo-shadow-glass);padding:.5rem .75rem;transition:border-color .16s,box-shadow .16s}.m-select__field--error[data-v-9e2fad3b]{border-color:var(--magoo-color-danger)}.m-select__field[data-v-9e2fad3b]:focus-visible{border-color:var(--magoo-color-focus);box-shadow:0 0 0 3px #1d4ed838, var(--magoo-shadow-glass);box-shadow:0 0 0 3px color-mix(in srgb, var(--magoo-color-focus) 22%, transparent), var(--magoo-shadow-glass);outline:none}.m-select__field[data-v-9e2fad3b]:disabled{opacity:.65;cursor:not-allowed}.m-select__errors[data-v-9e2fad3b]{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.m-select__error[data-v-9e2fad3b]{color:var(--magoo-color-danger);align-items:flex-start;gap:.5rem;margin:0;font-size:.875rem;display:flex}.m-select__error[data-v-9e2fad3b]:before{content:"×";flex:none;margin-top:.15rem;font-size:1rem;font-weight:700;line-height:1}.m-textarea[data-v-7787cf8d]{flex-direction:column;gap:.375rem;display:flex}.m-textarea__label[data-v-7787cf8d]{color:var(--magoo-color-text);font-weight:600}.m-textarea__field[data-v-7787cf8d]{box-sizing:border-box;border:1px solid var(--magoo-color-border);border-radius:var(--magoo-radius-md);background:var(--magoo-color-glass-strong);min-height:7rem;color:var(--magoo-color-text);resize:vertical;box-shadow:var(--magoo-shadow-glass);padding:.5rem .75rem;transition:border-color .16s,box-shadow .16s}.m-textarea__field--error[data-v-7787cf8d]{border-color:var(--magoo-color-danger)}.m-textarea__field[data-v-7787cf8d]:focus-visible{border-color:var(--magoo-color-focus);box-shadow:0 0 0 3px #1d4ed838, var(--magoo-shadow-glass);box-shadow:0 0 0 3px color-mix(in srgb, var(--magoo-color-focus) 22%, transparent), var(--magoo-shadow-glass);outline:none}.m-textarea__field[data-v-7787cf8d]:disabled{opacity:.65;cursor:not-allowed}.m-textarea__errors[data-v-7787cf8d]{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.m-textarea__error[data-v-7787cf8d]{color:var(--magoo-color-danger);align-items:flex-start;gap:.5rem;margin:0;font-size:.875rem;display:flex}.m-textarea__error[data-v-7787cf8d]:before{content:"×";flex:none;margin-top:.15rem;font-size:1rem;font-weight:700;line-height:1}.m-validation-summary[data-v-78af1d0d]{border:1px solid var(--magoo-color-danger);border-radius:var(--magoo-radius-md);background:color-mix(in srgb, var(--magoo-color-danger) 8%, var(--magoo-color-glass));color:var(--magoo-color-text);padding:.75rem 1rem}.m-validation-summary[data-v-78af1d0d]:focus-visible{outline:2px solid var(--magoo-color-focus);outline-offset:2px}.m-validation-summary__title[data-v-78af1d0d]{font-size:var(--magoo-font-size-lg);color:var(--magoo-color-danger);margin:0 0 .5rem;font-weight:600}.m-validation-summary__list[data-v-78af1d0d]{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.m-validation-summary__item[data-v-78af1d0d]{font-size:var(--magoo-font-size-sm);align-items:flex-start;gap:.5rem;display:flex}.m-validation-summary__item[data-v-78af1d0d]:before{content:"×";color:var(--magoo-color-danger);flex:none;margin-top:.1rem;font-size:1rem;font-weight:700;line-height:1}.m-validation-summary__link[data-v-78af1d0d]{color:var(--magoo-color-danger);text-underline-offset:.15em;font-weight:600;text-decoration:underline}.m-validation-summary__link[data-v-78af1d0d]:hover{text-decoration-thickness:2px}.m-validation-summary__link[data-v-78af1d0d]:focus-visible{outline:2px solid var(--magoo-color-focus);outline-offset:2px;border-radius:var(--magoo-radius-sm)}.m-validation-summary__label[data-v-78af1d0d]{font-weight:600}.m-list[data-v-fbf64959]{flex-direction:column;gap:.75rem;display:flex}.m-list__header[data-v-fbf64959],.m-list__toolbar[data-v-fbf64959],.m-list__pagination[data-v-fbf64959]{align-items:center;gap:.75rem;display:flex}.m-list__header[data-v-fbf64959]{justify-content:space-between}.m-list__label[data-v-fbf64959]{color:var(--magoo-color-text);font-size:var(--magoo-font-size-lg);margin:0}.m-list__hint[data-v-fbf64959],.m-list__status[data-v-fbf64959]{color:var(--magoo-color-text-muted);font-size:var(--magoo-font-size-sm);margin:.25rem 0 0}.m-list__toolbar[data-v-fbf64959]{border:1px solid var(--magoo-color-glass-border);border-radius:var(--magoo-radius-md);background:var(--magoo-color-glass);flex-wrap:wrap;padding:.75rem}.m-list__control[data-v-fbf64959]{white-space:nowrap;flex:0 auto;align-items:center;gap:.5rem;min-width:0;display:inline-flex}.m-list__control--search[data-v-fbf64959]{flex:20rem;min-width:min(100%,20rem)}.m-list__search-wrap[data-v-fbf64959]{flex:auto;min-width:0;position:relative}.m-list__search-label[data-v-fbf64959],.m-list__sort-label[data-v-fbf64959]{color:var(--magoo-color-text);font-weight:600}.m-list__search[data-v-fbf64959],.m-list__sort[data-v-fbf64959],.m-list__sort-direction[data-v-fbf64959],.m-list__page-size[data-v-fbf64959]{min-height:var(--magoo-control-height);border:1px solid var(--magoo-color-border);border-radius:var(--magoo-radius-sm);background:var(--magoo-color-glass-strong);color:var(--magoo-color-text);padding:.5rem .75rem}.m-list__search[data-v-fbf64959]{box-sizing:border-box;flex:auto;width:0;min-width:0}.m-list__search-wrap .m-list__search[data-v-fbf64959]{width:100%;padding-right:2.5rem}.m-list__search[data-v-fbf64959]::-webkit-search-cancel-button{appearance:none;display:none}.m-list__search-clear[data-v-fbf64959]{border:1px solid var(--magoo-color-border);border-radius:var(--magoo-radius-sm);background:var(--magoo-color-surface-strong);min-width:1.75rem;min-height:1.75rem;color:var(--magoo-color-text);cursor:pointer;flex:none;line-height:1;position:absolute;top:50%;right:.375rem;transform:translateY(-50%)}.m-list__search-clear[data-v-fbf64959]:hover:not(:disabled){background:var(--magoo-color-surface)}.m-list__search-clear[data-v-fbf64959]:disabled,.m-list__sort-direction[data-v-fbf64959]:disabled,.m-list__page-button[data-v-fbf64959]:disabled,.m-list__retry[data-v-fbf64959]:disabled{opacity:.65;cursor:not-allowed}.m-list__search[data-v-fbf64959]:focus-visible,.m-list__sort[data-v-fbf64959]:focus-visible,.m-list__sort-direction[data-v-fbf64959]:focus-visible,.m-list__page-size[data-v-fbf64959]:focus-visible,.m-list__search-clear[data-v-fbf64959]:focus-visible,.m-list__page-button[data-v-fbf64959]:focus-visible,.m-list__retry[data-v-fbf64959]:focus-visible{outline:2px solid var(--magoo-color-focus);outline-offset:2px}.m-list__items[data-v-fbf64959]{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.m-list__item[data-v-fbf64959],.m-list__empty[data-v-fbf64959],.m-list__loading[data-v-fbf64959]{border:1px solid var(--magoo-color-glass-border);border-radius:var(--magoo-radius-sm);background:var(--magoo-color-glass);color:var(--magoo-color-text);padding:.25rem .5rem;line-height:1.35}.m-list--comfortable .m-list__item[data-v-fbf64959],.m-list--comfortable .m-list__empty[data-v-fbf64959],.m-list--comfortable .m-list__loading[data-v-fbf64959]{min-height:2.75rem;padding:.75rem}.m-list__empty[data-v-fbf64959],.m-list__loading[data-v-fbf64959]{color:var(--magoo-color-text-muted);text-align:center}.m-list__load-error[data-v-fbf64959]{border:1px solid var(--magoo-color-danger);border-radius:var(--magoo-radius-sm);color:var(--magoo-color-danger);justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .625rem;display:flex}.m-list__retry[data-v-fbf64959]{border-radius:var(--magoo-radius-sm);min-height:2.25rem;color:inherit;cursor:pointer;background:0 0;border:1px solid;padding:.375rem .625rem}.m-list__pagination[data-v-fbf64959]{justify-content:center}.m-list__page-button[data-v-fbf64959]{border:1px solid var(--magoo-color-border);border-radius:var(--magoo-radius-sm);background:var(--magoo-color-surface-strong);min-height:2.75rem;color:var(--magoo-color-text);cursor:pointer;padding:.5rem .75rem}.m-list__sort-direction[data-v-fbf64959]{cursor:pointer}.m-list__page-status[data-v-fbf64959]{min-width:7rem;color:var(--magoo-color-text);text-align:center}@media (width<=40rem){.m-list__toolbar[data-v-fbf64959],.m-list__header[data-v-fbf64959]{flex-direction:column;align-items:stretch}.m-list__control[data-v-fbf64959]{flex-direction:column;align-items:stretch;gap:.25rem;width:100%}.m-list__control--search[data-v-fbf64959]{flex-basis:auto;min-width:0}.m-list__search-wrap[data-v-fbf64959],.m-list__search[data-v-fbf64959],.m-list__sort[data-v-fbf64959],.m-list__sort-direction[data-v-fbf64959],.m-list__page-size[data-v-fbf64959]{flex:1;width:100%;min-width:0}}@media (prefers-reduced-motion:reduce){.m-list__search[data-v-fbf64959],.m-list__sort[data-v-fbf64959],.m-list__sort-direction[data-v-fbf64959],.m-list__page-size[data-v-fbf64959],.m-list__search-clear[data-v-fbf64959],.m-list__page-button[data-v-fbf64959]{transition:none!important}}@media (forced-colors:active){.m-list__toolbar[data-v-fbf64959],.m-list__item[data-v-fbf64959],.m-list__empty[data-v-fbf64959],.m-list__loading[data-v-fbf64959],.m-list__load-error[data-v-fbf64959],.m-list__search[data-v-fbf64959],.m-list__sort[data-v-fbf64959],.m-list__sort-direction[data-v-fbf64959],.m-list__page-size[data-v-fbf64959],.m-list__search-clear[data-v-fbf64959],.m-list__retry[data-v-fbf64959],.m-list__page-button[data-v-fbf64959]{box-shadow:none!important;color:canvastext!important;background:canvas!important;border-color:buttontext!important}}
2
+ /*$vite$:1*/