@akira-io/ui 2.0.0 → 2.1.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 (44) hide show
  1. package/dist/blocks.d.ts +2 -2
  2. package/dist/blocks.js +10 -10
  3. package/dist/{chunk-3Z2VGVPI.js → chunk-53V4J7MC.js} +2 -2
  4. package/dist/{chunk-VA6A4HZ2.js → chunk-BH3B26DK.js} +5 -5
  5. package/dist/{chunk-TM5MN3MI.js → chunk-BP2YDMMI.js} +2 -2
  6. package/dist/{chunk-DE2AJ54R.js → chunk-BR3JI3KN.js} +6 -6
  7. package/dist/{chunk-YBXRJSR3.js → chunk-CAUTXZ4U.js} +2 -2
  8. package/dist/{chunk-UCJTM3UM.js → chunk-DPLCEU34.js} +134 -41
  9. package/dist/chunk-DPLCEU34.js.map +1 -0
  10. package/dist/{chunk-2V6HUWST.js → chunk-NKPFIA32.js} +2 -2
  11. package/dist/{chunk-E26KKMGS.js → chunk-OS7YY5R4.js} +1 -1
  12. package/dist/{chunk-E26KKMGS.js.map → chunk-OS7YY5R4.js.map} +1 -1
  13. package/dist/{chunk-UXVI326F.js → chunk-PCYYU332.js} +3 -3
  14. package/dist/{chunk-KHOA4TEI.js → chunk-PPWJK5T3.js} +7 -1
  15. package/dist/chunk-PPWJK5T3.js.map +1 -0
  16. package/dist/{chunk-EYPM6IMS.js → chunk-QZRSQVCN.js} +2 -2
  17. package/dist/{chunk-SZUXATOF.js → chunk-XLAOE5MV.js} +4 -4
  18. package/dist/{chunk-B3L6PRLX.js → chunk-ZQXZ4UGE.js} +3 -3
  19. package/dist/code.js +3 -3
  20. package/dist/{context-Soro3B1I.d.ts → context-2wTOwxCk.d.ts} +8 -1
  21. package/dist/editor.js +5 -5
  22. package/dist/index.d.ts +3 -3
  23. package/dist/index.js +11 -11
  24. package/dist/inertia.js +8 -8
  25. package/dist/locales/fr.d.ts +44 -0
  26. package/dist/locales/fr.js +248 -0
  27. package/dist/locales/fr.js.map +1 -0
  28. package/dist/locales/pt.d.ts +2 -2
  29. package/dist/locales/pt.js.map +1 -1
  30. package/dist/shells.js +5 -5
  31. package/package.json +5 -1
  32. package/theme.css +11 -0
  33. package/dist/chunk-KHOA4TEI.js.map +0 -1
  34. package/dist/chunk-UCJTM3UM.js.map +0 -1
  35. /package/dist/{chunk-3Z2VGVPI.js.map → chunk-53V4J7MC.js.map} +0 -0
  36. /package/dist/{chunk-VA6A4HZ2.js.map → chunk-BH3B26DK.js.map} +0 -0
  37. /package/dist/{chunk-TM5MN3MI.js.map → chunk-BP2YDMMI.js.map} +0 -0
  38. /package/dist/{chunk-DE2AJ54R.js.map → chunk-BR3JI3KN.js.map} +0 -0
  39. /package/dist/{chunk-YBXRJSR3.js.map → chunk-CAUTXZ4U.js.map} +0 -0
  40. /package/dist/{chunk-2V6HUWST.js.map → chunk-NKPFIA32.js.map} +0 -0
  41. /package/dist/{chunk-UXVI326F.js.map → chunk-PCYYU332.js.map} +0 -0
  42. /package/dist/{chunk-EYPM6IMS.js.map → chunk-QZRSQVCN.js.map} +0 -0
  43. /package/dist/{chunk-SZUXATOF.js.map → chunk-XLAOE5MV.js.map} +0 -0
  44. /package/dist/{chunk-B3L6PRLX.js.map → chunk-ZQXZ4UGE.js.map} +0 -0
package/dist/inertia.js CHANGED
@@ -4,21 +4,21 @@
4
4
  import {
5
5
  LoginFormPreset,
6
6
  TourProvider
7
- } from "./chunk-DE2AJ54R.js";
8
- import "./chunk-VA6A4HZ2.js";
9
- import "./chunk-E26KKMGS.js";
10
- import "./chunk-TM5MN3MI.js";
7
+ } from "./chunk-BR3JI3KN.js";
8
+ import "./chunk-BH3B26DK.js";
9
+ import "./chunk-OS7YY5R4.js";
10
+ import "./chunk-BP2YDMMI.js";
11
11
  import {
12
12
  AppSidebar,
13
13
  AppSidebarHeader,
14
14
  Breadcrumbs,
15
15
  NavMain,
16
16
  SettingsLayout
17
- } from "./chunk-SZUXATOF.js";
18
- import "./chunk-B3L6PRLX.js";
17
+ } from "./chunk-XLAOE5MV.js";
18
+ import "./chunk-ZQXZ4UGE.js";
19
19
  import "./chunk-L2H5GIF7.js";
20
- import "./chunk-3Z2VGVPI.js";
21
- import "./chunk-KHOA4TEI.js";
20
+ import "./chunk-53V4J7MC.js";
21
+ import "./chunk-PPWJK5T3.js";
22
22
 
23
23
  // src/inertia.ts
24
24
  import { Form, Link, router, usePage } from "@inertiajs/react";
