@feugene/granularity 0.43.0 → 0.45.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 (78) hide show
  1. package/README.md +2 -2
  2. package/dist/chunks/config-BkQ2jvXv.js +49 -0
  3. package/dist/chunks/config-BkQ2jvXv.js.map +1 -0
  4. package/dist/chunks/config-ChnYtO4o.js +28 -0
  5. package/dist/chunks/config-ChnYtO4o.js.map +1 -0
  6. package/dist/chunks/{en-C_QkUTRL.js → en-DiHzFact.js} +3 -1
  7. package/dist/chunks/en-DiHzFact.js.map +1 -0
  8. package/dist/chunks/{es-DemSEhZE.js → es-1ZL6NtkB.js} +3 -1
  9. package/dist/chunks/es-1ZL6NtkB.js.map +1 -0
  10. package/dist/chunks/{es-B4t_3Wnh.js → es-CeKkMxZ_.js} +3 -3
  11. package/dist/chunks/{es-B4t_3Wnh.js.map → es-CeKkMxZ_.js.map} +1 -1
  12. package/dist/chunks/{generated-VcxJTo_q.js → generated-DAKeOOqm.js} +45 -3
  13. package/dist/chunks/{generated-VcxJTo_q.js.map → generated-DAKeOOqm.js.map} +1 -1
  14. package/dist/chunks/{granular-provider-BohXQcNt.js → granular-provider-D_8_l-gM.js} +4 -0
  15. package/dist/chunks/granular-provider-D_8_l-gM.js.map +1 -0
  16. package/dist/chunks/{ru-CLUErjhY.js → ru-Dr2RYn0P.js} +3 -1
  17. package/dist/chunks/ru-Dr2RYn0P.js.map +1 -0
  18. package/dist/chunks/useScrollSpy-CIJpw0RI.js +360 -0
  19. package/dist/chunks/useScrollSpy-CIJpw0RI.js.map +1 -0
  20. package/dist/chunks/useTree-BebEiBcL.js +525 -0
  21. package/dist/chunks/useTree-BebEiBcL.js.map +1 -0
  22. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-CwCBMh4h.js → GrJsonViewer-CdlWMGnF.js} +1 -1
  23. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-CwCBMh4h.js.map → GrJsonViewer-CdlWMGnF.js.map} +1 -1
  24. package/dist/components/GrJsonViewer/index.js +1 -1
  25. package/dist/components/GrScrollSpy/chunks/GrScrollSpy-CQCH3zLC.js +207 -0
  26. package/dist/components/GrScrollSpy/chunks/GrScrollSpy-CQCH3zLC.js.map +1 -0
  27. package/dist/components/GrScrollSpy/index.js +3 -0
  28. package/dist/components/GrTree/chunks/{GrTree-CkHzgYg1.js → GrTree-DnDGW0xO.js} +103 -540
  29. package/dist/components/GrTree/chunks/GrTree-DnDGW0xO.js.map +1 -0
  30. package/dist/components/GrTree/index.js +2 -2
  31. package/dist/components/GrTree/styles.css +1 -1
  32. package/dist/components/GrTreeSections/chunks/GrTreeSections-D2PQ87mw.js +147 -0
  33. package/dist/components/GrTreeSections/chunks/GrTreeSections-D2PQ87mw.js.map +1 -0
  34. package/dist/components/GrTreeSections/index.js +3 -0
  35. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-DUsv3_mF.js → GrTreeSelect-DzheDCuZ.js} +1 -1
  36. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-DUsv3_mF.js.map → GrTreeSelect-DzheDCuZ.js.map} +1 -1
  37. package/dist/components/GrTreeSelect/index.js +1 -1
  38. package/dist/composables/useScrollSpy.js +2 -0
  39. package/dist/composables/useTree.js +2 -0
  40. package/dist/granular-provider-node.js +1 -1
  41. package/dist/granular-provider.js +1 -1
  42. package/dist/i18n/all.js +1 -1
  43. package/dist/i18n/index.js +1 -1
  44. package/dist/index.js +10 -4
  45. package/dist/theme.js +1 -1
  46. package/dist/tokens.js +1 -1
  47. package/dist/types/components/GrScrollSpy/GrScrollSpy.vue.d.ts +105 -0
  48. package/dist/types/components/GrScrollSpy/config.d.ts +1 -0
  49. package/dist/types/components/GrScrollSpy/grScrollSpyStyles.d.ts +26 -0
  50. package/dist/types/components/GrScrollSpy/index.d.ts +9 -0
  51. package/dist/types/components/GrScrollSpy/safelist.d.ts +1 -0
  52. package/dist/types/components/GrScrollSpy/scrollSpyItems.d.ts +44 -0
  53. package/dist/types/components/GrTree/grTreeProps.d.ts +8 -1
  54. package/dist/types/components/GrTree/grTreeStyles.d.ts +12 -0
  55. package/dist/types/components/GrTree/index.d.ts +3 -2
  56. package/dist/types/components/GrTreeSections/GrTreeSections.vue.d.ts +71 -0
  57. package/dist/types/components/GrTreeSections/config.d.ts +1 -0
  58. package/dist/types/components/GrTreeSections/grTreeSectionsStyles.d.ts +8 -0
  59. package/dist/types/components/GrTreeSections/index.d.ts +8 -0
  60. package/dist/types/components/GrTreeSections/safelist.d.ts +1 -0
  61. package/dist/types/composables/internal/scrollSpyGeometry.d.ts +67 -0
  62. package/dist/types/{components/GrTree/grTreeDataAdapter.d.ts → composables/internal/treeAdapter.d.ts} +3 -3
  63. package/dist/types/{components/GrTree/grTreeChecking.d.ts → composables/internal/treeChecking.d.ts} +1 -1
  64. package/dist/types/composables/useScrollSpy.d.ts +59 -0
  65. package/dist/types/composables/useTree.d.ts +107 -0
  66. package/dist/types/granular-provider/shared.d.ts +2 -0
  67. package/dist/types/i18n/messages/en.d.ts +6 -0
  68. package/dist/types/i18n/messages/es.d.ts +6 -0
  69. package/dist/types/i18n/messages/ru.d.ts +6 -0
  70. package/dist/types/index.d.ts +6 -0
  71. package/dist/web-types.json +238 -3
  72. package/package.json +17 -1
  73. package/dist/chunks/en-C_QkUTRL.js.map +0 -1
  74. package/dist/chunks/es-DemSEhZE.js.map +0 -1
  75. package/dist/chunks/granular-provider-BohXQcNt.js.map +0 -1
  76. package/dist/chunks/ru-CLUErjhY.js.map +0 -1
  77. package/dist/components/GrTree/chunks/GrTree-CkHzgYg1.js.map +0 -1
  78. package/dist/types/components/GrTree/grTreeStore.d.ts +0 -71
package/README.md CHANGED
@@ -91,10 +91,10 @@ from its own chunk, so a granular import already brings everything it needs.
91
91
  <!-- entry-sizes:generated:start lang=en -->
92
92
  | What you import | gzip | of the barrel |
93
93
  | --- | ---: | ---: |
94
- | the whole package from the root | 580.9 kB | 100 % |
94
+ | the whole package from the root | 595.8 kB | 100 % |
95
95
  | the lightest component — `GrButtonGroup` | 1.8 kB | < 1 % |
96
96
  | the median component — `GrNavbar` | 15.4 kB | 3 % |
97
- | the 5 heaviest together | 171.9 kB | 30 % |
97
+ | the 5 heaviest together | 173.8 kB | 29 % |
98
98
 
99
99
  These numbers **do not add up**: shared code is counted again in every row but paid for once, which is why
100
100
  the set is shown as a union rather than a sum. They are an upper bound — the gzip of everything a subpath