@@ -0,0 +1,44 @@
1
+ import { G as AlertLabels, J as AppearanceToggleLabels, M as ComboboxLabels, ar as CommandPaletteLabels, Q as ConfirmDialogLabels, C as CopyButtonLabels, W as DataTableFacetedFilterLabels, Y as DataTableLabels, a as DateFilterLabels, b as DateFilterOption, a0 as DatePickerLabels, a3 as DateRangeFilterLabels, F as FloatingSheetLabels, as as FullUiLabels, a7 as PasswordInputLabels, ab as SaveStatusLabels, q as SettingsLabels } from '../context-2wTOwxCk.js';
2
+ import { e as DangerZoneLabels, a as FormOverlayLabels, i as TwoFactorLabels } from '../types-CfAUvz--.js';
3
+ import { a as LoginFormLabels, e as TourLabels } from '../types-1LUmNJf_.js';
4
+ import { a as CodeBlockLabels, c as JsonViewerLabels } from '../json-viewer-Bssv9mTD.js';
5
+ import { f as FieldLabels } from '../field-C1TdmC2t.js';
6
+ import 'react';
7
+ import 'lucide-react';
8
+ import '../types-CMZRvMV5.js';
9
+ import '@tanstack/react-table';
10
+ import 'class-variance-authority/types';
11
+ import 'class-variance-authority';
12
+ import '../input-B4uEClxB.js';
13
+ import '@radix-ui/react-slot';
14
+ import '@radix-ui/react-label';
15
+
16
+ declare const alertLabelsFr: AlertLabels;
17
+ declare const appearanceToggleLabelsFr: AppearanceToggleLabels;
18
+ declare const dataTableLabelsFr: DataTableLabels;
19
+ declare const floatingSheetLabelsFr: FloatingSheetLabels;
20
+ declare const formOverlayLabelsFr: FormOverlayLabels;
21
+ declare const dateRangeFilterLabelsFr: DateRangeFilterLabels;
22
+ declare const datePickerLabelsFr: DatePickerLabels;
23
+ declare const comboboxLabelsFr: ComboboxLabels;
24
+ declare const confirmDialogLabelsFr: ConfirmDialogLabels;
25
+ declare const fieldLabelsFr: FieldLabels;
26
+ declare const passwordInputLabelsFr: PasswordInputLabels;
27
+ declare const dataTableFacetedFilterLabelsFr: DataTableFacetedFilterLabels;
28
+ declare const commandPaletteLabelsFr: CommandPaletteLabels;
29
+ declare const tourLabelsFr: TourLabels;
30
+ declare const dateFilterPresetsFr: DateFilterOption[];
31
+ declare const dateFilterOperatorsFr: DateFilterOption[];
32
+ declare const dateFilterUnitsFr: DateFilterOption[];
33
+ declare const dateFilterLabelsFr: DateFilterLabels;
34
+ declare const settingsLabelsFr: SettingsLabels;
35
+ declare const saveStatusLabelsFr: SaveStatusLabels;
36
+ declare const copyButtonLabelsFr: CopyButtonLabels;
37
+ declare const loginFormLabelsFr: LoginFormLabels;
38
+ declare const twoFactorLabelsFr: TwoFactorLabels;
39
+ declare const dangerZoneLabelsFr: DangerZoneLabels;
40
+ declare const codeBlockLabelsFr: CodeBlockLabels;
41
+ declare const jsonViewerLabelsFr: JsonViewerLabels;
42
+ declare const frLabels: FullUiLabels;
43
+
44
+ export { alertLabelsFr, appearanceToggleLabelsFr, codeBlockLabelsFr, comboboxLabelsFr, commandPaletteLabelsFr, confirmDialogLabelsFr, copyButtonLabelsFr, dangerZoneLabelsFr, dataTableFacetedFilterLabelsFr, dataTableLabelsFr, dateFilterLabelsFr, dateFilterOperatorsFr, dateFilterPresetsFr, dateFilterUnitsFr, datePickerLabelsFr, dateRangeFilterLabelsFr, fieldLabelsFr, floatingSheetLabelsFr, formOverlayLabelsFr, frLabels, jsonViewerLabelsFr, loginFormLabelsFr, passwordInputLabelsFr, saveStatusLabelsFr, settingsLabelsFr, tourLabelsFr, twoFactorLabelsFr };
@@ -0,0 +1,248 @@
1
+ // src/locales/fr.ts
2
+ var alertLabelsFr = {
3
+ warningLabel: "Avertissement",
4
+ infoLabel: "Information"
5
+ };
6
+ var appearanceToggleLabelsFr = {
7
+ groupLabel: "Apparence",
8
+ lightLabel: "Clair",
9
+ darkLabel: "Sombre",
10
+ systemLabel: "Syst\xE8me"
11
+ };
12
+ var dataTableLabelsFr = {
13
+ searchPlaceholder: "Rechercher...",
14
+ emptyLabel: "Aucun r\xE9sultat.",
15
+ createLabel: "Nouveau",
16
+ clearFiltersLabel: "Effacer les filtres",
17
+ paginationLabel: (page, pages) => `Page ${page} sur ${pages}`,
18
+ noOptionsLabel: "Aucune option.",
19
+ totalLabel: (total) => `${total.toLocaleString("fr-FR")} enregistrements`
20
+ };
21
+ var floatingSheetLabelsFr = {
22
+ backLabel: "Retour",
23
+ closeLabel: "Fermer"
24
+ };
25
+ var formOverlayLabelsFr = {
26
+ cancelLabel: "Annuler",
27
+ saveLabel: "Enregistrer",
28
+ savingLabel: "Enregistrement..."
29
+ };
30
+ var dateRangeFilterLabelsFr = {
31
+ emptyLabel: "Plage de dates",
32
+ dateFormat: "dd/MM/yy"
33
+ };
34
+ var datePickerLabelsFr = {
35
+ placeholder: "Choisir une date",
36
+ dateFormat: "dd/MM/yy",
37
+ clearLabel: "Effacer la date"
38
+ };
39
+ var comboboxLabelsFr = {
40
+ placeholder: "S\xE9lectionnez une option",
41
+ searchPlaceholder: "Rechercher...",
42
+ emptyText: "Aucun r\xE9sultat."
43
+ };
44
+ var confirmDialogLabelsFr = {
45
+ title: "Confirmer l'action",
46
+ description: "\xCAtes-vous s\xFBr de vouloir continuer ? Cette action ne peut pas \xEAtre annul\xE9e.",
47
+ confirmText: "Confirmer",
48
+ cancelText: "Annuler"
49
+ };
50
+ var fieldLabelsFr = {
51
+ requiredLabel: "Obligatoire"
52
+ };
53
+ var passwordInputLabelsFr = {
54
+ showLabel: "Afficher le mot de passe",
55
+ hideLabel: "Masquer le mot de passe"
56
+ };
57
+ var dataTableFacetedFilterLabelsFr = {
58
+ noOptionsLabel: "Aucune option."
59
+ };
60
+ var commandPaletteLabelsFr = {
61
+ placeholder: "Rechercher...",
62
+ noResultsLabel: "Aucun r\xE9sultat trouv\xE9"
63
+ };
64
+ var tourLabelsFr = {
65
+ next: "Suivant",
66
+ previous: "Pr\xE9c\xE9dent",
67
+ done: "Terminer",
68
+ progress: "{{current}} sur {{total}}"
69
+ };
70
+ var dateFilterPresetsFr = [
71
+ { value: "today", label: "Aujourd'hui" },
72
+ { value: "yesterday", label: "Hier" },
73
+ { value: "previous_week", label: "Semaine pr\xE9c\xE9dente" },
74
+ { value: "previous_7_days", label: "7 derniers jours" },
75
+ { value: "previous_30_days", label: "30 derniers jours" },
76
+ { value: "previous_month", label: "Mois pr\xE9c\xE9dent" },
77
+ { value: "previous_3_months", label: "3 derniers mois" },
78
+ { value: "previous_12_months", label: "12 derniers mois" }
79
+ ];
80
+ var dateFilterOperatorsFr = [
81
+ { value: "between", label: "Entre" },
82
+ { value: "before", label: "Avant" },
83
+ { value: "on", label: "Le" },
84
+ { value: "after", label: "Apr\xE8s" }
85
+ ];
86
+ var dateFilterUnitsFr = [
87
+ { value: "day", label: "jours" },
88
+ { value: "week", label: "semaines" },
89
+ { value: "month", label: "mois" },
90
+ { value: "quarter", label: "trimestres" },
91
+ { value: "year", label: "ans" }
92
+ ];
93
+ var dateFilterLabelsFr = {
94
+ all: "Toute la p\xE9riode",
95
+ fixed: "Plage fixe...",
96
+ relative: "Plage relative...",
97
+ relativeTitle: "Plage relative",
98
+ apply: "Appliquer le filtre",
99
+ back: "Retour",
100
+ latest: "Derniers",
101
+ ago: "il y a",
102
+ includeCurrent: "Inclure la p\xE9riode actuelle",
103
+ startingAgo: "\xC0 partir de",
104
+ removeOffset: "Supprimer le d\xE9calage",
105
+ fallback: "Date"
106
+ };
107
+ var settingsLabelsFr = {
108
+ back: "Retour"
109
+ };
110
+ var saveStatusLabelsFr = {
111
+ error: "Vos modifications n'ont pas pu \xEAtre enregistr\xE9es",
112
+ idle: "Les modifications sont enregistr\xE9es automatiquement",
113
+ saved: "Enregistr\xE9",
114
+ saving: "Enregistrement"
115
+ };
116
+ var copyButtonLabelsFr = {
117
+ copyLabel: "Copier",
118
+ copiedLabel: "Copi\xE9"
119
+ };
120
+ var loginFormLabelsFr = {
121
+ emailLabel: "Adresse e-mail",
122
+ emailPlaceholder: "email@exemple.com",
123
+ passwordLabel: "Mot de passe",
124
+ passwordPlaceholder: "Mot de passe",
125
+ forgotPasswordLabel: "Mot de passe oubli\xE9 ?",
126
+ rememberLabel: "Se souvenir de moi",
127
+ submitLabel: "Se connecter",
128
+ submittingLabel: "Connexion"
129
+ };
130
+ var twoFactorLabelsFr = {
131
+ setupTitle: "Authentification \xE0 deux facteurs",
132
+ setupDescription: "Ajoutez une seconde \xE9tape \xE0 votre connexion avec une application authentificatrice.",
133
+ pendingLabel: "Pr\xE9paration de votre cl\xE9 de configuration",
134
+ scanTitle: "Scannez le code",
135
+ scanDescription: "Ouvrez l'application authentificatrice et scannez le code ci-dessous pour ajouter ce compte.",
136
+ qrFallbackLabel: "Le code QR n'est pas encore disponible.",
137
+ manualKeyLabel: "Cl\xE9 de configuration",
138
+ manualKeyDescription: "Saisissez cette cl\xE9 manuellement si l'application ne peut pas scanner le code.",
139
+ manualKeyRevealLabel: "Afficher la cl\xE9",
140
+ manualKeyHideLabel: "Masquer la cl\xE9",
141
+ continueLabel: "Continuer",
142
+ confirmTitle: "Confirmez le code",
143
+ confirmDescription: "Saisissez le code \xE0 six chiffres affich\xE9 dans l'application authentificatrice.",
144
+ codeLabel: "Code d'authentification",
145
+ recoveryCodeLabel: "Code de r\xE9cup\xE9ration",
146
+ recoveryCodePlaceholder: "Saisissez un code de r\xE9cup\xE9ration",
147
+ useRecoveryCodeLabel: "Utiliser un code de r\xE9cup\xE9ration",
148
+ useCodeLabel: "Utiliser un code d'authentification",
149
+ verifyLabel: "V\xE9rifier",
150
+ verifyingLabel: "V\xE9rification",
151
+ errorFallbackLabel: "Cela n'a pas fonctionn\xE9. R\xE9essayez.",
152
+ cancelLabel: "Annuler",
153
+ challengeTitle: "Confirmation \xE0 deux facteurs",
154
+ challengeDescription: "Confirmez l'acc\xE8s \xE0 votre compte avec le code de l'application authentificatrice.",
155
+ recoveryTitle: "Codes de r\xE9cup\xE9ration",
156
+ recoveryDescription: "Conservez ces codes en lieu s\xFBr. Chacun vous permet de vous connecter une fois si vous perdez votre appareil.",
157
+ recoveryWarning: "Ils ne sont affich\xE9s qu'une seule fois et ne peuvent pas \xEAtre consult\xE9s \xE0 nouveau.",
158
+ revealLabel: "Afficher les codes",
159
+ hideLabel: "Masquer les codes",
160
+ copyLabel: "Copier",
161
+ copiedLabel: "Copi\xE9",
162
+ copyFailedLabel: "Impossible de copier ici. S\xE9lectionnez les codes manuellement.",
163
+ regenerateLabel: "R\xE9g\xE9n\xE9rer les codes",
164
+ doneLabel: "Terminer",
165
+ disableLabel: "D\xE9sactiver l'authentification \xE0 deux facteurs",
166
+ disableTitle: "D\xE9sactiver l'authentification \xE0 deux facteurs",
167
+ disableDescription: "Votre compte ne sera plus prot\xE9g\xE9 que par le mot de passe. Les codes de r\xE9cup\xE9ration cesseront de fonctionner.",
168
+ disableConfirmLabel: "D\xE9sactiver",
169
+ disableCancelLabel: "Garder active"
170
+ };
171
+ var dangerZoneLabelsFr = {
172
+ title: "Zone de danger",
173
+ description: "Ces actions sont d\xE9finitives et ne peuvent pas \xEAtre annul\xE9es.",
174
+ actionLabel: "Supprimer",
175
+ confirmTitle: "Confirmer l'action",
176
+ confirmDescription: "\xCAtes-vous s\xFBr de vouloir continuer ? Cette action ne peut pas \xEAtre annul\xE9e.",
177
+ confirmText: "Confirmer",
178
+ cancelText: "Annuler",
179
+ requiredValueLabel: "Saisissez {{value}} pour confirmer"
180
+ };
181
+ var codeBlockLabelsFr = {
182
+ copyLabel: "Copier",
183
+ copiedLabel: "Copi\xE9",
184
+ expandLabel: "D\xE9velopper",
185
+ collapseLabel: "R\xE9duire"
186
+ };
187
+ var jsonViewerLabelsFr = {
188
+ copyLabel: "Copier",
189
+ copiedLabel: "Copi\xE9",
190
+ expandLabel: "D\xE9velopper",
191
+ collapseLabel: "R\xE9duire",
192
+ circularLabel: "R\xE9f\xE9rence circulaire",
193
+ entriesLabel: (count) => `${count} ${count === 1 ? "entr\xE9e" : "entr\xE9es"}`
194
+ };
195
+ var frLabels = {
196
+ alert: alertLabelsFr,
197
+ codeBlock: codeBlockLabelsFr,
198
+ combobox: comboboxLabelsFr,
199
+ commandPalette: commandPaletteLabelsFr,
200
+ confirmDialog: confirmDialogLabelsFr,
201
+ appearanceToggle: appearanceToggleLabelsFr,
202
+ copyButton: copyButtonLabelsFr,
203
+ dataTable: dataTableLabelsFr,
204
+ dataTableFacetedFilter: dataTableFacetedFilterLabelsFr,
205
+ dateFilter: dateFilterLabelsFr,
206
+ dateFilterOperators: dateFilterOperatorsFr,
207
+ dateFilterPresets: dateFilterPresetsFr,
208
+ dateFilterUnits: dateFilterUnitsFr,
209
+ datePicker: datePickerLabelsFr,
210
+ dateRangeFilter: dateRangeFilterLabelsFr,
211
+ floatingSheet: floatingSheetLabelsFr,
212
+ jsonViewer: jsonViewerLabelsFr,
213
+ loginForm: loginFormLabelsFr,
214
+ passwordInput: passwordInputLabelsFr,
215
+ saveStatus: saveStatusLabelsFr,
216
+ settings: settingsLabelsFr,
217
+ tour: tourLabelsFr
218
+ };
219
+ export {
220
+ alertLabelsFr,
221
+ appearanceToggleLabelsFr,
222
+ codeBlockLabelsFr,
223
+ comboboxLabelsFr,
224
+ commandPaletteLabelsFr,
225
+ confirmDialogLabelsFr,
226
+ copyButtonLabelsFr,
227
+ dangerZoneLabelsFr,
228
+ dataTableFacetedFilterLabelsFr,
229
+ dataTableLabelsFr,
230
+ dateFilterLabelsFr,
231
+ dateFilterOperatorsFr,
232
+ dateFilterPresetsFr,
233
+ dateFilterUnitsFr,
234
+ datePickerLabelsFr,
235
+ dateRangeFilterLabelsFr,
236
+ fieldLabelsFr,
237
+ floatingSheetLabelsFr,
238
+ formOverlayLabelsFr,
239
+ frLabels,
240
+ jsonViewerLabelsFr,
241
+ loginFormLabelsFr,
242
+ passwordInputLabelsFr,
243
+ saveStatusLabelsFr,
244
+ settingsLabelsFr,
245
+ tourLabelsFr,
246
+ twoFactorLabelsFr
247
+ };
248
+ //# sourceMappingURL=fr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/locales/fr.ts"],"sourcesContent":["import type { CommandPaletteLabels } from '@/blocks/command-palette';\nimport type { DangerZoneLabels } from '@/blocks/danger-zone';\nimport type {\n DateFilterLabels,\n DateFilterOption,\n} from '@/blocks/date-filter/types';\nimport type { FormOverlayLabels } from '@/blocks/form-overlay';\nimport type { LoginFormLabels } from '@/blocks/login-form/types';\nimport type { SettingsLabels } from '@/blocks/settings-page';\nimport type { TourLabels } from '@/blocks/tour/types';\nimport type { TwoFactorLabels } from '@/blocks/two-factor/types';\nimport type { AlertLabels } from '@/components/ui/alert';\nimport type { AppearanceToggleLabels } from '@/components/ui/appearance-toggle';\nimport type { CodeBlockLabels } from '@/components/ui/code-block';\nimport type { ComboboxLabels } from '@/components/ui/combobox';\nimport type { ConfirmDialogLabels } from '@/components/ui/confirm-dialog';\nimport type { CopyButtonLabels } from '@/components/ui/copy-button';\nimport type { DataTableLabels } from '@/components/ui/data-table';\nimport type { DataTableFacetedFilterLabels } from '@/components/ui/data-table-faceted-filter';\nimport type { DatePickerLabels } from '@/components/ui/date-picker';\nimport type { DateRangeFilterLabels } from '@/components/ui/date-range-filter';\nimport type { FieldLabels } from '@/components/ui/field';\nimport type { FloatingSheetLabels } from '@/components/ui/floating-sheet';\nimport type { JsonViewerLabels } from '@/components/ui/json-viewer';\nimport type { PasswordInputLabels } from '@/components/ui/password-input';\nimport type { SaveStatusLabels } from '@/components/ui/save-status';\nimport type { FullUiLabels } from '@/locales/context';\n\nexport const alertLabelsFr: AlertLabels = {\n warningLabel: 'Avertissement',\n infoLabel: 'Information',\n};\n\nexport const appearanceToggleLabelsFr: AppearanceToggleLabels = {\n groupLabel: 'Apparence',\n lightLabel: 'Clair',\n darkLabel: 'Sombre',\n systemLabel: 'Système',\n};\n\nexport const dataTableLabelsFr: DataTableLabels = {\n searchPlaceholder: 'Rechercher...',\n emptyLabel: 'Aucun résultat.',\n createLabel: 'Nouveau',\n clearFiltersLabel: 'Effacer les filtres',\n paginationLabel: (page, pages) => `Page ${page} sur ${pages}`,\n noOptionsLabel: 'Aucune option.',\n totalLabel: (total) => `${total.toLocaleString('fr-FR')} enregistrements`,\n};\n\nexport const floatingSheetLabelsFr: FloatingSheetLabels = {\n backLabel: 'Retour',\n closeLabel: 'Fermer',\n};\n\nexport const formOverlayLabelsFr: FormOverlayLabels = {\n cancelLabel: 'Annuler',\n saveLabel: 'Enregistrer',\n savingLabel: 'Enregistrement...',\n};\n\nexport const dateRangeFilterLabelsFr: DateRangeFilterLabels = {\n emptyLabel: 'Plage de dates',\n dateFormat: 'dd/MM/yy',\n};\n\nexport const datePickerLabelsFr: DatePickerLabels = {\n placeholder: 'Choisir une date',\n dateFormat: 'dd/MM/yy',\n clearLabel: 'Effacer la date',\n};\n\nexport const comboboxLabelsFr: ComboboxLabels = {\n placeholder: 'Sélectionnez une option',\n searchPlaceholder: 'Rechercher...',\n emptyText: 'Aucun résultat.',\n};\n\nexport const confirmDialogLabelsFr: ConfirmDialogLabels = {\n title: \"Confirmer l'action\",\n description:\n 'Êtes-vous sûr de vouloir continuer ? Cette action ne peut pas être annulée.',\n confirmText: 'Confirmer',\n cancelText: 'Annuler',\n};\n\nexport const fieldLabelsFr: FieldLabels = {\n requiredLabel: 'Obligatoire',\n};\n\nexport const passwordInputLabelsFr: PasswordInputLabels = {\n showLabel: 'Afficher le mot de passe',\n hideLabel: 'Masquer le mot de passe',\n};\n\nexport const dataTableFacetedFilterLabelsFr: DataTableFacetedFilterLabels = {\n noOptionsLabel: 'Aucune option.',\n};\n\nexport const commandPaletteLabelsFr: CommandPaletteLabels = {\n placeholder: 'Rechercher...',\n noResultsLabel: 'Aucun résultat trouvé',\n};\n\nexport const tourLabelsFr: TourLabels = {\n next: 'Suivant',\n previous: 'Précédent',\n done: 'Terminer',\n progress: '{{current}} sur {{total}}',\n};\n\nexport const dateFilterPresetsFr: DateFilterOption[] = [\n { value: 'today', label: \"Aujourd'hui\" },\n { value: 'yesterday', label: 'Hier' },\n { value: 'previous_week', label: 'Semaine précédente' },\n { value: 'previous_7_days', label: '7 derniers jours' },\n { value: 'previous_30_days', label: '30 derniers jours' },\n { value: 'previous_month', label: 'Mois précédent' },\n { value: 'previous_3_months', label: '3 derniers mois' },\n { value: 'previous_12_months', label: '12 derniers mois' },\n];\n\nexport const dateFilterOperatorsFr: DateFilterOption[] = [\n { value: 'between', label: 'Entre' },\n { value: 'before', label: 'Avant' },\n { value: 'on', label: 'Le' },\n { value: 'after', label: 'Après' },\n];\n\nexport const dateFilterUnitsFr: DateFilterOption[] = [\n { value: 'day', label: 'jours' },\n { value: 'week', label: 'semaines' },\n { value: 'month', label: 'mois' },\n { value: 'quarter', label: 'trimestres' },\n { value: 'year', label: 'ans' },\n];\n\nexport const dateFilterLabelsFr: DateFilterLabels = {\n all: 'Toute la période',\n fixed: 'Plage fixe...',\n relative: 'Plage relative...',\n relativeTitle: 'Plage relative',\n apply: 'Appliquer le filtre',\n back: 'Retour',\n latest: 'Derniers',\n ago: 'il y a',\n includeCurrent: 'Inclure la période actuelle',\n startingAgo: 'À partir de',\n removeOffset: 'Supprimer le décalage',\n fallback: 'Date',\n};\n\nexport const settingsLabelsFr: SettingsLabels = {\n back: 'Retour',\n};\n\nexport const saveStatusLabelsFr: SaveStatusLabels = {\n error: \"Vos modifications n'ont pas pu être enregistrées\",\n idle: 'Les modifications sont enregistrées automatiquement',\n saved: 'Enregistré',\n saving: 'Enregistrement',\n};\n\nexport const copyButtonLabelsFr: CopyButtonLabels = {\n copyLabel: 'Copier',\n copiedLabel: 'Copié',\n};\n\nexport const loginFormLabelsFr: LoginFormLabels = {\n emailLabel: 'Adresse e-mail',\n emailPlaceholder: 'email@exemple.com',\n passwordLabel: 'Mot de passe',\n passwordPlaceholder: 'Mot de passe',\n forgotPasswordLabel: 'Mot de passe oublié ?',\n rememberLabel: 'Se souvenir de moi',\n submitLabel: 'Se connecter',\n submittingLabel: 'Connexion',\n};\n\nexport const twoFactorLabelsFr: TwoFactorLabels = {\n setupTitle: 'Authentification à deux facteurs',\n setupDescription:\n 'Ajoutez une seconde étape à votre connexion avec une application authentificatrice.',\n pendingLabel: 'Préparation de votre clé de configuration',\n scanTitle: 'Scannez le code',\n scanDescription:\n \"Ouvrez l'application authentificatrice et scannez le code ci-dessous pour ajouter ce compte.\",\n qrFallbackLabel: \"Le code QR n'est pas encore disponible.\",\n manualKeyLabel: 'Clé de configuration',\n manualKeyDescription:\n \"Saisissez cette clé manuellement si l'application ne peut pas scanner le code.\",\n manualKeyRevealLabel: 'Afficher la clé',\n manualKeyHideLabel: 'Masquer la clé',\n continueLabel: 'Continuer',\n confirmTitle: 'Confirmez le code',\n confirmDescription:\n \"Saisissez le code à six chiffres affiché dans l'application authentificatrice.\",\n codeLabel: \"Code d'authentification\",\n recoveryCodeLabel: 'Code de récupération',\n recoveryCodePlaceholder: 'Saisissez un code de récupération',\n useRecoveryCodeLabel: 'Utiliser un code de récupération',\n useCodeLabel: \"Utiliser un code d'authentification\",\n verifyLabel: 'Vérifier',\n verifyingLabel: 'Vérification',\n errorFallbackLabel: \"Cela n'a pas fonctionné. Réessayez.\",\n cancelLabel: 'Annuler',\n challengeTitle: 'Confirmation à deux facteurs',\n challengeDescription:\n \"Confirmez l'accès à votre compte avec le code de l'application authentificatrice.\",\n recoveryTitle: 'Codes de récupération',\n recoveryDescription:\n 'Conservez ces codes en lieu sûr. Chacun vous permet de vous connecter une fois si vous perdez votre appareil.',\n recoveryWarning:\n \"Ils ne sont affichés qu'une seule fois et ne peuvent pas être consultés à nouveau.\",\n revealLabel: 'Afficher les codes',\n hideLabel: 'Masquer les codes',\n copyLabel: 'Copier',\n copiedLabel: 'Copié',\n copyFailedLabel:\n 'Impossible de copier ici. Sélectionnez les codes manuellement.',\n regenerateLabel: 'Régénérer les codes',\n doneLabel: 'Terminer',\n disableLabel: \"Désactiver l'authentification à deux facteurs\",\n disableTitle: \"Désactiver l'authentification à deux facteurs\",\n disableDescription:\n 'Votre compte ne sera plus protégé que par le mot de passe. Les codes de récupération cesseront de fonctionner.',\n disableConfirmLabel: 'Désactiver',\n disableCancelLabel: 'Garder active',\n};\n\nexport const dangerZoneLabelsFr: DangerZoneLabels = {\n title: 'Zone de danger',\n description:\n 'Ces actions sont définitives et ne peuvent pas être annulées.',\n actionLabel: 'Supprimer',\n confirmTitle: \"Confirmer l'action\",\n confirmDescription:\n 'Êtes-vous sûr de vouloir continuer ? Cette action ne peut pas être annulée.',\n confirmText: 'Confirmer',\n cancelText: 'Annuler',\n requiredValueLabel: 'Saisissez {{value}} pour confirmer',\n};\n\nexport const codeBlockLabelsFr: CodeBlockLabels = {\n copyLabel: 'Copier',\n copiedLabel: 'Copié',\n expandLabel: 'Développer',\n collapseLabel: 'Réduire',\n};\n\nexport const jsonViewerLabelsFr: JsonViewerLabels = {\n copyLabel: 'Copier',\n copiedLabel: 'Copié',\n expandLabel: 'Développer',\n collapseLabel: 'Réduire',\n circularLabel: 'Référence circulaire',\n entriesLabel: (count) => `${count} ${count === 1 ? 'entrée' : 'entrées'}`,\n};\n\nexport const frLabels: FullUiLabels = {\n alert: alertLabelsFr,\n codeBlock: codeBlockLabelsFr,\n combobox: comboboxLabelsFr,\n commandPalette: commandPaletteLabelsFr,\n confirmDialog: confirmDialogLabelsFr,\n appearanceToggle: appearanceToggleLabelsFr,\n copyButton: copyButtonLabelsFr,\n dataTable: dataTableLabelsFr,\n dataTableFacetedFilter: dataTableFacetedFilterLabelsFr,\n dateFilter: dateFilterLabelsFr,\n dateFilterOperators: dateFilterOperatorsFr,\n dateFilterPresets: dateFilterPresetsFr,\n dateFilterUnits: dateFilterUnitsFr,\n datePicker: datePickerLabelsFr,\n dateRangeFilter: dateRangeFilterLabelsFr,\n floatingSheet: floatingSheetLabelsFr,\n jsonViewer: jsonViewerLabelsFr,\n loginForm: loginFormLabelsFr,\n passwordInput: passwordInputLabelsFr,\n saveStatus: saveStatusLabelsFr,\n settings: settingsLabelsFr,\n tour: tourLabelsFr,\n};\n"],"mappings":"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","names":[]}
@@ -1,4 +1,4 @@
1
- import { G as AlertLabels, J as AppearanceToggleLabels, M as ComboboxLabels, ar as CommandPaletteLabels, Q as ConfirmDialogLabels, C as CopyButtonLabels, W as DataTableFacetedFilterLabels, Y as DataTableLabels, a as DateFilterLabels, b as DateFilterOption, a0 as DatePickerLabels, a3 as DateRangeFilterLabels, F as FloatingSheetLabels, a7 as PasswordInputLabels, v as UiLabels, ab as SaveStatusLabels, q as SettingsLabels } from '../context-Soro3B1I.js';
1
+ import { G as AlertLabels, J as AppearanceToggleLabels, M as ComboboxLabels, ar as CommandPaletteLabels, Q as ConfirmDialogLabels, C as CopyButtonLabels, W as DataTableFacetedFilterLabels, Y as DataTableLabels, a as DateFilterLabels, b as DateFilterOption, a0 as DatePickerLabels, a3 as DateRangeFilterLabels, F as FloatingSheetLabels, a7 as PasswordInputLabels, as as FullUiLabels, ab as SaveStatusLabels, q as SettingsLabels } from '../context-2wTOwxCk.js';
2
2
  import { e as DangerZoneLabels, a as FormOverlayLabels, i as TwoFactorLabels } from '../types-CfAUvz--.js';
3
3
  import { a as LoginFormLabels, e as TourLabels } from '../types-1LUmNJf_.js';
4
4
  import { a as CodeBlockLabels, c as JsonViewerLabels } from '../json-viewer-Bssv9mTD.js';
@@ -39,6 +39,6 @@ declare const twoFactorLabelsPt: TwoFactorLabels;
39
39
  declare const dangerZoneLabelsPt: DangerZoneLabels;
40
40
  declare const codeBlockLabelsPt: CodeBlockLabels;
41
41
  declare const jsonViewerLabelsPt: JsonViewerLabels;
42
- declare const ptLabels: UiLabels;
42
+ declare const ptLabels: FullUiLabels;
43
43
 
44
44
  export { alertLabelsPt, appearanceToggleLabelsPt, codeBlockLabelsPt, comboboxLabelsPt, commandPaletteLabelsPt, confirmDialogLabelsPt, copyButtonLabelsPt, dangerZoneLabelsPt, dataTableFacetedFilterLabelsPt, dataTableLabelsPt, dateFilterLabelsPt, dateFilterOperatorsPt, dateFilterPresetsPt, dateFilterUnitsPt, datePickerLabelsPt, dateRangeFilterLabelsPt, fieldLabelsPt, floatingSheetLabelsPt, formOverlayLabelsPt, jsonViewerLabelsPt, loginFormLabelsPt, passwordInputLabelsPt, ptLabels, saveStatusLabelsPt, settingsLabelsPt, tourLabelsPt, twoFactorLabelsPt };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/locales/pt.ts"],"sourcesContent":["import type { CommandPaletteLabels } from '@/blocks/command-palette';\nimport type { DangerZoneLabels } from '@/blocks/danger-zone';\nimport type {\n DateFilterLabels,\n DateFilterOption,\n} from '@/blocks/date-filter/types';\nimport type { FormOverlayLabels } from '@/blocks/form-overlay';\nimport type { LoginFormLabels } from '@/blocks/login-form/types';\nimport type { SettingsLabels } from '@/blocks/settings-page';\nimport type { TourLabels } from '@/blocks/tour/types';\nimport type { TwoFactorLabels } from '@/blocks/two-factor/types';\nimport type { AlertLabels } from '@/components/ui/alert';\nimport type { AppearanceToggleLabels } from '@/components/ui/appearance-toggle';\nimport type { CodeBlockLabels } from '@/components/ui/code-block';\nimport type { ComboboxLabels } from '@/components/ui/combobox';\nimport type { ConfirmDialogLabels } from '@/components/ui/confirm-dialog';\nimport type { CopyButtonLabels } from '@/components/ui/copy-button';\nimport type { DataTableLabels } from '@/components/ui/data-table';\nimport type { DataTableFacetedFilterLabels } from '@/components/ui/data-table-faceted-filter';\nimport type { DatePickerLabels } from '@/components/ui/date-picker';\nimport type { DateRangeFilterLabels } from '@/components/ui/date-range-filter';\nimport type { FieldLabels } from '@/components/ui/field';\nimport type { FloatingSheetLabels } from '@/components/ui/floating-sheet';\nimport type { JsonViewerLabels } from '@/components/ui/json-viewer';\nimport type { PasswordInputLabels } from '@/components/ui/password-input';\nimport type { SaveStatusLabels } from '@/components/ui/save-status';\nimport type { UiLabels } from '@/locales/context';\n\nexport const alertLabelsPt: AlertLabels = {\n warningLabel: 'Aviso',\n infoLabel: 'Informação',\n};\n\nexport const appearanceToggleLabelsPt: AppearanceToggleLabels = {\n groupLabel: 'Aparência',\n lightLabel: 'Claro',\n darkLabel: 'Escuro',\n systemLabel: 'Sistema',\n};\n\nexport const dataTableLabelsPt: DataTableLabels = {\n searchPlaceholder: 'Pesquisar...',\n emptyLabel: 'Sem registos.',\n createLabel: 'Novo',\n clearFiltersLabel: 'Limpar filtros',\n paginationLabel: (page, pages) => `Página ${page} de ${pages}`,\n noOptionsLabel: 'Sem opções.',\n totalLabel: (total) => `${total.toLocaleString('pt-PT')} registos`,\n};\n\nexport const floatingSheetLabelsPt: FloatingSheetLabels = {\n backLabel: 'Voltar',\n closeLabel: 'Fechar',\n};\n\nexport const formOverlayLabelsPt: FormOverlayLabels = {\n cancelLabel: 'Cancelar',\n saveLabel: 'Guardar',\n savingLabel: 'A guardar...',\n};\n\nexport const dateRangeFilterLabelsPt: DateRangeFilterLabels = {\n emptyLabel: 'Período',\n dateFormat: 'dd/MM/yy',\n};\n\nexport const datePickerLabelsPt: DatePickerLabels = {\n placeholder: 'Escolha uma data',\n dateFormat: 'dd/MM/yy',\n clearLabel: 'Limpar data',\n};\n\nexport const comboboxLabelsPt: ComboboxLabels = {\n placeholder: 'Seleccione uma opção',\n searchPlaceholder: 'Pesquisar...',\n emptyText: 'Sem resultados.',\n};\n\nexport const confirmDialogLabelsPt: ConfirmDialogLabels = {\n title: 'Confirmar Ação',\n description:\n 'Tem a certeza que pretende continuar? Esta ação não pode ser desfeita.',\n confirmText: 'Confirmar',\n cancelText: 'Cancelar',\n};\n\nexport const fieldLabelsPt: FieldLabels = {\n requiredLabel: 'Obrigatório',\n};\n\nexport const passwordInputLabelsPt: PasswordInputLabels = {\n showLabel: 'Mostrar palavra-passe',\n hideLabel: 'Ocultar palavra-passe',\n};\n\nexport const dataTableFacetedFilterLabelsPt: DataTableFacetedFilterLabels = {\n noOptionsLabel: 'Sem opções.',\n};\n\nexport const commandPaletteLabelsPt: CommandPaletteLabels = {\n placeholder: 'Pesquisar...',\n noResultsLabel: 'Nenhum resultado encontrado',\n};\n\nexport const tourLabelsPt: TourLabels = {\n next: 'Seguinte',\n previous: 'Anterior',\n done: 'Concluir',\n progress: '{{current}} de {{total}}',\n};\n\nexport const dateFilterPresetsPt: DateFilterOption[] = [\n { value: 'today', label: 'Hoje' },\n { value: 'yesterday', label: 'Ontem' },\n { value: 'previous_week', label: 'Semana anterior' },\n { value: 'previous_7_days', label: 'Últimos 7 dias' },\n { value: 'previous_30_days', label: 'Últimos 30 dias' },\n { value: 'previous_month', label: 'Mês anterior' },\n { value: 'previous_3_months', label: 'Últimos 3 meses' },\n { value: 'previous_12_months', label: 'Últimos 12 meses' },\n];\n\nexport const dateFilterOperatorsPt: DateFilterOption[] = [\n { value: 'between', label: 'Entre' },\n { value: 'before', label: 'Antes de' },\n { value: 'on', label: 'Em' },\n { value: 'after', label: 'Depois de' },\n];\n\nexport const dateFilterUnitsPt: DateFilterOption[] = [\n { value: 'day', label: 'dias' },\n { value: 'week', label: 'semanas' },\n { value: 'month', label: 'meses' },\n { value: 'quarter', label: 'trimestres' },\n { value: 'year', label: 'anos' },\n];\n\nexport const dateFilterLabelsPt: DateFilterLabels = {\n all: 'Todo o período',\n fixed: 'Intervalo fixo...',\n relative: 'Intervalo relativo...',\n relativeTitle: 'Intervalo relativo',\n apply: 'Aplicar filtro',\n back: 'Voltar',\n latest: 'Últimos',\n ago: 'há',\n includeCurrent: 'Incluir período atual',\n startingAgo: 'A começar há',\n removeOffset: 'Remover deslocamento',\n fallback: 'Data',\n};\n\nexport const settingsLabelsPt: SettingsLabels = {\n back: 'Voltar',\n};\n\nexport const saveStatusLabelsPt: SaveStatusLabels = {\n error: 'Não foi possível guardar as alterações',\n idle: 'As alterações são guardadas automaticamente',\n saved: 'Guardado',\n saving: 'A guardar',\n};\n\nexport const copyButtonLabelsPt: CopyButtonLabels = {\n copyLabel: 'Copiar',\n copiedLabel: 'Copiado',\n};\n\nexport const loginFormLabelsPt: LoginFormLabels = {\n emailLabel: 'Endereço de email',\n emailPlaceholder: 'email@exemplo.com',\n passwordLabel: 'Palavra-passe',\n passwordPlaceholder: 'Palavra-passe',\n forgotPasswordLabel: 'Esqueceu-se da palavra-passe?',\n rememberLabel: 'Manter sessão iniciada',\n submitLabel: 'Entrar',\n submittingLabel: 'A entrar',\n};\n\nexport const twoFactorLabelsPt: TwoFactorLabels = {\n setupTitle: 'Autenticação de dois fatores',\n setupDescription:\n 'Acrescente um segundo passo ao seu início de sessão com uma aplicação autenticadora.',\n pendingLabel: 'A preparar a sua chave de configuração',\n scanTitle: 'Leia o código',\n scanDescription:\n 'Abra a aplicação autenticadora e leia o código abaixo para adicionar esta conta.',\n qrFallbackLabel: 'O código QR ainda não está disponível.',\n manualKeyLabel: 'Chave de configuração',\n manualKeyDescription:\n 'Introduza esta chave manualmente se a aplicação não conseguir ler o código.',\n manualKeyRevealLabel: 'Mostrar chave',\n manualKeyHideLabel: 'Ocultar chave',\n continueLabel: 'Continuar',\n confirmTitle: 'Confirme o código',\n confirmDescription:\n 'Introduza o código de seis dígitos apresentado na aplicação autenticadora.',\n codeLabel: 'Código de autenticação',\n recoveryCodeLabel: 'Código de recuperação',\n recoveryCodePlaceholder: 'Introduza um código de recuperação',\n useRecoveryCodeLabel: 'Usar um código de recuperação',\n useCodeLabel: 'Usar um código de autenticação',\n verifyLabel: 'Verificar',\n verifyingLabel: 'A verificar',\n errorFallbackLabel: 'Não resultou. Tente novamente.',\n cancelLabel: 'Cancelar',\n challengeTitle: 'Confirmação em dois passos',\n challengeDescription:\n 'Confirme o acesso à sua conta com o código da aplicação autenticadora.',\n recoveryTitle: 'Códigos de recuperação',\n recoveryDescription:\n 'Guarde estes códigos em lugar seguro. Cada um permite um início de sessão se perder o dispositivo.',\n recoveryWarning:\n 'São mostrados uma única vez e não podem ser lidos depois.',\n revealLabel: 'Mostrar códigos',\n hideLabel: 'Ocultar códigos',\n copyLabel: 'Copiar',\n copiedLabel: 'Copiado',\n copyFailedLabel:\n 'Não é possível copiar aqui. Selecione os códigos manualmente.',\n regenerateLabel: 'Gerar novos códigos',\n doneLabel: 'Concluir',\n disableLabel: 'Desativar autenticação de dois fatores',\n disableTitle: 'Desativar autenticação de dois fatores',\n disableDescription:\n 'A sua conta fica protegida apenas pela palavra-passe. Os códigos de recuperação deixam de funcionar.',\n disableConfirmLabel: 'Desativar',\n disableCancelLabel: 'Manter ativa',\n};\n\nexport const dangerZoneLabelsPt: DangerZoneLabels = {\n title: 'Zona de perigo',\n description: 'Estas ações são permanentes e não podem ser desfeitas.',\n actionLabel: 'Eliminar',\n confirmTitle: 'Confirmar Ação',\n confirmDescription:\n 'Tem a certeza que pretende continuar? Esta ação não pode ser desfeita.',\n confirmText: 'Confirmar',\n cancelText: 'Cancelar',\n requiredValueLabel: 'Escreva {{value}} para confirmar',\n};\n\nexport const codeBlockLabelsPt: CodeBlockLabels = {\n copyLabel: 'Copiar',\n copiedLabel: 'Copiado',\n expandLabel: 'Expandir',\n collapseLabel: 'Recolher',\n};\n\nexport const jsonViewerLabelsPt: JsonViewerLabels = {\n copyLabel: 'Copiar',\n copiedLabel: 'Copiado',\n expandLabel: 'Expandir',\n collapseLabel: 'Recolher',\n circularLabel: 'Referência circular',\n entriesLabel: (count) => `${count} ${count === 1 ? 'entrada' : 'entradas'}`,\n};\n\nexport const ptLabels: UiLabels = {\n alert: alertLabelsPt,\n codeBlock: codeBlockLabelsPt,\n combobox: comboboxLabelsPt,\n commandPalette: commandPaletteLabelsPt,\n confirmDialog: confirmDialogLabelsPt,\n appearanceToggle: appearanceToggleLabelsPt,\n copyButton: copyButtonLabelsPt,\n dataTable: dataTableLabelsPt,\n dataTableFacetedFilter: dataTableFacetedFilterLabelsPt,\n dateFilter: dateFilterLabelsPt,\n dateFilterOperators: dateFilterOperatorsPt,\n dateFilterPresets: dateFilterPresetsPt,\n dateFilterUnits: dateFilterUnitsPt,\n datePicker: datePickerLabelsPt,\n dateRangeFilter: dateRangeFilterLabelsPt,\n floatingSheet: floatingSheetLabelsPt,\n jsonViewer: jsonViewerLabelsPt,\n loginForm: loginFormLabelsPt,\n passwordInput: passwordInputLabelsPt,\n saveStatus: saveStatusLabelsPt,\n settings: settingsLabelsPt,\n tour: tourLabelsPt,\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/locales/pt.ts"],"sourcesContent":["import type { CommandPaletteLabels } from '@/blocks/command-palette';\nimport type { DangerZoneLabels } from '@/blocks/danger-zone';\nimport type {\n DateFilterLabels,\n DateFilterOption,\n} from '@/blocks/date-filter/types';\nimport type { FormOverlayLabels } from '@/blocks/form-overlay';\nimport type { LoginFormLabels } from '@/blocks/login-form/types';\nimport type { SettingsLabels } from '@/blocks/settings-page';\nimport type { TourLabels } from '@/blocks/tour/types';\nimport type { TwoFactorLabels } from '@/blocks/two-factor/types';\nimport type { AlertLabels } from '@/components/ui/alert';\nimport type { AppearanceToggleLabels } from '@/components/ui/appearance-toggle';\nimport type { CodeBlockLabels } from '@/components/ui/code-block';\nimport type { ComboboxLabels } from '@/components/ui/combobox';\nimport type { ConfirmDialogLabels } from '@/components/ui/confirm-dialog';\nimport type { CopyButtonLabels } from '@/components/ui/copy-button';\nimport type { DataTableLabels } from '@/components/ui/data-table';\nimport type { DataTableFacetedFilterLabels } from '@/components/ui/data-table-faceted-filter';\nimport type { DatePickerLabels } from '@/components/ui/date-picker';\nimport type { DateRangeFilterLabels } from '@/components/ui/date-range-filter';\nimport type { FieldLabels } from '@/components/ui/field';\nimport type { FloatingSheetLabels } from '@/components/ui/floating-sheet';\nimport type { JsonViewerLabels } from '@/components/ui/json-viewer';\nimport type { PasswordInputLabels } from '@/components/ui/password-input';\nimport type { SaveStatusLabels } from '@/components/ui/save-status';\nimport type { FullUiLabels } from '@/locales/context';\n\nexport const alertLabelsPt: AlertLabels = {\n warningLabel: 'Aviso',\n infoLabel: 'Informação',\n};\n\nexport const appearanceToggleLabelsPt: AppearanceToggleLabels = {\n groupLabel: 'Aparência',\n lightLabel: 'Claro',\n darkLabel: 'Escuro',\n systemLabel: 'Sistema',\n};\n\nexport const dataTableLabelsPt: DataTableLabels = {\n searchPlaceholder: 'Pesquisar...',\n emptyLabel: 'Sem registos.',\n createLabel: 'Novo',\n clearFiltersLabel: 'Limpar filtros',\n paginationLabel: (page, pages) => `Página ${page} de ${pages}`,\n noOptionsLabel: 'Sem opções.',\n totalLabel: (total) => `${total.toLocaleString('pt-PT')} registos`,\n};\n\nexport const floatingSheetLabelsPt: FloatingSheetLabels = {\n backLabel: 'Voltar',\n closeLabel: 'Fechar',\n};\n\nexport const formOverlayLabelsPt: FormOverlayLabels = {\n cancelLabel: 'Cancelar',\n saveLabel: 'Guardar',\n savingLabel: 'A guardar...',\n};\n\nexport const dateRangeFilterLabelsPt: DateRangeFilterLabels = {\n emptyLabel: 'Período',\n dateFormat: 'dd/MM/yy',\n};\n\nexport const datePickerLabelsPt: DatePickerLabels = {\n placeholder: 'Escolha uma data',\n dateFormat: 'dd/MM/yy',\n clearLabel: 'Limpar data',\n};\n\nexport const comboboxLabelsPt: ComboboxLabels = {\n placeholder: 'Seleccione uma opção',\n searchPlaceholder: 'Pesquisar...',\n emptyText: 'Sem resultados.',\n};\n\nexport const confirmDialogLabelsPt: ConfirmDialogLabels = {\n title: 'Confirmar Ação',\n description:\n 'Tem a certeza que pretende continuar? Esta ação não pode ser desfeita.',\n confirmText: 'Confirmar',\n cancelText: 'Cancelar',\n};\n\nexport const fieldLabelsPt: FieldLabels = {\n requiredLabel: 'Obrigatório',\n};\n\nexport const passwordInputLabelsPt: PasswordInputLabels = {\n showLabel: 'Mostrar palavra-passe',\n hideLabel: 'Ocultar palavra-passe',\n};\n\nexport const dataTableFacetedFilterLabelsPt: DataTableFacetedFilterLabels = {\n noOptionsLabel: 'Sem opções.',\n};\n\nexport const commandPaletteLabelsPt: CommandPaletteLabels = {\n placeholder: 'Pesquisar...',\n noResultsLabel: 'Nenhum resultado encontrado',\n};\n\nexport const tourLabelsPt: TourLabels = {\n next: 'Seguinte',\n previous: 'Anterior',\n done: 'Concluir',\n progress: '{{current}} de {{total}}',\n};\n\nexport const dateFilterPresetsPt: DateFilterOption[] = [\n { value: 'today', label: 'Hoje' },\n { value: 'yesterday', label: 'Ontem' },\n { value: 'previous_week', label: 'Semana anterior' },\n { value: 'previous_7_days', label: 'Últimos 7 dias' },\n { value: 'previous_30_days', label: 'Últimos 30 dias' },\n { value: 'previous_month', label: 'Mês anterior' },\n { value: 'previous_3_months', label: 'Últimos 3 meses' },\n { value: 'previous_12_months', label: 'Últimos 12 meses' },\n];\n\nexport const dateFilterOperatorsPt: DateFilterOption[] = [\n { value: 'between', label: 'Entre' },\n { value: 'before', label: 'Antes de' },\n { value: 'on', label: 'Em' },\n { value: 'after', label: 'Depois de' },\n];\n\nexport const dateFilterUnitsPt: DateFilterOption[] = [\n { value: 'day', label: 'dias' },\n { value: 'week', label: 'semanas' },\n { value: 'month', label: 'meses' },\n { value: 'quarter', label: 'trimestres' },\n { value: 'year', label: 'anos' },\n];\n\nexport const dateFilterLabelsPt: DateFilterLabels = {\n all: 'Todo o período',\n fixed: 'Intervalo fixo...',\n relative: 'Intervalo relativo...',\n relativeTitle: 'Intervalo relativo',\n apply: 'Aplicar filtro',\n back: 'Voltar',\n latest: 'Últimos',\n ago: 'há',\n includeCurrent: 'Incluir período atual',\n startingAgo: 'A começar há',\n removeOffset: 'Remover deslocamento',\n fallback: 'Data',\n};\n\nexport const settingsLabelsPt: SettingsLabels = {\n back: 'Voltar',\n};\n\nexport const saveStatusLabelsPt: SaveStatusLabels = {\n error: 'Não foi possível guardar as alterações',\n idle: 'As alterações são guardadas automaticamente',\n saved: 'Guardado',\n saving: 'A guardar',\n};\n\nexport const copyButtonLabelsPt: CopyButtonLabels = {\n copyLabel: 'Copiar',\n copiedLabel: 'Copiado',\n};\n\nexport const loginFormLabelsPt: LoginFormLabels = {\n emailLabel: 'Endereço de email',\n emailPlaceholder: 'email@exemplo.com',\n passwordLabel: 'Palavra-passe',\n passwordPlaceholder: 'Palavra-passe',\n forgotPasswordLabel: 'Esqueceu-se da palavra-passe?',\n rememberLabel: 'Manter sessão iniciada',\n submitLabel: 'Entrar',\n submittingLabel: 'A entrar',\n};\n\nexport const twoFactorLabelsPt: TwoFactorLabels = {\n setupTitle: 'Autenticação de dois fatores',\n setupDescription:\n 'Acrescente um segundo passo ao seu início de sessão com uma aplicação autenticadora.',\n pendingLabel: 'A preparar a sua chave de configuração',\n scanTitle: 'Leia o código',\n scanDescription:\n 'Abra a aplicação autenticadora e leia o código abaixo para adicionar esta conta.',\n qrFallbackLabel: 'O código QR ainda não está disponível.',\n manualKeyLabel: 'Chave de configuração',\n manualKeyDescription:\n 'Introduza esta chave manualmente se a aplicação não conseguir ler o código.',\n manualKeyRevealLabel: 'Mostrar chave',\n manualKeyHideLabel: 'Ocultar chave',\n continueLabel: 'Continuar',\n confirmTitle: 'Confirme o código',\n confirmDescription:\n 'Introduza o código de seis dígitos apresentado na aplicação autenticadora.',\n codeLabel: 'Código de autenticação',\n recoveryCodeLabel: 'Código de recuperação',\n recoveryCodePlaceholder: 'Introduza um código de recuperação',\n useRecoveryCodeLabel: 'Usar um código de recuperação',\n useCodeLabel: 'Usar um código de autenticação',\n verifyLabel: 'Verificar',\n verifyingLabel: 'A verificar',\n errorFallbackLabel: 'Não resultou. Tente novamente.',\n cancelLabel: 'Cancelar',\n challengeTitle: 'Confirmação em dois passos',\n challengeDescription:\n 'Confirme o acesso à sua conta com o código da aplicação autenticadora.',\n recoveryTitle: 'Códigos de recuperação',\n recoveryDescription:\n 'Guarde estes códigos em lugar seguro. Cada um permite um início de sessão se perder o dispositivo.',\n recoveryWarning:\n 'São mostrados uma única vez e não podem ser lidos depois.',\n revealLabel: 'Mostrar códigos',\n hideLabel: 'Ocultar códigos',\n copyLabel: 'Copiar',\n copiedLabel: 'Copiado',\n copyFailedLabel:\n 'Não é possível copiar aqui. Selecione os códigos manualmente.',\n regenerateLabel: 'Gerar novos códigos',\n doneLabel: 'Concluir',\n disableLabel: 'Desativar autenticação de dois fatores',\n disableTitle: 'Desativar autenticação de dois fatores',\n disableDescription:\n 'A sua conta fica protegida apenas pela palavra-passe. Os códigos de recuperação deixam de funcionar.',\n disableConfirmLabel: 'Desativar',\n disableCancelLabel: 'Manter ativa',\n};\n\nexport const dangerZoneLabelsPt: DangerZoneLabels = {\n title: 'Zona de perigo',\n description: 'Estas ações são permanentes e não podem ser desfeitas.',\n actionLabel: 'Eliminar',\n confirmTitle: 'Confirmar Ação',\n confirmDescription:\n 'Tem a certeza que pretende continuar? Esta ação não pode ser desfeita.',\n confirmText: 'Confirmar',\n cancelText: 'Cancelar',\n requiredValueLabel: 'Escreva {{value}} para confirmar',\n};\n\nexport const codeBlockLabelsPt: CodeBlockLabels = {\n copyLabel: 'Copiar',\n copiedLabel: 'Copiado',\n expandLabel: 'Expandir',\n collapseLabel: 'Recolher',\n};\n\nexport const jsonViewerLabelsPt: JsonViewerLabels = {\n copyLabel: 'Copiar',\n copiedLabel: 'Copiado',\n expandLabel: 'Expandir',\n collapseLabel: 'Recolher',\n circularLabel: 'Referência circular',\n entriesLabel: (count) => `${count} ${count === 1 ? 'entrada' : 'entradas'}`,\n};\n\nexport const ptLabels: FullUiLabels = {\n alert: alertLabelsPt,\n codeBlock: codeBlockLabelsPt,\n combobox: comboboxLabelsPt,\n commandPalette: commandPaletteLabelsPt,\n confirmDialog: confirmDialogLabelsPt,\n appearanceToggle: appearanceToggleLabelsPt,\n copyButton: copyButtonLabelsPt,\n dataTable: dataTableLabelsPt,\n dataTableFacetedFilter: dataTableFacetedFilterLabelsPt,\n dateFilter: dateFilterLabelsPt,\n dateFilterOperators: dateFilterOperatorsPt,\n dateFilterPresets: dateFilterPresetsPt,\n dateFilterUnits: dateFilterUnitsPt,\n datePicker: datePickerLabelsPt,\n dateRangeFilter: dateRangeFilterLabelsPt,\n floatingSheet: floatingSheetLabelsPt,\n jsonViewer: jsonViewerLabelsPt,\n loginForm: loginFormLabelsPt,\n passwordInput: passwordInputLabelsPt,\n saveStatus: saveStatusLabelsPt,\n settings: settingsLabelsPt,\n tour: tourLabelsPt,\n};\n"],"mappings":"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","names":[]}
package/dist/shells.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-IQMRJXEO.js";
8
8
  import {
9
9
  Card
10
- } from "./chunk-2V6HUWST.js";
10
+ } from "./chunk-NKPFIA32.js";
11
11
  import {
12
12
  AppSidebar,
13
13
  AppSidebarHeader,
@@ -22,19 +22,19 @@ import {
22
22
  UserMenuContent,
23
23
  useCollapsedGroup,
24
24
  useInitials
25
- } from "./chunk-SZUXATOF.js";
25
+ } from "./chunk-XLAOE5MV.js";
26
26
  import {
27
27
  SidebarInset,
28
28
  SidebarProvider,
29
29
  useIsMobile
30
- } from "./chunk-B3L6PRLX.js";
30
+ } from "./chunk-ZQXZ4UGE.js";
31
31
  import {
32
32
  hrefToString
33
33
  } from "./chunk-L2H5GIF7.js";