@@ -0,0 +1,49 @@
1
+ import { n as splitClassTokens } from "./classTokens-8v2XC74x.js";
2
+ import { defineGranularComponent } from "@feugene/unocss-preset-granular/contract";
3
+ //#region src/components/GrScrollSpy/grScrollSpyStyles.ts
4
+ var scrollSpyRootClass = "text-[length:var(--gr-control-text-sm)] leading-[var(--gr-leading-sm)] [scroll-margin-top:var(--gr-scroll-spy-offset,0px)]";
5
+ var scrollSpyListClass = "flex flex-col [list-style:none]";
6
+ /**
7
+ * Пункт — ссылка, поэтому `no-underline` и своё фокус-кольцо: `focus:outline-none`
8
+ * снимает системное, `focus-visible:ring-*` возвращает кольцо пакета.
9
+ *
10
+ * `ease-*` обязателен рядом с `duration-*`: без него кривую подставит `presetMini`,
11
+ * то есть движение задавал бы пресет, а не дизайн-система.
12
+ */
13
+ var scrollSpyItemBaseClass = "block truncate no-underline border-s-2 ps-2 pe-2 py-1 rounded-e-[var(--gr-radius-control)] transition-colors duration-[var(--gr-duration-fast)] ease-[var(--gr-ease-out)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]";
14
+ /**
15
+ * Активный пункт отличается **тремя** признаками — цветом рельса, весом и
16
+ * цветом текста. Одного цвета мало: он не виден при монохромном зрении и не
17
+ * существует для диктора, которому состояние приходит через `aria-current`.
18
+ *
19
+ * Приглушение неактивных — токеном текста, а не `opacity`: прозрачность
20
+ * разбавляет выверенные на AA цвета и роняет контраст.
21
+ */
22
+ var scrollSpyItemIdleClass = "border-s-[var(--gr-scroll-spy-rail,var(--gr-brd))] text-[var(--gr-muted-fg)] hover:text-[var(--gr-fg)]";
23
+ /**
24
+ * Предок активного пункта. Без него оглавление с двумя уровнями читается как
25
+ * сломанное: активен подраздел, а его раздел выглядит выключенным.
26
+ */
27
+ var scrollSpyItemAncestorClass = "border-s-[var(--gr-scroll-spy-rail,var(--gr-brd))] text-[var(--gr-fg)]";
28
+ var scrollSpyItemActiveClass = "border-s-[var(--gr-scroll-spy-marker,var(--gr-primary))] font-600 text-[var(--gr-primary-text)]";
29
+ function grScrollSpyItemClass(state) {
30
+ return `${scrollSpyItemBaseClass} ${state === "active" ? scrollSpyItemActiveClass : state === "ancestor" ? scrollSpyItemAncestorClass : scrollSpyItemIdleClass}`;
31
+ }
32
+ //#endregion
33
+ //#region src/components/GrScrollSpy/safelist.ts
34
+ var grScrollSpySafelist = [.../* @__PURE__ */ new Set([
35
+ ...splitClassTokens(scrollSpyRootClass),
36
+ ...splitClassTokens(scrollSpyListClass),
37
+ ...splitClassTokens(scrollSpyItemBaseClass),
38
+ ...splitClassTokens(scrollSpyItemIdleClass),
39
+ ...splitClassTokens(scrollSpyItemAncestorClass),
40
+ ...splitClassTokens(scrollSpyItemActiveClass)
41
+ ])];
42
+ //#endregion
43
+ //#region src/components/GrScrollSpy/config.ts
44
+ var grScrollSpyConfig = defineGranularComponent(import.meta.url, {
45
+ name: "GrScrollSpy",
46
+ safelist: grScrollSpySafelist
47
+ });
48
+ //#endregion
49
+ export { scrollSpyRootClass as a, scrollSpyListClass as i, grScrollSpySafelist as n, grScrollSpyItemClass as r, grScrollSpyConfig as t };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-BkQ2jvXv.js","names":[],"sources":["../../src/components/GrScrollSpy/grScrollSpyStyles.ts","../../src/components/GrScrollSpy/safelist.ts","../../src/components/GrScrollSpy/config.ts"],"sourcesContent":["export const scrollSpyRootClass = 'text-[length:var(--gr-control-text-sm)] leading-[var(--gr-leading-sm)] [scroll-margin-top:var(--gr-scroll-spy-offset,0px)]'\n\nexport const scrollSpyListClass = 'flex flex-col [list-style:none]'\n\n/**\n * Пункт — ссылка, поэтому `no-underline` и своё фокус-кольцо: `focus:outline-none`\n * снимает системное, `focus-visible:ring-*` возвращает кольцо пакета.\n *\n * `ease-*` обязателен рядом с `duration-*`: без него кривую подставит `presetMini`,\n * то есть движение задавал бы пресет, а не дизайн-система.\n */\nexport const scrollSpyItemBaseClass = 'block truncate no-underline border-s-2 ps-2 pe-2 py-1 rounded-e-[var(--gr-radius-control)] transition-colors duration-[var(--gr-duration-fast)] ease-[var(--gr-ease-out)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]'\n\n/**\n * Активный пункт отличается **тремя** признаками — цветом рельса, весом и\n * цветом текста. Одного цвета мало: он не виден при монохромном зрении и не\n * существует для диктора, которому состояние приходит через `aria-current`.\n *\n * Приглушение неактивных — токеном текста, а не `opacity`: прозрачность\n * разбавляет выверенные на AA цвета и роняет контраст.\n */\nexport const scrollSpyItemIdleClass = 'border-s-[var(--gr-scroll-spy-rail,var(--gr-brd))] text-[var(--gr-muted-fg)] hover:text-[var(--gr-fg)]'\n\n/**\n * Предок активного пункта. Без него оглавление с двумя уровнями читается как\n * сломанное: активен подраздел, а его раздел выглядит выключенным.\n */\nexport const scrollSpyItemAncestorClass = 'border-s-[var(--gr-scroll-spy-rail,var(--gr-brd))] text-[var(--gr-fg)]'\n\nexport const scrollSpyItemActiveClass = 'border-s-[var(--gr-scroll-spy-marker,var(--gr-primary))] font-600 text-[var(--gr-primary-text)]'\n\nexport function grScrollSpyItemClass(state: 'active' | 'ancestor' | 'idle'): string {\n const stateClass = state === 'active'\n ? scrollSpyItemActiveClass\n : state === 'ancestor' ? scrollSpyItemAncestorClass : scrollSpyItemIdleClass\n\n return `${scrollSpyItemBaseClass} ${stateClass}`\n}\n","import { splitClassTokens } from '../shared/classTokens'\n\nimport {\n scrollSpyItemActiveClass,\n scrollSpyItemAncestorClass,\n scrollSpyItemBaseClass,\n scrollSpyItemIdleClass,\n scrollSpyListClass,\n scrollSpyRootClass,\n} from './grScrollSpyStyles'\n\nexport const grScrollSpySafelist = [...new Set([\n ...splitClassTokens(scrollSpyRootClass),\n ...splitClassTokens(scrollSpyListClass),\n ...splitClassTokens(scrollSpyItemBaseClass),\n ...splitClassTokens(scrollSpyItemIdleClass),\n ...splitClassTokens(scrollSpyItemAncestorClass),\n ...splitClassTokens(scrollSpyItemActiveClass),\n])]\n","import { defineGranularComponent } from '@feugene/unocss-preset-granular/contract'\n\nimport { grScrollSpySafelist } from './safelist'\n\nexport const grScrollSpyConfig = defineGranularComponent(import.meta.url, {\n name: 'GrScrollSpy',\n safelist: grScrollSpySafelist,\n})\n"],"mappings":";;;AAAA,IAAa,qBAAqB;AAElC,IAAa,qBAAqB;;;;;;;;AASlC,IAAa,yBAAyB;;;;;;;;;AAUtC,IAAa,yBAAyB;;;;;AAMtC,IAAa,6BAA6B;AAE1C,IAAa,2BAA2B;AAExC,SAAgB,qBAAqB,OAA+C;CAKlF,OAAO,GAAG,uBAAuB,GAJd,UAAU,WACzB,2BACA,UAAU,aAAa,6BAA6B;AAG1D;;;AC1BA,IAAa,sBAAsB,CAAC,mBAAG,IAAI,IAAI;CAC7C,GAAG,iBAAiB,kBAAkB;CACtC,GAAG,iBAAiB,kBAAkB;CACtC,GAAG,iBAAiB,sBAAsB;CAC1C,GAAG,iBAAiB,sBAAsB;CAC1C,GAAG,iBAAiB,0BAA0B;CAC9C,GAAG,iBAAiB,wBAAwB;AAC9C,CAAC,CAAC;;;ACdF,IAAa,oBAAoB,wBAAwB,YAAY,KAAK;CACxE,MAAM;CACN,UAAU;AACZ,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { n as splitClassTokens } from "./classTokens-8v2XC74x.js";
2
+ import { defineGranularComponent } from "@feugene/unocss-preset-granular/contract";
3
+ //#region src/components/GrTreeSections/grTreeSectionsStyles.ts
4
+ var treeSectionsRootClass = "flex flex-col gap-4";
5
+ /**
6
+ * Заголовок группы набирается капителью и отделяется линией: он объявляет
7
+ * рубрику, а не узел, и должен читаться иначе, чем строки под ним.
8
+ */
9
+ var treeSectionsHeadClass = "flex items-baseline gap-2 pb-1 text-[length:var(--gr-text-xs)] leading-[var(--gr-leading-xs)] uppercase tracking-wider text-[var(--gr-muted-fg)] border-b border-[var(--gr-brd)]";
10
+ var treeSectionsCountClass = "ml-auto text-[var(--gr-muted-fg)] [font-variant-numeric:tabular-nums]";
11
+ var treeSectionsGroupClass = "flex flex-col gap-1";
12
+ //#endregion
13
+ //#region src/components/GrTreeSections/safelist.ts
14
+ var grTreeSectionsSafelist = [.../* @__PURE__ */ new Set([
15
+ ...splitClassTokens(treeSectionsRootClass),
16
+ ...splitClassTokens(treeSectionsHeadClass),
17
+ ...splitClassTokens(treeSectionsCountClass),
18
+ ...splitClassTokens(treeSectionsGroupClass)
19
+ ])];
20
+ //#endregion
21
+ //#region src/components/GrTreeSections/config.ts
22
+ var grTreeSectionsConfig = defineGranularComponent(import.meta.url, {
23
+ name: "GrTreeSections",
24
+ dependencies: ["GrTree"],
25
+ safelist: grTreeSectionsSafelist
26
+ });
27
+ //#endregion
28
+ export { treeSectionsHeadClass as a, treeSectionsGroupClass as i, grTreeSectionsSafelist as n, treeSectionsRootClass as o, treeSectionsCountClass as r, grTreeSectionsConfig as t };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-ChnYtO4o.js","names":[],"sources":["../../src/components/GrTreeSections/grTreeSectionsStyles.ts","../../src/components/GrTreeSections/safelist.ts","../../src/components/GrTreeSections/config.ts"],"sourcesContent":["export const treeSectionsRootClass = 'flex flex-col gap-4'\n\n/**\n * Заголовок группы набирается капителью и отделяется линией: он объявляет\n * рубрику, а не узел, и должен читаться иначе, чем строки под ним.\n */\nexport const treeSectionsHeadClass = 'flex items-baseline gap-2 pb-1 text-[length:var(--gr-text-xs)] leading-[var(--gr-leading-xs)] uppercase tracking-wider text-[var(--gr-muted-fg)] border-b border-[var(--gr-brd)]'\n\nexport const treeSectionsCountClass = 'ml-auto text-[var(--gr-muted-fg)] [font-variant-numeric:tabular-nums]'\n\nexport const treeSectionsGroupClass = 'flex flex-col gap-1'\n","import { splitClassTokens } from '../shared/classTokens'\n\nimport {\n treeSectionsCountClass,\n treeSectionsGroupClass,\n treeSectionsHeadClass,\n treeSectionsRootClass,\n} from './grTreeSectionsStyles'\n\nexport const grTreeSectionsSafelist = [...new Set([\n ...splitClassTokens(treeSectionsRootClass),\n ...splitClassTokens(treeSectionsHeadClass),\n ...splitClassTokens(treeSectionsCountClass),\n ...splitClassTokens(treeSectionsGroupClass),\n])]\n","import { defineGranularComponent } from '@feugene/unocss-preset-granular/contract'\n\nimport { grTreeSectionsSafelist } from './safelist'\n\nexport const grTreeSectionsConfig = defineGranularComponent(import.meta.url, {\n name: 'GrTreeSections',\n dependencies: ['GrTree'],\n safelist: grTreeSectionsSafelist,\n})\n"],"mappings":";;;AAAA,IAAa,wBAAwB;;;;;AAMrC,IAAa,wBAAwB;AAErC,IAAa,yBAAyB;AAEtC,IAAa,yBAAyB;;;ACDtC,IAAa,yBAAyB,CAAC,mBAAG,IAAI,IAAI;CAChD,GAAG,iBAAiB,qBAAqB;CACzC,GAAG,iBAAiB,qBAAqB;CACzC,GAAG,iBAAiB,sBAAsB;CAC1C,GAAG,iBAAiB,sBAAsB;AAC5C,CAAC,CAAC;;;ACVF,IAAa,uBAAuB,wBAAwB,YAAY,KAAK;CAC3E,MAAM;CACN,cAAc,CAAC,QAAQ;CACvB,UAAU;AACZ,CAAC"}
@@ -153,6 +153,7 @@ var pagination = {
153
153
  "status": "Page {page} of {count}"
154
154
  };