34
- import "./chunk-3Z2VGVPI.js";
34
+ import "./chunk-53V4J7MC.js";
35
35
  import {
36
36
  cn
37
- } from "./chunk-KHOA4TEI.js";
37
+ } from "./chunk-PPWJK5T3.js";
38
38
 
39
39
  // src/shells/app-content.tsx
40
40
  import { jsx } from "react/jsx-runtime";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akira-io/ui",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "Open-source React component library: the full shadcn/ui set on an OKLCH design-token system with swappable brand palettes.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -64,6 +64,10 @@
64
64
  "types": "./dist/locales/pt.d.ts",
65
65
  "import": "./dist/locales/pt.js"
66
66
  },
67
+ "./locales/fr": {
68
+ "types": "./dist/locales/fr.d.ts",
69
+ "import": "./dist/locales/fr.js"
70
+ },
67
71
  "./theme.css": "./theme.css",
68
72
  "./themes/*.css": "./themes/*.css"
69
73
  },
package/theme.css CHANGED
@@ -113,6 +113,12 @@
113
113
  inset 0 -1px 0 0 var(--surface-shade),
114
114
  0 8px 24px -8px oklch(0 0 0 / 0.1),
115
115
  0 24px 48px -16px oklch(0 0 0 / 0.12);
116
+ --scroll-shadow-top:
117
+ 0 8px 24px -8px oklch(0 0 0 / 0.1),
118
+ 0 24px 48px -16px oklch(0 0 0 / 0.12);
119
+ --scroll-shadow-bottom:
120
+ 0 -8px 24px -8px oklch(0 0 0 / 0.1),
121
+ 0 -24px 48px -16px oklch(0 0 0 / 0.12);
116
122
  --input: oklch(0.922 0 0);
117
123
  --ring: var(--primary);
118
124
  --radius: 0.625rem;
@@ -164,6 +170,11 @@
164
170
  inset 0 1px 0 0 var(--surface-highlight),
165
171
  inset 0 -1px 0 0 var(--surface-shade),
166
172
  0 8px 24px -8px oklch(0 0 0 / 0.4), 0 24px 48px -16px oklch(0 0 0 / 0.5);
173
+ --scroll-shadow-top:
174
+ 0 8px 24px -8px oklch(0 0 0 / 0.4), 0 24px 48px -16px oklch(0 0 0 / 0.5);
175
+ --scroll-shadow-bottom:
176
+ 0 -8px 24px -8px oklch(0 0 0 / 0.4),
177
+ 0 -24px 48px -16px oklch(0 0 0 / 0.5);
167
178
  --input: oklch(0.269 0 0);
168
179
  --ring: var(--primary);
169
180
  --sidebar: oklch(0.205 0 0);
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/utils.ts","../src/lib/language.ts","../src/components/ui/spinner.tsx","../src/components/ui/button.tsx"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","export const surfaceRadius = 'rounded-3xl';\n\nexport const controlRadius = 'rounded-2xl';\n\nexport const compactRadius = 'rounded-xl';\n\nexport const glassEdge =\n 'ring-1 ring-surface-ring backdrop-blur-2xl backdrop-saturate-150';\n\nexport const elevatedSurface = `${glassEdge} ${surfaceRadius} border-0 shadow-(--glass-elevation)`;\n\nexport const floatingSurface = `${glassEdge} border-0 bg-popover/85 text-popover-foreground shadow-(--glass-elevation)`;\n\nexport const modalSurface = `${floatingSurface} ${surfaceRadius}`;\n\nexport const panelSurface = `${floatingSurface} ${controlRadius}`;\n\nexport const menuSurface = `${panelSurface} bg-popover/80`;\n\nexport const flatSurface = 'shadow-none ring-0';\n\nexport const recessedSurface = `${controlRadius} border-0 bg-surface-recessed/30 text-foreground shadow-none ring-0 backdrop-blur-none`;\n\nexport const nestedRadius = controlRadius;\n\nexport const nestedSurfaceReset =\n 'nested-surface:border-0 nested-surface:ring-0 nested-surface:bg-transparent nested-surface:shadow-none nested-surface:backdrop-blur-none';\n\nexport const nestedEdgeToEdge = 'nested-surface:rounded-none';\n\nexport const glassControl =\n 'ring-1 ring-surface-ring border-0 shadow-(--glass-shadow) backdrop-blur-md backdrop-saturate-150';\n\nexport const controlFill = 'bg-surface-control';\n\nexport const fieldText = 'text-base sm:text-sm';\n\nexport const fieldSurface = `${glassControl} ${controlFill} ${controlRadius} ${fieldText} text-foreground`;\n\nexport const focusRing =\n 'focus-visible:outline-solid focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring';\n\nexport const fieldFocus = `${focusRing} focus-visible:shadow-(--glass-elevation)`;\n\nexport const menuHighlight =\n 'outline-hidden focus:bg-accent focus:text-accent-foreground';\n\nexport interface SurfaceProps {\n inset?: boolean;\n}\n\nexport interface FlatSurfaceProps extends SurfaceProps {\n flat?: boolean;\n}\n\nexport function surface(inset?: boolean | null): string {\n return inset ? `${elevatedSurface} ${recessedSurface}` : elevatedSurface;\n}\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport { LoaderCircle } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst spinnerVariants = cva('inline-flex shrink-0', {\n variants: {\n size: {\n sm: 'size-3.5',\n default: 'size-4',\n lg: 'size-5',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n});\n\ninterface SpinnerProps\n extends React.ComponentProps<'span'>, VariantProps<typeof spinnerVariants> {\n label?: string;\n}\n\nfunction Spinner({\n className,\n label = 'Loading',\n size = 'default',\n slotName = 'spinner',\n ...props\n}: SpinnerProps & SlotNameProps) {\n return (\n <span\n {...props}\n data-size={size}\n role=\"status\"\n className={cn(spinnerVariants({ size }), className)}\n data-slot={slotName}\n >\n <LoaderCircle\n aria-hidden=\"true\"\n className=\"animate-spin size-full text-current motion-reduce:animate-none\"\n />\n <span className=\"sr-only\">{label}</span>\n </span>\n );\n}\n\nexport { Spinner, spinnerVariants, type SpinnerProps };\n","import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport {\n Spinner,\n spinnerVariants,\n type SpinnerProps,\n} from '@/components/ui/spinner';\nimport { controlFill, focusRing, glassControl } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nconst buttonVariants = cva(\n `inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-2xl text-sm font-semibold transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 aria-invalid:ring-destructive/20 aria-invalid:border-destructive ${focusRing}`,\n {\n variants: {\n variant: {\n default:\n 'bg-primary text-primary-foreground shadow-xl hover:bg-primary/90 hover:scale-[1.02] active:scale-[0.98]',\n destructive:\n 'bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90 focus-visible:outline-destructive',\n outline: `${glassControl} ${controlFill} hover:bg-accent hover:text-accent-foreground`,\n secondary: `${glassControl} bg-secondary/80 text-secondary-foreground hover:bg-secondary`,\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-11 px-4 has-[>svg]:gap-3',\n sm: 'h-9 rounded-xl px-3 has-[>svg]:gap-2.5',\n lg: 'h-12 px-6 has-[>svg]:gap-4 text-base',\n icon: 'size-11',\n 'icon-sm': 'size-9 rounded-xl',\n 'icon-lg': 'size-12',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\ntype ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;\n\ninterface ButtonProps\n extends\n React.ComponentProps<'button'>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n loading?: boolean;\n loadingLabel?: string;\n slotName?: string;\n}\n\nfunction spinnerSize(size: ButtonSize): SpinnerProps['size'] {\n if (size === 'sm' || size === 'icon-sm') return 'sm';\n if (size === 'lg' || size === 'icon-lg') return 'lg';\n return 'default';\n}\n\nconst ICON_PADDING: Record<ButtonSize, { leading: string; trailing: string }> =\n {\n default: { leading: 'pl-3', trailing: 'pr-2' },\n sm: { leading: 'pl-2.5', trailing: 'pr-1.5' },\n lg: { leading: 'pl-4', trailing: 'pr-3' },\n icon: { leading: '', trailing: '' },\n 'icon-sm': { leading: '', trailing: '' },\n 'icon-lg': { leading: '', trailing: '' },\n };\n\nfunction iconPadding(size: ButtonSize, children: React.ReactNode): string {\n const parts = React.Children.toArray(children).filter(\n (part) => typeof part !== 'string' || part.trim() !== '',\n );\n\n if (parts.length < 2) {\n return '';\n }\n\n const edges = ICON_PADDING[size];\n\n return cn(\n React.isValidElement(parts[0]) && edges.leading,\n React.isValidElement(parts[parts.length - 1]) && edges.trailing,\n );\n}\n\nfunction loadingPadding(size: ButtonSize): string | undefined {\n if (size === 'sm') return 'px-2.5';\n if (size === 'lg') return 'px-5';\n if (size === 'default') return 'px-3';\n return undefined;\n}\n\nfunction Button({\n className,\n variant = 'default',\n size = 'default',\n asChild = false,\n loading,\n loadingLabel = 'Loading',\n slotName = 'button',\n disabled,\n children,\n onClick,\n ...props\n}: ButtonProps) {\n const isLoading = loading === true;\n const hasLoadingState = loading !== undefined;\n const resolvedSize: ButtonSize = size ?? 'default';\n const baseClasses = buttonVariants({ variant, size: resolvedSize });\n const classes = cn(\n baseClasses,\n iconPadding(resolvedSize, children),\n className,\n );\n const loadingClasses = cn(\n baseClasses,\n loadingPadding(resolvedSize),\n className,\n );\n\n if (asChild) {\n const Comp = asChild ? Slot : 'button';\n const mappedSpinnerSize = spinnerSize(resolvedSize);\n const slottedChild = React.isValidElement<\n React.HTMLAttributes<HTMLElement>\n >(children)\n ? children\n : undefined;\n const items = React.Children.toArray(slottedChild?.props.children);\n const first = items[0];\n const iconOnly = resolvedSize.startsWith('icon');\n const hasLeadingVisual =\n React.isValidElement(first) && (items.length > 1 || iconOnly);\n const leadingVisual = hasLeadingVisual ? first : undefined;\n const label = hasLeadingVisual ? items.slice(1) : items;\n const slottedChildren =\n hasLoadingState && slottedChild\n ? React.cloneElement(\n slottedChild,\n isLoading\n ? {\n onClick(event) {\n event.preventDefault();\n event.stopPropagation();\n },\n }\n : undefined,\n <span\n data-slot=\"button-content\"\n className=\"inline-flex items-center gap-[inherit]\"\n >\n <span\n data-slot=\"button-leading\"\n className={cn(\n 'inline-grid shrink-0 place-items-center',\n spinnerVariants({ size: mappedSpinnerSize }),\n )}\n >\n {isLoading ? (\n <Spinner\n size={mappedSpinnerSize}\n label={loadingLabel}\n className=\"size-full\"\n />\n ) : (\n leadingVisual\n )}\n </span>\n <span data-slot=\"button-label\">{label}</span>\n {!hasLeadingVisual && !iconOnly && (\n <span\n aria-hidden=\"true\"\n data-slot=\"button-balance\"\n className={spinnerVariants({\n size: mappedSpinnerSize,\n })}\n />\n )}\n </span>,\n )\n : children;\n\n return (\n <Comp\n {...props}\n data-slot={slotName}\n data-variant={variant}\n data-size={resolvedSize}\n data-loading={isLoading || undefined}\n className={hasLoadingState ? loadingClasses : classes}\n disabled={disabled || isLoading}\n aria-busy={isLoading ? true : props['aria-busy']}\n aria-disabled={isLoading ? true : props['aria-disabled']}\n onClick={isLoading ? undefined : onClick}\n >\n {slottedChildren}\n </Comp>\n );\n }\n\n if (loading === undefined) {\n return (\n <button\n {...props}\n data-slot={slotName}\n data-variant={variant}\n data-size={resolvedSize}\n className={classes}\n disabled={disabled}\n onClick={onClick}\n >\n {children}\n </button>\n );\n }\n\n const items = React.Children.toArray(children);\n const first = items[0];\n const iconOnly = resolvedSize.startsWith('icon');\n const hasLeadingVisual =\n React.isValidElement(first) && (items.length > 1 || iconOnly);\n const leadingVisual = hasLeadingVisual ? first : undefined;\n const label = hasLeadingVisual ? items.slice(1) : items;\n const mappedSpinnerSize = spinnerSize(resolvedSize);\n\n return (\n <button\n {...props}\n data-slot={slotName}\n data-variant={variant}\n data-size={resolvedSize}\n data-loading={isLoading || undefined}\n className={loadingClasses}\n disabled={disabled || isLoading}\n aria-busy={isLoading ? true : props['aria-busy']}\n onClick={onClick}\n >\n <span\n data-slot=\"button-content\"\n className=\"inline-flex items-center gap-[inherit]\"\n >\n <span\n data-slot=\"button-leading\"\n className={cn(\n 'inline-grid shrink-0 place-items-center',\n spinnerVariants({ size: mappedSpinnerSize }),\n )}\n >\n {isLoading ? (\n <Spinner\n size={mappedSpinnerSize}\n label={loadingLabel}\n className=\"size-full\"\n />\n ) : (\n leadingVisual\n )}\n </span>\n <span data-slot=\"button-label\">{label}</span>\n {!hasLeadingVisual && !iconOnly && (\n <span\n aria-hidden=\"true\"\n data-slot=\"button-balance\"\n className={spinnerVariants({\n size: mappedSpinnerSize,\n })}\n />\n )}\n </span>\n </button>\n );\n}\n\nexport { Button, buttonVariants, type ButtonProps };\n"],"mappings":"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","names":["cva","jsx","jsxs","cva","mappedSpinnerSize","items","first","iconOnly","hasLeadingVisual","leadingVisual","label"]}