155
155
  var navbar = { "openMenu": "Open menu" };
156
+ var scrollSpy = { "label": "On this page" };
156
157
  var responseError = {
157
158
  "networkTitle": "No connection to the server",
158
159
  "networkMessage": "Check your internet connection and try again.",
@@ -373,6 +374,7 @@ var en_default = {
373
374
  statistic,
374
375
  pagination,
375
376
  navbar,
377
+ scrollSpy,
376
378
  responseError,
377
379
  colors,
378
380
  drawer,
@@ -408,4 +410,4 @@ var en_default = {
408
410
  contextMenu
409
411
  };
410
412
  //#endregion
411
- export { autocomplete, avatar, badgeWrap, bottomNav, breadcrumbs, button, carousel, chip, collapse, colorPicker, colors, commandPalette, common, contextMenu, dataTable, en_default as default, delta, dialog, drawer, emptyState, filePreview, fileUpload, fileValidation, form, formErrorBanner, formFile, imageViewer, input, inputTag, jsonViewer, kbd, link, list, loading, modal, navbar, numberInput, pagination, rating, responseError, select, sidebar, slider, sortable, splitter, statistic, steps, table, tabs, textarea, timeline, toaster, transfer, tree, treeSelect, uploadErrorBanner };
413
+ export { autocomplete, avatar, badgeWrap, bottomNav, breadcrumbs, button, carousel, chip, collapse, colorPicker, colors, commandPalette, common, contextMenu, dataTable, en_default as default, delta, dialog, drawer, emptyState, filePreview, fileUpload, fileValidation, form, formErrorBanner, formFile, imageViewer, input, inputTag, jsonViewer, kbd, link, list, loading, modal, navbar, numberInput, pagination, rating, responseError, scrollSpy, select, sidebar, slider, sortable, splitter, statistic, steps, table, tabs, textarea, timeline, toaster, transfer, tree, treeSelect, uploadErrorBanner };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en-DiHzFact.js","names":[],"sources":["../../src/i18n/locales/en.json"],"sourcesContent":["{\n \"transfer\": {\n \"sourceTitle\": \"Available\",\n \"targetTitle\": \"Selected\",\n \"search\": \"Search\",\n \"toTarget\": \"Move to selected\",\n \"toSource\": \"Move back to available\",\n \"selectAll\": \"Select everything shown\",\n \"moveUp\": \"Move earlier\",\n \"moveDown\": \"Move later\",\n \"selected\": \"{count} of {total}\",\n \"shown\": \"Showing {shown} of {total}\",\n \"empty\": \"Nothing here yet\",\n \"emptyFiltered\": \"Nothing matches the search\",\n \"moved\": \"{count} moved to {list}\",\n \"reordered\": \"Position {position} of {count}\",\n \"reorderFiltered\": \"Reordering is off while a search is active\",\n \"cancelled\": \"Move cancelled\"\n },\n \"carousel\": {\n \"roledescription\": \"carousel\",\n \"slideRoledescription\": \"slide\",\n \"slidePosition\": \"{index} of {total}\",\n \"previous\": \"Previous slide\",\n \"next\": \"Next slide\",\n \"play\": \"Start automatic slide show\",\n \"pause\": \"Stop automatic slide show\",\n \"indicators\": \"Slides\",\n \"autoplayStopped\": \"Automatic slide show stopped\"\n },\n \"chip\": {\n \"remove\": \"Remove\",\n \"removeNamed\": \"Remove {label}\"\n },\n \"common\": {\n \"confirm\": \"Confirm\",\n \"cancel\": \"Cancel\",\n \"add\": \"Add\",\n \"clear\": \"Clear\",\n \"close\": \"Close\"\n },\n \"loading\": {\n \"defaultText\": \"Loading...\"\n },\n \"steps\": {\n \"label\": \"Progress\",\n \"status\": \"Step {step} of {count}\",\n \"completed\": \"completed\",\n \"error\": \"has errors\"\n },\n \"treeSelect\": {\n \"filterPlaceholder\": \"Search…\",\n \"empty\": \"No data\",\n \"loading\": \"Loading…\"\n },\n \"badgeWrap\": {\n \"count\": \"{count} new\"\n },\n \"avatar\": {\n \"group\": \"People\",\n \"groupOverflow\": \"and {count} more\",\n \"status\": {\n \"online\": \"online\",\n \"offline\": \"offline\",\n \"busy\": \"busy\",\n \"away\": \"away\"\n }\n },\n \"tree\": {\n \"drag\": \"Drag\",\n \"expand\": \"Expand\",\n \"collapse\": \"Collapse\",\n \"moved\": \"Moved {label}\"\n },\n \"select\": {\n \"customValuePlaceholder\": \"Add value…\",\n \"addOption\": \"Add \\\"{value}\\\"\",\n \"clearOption\": \"None\",\n \"searchPlaceholder\": \"Search…\",\n \"loading\": \"Loading…\",\n \"noResults\": \"No results\",\n \"removeTag\": \"Remove {label}\"\n },\n \"dataTable\": {\n \"loading\": \"Loading…\",\n \"empty\": \"No data\",\n \"selectAll\": \"Select all rows\",\n \"selectRow\": \"Select row\",\n \"sortAsc\": \"Activate to sort ascending\",\n \"sortDesc\": \"Activate to sort descending\",\n \"sortNone\": \"Activate to remove sorting\",\n \"moveColumn\": \"Move column {label}\",\n \"columnMoved\": \"Column {label} moved to position {position} of {count}\",\n \"resizeColumn\": \"Width of column {label}\",\n \"columnResized\": \"Column {label} is {width} pixels wide\"\n },\n \"breadcrumbs\": {\n \"label\": \"Breadcrumb\",\n \"expand\": \"Show hidden path\"\n },\n \"autocomplete\": {\n \"loading\": \"Loading…\",\n \"noResults\": \"No results\",\n \"addOption\": \"Add \\\"{value}\\\"\",\n \"removeValue\": \"Remove {label}\",\n \"typeMore\": {\n \"one\": \"Type at least {n} character\",\n \"other\": \"Type at least {n} characters\"\n }\n },\n \"form\": {\n \"required\": \"This field is required\",\n \"min\": \"Minimum is {min}\",\n \"max\": \"Maximum is {max}\",\n \"len\": \"Length must be {len}\",\n \"pattern\": \"Invalid format\",\n \"email\": \"Enter a valid email\",\n \"url\": \"Enter a valid URL\",\n \"file\": \"Invalid file\",\n \"invalid\": \"Invalid value\",\n \"readonly\": \"Read only\",\n \"validating\": \"Checking…\"\n },\n \"dialog\": {\n \"confirm\": {\n \"title\": \"Confirm\"\n },\n \"prompt\": {\n \"title\": \"Prompt\",\n \"label\": \"Value\",\n \"required\": \"Enter a value.\"\n },\n \"ok\": \"OK\"\n },\n \"switch\": {\n \"loading\": \"Saving…\"\n },\n \"slider\": {\n \"min\": \"min\",\n \"max\": \"max\"\n },\n \"sidebar\": {\n \"expand\": \"Expand sidebar\",\n \"collapse\": \"Collapse sidebar\"\n },\n \"splitter\": {\n \"label\": \"Resize panels\"\n },\n \"statistic\": {\n \"trendUp\": \"Increase\",\n \"trendDown\": \"Decrease\",\n \"trendFlat\": \"No change\"\n },\n \"pagination\": {\n \"label\": \"Pagination\",\n \"pageSize\": \"Page size\",\n \"prev\": \"Prev\",\n \"next\": \"Next\",\n \"page\": \"Page {n}\",\n \"first\": \"First page\",\n \"last\": \"Last page\",\n \"jumpTo\": \"Go to\",\n \"total\": \"{from}–{to} of {total}\",\n \"status\": \"Page {page} of {count}\"\n },\n \"navbar\": {\n \"openMenu\": \"Open menu\"\n },\n \"scrollSpy\": {\n \"label\": \"On this page\"\n },\n \"responseError\": {\n \"networkTitle\": \"No connection to the server\",\n \"networkMessage\": \"Check your internet connection and try again.\",\n \"abortedTitle\": \"Request cancelled\",\n \"abortedMessage\": \"The request was cancelled.\",\n \"validationTitle\": \"Check the data\",\n \"validationMessage\": \"The server returned a validation error. Fix the fields and try again.\",\n \"clientTitle\": \"Request error\",\n \"clientMessage\": \"The server rejected the request.\",\n \"serverTitle\": \"Server error\",\n \"serverMessage\": \"A server error occurred. Please try again.\",\n \"unknownTitle\": \"Something went wrong\",\n \"unknownMessage\": \"The operation could not be completed. Please try again.\",\n \"statusLabel\": \"HTTP {status}\",\n \"retryLabel\": \"Retry\",\n \"dismissLabel\": \"Dismiss\"\n },\n \"colors\": {\n \"neutral\": \"Neutral\",\n \"success\": \"Success\",\n \"warning\": \"Warning\",\n \"danger\": \"Danger\",\n \"info\": \"Info\",\n \"primary\": \"Primary\",\n \"slate\": \"Slate\",\n \"azure\": \"Azure\"\n },\n \"drawer\": {\n \"title\": \"Drawer\"\n },\n \"modal\": {\n \"title\": \"Dialog\"\n },\n \"numberInput\": {\n \"increase\": \"Increase\",\n \"decrease\": \"Decrease\"\n },\n \"toaster\": {\n \"dismiss\": \"Dismiss\",\n \"region\": \"Notifications\"\n },\n \"inputTag\": {\n \"removeTag\": \"Remove tag\",\n \"removeTagNamed\": \"Remove tag {tag}\",\n \"clearAll\": \"Clear all tags\",\n \"added\": \"Tag added: {tag}\",\n \"addedMany\": \"{count} tags added\",\n \"removed\": \"Tag removed: {tag}\",\n \"cleared\": \"All tags removed\",\n \"limitReached\": \"Tag limit reached\"\n },\n \"fileUpload\": {\n \"placeholder\": \"Drag files here or click to select\",\n \"progress\": \"Upload progress\",\n \"uploading\": \"Uploading…\",\n \"success\": \"Upload complete\",\n \"error\": \"Upload failed\",\n \"remove\": \"Remove {fileName}\",\n \"retry\": \"Retry upload\",\n \"retryFile\": \"Retry {fileName}\",\n \"abortFile\": \"Cancel upload of {fileName}\",\n \"statusPending\": \"Pending\",\n \"statusUploading\": \"Uploading\",\n \"statusSuccess\": \"Uploaded\",\n \"statusError\": \"Failed\"\n },\n \"formFile\": {\n \"upload\": \"Upload file\",\n \"change\": \"Change file\",\n \"remove\": \"Remove\",\n \"clearAll\": \"Clear all\",\n \"placeholder\": \"No files selected\",\n \"validateError\": \"Failed to validate dropped files\",\n \"removeFile\": \"Remove {fileName}\"\n },\n \"imageViewer\": {\n \"close\": \"Close image viewer\",\n \"prev\": \"Previous image\",\n \"next\": \"Next image\",\n \"zoomIn\": \"Zoom in\",\n \"zoomOut\": \"Zoom out\",\n \"resetZoom\": \"Reset zoom\",\n \"zoomToNatural\": \"Actual size (1:1)\",\n \"rotateLeft\": \"Rotate left\",\n \"rotateRight\": \"Rotate right\",\n \"download\": \"Download image\",\n \"empty\": \"No image\",\n \"label\": \"Image viewer\",\n \"position\": \"Image {index} of {total}\"\n },\n \"formErrorBanner\": {\n \"validationTitle\": \"Check the form fields\",\n \"validationMessage\": \"The server rejected the data. Fix the highlighted fields and try again.\",\n \"clientTitle\": \"Failed to save\",\n \"serverTitle\": \"Save error\",\n \"serverMessage\": \"Could not save the data. Please try again later.\"\n },\n \"uploadErrorBanner\": {\n \"networkTitle\": \"Failed to upload files\",\n \"networkMessage\": \"Check your connection and try again.\",\n \"validationTitle\": \"Files did not pass validation\",\n \"validationMessage\": \"Some of the files do not meet the requirements.\",\n \"serverTitle\": \"Upload error on the server\",\n \"serverMessage\": \"The server could not process the upload. Please try again.\"\n },\n \"input\": {\n \"clear\": \"Clear\",\n \"showPassword\": \"Show password\",\n \"hidePassword\": \"Hide password\",\n \"limitReached\": \"Character limit reached\"\n },\n \"textarea\": {\n \"lines\": {\n \"one\": \"{n} line\",\n \"other\": \"{n} lines\"\n }\n },\n \"rating\": {\n \"label\": \"Rating\",\n \"valueText\": \"{value} of {max}\",\n \"valueTextWithLabel\": \"{value} of {max}, {label}\"\n },\n \"commandPalette\": {\n \"label\": \"Command palette\",\n \"placeholder\": \"Type a command or search…\",\n \"empty\": \"Nothing found\",\n \"recent\": \"Recent\",\n \"loading\": \"Loading…\"\n },\n \"delta\": {\n \"increase\": \"increase\"\n },\n \"filePreview\": {\n \"label\": \"File\"\n },\n \"fileValidation\": {\n \"accept\": \"File \\\"{fileName}\\\" does not match accept=\\\"{accept}\\\"\",\n \"extension\": \"File \\\"{fileName}\\\" has disallowed extension \\\".{extension}\\\"\",\n \"mimeType\": \"File \\\"{fileName}\\\" has disallowed mime type \\\"{mimeType}\\\"\",\n \"mimeTypeFallback\": \"File \\\"{fileName}\\\" has fallback mime type \\\"{mimeType}\\\"\",\n \"maxFileSize\": \"File \\\"{fileName}\\\" is too large ({size} bytes), maxBytes={maxBytes}\",\n \"maxCount\": \"Too many files selected ({count}), maxCount={maxCount}\",\n \"maxTotalSize\": \"Total files size is too large ({total} bytes), maxTotalSizeBytes={maxBytes}\"\n },\n \"kbd\": {\n \"command\": \"Command\",\n \"option\": \"Option\",\n \"shift\": \"Shift\",\n \"control\": \"Control\",\n \"enter\": \"Enter\",\n \"escape\": \"Escape\",\n \"tab\": \"Tab\",\n \"backspace\": \"Backspace\",\n \"delete\": \"Delete\",\n \"pageUp\": \"Page Up\",\n \"pageDown\": \"Page Down\",\n \"arrowUp\": \"Arrow Up\",\n \"arrowDown\": \"Arrow Down\",\n \"arrowLeft\": \"Arrow Left\",\n \"arrowRight\": \"Arrow Right\",\n \"then\": \"then\"\n },\n \"link\": {\n \"opensInNewTab\": \"opens in a new tab\"\n },\n \"colorPicker\": {\n \"panelLabel\": \"Color picker\",\n \"hue\": \"Hue\",\n \"saturation\": \"Saturation\",\n \"lightness\": \"Lightness\",\n \"opacity\": \"Opacity\",\n \"hexLabel\": \"Hex value\",\n \"presetsLabel\": \"Color presets\",\n \"swatchLabel\": \"Color {color}\"\n },\n \"collapse\": {\n \"empty\": \"Nothing here yet\"\n },\n \"list\": {\n \"empty\": \"Nothing here yet\"\n },\n \"button\": {\n \"loading\": \"Loading…\"\n },\n \"table\": {\n \"empty\": \"Nothing here yet\"\n },\n \"timeline\": {\n \"empty\": \"Nothing here yet\"\n },\n \"tabs\": {\n \"empty\": \"Nothing here yet\",\n \"close\": \"Close tab\"\n },\n \"bottomNav\": {\n \"label\": \"Bottom navigation\",\n \"badge\": \"{count} new\"\n },\n \"emptyState\": {\n \"title\": \"Nothing here yet\"\n },\n \"sortable\": {\n \"label\": \"Sortable list\",\n \"handle\": \"Reorder\",\n \"empty\": \"Nothing to sort yet\",\n \"grabbed\": \"Grabbed. Position {position} of {count}\",\n \"moved\": \"Position {position} of {count}\",\n \"dropped\": \"Dropped at position {position} of {count}\",\n \"cancelled\": \"Move cancelled\"\n },\n \"jsonViewer\": {\n \"search\": \"Search key or value\",\n \"expandAll\": \"Expand all\",\n \"collapseAll\": \"Collapse all\",\n \"copy\": \"Copy value\",\n \"copied\": \"Value copied\",\n \"copyFailed\": \"Could not copy value\",\n \"moreItems\": \"more\"\n },\n \"contextMenu\": {\n \"label\": \"Context menu\"\n }\n}\n"],"mappings":""}
@@ -154,6 +154,7 @@ var pagination = {
154
154
  "status": "Página {page} de {count}"
155
155
  };
156
156
  var navbar = { "openMenu": "Abrir menú" };
157
+ var scrollSpy = { "label": "En esta página" };
157
158
  var responseError = {
158
159
  "networkTitle": "Sin conexión con el servidor",
159
160
  "networkMessage": "Compruebe su conexión a internet e inténtelo de nuevo.",
@@ -375,6 +376,7 @@ var es_default = {
375
376
  statistic,
376
377
  pagination,
377
378
  navbar,
379
+ scrollSpy,
378
380
  responseError,
379
381
  colors,
380
382
  drawer,
@@ -410,4 +412,4 @@ var es_default = {
410
412
  contextMenu
411
413
  };
412
414
  //#endregion
413
- export { autocomplete, avatar, badgeWrap, bottomNav, breadcrumbs, button, carousel, chip, collapse, colorPicker, colors, commandPalette, common, contextMenu, dataTable, es_default as default, delta, dialog, drawer, emptyState, filePreview, fileUpload, fileValidation, form, formErrorBanner, formFile, imageViewer, input, inputTag, jsonViewer, kbd, link, list, loading, modal, navbar, numberInput, pagination, rating, responseError, select, sidebar, slider, sortable, splitter, statistic, steps, table, tabs, textarea, timeline, toaster, transfer, tree, treeSelect, uploadErrorBanner };
415
+ export { autocomplete, avatar, badgeWrap, bottomNav, breadcrumbs, button, carousel, chip, collapse, colorPicker, colors, commandPalette, common, contextMenu, dataTable, es_default as default, delta, dialog, drawer, emptyState, filePreview, fileUpload, fileValidation, form, formErrorBanner, formFile, imageViewer, input, inputTag, jsonViewer, kbd, link, list, loading, modal, navbar, numberInput, pagination, rating, responseError, scrollSpy, select, sidebar, slider, sortable, splitter, statistic, steps, table, tabs, textarea, timeline, toaster, transfer, tree, treeSelect, uploadErrorBanner };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es-1ZL6NtkB.js","names":[],"sources":["../../src/i18n/locales/es.json"],"sourcesContent":["{\n \"transfer\": {\n \"sourceTitle\": \"Disponibles\",\n \"targetTitle\": \"Seleccionados\",\n \"search\": \"Buscar\",\n \"toTarget\": \"Mover a seleccionados\",\n \"toSource\": \"Devolver a disponibles\",\n \"selectAll\": \"Seleccionar todo lo mostrado\",\n \"moveUp\": \"Antes\",\n \"moveDown\": \"Después\",\n \"selected\": \"{count} de {total}\",\n \"shown\": \"Mostrando {shown} de {total}\",\n \"empty\": \"Aquí no hay nada todavía\",\n \"emptyFiltered\": \"No hay coincidencias\",\n \"moved\": \"{count} movidos a «{list}»\",\n \"reordered\": \"Posición {position} de {count}\",\n \"reorderFiltered\": \"El orden no cambia mientras haya búsqueda\",\n \"cancelled\": \"Movimiento cancelado\"\n },\n \"carousel\": {\n \"roledescription\": \"carrusel\",\n \"slideRoledescription\": \"diapositiva\",\n \"slidePosition\": \"{index} de {total}\",\n \"previous\": \"Diapositiva anterior\",\n \"next\": \"Diapositiva siguiente\",\n \"play\": \"Iniciar la reproducción automática\",\n \"pause\": \"Detener la reproducción automática\",\n \"indicators\": \"Diapositivas\",\n \"autoplayStopped\": \"Reproducción automática detenida\"\n },\n \"chip\": {\n \"remove\": \"Quitar\",\n \"removeNamed\": \"Quitar {label}\"\n },\n \"common\": {\n \"confirm\": \"Confirmar\",\n \"cancel\": \"Cancelar\",\n \"add\": \"Añadir\",\n \"clear\": \"Limpiar\",\n \"close\": \"Cerrar\"\n },\n \"loading\": {\n \"defaultText\": \"Cargando...\"\n },\n \"steps\": {\n \"label\": \"Progreso\",\n \"status\": \"Paso {step} de {count}\",\n \"completed\": \"completado\",\n \"error\": \"tiene errores\"\n },\n \"treeSelect\": {\n \"filterPlaceholder\": \"Buscar…\",\n \"empty\": \"Sin datos\",\n \"loading\": \"Cargando…\"\n },\n \"badgeWrap\": {\n \"count\": \"{count} nuevos\"\n },\n \"avatar\": {\n \"group\": \"Personas\",\n \"groupOverflow\": \"y {count} más\",\n \"status\": {\n \"online\": \"en línea\",\n \"offline\": \"sin conexión\",\n \"busy\": \"ocupado\",\n \"away\": \"ausente\"\n }\n },\n \"tree\": {\n \"drag\": \"Arrastrar\",\n \"expand\": \"Expandir\",\n \"collapse\": \"Contraer\",\n \"moved\": \"{label} movido\"\n },\n \"select\": {\n \"customValuePlaceholder\": \"Añadir valor…\",\n \"addOption\": \"Añadir «{value}»\",\n \"clearOption\": \"Ninguno\",\n \"searchPlaceholder\": \"Buscar…\",\n \"loading\": \"Cargando…\",\n \"noResults\": \"Sin resultados\",\n \"removeTag\": \"Quitar {label}\"\n },\n \"dataTable\": {\n \"loading\": \"Cargando…\",\n \"empty\": \"Sin datos\",\n \"selectAll\": \"Seleccionar todas las filas\",\n \"selectRow\": \"Seleccionar fila\",\n \"sortAsc\": \"Active para ordenar de forma ascendente\",\n \"sortDesc\": \"Active para ordenar de forma descendente\",\n \"sortNone\": \"Active para quitar la ordenación\",\n \"moveColumn\": \"Mover la columna {label}\",\n \"columnMoved\": \"Columna {label} movida a la posición {position} de {count}\",\n \"resizeColumn\": \"Ancho de la columna {label}\",\n \"columnResized\": \"La columna {label} mide {width} píxeles\"\n },\n \"breadcrumbs\": {\n \"label\": \"Ruta de navegación\",\n \"expand\": \"Mostrar la ruta oculta\"\n },\n \"autocomplete\": {\n \"loading\": \"Cargando…\",\n \"noResults\": \"Sin resultados\",\n \"addOption\": \"Añadir «{value}»\",\n \"removeValue\": \"Quitar {label}\",\n \"typeMore\": {\n \"one\": \"Escriba al menos {n} carácter\",\n \"many\": \"Escriba al menos {n} de caracteres\",\n \"other\": \"Escriba al menos {n} caracteres\"\n }\n },\n \"form\": {\n \"required\": \"Este campo es obligatorio\",\n \"min\": \"Mínimo {min}\",\n \"max\": \"Máximo {max}\",\n \"len\": \"La longitud debe ser {len}\",\n \"pattern\": \"Formato no válido\",\n \"email\": \"Introduce un correo válido\",\n \"url\": \"Introduce una URL válida\",\n \"file\": \"Archivo no válido\",\n \"invalid\": \"Valor no válido\",\n \"readonly\": \"Solo lectura\",\n \"validating\": \"Comprobando…\"\n },\n \"dialog\": {\n \"confirm\": {\n \"title\": \"Confirmar\"\n },\n \"prompt\": {\n \"title\": \"Aviso\",\n \"label\": \"Valor\",\n \"required\": \"Introduzca un valor.\"\n },\n \"ok\": \"OK\"\n },\n \"switch\": {\n \"loading\": \"Guardando…\"\n },\n \"slider\": {\n \"min\": \"mínimo\",\n \"max\": \"máximo\"\n },\n \"sidebar\": {\n \"expand\": \"Expandir panel\",\n \"collapse\": \"Contraer panel\"\n },\n \"splitter\": {\n \"label\": \"Cambiar el tamaño de los paneles\"\n },\n \"statistic\": {\n \"trendUp\": \"Aumento\",\n \"trendDown\": \"Descenso\",\n \"trendFlat\": \"Sin cambios\"\n },\n \"pagination\": {\n \"label\": \"Paginación\",\n \"pageSize\": \"Tamaño de página\",\n \"prev\": \"Anterior\",\n \"next\": \"Siguiente\",\n \"page\": \"Página {n}\",\n \"first\": \"Primera página\",\n \"last\": \"Última página\",\n \"jumpTo\": \"Ir a\",\n \"total\": \"{from}–{to} de {total}\",\n \"status\": \"Página {page} de {count}\"\n },\n \"navbar\": {\n \"openMenu\": \"Abrir menú\"\n },\n \"scrollSpy\": {\n \"label\": \"En esta página\"\n },\n \"responseError\": {\n \"networkTitle\": \"Sin conexión con el servidor\",\n \"networkMessage\": \"Compruebe su conexión a internet e inténtelo de nuevo.\",\n \"abortedTitle\": \"Solicitud cancelada\",\n \"abortedMessage\": \"La solicitud fue cancelada.\",\n \"validationTitle\": \"Compruebe los datos\",\n \"validationMessage\": \"El servidor devolvió un error de validación. Corrija los campos e inténtelo de nuevo.\",\n \"clientTitle\": \"Error de solicitud\",\n \"clientMessage\": \"El servidor rechazó la solicitud.\",\n \"serverTitle\": \"Error del servidor\",\n \"serverMessage\": \"Se produjo un error en el servidor. Inténtelo de nuevo.\",\n \"unknownTitle\": \"Algo salió mal\",\n \"unknownMessage\": \"No se pudo completar la operación. Inténtelo de nuevo.\",\n \"statusLabel\": \"HTTP {status}\",\n \"retryLabel\": \"Reintentar\",\n \"dismissLabel\": \"Descartar\"\n },\n \"colors\": {\n \"neutral\": \"Neutral\",\n \"success\": \"Éxito\",\n \"warning\": \"Advertencia\",\n \"danger\": \"Peligro\",\n \"info\": \"Info\",\n \"primary\": \"Primario\",\n \"slate\": \"Pizarra\",\n \"azure\": \"Azul celeste\"\n },\n \"drawer\": {\n \"title\": \"Panel\"\n },\n \"modal\": {\n \"title\": \"Diálogo\"\n },\n \"numberInput\": {\n \"increase\": \"Aumentar\",\n \"decrease\": \"Disminuir\"\n },\n \"toaster\": {\n \"dismiss\": \"Descartar\",\n \"region\": \"Notificaciones\"\n },\n \"inputTag\": {\n \"removeTag\": \"Eliminar etiqueta\",\n \"removeTagNamed\": \"Eliminar etiqueta {tag}\",\n \"clearAll\": \"Eliminar todas las etiquetas\",\n \"added\": \"Etiqueta añadida: {tag}\",\n \"addedMany\": \"Etiquetas añadidas: {count}\",\n \"removed\": \"Etiqueta eliminada: {tag}\",\n \"cleared\": \"Todas las etiquetas eliminadas\",\n \"limitReached\": \"Límite de etiquetas alcanzado\"\n },\n \"fileUpload\": {\n \"placeholder\": \"Arrastra archivos aquí o haz clic para seleccionar\",\n \"progress\": \"Progreso de carga\",\n \"uploading\": \"Subiendo…\",\n \"success\": \"Carga completada\",\n \"error\": \"Error al cargar\",\n \"remove\": \"Quitar {fileName}\",\n \"retry\": \"Reintentar la carga\",\n \"retryFile\": \"Reintentar {fileName}\",\n \"abortFile\": \"Cancelar la subida de {fileName}\",\n \"statusPending\": \"En cola\",\n \"statusUploading\": \"Subiendo\",\n \"statusSuccess\": \"Subido\",\n \"statusError\": \"Error\"\n },\n \"formFile\": {\n \"upload\": \"Subir archivo\",\n \"change\": \"Cambiar archivo\",\n \"remove\": \"Eliminar\",\n \"clearAll\": \"Limpiar todo\",\n \"placeholder\": \"Ningún archivo seleccionado\",\n \"validateError\": \"No se pudieron validar los archivos soltados\",\n \"removeFile\": \"Quitar {fileName}\"\n },\n \"imageViewer\": {\n \"close\": \"Cerrar el visor de imágenes\",\n \"prev\": \"Imagen anterior\",\n \"next\": \"Imagen siguiente\",\n \"zoomIn\": \"Acercar\",\n \"zoomOut\": \"Alejar\",\n \"resetZoom\": \"Restablecer zoom\",\n \"zoomToNatural\": \"Tamaño real (1:1)\",\n \"rotateLeft\": \"Girar a la izquierda\",\n \"rotateRight\": \"Girar a la derecha\",\n \"download\": \"Descargar imagen\",\n \"empty\": \"Sin imagen\",\n \"label\": \"Visor de imágenes\",\n \"position\": \"Imagen {index} de {total}\"\n },\n \"formErrorBanner\": {\n \"validationTitle\": \"Revisa los campos del formulario\",\n \"validationMessage\": \"El servidor rechazó los datos. Corrige los campos resaltados e inténtalo de nuevo.\",\n \"clientTitle\": \"No se pudo guardar\",\n \"serverTitle\": \"Error al guardar\",\n \"serverMessage\": \"No se pudieron guardar los datos. Inténtalo más tarde.\"\n },\n \"uploadErrorBanner\": {\n \"networkTitle\": \"No se pudieron subir los archivos\",\n \"networkMessage\": \"Comprueba tu conexión e inténtalo de nuevo.\",\n \"validationTitle\": \"Los archivos no pasaron la validación\",\n \"validationMessage\": \"Algunos archivos no cumplen los requisitos.\",\n \"serverTitle\": \"Error de carga en el servidor\",\n \"serverMessage\": \"El servidor no pudo procesar la carga. Inténtalo de nuevo.\"\n },\n \"input\": {\n \"clear\": \"Borrar\",\n \"showPassword\": \"Mostrar contraseña\",\n \"hidePassword\": \"Ocultar contraseña\",\n \"limitReached\": \"Límite de caracteres alcanzado\"\n },\n \"textarea\": {\n \"lines\": {\n \"one\": \"{n} línea\",\n \"many\": \"{n} de líneas\",\n \"other\": \"{n} líneas\"\n }\n },\n \"rating\": {\n \"label\": \"Valoración\",\n \"valueText\": \"{value} de {max}\",\n \"valueTextWithLabel\": \"{value} de {max}, {label}\"\n },\n \"commandPalette\": {\n \"label\": \"Paleta de comandos\",\n \"placeholder\": \"Escribe un comando o busca…\",\n \"empty\": \"No se ha encontrado nada\",\n \"recent\": \"Recientes\",\n \"loading\": \"Cargando…\"\n },\n \"delta\": {\n \"increase\": \"aumento\"\n },\n \"filePreview\": {\n \"label\": \"Archivo\"\n },\n \"fileValidation\": {\n \"accept\": \"El archivo «{fileName}» no coincide con accept=\\\"{accept}\\\"\",\n \"extension\": \"El archivo «{fileName}» tiene una extensión no permitida «.{extension}»\",\n \"mimeType\": \"El archivo «{fileName}» tiene un tipo MIME no permitido «{mimeType}»\",\n \"mimeTypeFallback\": \"El archivo «{fileName}» tiene un tipo MIME indefinido «{mimeType}»\",\n \"maxFileSize\": \"El archivo «{fileName}» es demasiado grande ({size} bytes), máximo {maxBytes}\",\n \"maxCount\": \"Se han seleccionado demasiados archivos ({count}), máximo: {maxCount}\",\n \"maxTotalSize\": \"El tamaño total de los archivos es demasiado grande ({total} bytes), máximo {maxBytes}\"\n },\n \"kbd\": {\n \"command\": \"Command\",\n \"option\": \"Opción\",\n \"shift\": \"Mayús\",\n \"control\": \"Control\",\n \"enter\": \"Intro\",\n \"escape\": \"Escape\",\n \"tab\": \"Tab\",\n \"backspace\": \"Retroceso\",\n \"delete\": \"Suprimir\",\n \"pageUp\": \"Página arriba\",\n \"pageDown\": \"Página abajo\",\n \"arrowUp\": \"flecha arriba\",\n \"arrowDown\": \"flecha abajo\",\n \"arrowLeft\": \"flecha izquierda\",\n \"arrowRight\": \"flecha derecha\",\n \"then\": \"luego\"\n },\n \"link\": {\n \"opensInNewTab\": \"se abre en una pestaña nueva\"\n },\n \"colorPicker\": {\n \"panelLabel\": \"Selector de color\",\n \"hue\": \"Tono\",\n \"saturation\": \"Saturación\",\n \"lightness\": \"Luminosidad\",\n \"opacity\": \"Opacidad\",\n \"hexLabel\": \"Valor hex\",\n \"presetsLabel\": \"Paleta de colores\",\n \"swatchLabel\": \"Color {color}\"\n },\n \"collapse\": {\n \"empty\": \"Todavía no hay nada\"\n },\n \"list\": {\n \"empty\": \"Todavía no hay nada\"\n },\n \"button\": {\n \"loading\": \"Cargando…\"\n },\n \"table\": {\n \"empty\": \"Todavía no hay nada\"\n },\n \"timeline\": {\n \"empty\": \"Todavía no hay nada\"\n },\n \"tabs\": {\n \"empty\": \"Todavía no hay nada\",\n \"close\": \"Cerrar pestaña\"\n },\n \"bottomNav\": {\n \"label\": \"Navegación inferior\",\n \"badge\": \"{count} nuevos\"\n },\n \"emptyState\": {\n \"title\": \"Todavía no hay nada\"\n },\n \"sortable\": {\n \"label\": \"Lista ordenable\",\n \"handle\": \"Reordenar\",\n \"empty\": \"Nada que ordenar todavía\",\n \"grabbed\": \"Agarrado. Posición {position} de {count}\",\n \"moved\": \"Posición {position} de {count}\",\n \"dropped\": \"Soltado en la posición {position} de {count}\",\n \"cancelled\": \"Movimiento cancelado\"\n },\n \"jsonViewer\": {\n \"search\": \"Buscar clave o valor\",\n \"expandAll\": \"Expandir todo\",\n \"collapseAll\": \"Contraer todo\",\n \"copy\": \"Copiar valor\",\n \"copied\": \"Valor copiado\",\n \"copyFailed\": \"No se pudo copiar el valor\",\n \"moreItems\": \"más\"\n },\n \"contextMenu\": {\n \"label\": \"Menú contextual\"\n }\n}\n"],"mappings":""}
@@ -9,12 +9,12 @@ var GRANULARITY_I18N_BLOCK = "gr";
9
9
  * can import only the languages they actually need — see the
10
10
  * "Authoring localization packages" guide in the docs.
11
11
  */
12
- var en = { en: { ["gr"]: () => import("./en-C_QkUTRL.js") } };
12
+ var en = { en: { ["gr"]: () => import("./en-DiHzFact.js") } };
13
13
  //#endregion
14
14
  //#region src/i18n/messages/ru.ts
15
- var ru = { ru: { ["gr"]: () => import("./ru-CLUErjhY.js") } };
15
+ var ru = { ru: { ["gr"]: () => import("./ru-Dr2RYn0P.js") } };
16
16
  //#endregion
17
17
  //#region src/i18n/messages/es.ts
18
- var es = { es: { ["gr"]: () => import("./es-DemSEhZE.js") } };
18
+ var es = { es: { ["gr"]: () => import("./es-1ZL6NtkB.js") } };
19
19
  //#endregion
20
20
  export { GRANULARITY_I18N_BLOCK as i, ru as n, en as r, es as t };
@@ -1 +1 @@
1
- {"version":3,"file":"es-B4t_3Wnh.js","names":[],"sources":["../../src/i18n/messages/const.ts","../../src/i18n/messages/en.ts","../../src/i18n/messages/ru.ts","../../src/i18n/messages/es.ts"],"sourcesContent":["export const GRANULARITY_I18N_BLOCK = 'gr'\n","import type { LocaleLoaderCollection } from '@feugene/fint-i18n/core'\nimport { GRANULARITY_I18N_BLOCK } from './const'\n\n/**\n * English locale loaders for the playground app.\n *\n * Exported separately from other locales so that consumers (and bundlers)\n * can import only the languages they actually need — see the\n * \"Authoring localization packages\" guide in the docs.\n */\nexport const en = {\n en: {\n [GRANULARITY_I18N_BLOCK]: () => import('../locales/en.json'),\n },\n} satisfies LocaleLoaderCollection\n\nexport default en\n","import type { LocaleLoaderCollection } from '@feugene/fint-i18n/core'\nimport { GRANULARITY_I18N_BLOCK } from './const'\n\nexport const ru = {\n ru: {\n [GRANULARITY_I18N_BLOCK]: () => import('../locales/ru.json'),\n },\n} satisfies LocaleLoaderCollection\n\nexport default ru\n","import type { LocaleLoaderCollection } from '@feugene/fint-i18n/core'\nimport { GRANULARITY_I18N_BLOCK } from './const'\n\nexport const es = {\n es: {\n [GRANULARITY_I18N_BLOCK]: () => import('../locales/es.json'),\n },\n} satisfies LocaleLoaderCollection\n\nexport default es\n"],"mappings":";AAAA,IAAa,yBAAyB;;;;;;;;;;ACUtC,IAAa,KAAK,EAChB,IAAI,GAAA,aAC8B,OAAO,oBACzC,EACF;;;ACXA,IAAa,KAAK,EAChB,IAAI,GAAA,aAC8B,OAAO,oBACzC,EACF;;;ACJA,IAAa,KAAK,EAChB,IAAI,GAAA,aAC8B,OAAO,oBACzC,EACF"}
1
+ {"version":3,"file":"es-CeKkMxZ_.js","names":[],"sources":["../../src/i18n/messages/const.ts","../../src/i18n/messages/en.ts","../../src/i18n/messages/ru.ts","../../src/i18n/messages/es.ts"],"sourcesContent":["export const GRANULARITY_I18N_BLOCK = 'gr'\n","import type { LocaleLoaderCollection } from '@feugene/fint-i18n/core'\nimport { GRANULARITY_I18N_BLOCK } from './const'\n\n/**\n * English locale loaders for the playground app.\n *\n * Exported separately from other locales so that consumers (and bundlers)\n * can import only the languages they actually need — see the\n * \"Authoring localization packages\" guide in the docs.\n */\nexport const en = {\n en: {\n [GRANULARITY_I18N_BLOCK]: () => import('../locales/en.json'),\n },\n} satisfies LocaleLoaderCollection\n\nexport default en\n","import type { LocaleLoaderCollection } from '@feugene/fint-i18n/core'\nimport { GRANULARITY_I18N_BLOCK } from './const'\n\nexport const ru = {\n ru: {\n [GRANULARITY_I18N_BLOCK]: () => import('../locales/ru.json'),\n },\n} satisfies LocaleLoaderCollection\n\nexport default ru\n","import type { LocaleLoaderCollection } from '@feugene/fint-i18n/core'\nimport { GRANULARITY_I18N_BLOCK } from './const'\n\nexport const es = {\n es: {\n [GRANULARITY_I18N_BLOCK]: () => import('../locales/es.json'),\n },\n} satisfies LocaleLoaderCollection\n\nexport default es\n"],"mappings":";AAAA,IAAa,yBAAyB;;;;;;;;;;ACUtC,IAAa,KAAK,EAChB,IAAI,GAAA,aAC8B,OAAO,oBACzC,EACF;;;ACXA,IAAa,KAAK,EAChB,IAAI,GAAA,aAC8B,OAAO,oBACzC,EACF;;;ACJA,IAAa,KAAK,EAChB,IAAI,GAAA,aAC8B,OAAO,oBACzC,EACF"}
@@ -2941,6 +2941,34 @@ var grComponentTokens = [
2941
2941
  "default": "15px",
2942
2942
  "description": "Кегль подписи на ступени `lg`: между `md` и `lg` шкалы контролов."
2943
2943
  },
2944
+ {
2945
+ "owner": "GrScrollSpy",
2946
+ "name": "--gr-scroll-spy-offset",
2947
+ "kind": "inline",
2948
+ "default": "0px",
2949
+ "description": "Отступ линии активации от верха скроллпорта. Пишется инлайн из пропа `offset`; заданный в каскаде работает общим дефолтом и подхватывается замером. Почти всегда равен `--gr-affix-offset` липкой шапки."
2950
+ },
2951
+ {
2952
+ "owner": "GrScrollSpy",
2953
+ "name": "--gr-scroll-spy-marker",
2954
+ "kind": "hook",
2955
+ "default": "var(--gr-primary)",
2956
+ "description": "Цвет рельса у активного пункта. Один из трёх признаков активности — рядом с ним меняются вес и цвет текста."
2957
+ },
2958
+ {
2959
+ "owner": "GrScrollSpy",
2960
+ "name": "--gr-scroll-spy-rail",
2961
+ "kind": "hook",
2962
+ "default": "var(--gr-brd)",
2963
+ "description": "Цвет рельса у остальных пунктов."
2964
+ },
2965
+ {
2966
+ "owner": "GrScrollSpy",
2967
+ "name": "--gr-scroll-spy-indent",
2968
+ "kind": "hook",
2969
+ "default": "0.75rem",
2970
+ "description": "Шаг отступа для вложенного уровня оглавления."
2971
+ },
2944
2972
  {
2945
2973
  "owner": "GrSegmented",
2946
2974
  "name": "--gr-segmented-track-bg",
@@ -3442,7 +3470,7 @@ var grComponentTokens = [
3442
3470
  "owner": "GrTree",
3443
3471
  "name": "--gr-tree-indent-step",
3444
3472
  "kind": "css",
3445
- "default": "calc(24px + var(--gr-tree-children-pl) + var(--gr-tree-branch-line-width))",
3473
+ "default": "calc(12px + var(--gr-tree-children-pl) + var(--gr-tree-branch-line-width))",
3446
3474
  "description": "Шаг отступа уровня. Складывается из переключателя, отступа вложенного списка и толщины направляющей — линия обязана попадать ровно между ними."
3447
3475
  },
3448
3476
  {
@@ -3505,7 +3533,7 @@ var grComponentTokens = [
3505
3533
  "owner": "GrTree",
3506
3534
  "name": "--gr-tree-row-current-bg",
3507
3535
  "kind": "css",
3508
- "default": "color-mix(in srgb, var(--gr-primary) 5%, transparent)",
3536
+ "default": "color-mix(in srgb, var(--gr-primary) 14%, transparent)",
3509
3537
  "description": "Фон текущей (выбранной) строки."
3510
3538
  },
3511
3539
  {
@@ -3515,6 +3543,13 @@ var grComponentTokens = [
3515
3543
  "default": "color-mix(in srgb, var(--gr-primary) 16%, transparent)",
3516
3544
  "description": "Фон текущей строки под курсором."
3517
3545
  },
3546
+ {
3547
+ "owner": "GrTree",
3548
+ "name": "--gr-tree-row-current-color",
3549
+ "kind": "css",
3550
+ "default": "var(--gr-tree-row-color)",
3551
+ "description": "Цвет текста выбранной строки. Отдельно от --gr-tree-row-color, потому что насыщенная подложка выбора требует своего текста: без этого сплошную плашку выбора нельзя сделать читаемой."
3552
+ },
3518
3553
  {
3519
3554
  "owner": "GrTree",
3520
3555
  "name": "--gr-tree-font-size",
@@ -3697,11 +3732,18 @@ var grComponentTokens = [
3697
3732
  "default": "2px",
3698
3733
  "description": "Толщина направляющей линии уровня."
3699
3734
  },
3735
+ {
3736
+ "owner": "GrTree",
3737
+ "name": "--gr-tree-branch-elbow-width",
3738
+ "kind": "css",
3739
+ "default": "8px",
3740
+ "description": "Длина горизонтального колена от направляющей к строке при branchLine=\"elbow\". Колено соединяет узлы, а не только отмечает уровень."
3741
+ },
3700
3742
  {
3701
3743
  "owner": "GrTree",
3702
3744
  "name": "--gr-tree-branch-line-offset",
3703
3745
  "kind": "css",
3704
- "default": "24px",
3746
+ "default": "12px",
3705
3747
  "description": "Сдвиг направляющей от левого края строки."
3706
3748
  },
3707
3749
  {