@viglet/viglet-design-system 2026.3.11 → 2026.3.13

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 (54) hide show
  1. package/README.md +41 -12
  2. package/consumers.json +2 -2
  3. package/dist/badge-locale-1_BmNTro.cjs +1 -0
  4. package/dist/{badge-locale-DxDp8Q3S.js → badge-locale-Bx7m7tg2.js} +189 -85
  5. package/dist/bento/bento-calendar.d.ts +52 -0
  6. package/dist/bento/bento-calendar.d.ts.map +1 -0
  7. package/dist/bento/bento-change-mark.d.ts +21 -0
  8. package/dist/bento/bento-change-mark.d.ts.map +1 -0
  9. package/dist/bento/bento-data-table.d.ts +8 -1
  10. package/dist/bento/bento-data-table.d.ts.map +1 -1
  11. package/dist/bento/bento-diff.d.ts +10 -1
  12. package/dist/bento/bento-diff.d.ts.map +1 -1
  13. package/dist/bento/bento-split-page.d.ts +31 -0
  14. package/dist/bento/bento-split-page.d.ts.map +1 -0
  15. package/dist/bento/bento-version-rail.d.ts.map +1 -1
  16. package/dist/bento/index.d.ts +4 -1
  17. package/dist/bento/index.d.ts.map +1 -1
  18. package/dist/bento.cjs +4 -4
  19. package/dist/bento.es.js +1431 -788
  20. package/dist/catalogue.json +256 -2
  21. package/dist/components/ui/form.d.ts +1 -1
  22. package/dist/components/ui/form.d.ts.map +1 -1
  23. package/dist/components/ui/index.d.ts +1 -0
  24. package/dist/components/ui/index.d.ts.map +1 -1
  25. package/dist/components/ui/tree.d.ts +60 -0
  26. package/dist/components/ui/tree.d.ts.map +1 -0
  27. package/dist/components/ui/viglet-assistant.d.ts +7 -1
  28. package/dist/components/ui/viglet-assistant.d.ts.map +1 -1
  29. package/dist/exports.json +20 -1
  30. package/dist/i18n/index.d.ts +44 -0
  31. package/dist/i18n/index.d.ts.map +1 -1
  32. package/dist/i18n/locales/en/bento.json.d.ts +22 -0
  33. package/dist/i18n/locales/pt/bento.json.d.ts +22 -0
  34. package/dist/i18n.cjs +1 -1
  35. package/dist/i18n.es.js +40 -0
  36. package/dist/index.cjs +1 -1
  37. package/dist/index.es.js +1365 -1230
  38. package/dist/{loading-provider-ClDkFPuv.js → loading-provider-D-_5G-08.js} +1 -1
  39. package/dist/{loading-provider-DGuCfsl9.cjs → loading-provider-E4tIG9BM.cjs} +1 -1
  40. package/dist/preset.css +1 -1
  41. package/dist/router.cjs +1 -1
  42. package/dist/router.es.js +1 -1
  43. package/dist/{user.context-Cr3GAQ_r.js → user.context-D3kmD3_y.js} +379 -210
  44. package/dist/user.context-gQvBxcwr.cjs +1 -0
  45. package/dist/viglet-design-system.css +1 -1
  46. package/docs/BENTO-AUTHORING.md +13 -2
  47. package/docs/reference/README.md +2 -1
  48. package/docs/reference/canvas.json +10 -1
  49. package/docs/reference/split.dc.html +164 -0
  50. package/package.json +1 -1
  51. package/scripts/lib/contrast.mjs +29 -3
  52. package/scripts/page-reference.mjs +3 -3
  53. package/dist/badge-locale-CJkHDlPg.cjs +0 -1
  54. package/dist/user.context-hbdvmXOn.cjs +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viglet/viglet-design-system",
3
- "version": "2026.3.11",
3
+ "version": "2026.3.13",
4
4
  "generatedBy": "scripts/emit-catalogue.mjs",
5
5
  "components": [
6
6
  {
@@ -406,6 +406,120 @@
406
406
  "BENTO-BOUNDARY Inventory"
407
407
  ]
408
408
  },
409
+ {
410
+ "name": "BentoCalendar",
411
+ "specifier": "@viglet/viglet-design-system/bento",
412
+ "summary": "a month or week of caller-supplied entries, for a page of what is scheduled: publications, reviews, releases.",
413
+ "description": "a month or week of caller-supplied entries, for a page of what is\nscheduled: publications, reviews, releases.\n\nEntries come in and moves go out; the product owns the data and the write. A\nday is a grid cell the arrow keys move between, PageUp and PageDown turn the\nperiod, and the grid is drawn in `timeZone` since the page states the reader's\nzone. With `onEntryMove` an entry drags onto another day and keeps its time of\nday, and the same move has a keyboard path, so dragging is never the only way:\nEnter reaches a day's entries, Space picks one up, the arrows choose a day and\nEnter drops it, announced as it happens. It fetches nothing.",
414
+ "deprecated": null,
415
+ "example": null,
416
+ "props": [
417
+ {
418
+ "name": "entries",
419
+ "type": "readonly BentoCalendarEntry[]",
420
+ "optional": false,
421
+ "summary": ""
422
+ },
423
+ {
424
+ "name": "className",
425
+ "type": "string | undefined",
426
+ "optional": true,
427
+ "summary": ""
428
+ },
429
+ {
430
+ "name": "defaultDate",
431
+ "type": "string | number | Date | undefined",
432
+ "optional": true,
433
+ "summary": "A day in the period shown first."
434
+ },
435
+ {
436
+ "name": "defaultView",
437
+ "type": "BentoCalendarView | undefined",
438
+ "optional": true,
439
+ "summary": ""
440
+ },
441
+ {
442
+ "name": "label",
443
+ "type": "string | undefined",
444
+ "optional": true,
445
+ "summary": "The grid's accessible name."
446
+ },
447
+ {
448
+ "name": "onEntryMove",
449
+ "type": "((id: string, start: Date) => void) | undefined",
450
+ "optional": true,
451
+ "summary": "Given, entries can be dragged, or picked up from the keyboard, onto another day."
452
+ },
453
+ {
454
+ "name": "onEntrySelect",
455
+ "type": "((id: string) => void) | undefined",
456
+ "optional": true,
457
+ "summary": "Given, activating an entry calls this, so the product can open it."
458
+ },
459
+ {
460
+ "name": "onRangeChange",
461
+ "type": "((range: { start: Date; end: Date; }) => void) | undefined",
462
+ "optional": true,
463
+ "summary": "Called with the instants the shown period spans, end exclusive, so a product can load its entries."
464
+ },
465
+ {
466
+ "name": "onViewChange",
467
+ "type": "((view: BentoCalendarView) => void) | undefined",
468
+ "optional": true,
469
+ "summary": ""
470
+ },
471
+ {
472
+ "name": "timeZone",
473
+ "type": "string | undefined",
474
+ "optional": true,
475
+ "summary": "The zone the grid is drawn in, as an IANA name."
476
+ },
477
+ {
478
+ "name": "view",
479
+ "type": "BentoCalendarView | undefined",
480
+ "optional": true,
481
+ "summary": "Controlled view."
482
+ },
483
+ {
484
+ "name": "weekStartsOn",
485
+ "type": "0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined",
486
+ "optional": true,
487
+ "summary": "0 is Sunday, 1 Monday."
488
+ }
489
+ ],
490
+ "inheritedProps": 0,
491
+ "rules": []
492
+ },
493
+ {
494
+ "name": "BentoChangeMark",
495
+ "specifier": "@viglet/viglet-design-system/bento",
496
+ "summary": "one mark for created, changed and deleted, so a list of what changed and the comparison it opens agree on what a change looks like.",
497
+ "description": "one mark for created, changed and deleted, so a list of what changed\nand the comparison it opens agree on what a change looks like.\n\nThe chip `BentoDiff` draws beside each field, lifted out so a list can draw the\nsame words in the same tints: a file an agent touched, a page in a review\nqueue. `compact` draws one letter where a row is narrow; a letter is an\nabbreviation, so the word is what a screen reader says and what a pointer\nreads. It takes a state and nothing else: striking a deleted item's name is the\nproduct's to draw.",
498
+ "deprecated": null,
499
+ "example": null,
500
+ "props": [
501
+ {
502
+ "name": "state",
503
+ "type": "BentoChangeState",
504
+ "optional": false,
505
+ "summary": ""
506
+ },
507
+ {
508
+ "name": "className",
509
+ "type": "string | undefined",
510
+ "optional": true,
511
+ "summary": ""
512
+ },
513
+ {
514
+ "name": "compact",
515
+ "type": "boolean | undefined",
516
+ "optional": true,
517
+ "summary": "One letter instead of the word, for a narrow row: git's `A`, `D` and `M` by default."
518
+ }
519
+ ],
520
+ "inheritedProps": 0,
521
+ "rules": []
522
+ },
409
523
  {
410
524
  "name": "BentoCommandPalette",
411
525
  "specifier": "@viglet/viglet-design-system/bento",
@@ -587,6 +701,12 @@
587
701
  "optional": true,
588
702
  "summary": "Pixels per row."
589
703
  },
704
+ {
705
+ "name": "selectedIds",
706
+ "type": "readonly string[] | undefined",
707
+ "optional": true,
708
+ "summary": "Controlled selection, by row id."
709
+ },
590
710
  {
591
711
  "name": "selectionActions",
592
712
  "type": "readonly BentoDataTableAction<TRow>[] | undefined",
@@ -631,6 +751,12 @@
631
751
  "optional": false,
632
752
  "summary": ""
633
753
  },
754
+ {
755
+ "name": "layout",
756
+ "type": "BentoDiffLayout | undefined",
757
+ "optional": true,
758
+ "summary": "How a `lines` field is drawn: one column, or the original beside the change with unchanged lines level."
759
+ },
634
760
  {
635
761
  "name": "showUnchanged",
636
762
  "type": "boolean | undefined",
@@ -1837,6 +1963,62 @@
1837
1963
  "BENTO-BOUNDARY Inventory"
1838
1964
  ]
1839
1965
  },
1966
+ {
1967
+ "name": "BentoSplitPage",
1968
+ "specifier": "@viglet/viglet-design-system/bento",
1969
+ "summary": "the two-pane page shape: a form and its preview, or a source and its translation, read side by side.",
1970
+ "description": "the two-pane page shape: a form and its preview, or a source and its\ntranslation, read side by side.\n\nIt sits under the page's one hero, inside the shell's `wide` column, and each\npane scrolls on its own so the fields and what they change stay in view\ntogether. The reader drags the ratio, and `storageKey` remembers it per viewer.\nAt phone width the two panes become one with a labelled switch between them.\nThe second pane never silently disappears, and neither pane unmounts, so a form\nkeeps what was typed while its preview is shown.",
1971
+ "deprecated": null,
1972
+ "example": null,
1973
+ "props": [
1974
+ {
1975
+ "name": "primary",
1976
+ "type": "ReactNode",
1977
+ "optional": false,
1978
+ "summary": "The pane read first, on the left: a form, a source text."
1979
+ },
1980
+ {
1981
+ "name": "primaryLabel",
1982
+ "type": "string",
1983
+ "optional": false,
1984
+ "summary": "Each pane's name, already translated: its region's label, and its tab at phone width."
1985
+ },
1986
+ {
1987
+ "name": "secondary",
1988
+ "type": "ReactNode",
1989
+ "optional": false,
1990
+ "summary": "The pane read beside it: a preview, a translation."
1991
+ },
1992
+ {
1993
+ "name": "secondaryLabel",
1994
+ "type": "string",
1995
+ "optional": false,
1996
+ "summary": ""
1997
+ },
1998
+ {
1999
+ "name": "className",
2000
+ "type": "string | undefined",
2001
+ "optional": true,
2002
+ "summary": ""
2003
+ },
2004
+ {
2005
+ "name": "defaultRatio",
2006
+ "type": "number | undefined",
2007
+ "optional": true,
2008
+ "summary": "The primary pane's share of the width, in percent, before anyone drags."
2009
+ },
2010
+ {
2011
+ "name": "storageKey",
2012
+ "type": "string | undefined",
2013
+ "optional": true,
2014
+ "summary": "Remembers the ratio a reader dragged to, per viewer, in browser storage under this key."
2015
+ }
2016
+ ],
2017
+ "inheritedProps": 0,
2018
+ "rules": [
2019
+ "BENTO-AUTHORING §2 Structure — thin config, not bespoke pages"
2020
+ ]
2021
+ },
1840
2022
  {
1841
2023
  "name": "BentoStatusMarker",
1842
2024
  "specifier": "@viglet/viglet-design-system/bento",
@@ -2973,7 +3155,7 @@
2973
3155
  "deprecated": null,
2974
3156
  "example": null,
2975
3157
  "props": [],
2976
- "inheritedProps": 19,
3158
+ "inheritedProps": 20,
2977
3159
  "rules": []
2978
3160
  },
2979
3161
  {
@@ -4948,6 +5130,72 @@
4948
5130
  "inheritedProps": 291,
4949
5131
  "rules": []
4950
5132
  },
5133
+ {
5134
+ "name": "Tree",
5135
+ "specifier": "@viglet/viglet-design-system",
5136
+ "summary": "A hierarchy of named nodes, drawn the way an editor draws a working tree: folders that open and close, one tab stop, and the arrow keys moving between rows.",
5137
+ "description": "A hierarchy of named nodes, drawn the way an editor draws a working tree: folders that open\nand close, one tab stop, and the arrow keys moving between rows.\n\n**It takes nodes and never paths.** Splitting a string into segments is a platform question,\nand a package that picked a separator would be wrong on the consumer that does not use it.\n`treeFromPaths` is here for callers whose data really is a list of strings.\n\n**What a row says beyond its name is the caller's**, through `renderAfter` — a publish state,\na count, a badge. This owns the branching and none of the meaning.\n\nKeyboard, as the `tree` pattern asks: up and down move between visible rows, right opens a\nclosed folder and then steps into it, left closes an open one and then steps out to its\nparent, Home and End reach the ends, and Enter or Space selects.",
5138
+ "deprecated": null,
5139
+ "example": "<Tree label=\"Files\" nodes={treeFromPaths([\"src/app.ts\", \"src/lib/fs.ts\"])} />",
5140
+ "props": [
5141
+ {
5142
+ "name": "label",
5143
+ "type": "string",
5144
+ "optional": false,
5145
+ "summary": "What the tree is, for a screen reader."
5146
+ },
5147
+ {
5148
+ "name": "nodes",
5149
+ "type": "readonly TreeNode[]",
5150
+ "optional": false,
5151
+ "summary": ""
5152
+ },
5153
+ {
5154
+ "name": "compact",
5155
+ "type": "boolean | undefined",
5156
+ "optional": true,
5157
+ "summary": "Fold a run of folders that never branches into one row, `a/b/c`, the way an editor does."
5158
+ },
5159
+ {
5160
+ "name": "defaultExpanded",
5161
+ "type": "readonly string[] | undefined",
5162
+ "optional": true,
5163
+ "summary": ""
5164
+ },
5165
+ {
5166
+ "name": "expanded",
5167
+ "type": "readonly string[] | undefined",
5168
+ "optional": true,
5169
+ "summary": "The keys that are open."
5170
+ },
5171
+ {
5172
+ "name": "onExpandedChange",
5173
+ "type": "((next: readonly string[]) => void) | undefined",
5174
+ "optional": true,
5175
+ "summary": ""
5176
+ },
5177
+ {
5178
+ "name": "onSelect",
5179
+ "type": "((key: string, node: TreeNode) => void) | undefined",
5180
+ "optional": true,
5181
+ "summary": ""
5182
+ },
5183
+ {
5184
+ "name": "renderAfter",
5185
+ "type": "((node: TreeNode, key: string) => ReactNode) | undefined",
5186
+ "optional": true,
5187
+ "summary": "What a row shows after its name — a count, a state, a badge."
5188
+ },
5189
+ {
5190
+ "name": "selected",
5191
+ "type": "string | undefined",
5192
+ "optional": true,
5193
+ "summary": "The key that is current."
5194
+ }
5195
+ ],
5196
+ "inheritedProps": 277,
5197
+ "rules": []
5198
+ },
4951
5199
  {
4952
5200
  "name": "UserAvatar",
4953
5201
  "specifier": "@viglet/viglet-design-system",
@@ -5196,6 +5444,12 @@
5196
5444
  "optional": true,
5197
5445
  "summary": "Controlled open state."
5198
5446
  },
5447
+ {
5448
+ "name": "paused",
5449
+ "type": "boolean | undefined",
5450
+ "optional": true,
5451
+ "summary": "Hold the mascot still and type no caption, for a person who asked for a quiet dock."
5452
+ },
5199
5453
  {
5200
5454
  "name": "state",
5201
5455
  "type": "VigletAvatarState | undefined",
@@ -6,7 +6,7 @@ import * as React from "react";
6
6
  * The react-hook-form provider around a form's fields. Spread `useForm()` into it
7
7
  * and build each field from `FormField`.
8
8
  */
9
- declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>({ children, watch, getValues, getFieldState, setError, clearErrors, setValue, setValues, trigger, formState, resetField, reset, resetDefaultValues, handleSubmit, unregister, control, register, setFocus, subscribe, }: import('react-hook-form').FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
9
+ declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>({ children, watch, getValues, getErrors, getFieldState, setError, clearErrors, setValue, setValues, trigger, formState, resetField, reset, resetDefaultValues, handleSubmit, unregister, control, register, setFocus, subscribe, }: import('react-hook-form').FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
10
10
  /**
11
11
  * One react-hook-form field: its `name` and `control`, and a `render` of
12
12
  * `FormItem`, `FormLabel`, `FormControl` and `FormMessage`.
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/components/ui/form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAA;AAKxB;;;GAGG;AACH,QAAA,MAAM,IAAI,8ZAAe,CAAA;AAczB;;;GAGG;AACH,QAAA,MAAM,SAAS,GACb,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAC/D,cAEC,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,sBAStC,CAAA;AAED,QAAA,MAAM,YAAY;;;;;;;;;;;;CAsBjB,CAAA;AAUD;;;GAGG;AACH,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAarE;AAED;;GAEG;AACH,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,qBAelD;AAED;;;GAGG;AACH,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,qBAgBnE;AAED;;GAEG;AACH,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,qBAW1E;AAED;;GAEG;AACH,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,4BAkBtE;AAED,OAAO,EACL,IAAI,EAAE,WAAW,EACjB,eAAe,EAAE,SAAS,EAAE,QAAQ,EACpC,SAAS,EAAE,WAAW,EAAE,YAAY,EACrC,CAAA"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/components/ui/form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAA;AAKxB;;;GAGG;AACH,QAAA,MAAM,IAAI,yaAAe,CAAA;AAczB;;;GAGG;AACH,QAAA,MAAM,SAAS,GACb,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAC/D,cAEC,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,sBAStC,CAAA;AAED,QAAA,MAAM,YAAY;;;;;;;;;;;;CAsBjB,CAAA;AAUD;;;GAGG;AACH,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAarE;AAED;;GAEG;AACH,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,qBAelD;AAED;;;GAGG;AACH,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,qBAgBnE;AAED;;GAEG;AACH,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,qBAW1E;AAED;;GAEG;AACH,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,4BAkBtE;AAED,OAAO,EACL,IAAI,EAAE,WAAW,EACjB,eAAe,EAAE,SAAS,EAAE,QAAQ,EACpC,SAAS,EAAE,WAAW,EAAE,YAAY,EACrC,CAAA"}
@@ -34,6 +34,7 @@ export { Skeleton } from './skeleton';
34
34
  export { StickySaveBar } from './sticky-save-bar';
35
35
  export type { StickySaveBarProps, StickySaveBarVariant } from './sticky-save-bar';
36
36
  export { Slider } from './slider';
37
+ export { Tree, treeFromPaths, type TreeNode, type TreeProps } from './tree';
37
38
  export { toast, Toaster } from './sonner';
38
39
  export { Stepper } from './stepper';
39
40
  export { Switch } from './switch';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnJ,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC3G,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACtK,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACtK,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,eAAe,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC5V,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACvH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC1O,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACrJ,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpI,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAInF,OAAO,EACL,WAAW,EACX,aAAa,IAAI,wBAAwB,EACzC,KAAK,YAAY,IAAI,uBAAuB,EAC5C,KAAK,YAAY,IAAI,uBAAuB,EAC5C,KAAK,WAAW,IAAI,sBAAsB,EAC1C,KAAK,iBAAiB,IAAI,4BAA4B,GACvD,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAClL,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChI,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC7b,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import * as React from "react";
2
+ /**
3
+ * One node of a `Tree`: a name, and the nodes under it where it has any.
4
+ *
5
+ * `id` is the node's own segment and has to be unique among its siblings. A node is addressed
6
+ * by the chain of ids from the root, joined with `/`, which is the key `expanded`, `selected`
7
+ * and every callback speak in — so for a tree built from paths the key *is* the path.
8
+ */
9
+ export interface TreeNode {
10
+ readonly id: string;
11
+ readonly label: React.ReactNode;
12
+ /** Absent or empty makes it a leaf. An empty array still draws as a leaf, not an empty folder. */
13
+ readonly children?: readonly TreeNode[];
14
+ }
15
+ export interface TreeProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onSelect"> {
16
+ readonly nodes: readonly TreeNode[];
17
+ /**
18
+ * What the tree is, for a screen reader. Required rather than optional: a `tree` with no
19
+ * name is announced as an unlabelled group, and there is no sensible default for it.
20
+ */
21
+ readonly label: string;
22
+ /** The keys that are open. Given, the tree is controlled; omitted, it keeps its own. */
23
+ readonly expanded?: readonly string[];
24
+ readonly defaultExpanded?: readonly string[];
25
+ readonly onExpandedChange?: (next: readonly string[]) => void;
26
+ /** The key that is current. Drawn as selected and announced as such. */
27
+ readonly selected?: string;
28
+ readonly onSelect?: (key: string, node: TreeNode) => void;
29
+ /** What a row shows after its name — a count, a state, a badge. The product's to decide. */
30
+ readonly renderAfter?: (node: TreeNode, key: string) => React.ReactNode;
31
+ /**
32
+ * Fold a run of folders that never branches into one row, `a/b/c`, the way an editor does.
33
+ * On by default: a project four folders deep is otherwise four rows of indentation before
34
+ * the first name anybody came to read.
35
+ */
36
+ readonly compact?: boolean;
37
+ }
38
+ /**
39
+ * A hierarchy of named nodes, drawn the way an editor draws a working tree: folders that open
40
+ * and close, one tab stop, and the arrow keys moving between rows.
41
+ *
42
+ * **It takes nodes and never paths.** Splitting a string into segments is a platform question,
43
+ * and a package that picked a separator would be wrong on the consumer that does not use it.
44
+ * `treeFromPaths` is here for callers whose data really is a list of strings.
45
+ *
46
+ * **What a row says beyond its name is the caller's**, through `renderAfter` — a publish state,
47
+ * a count, a badge. This owns the branching and none of the meaning.
48
+ *
49
+ * Keyboard, as the `tree` pattern asks: up and down move between visible rows, right opens a
50
+ * closed folder and then steps into it, left closes an open one and then steps out to its
51
+ * parent, Home and End reach the ends, and Enter or Space selects.
52
+ *
53
+ * @example
54
+ * <Tree label="Files" nodes={treeFromPaths(["src/app.ts", "src/lib/fs.ts"])} />
55
+ */
56
+ export declare function Tree({ nodes, label, expanded, defaultExpanded, onExpandedChange, selected, onSelect, renderAfter, compact, className, ...rest }: TreeProps): React.JSX.Element;
57
+ export declare function treeFromPaths(paths: readonly string[], options?: {
58
+ readonly separator?: string;
59
+ }): TreeNode[];
60
+ //# sourceMappingURL=tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../src/components/ui/tree.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,kGAAkG;IAClG,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;CACzC;AAYD,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACvF,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9D,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC1D,4FAA4F;IAC5F,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACxE;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAmDD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,OAAc,EACd,SAAS,EACT,GAAG,IAAI,EACR,EAAE,SAAS,qBAuJX;AAkBD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5C,QAAQ,EAAE,CA0BZ"}
@@ -83,6 +83,12 @@ export interface VigletAssistantProps {
83
83
  * `BentoShell`'s `dock` slot it is in flow already: the shell owns the corner.
84
84
  */
85
85
  inline?: boolean;
86
+ /**
87
+ * Hold the mascot still and type no caption, for a person who asked for a quiet
88
+ * dock. What it says still arrives, whole, and is still announced.
89
+ * `prefers-reduced-motion` does the same for the whole system.
90
+ */
91
+ paused?: boolean;
86
92
  className?: string;
87
93
  }
88
94
  /**
@@ -99,5 +105,5 @@ export interface VigletAssistantProps {
99
105
  * endpoint, let alone a key, so this takes `messages`, `busy` and `onSend` and
100
106
  * leaves all of that to the product.
101
107
  */
102
- export declare function VigletAssistant({ state, caption, messages, busy, onSend, open, defaultOpen, onOpenChange, unread, onRead, onDismiss, activity, inline, className, }: Readonly<VigletAssistantProps>): import("react").JSX.Element;
108
+ export declare function VigletAssistant({ state, caption, messages, busy, onSend, open, defaultOpen, onOpenChange, unread, onRead, onDismiss, activity, inline, paused, className, }: Readonly<VigletAssistantProps>): import("react").JSX.Element;
103
109
  //# sourceMappingURL=viglet-assistant.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"viglet-assistant.d.ts","sourceRoot":"","sources":["../../../src/components/ui/viglet-assistant.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,mFAAmF;AACnF,MAAM,WAAW,0BAA0B;IACzC,wEAAwE;IACxE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC,0EAA0E;IAC1E,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,6DAA6D;IAC7D,IAAI,EAAE,iBAAiB,CAAC;IACxB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,EAAE,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,2EAA2E;IAC3E,OAAO,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,GAAG,qBAAqB,CAAC;AAExF,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC7C,8EAA8E;IAC9E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,wDAAwD;IACxD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,yEAAyE;IACzE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqGD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,IAAY,EACZ,MAAM,EACN,IAAI,EACJ,WAAmB,EACnB,YAAY,EACZ,MAAM,EACN,MAAM,EACN,SAAS,EACT,QAAY,EACZ,MAAc,EACd,SAAS,GACV,EAAE,QAAQ,CAAC,oBAAoB,CAAC,+BAwQhC"}
1
+ {"version":3,"file":"viglet-assistant.d.ts","sourceRoot":"","sources":["../../../src/components/ui/viglet-assistant.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,mFAAmF;AACnF,MAAM,WAAW,0BAA0B;IACzC,wEAAwE;IACxE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC,0EAA0E;IAC1E,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,6DAA6D;IAC7D,IAAI,EAAE,iBAAiB,CAAC;IACxB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,EAAE,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,2EAA2E;IAC3E,OAAO,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,GAAG,qBAAqB,CAAC;AAExF,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC7C,8EAA8E;IAC9E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,wDAAwD;IACxD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,yEAAyE;IACzE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqGD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,IAAY,EACZ,MAAM,EACN,IAAI,EACJ,WAAmB,EACnB,YAAY,EACZ,MAAM,EACN,MAAM,EACN,SAAS,EACT,QAAY,EACZ,MAAc,EACd,MAAc,EACd,SAAS,GACV,EAAE,QAAQ,CAAC,oBAAoB,CAAC,+BA2QhC"}
package/dist/exports.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viglet/viglet-design-system",
3
- "version": "2026.3.11",
3
+ "version": "2026.3.13",
4
4
  "generatedBy": "scripts/emit-exports.mjs",
5
5
  "entries": {
6
6
  ".": {
@@ -196,6 +196,7 @@
196
196
  "TooltipContent",
197
197
  "TooltipProvider",
198
198
  "TooltipTrigger",
199
+ "Tree",
199
200
  "UserAvatar",
200
201
  "UserMenu",
201
202
  "UserProvider",
@@ -219,6 +220,7 @@
219
220
  "setupAxiosInterceptors",
220
221
  "toast",
221
222
  "toggleVariants",
223
+ "treeFromPaths",
222
224
  "truncateMiddle",
223
225
  "useAssistantNotifications",
224
226
  "useBackendStatus",
@@ -255,6 +257,8 @@
255
257
  "StartupFirstStepsProps",
256
258
  "StickySaveBarProps",
257
259
  "StickySaveBarVariant",
260
+ "TreeNode",
261
+ "TreeProps",
258
262
  "UserAvatarProps",
259
263
  "UserMenuProps",
260
264
  "UserMenuUser",
@@ -480,6 +484,8 @@
480
484
  "TooltipContent": "components/ui/tooltip",
481
485
  "TooltipProvider": "components/ui/tooltip",
482
486
  "TooltipTrigger": "components/ui/tooltip",
487
+ "Tree": "components/ui/tree",
488
+ "treeFromPaths": "components/ui/tree",
483
489
  "truncateMiddle": "lib/utils",
484
490
  "useAssistantNotifications": "hooks/use-assistant-notifications",
485
491
  "useBackendStatus": "components/backend-status",
@@ -514,6 +520,8 @@
514
520
  "BentoActionsMenu",
515
521
  "BentoBackLink",
516
522
  "BentoBackToTop",
523
+ "BentoCalendar",
524
+ "BentoChangeMark",
517
525
  "BentoCommandPalette",
518
526
  "BentoCountTile",
519
527
  "BentoDataTable",
@@ -536,6 +544,7 @@
536
544
  "BentoSection",
537
545
  "BentoShell",
538
546
  "BentoShortcutsDialog",
547
+ "BentoSplitPage",
539
548
  "BentoStatusMarker",
540
549
  "BentoTile",
541
550
  "BentoTileGrid",
@@ -555,6 +564,11 @@
555
564
  "BentoActionsMenuItem",
556
565
  "BentoActionsMenuProps",
557
566
  "BentoBackToTopProps",
567
+ "BentoCalendarEntry",
568
+ "BentoCalendarProps",
569
+ "BentoCalendarView",
570
+ "BentoChangeMarkProps",
571
+ "BentoChangeState",
558
572
  "BentoCommandPaletteGroup",
559
573
  "BentoCommandPaletteProps",
560
574
  "BentoCommandPaletteResult",
@@ -565,6 +579,7 @@
565
579
  "BentoDataTableProps",
566
580
  "BentoDiffField",
567
581
  "BentoDiffFieldKind",
582
+ "BentoDiffLayout",
568
583
  "BentoDiffProps",
569
584
  "BentoDiffSide",
570
585
  "BentoEmphasis",
@@ -605,6 +620,7 @@
605
620
  "BentoShellShortcut",
606
621
  "BentoShellShortcutsOptions",
607
622
  "BentoShortcutsDialogProps",
623
+ "BentoSplitPageProps",
608
624
  "BentoStatusMarkerProps",
609
625
  "BentoTileGridProps",
610
626
  "BentoTileProps",
@@ -624,6 +640,8 @@
624
640
  "BentoActionsMenu": "bento/bento-actions-menu",
625
641
  "BentoBackLink": "bento/bento-hero",
626
642
  "BentoBackToTop": "bento/bento-back-to-top",
643
+ "BentoCalendar": "bento/bento-calendar",
644
+ "BentoChangeMark": "bento/bento-change-mark",
627
645
  "bentoChipClass": "bento/bento-tones",
628
646
  "BentoCommandPalette": "bento/bento-command-palette",
629
647
  "BentoCountTile": "bento/bento-count-tile",
@@ -648,6 +666,7 @@
648
666
  "BentoSection": "bento/bento-section",
649
667
  "BentoShell": "bento/bento-shell",
650
668
  "BentoShortcutsDialog": "bento/bento-shortcuts-dialog",
669
+ "BentoSplitPage": "bento/bento-split-page",
651
670
  "BentoStatusMarker": "bento/bento-status-marker",
652
671
  "BentoTile": "bento/bento-tile",
653
672
  "BentoTileGrid": "bento/bento-list-page",
@@ -215,7 +215,13 @@ export declare const vigDesignSystemTranslations: {
215
215
  removed: string;
216
216
  changed: string;
217
217
  unchanged: string;
218
+ addedLetter: string;
219
+ removedLetter: string;
220
+ changedLetter: string;
221
+ unchangedLetter: string;
218
222
  unchangedCount: string;
223
+ unchangedLines: string;
224
+ tooLarge: string;
219
225
  created: string;
220
226
  deleted: string;
221
227
  noChanges: string;
@@ -223,6 +229,22 @@ export declare const vigDesignSystemTranslations: {
223
229
  addedStart: string;
224
230
  removedStart: string;
225
231
  };
232
+ split: {
233
+ switch: string;
234
+ };
235
+ calendar: {
236
+ previous: string;
237
+ next: string;
238
+ today: string;
239
+ views: string;
240
+ month: string;
241
+ week: string;
242
+ entries: string;
243
+ moveHint: string;
244
+ picked: string;
245
+ moved: string;
246
+ cancelled: string;
247
+ };
226
248
  versions: {
227
249
  label: string;
228
250
  agent: string;
@@ -487,7 +509,13 @@ export declare const vigDesignSystemTranslations: {
487
509
  removed: string;
488
510
  changed: string;
489
511
  unchanged: string;
512
+ addedLetter: string;
513
+ removedLetter: string;
514
+ changedLetter: string;
515
+ unchangedLetter: string;
490
516
  unchangedCount: string;
517
+ unchangedLines: string;
518
+ tooLarge: string;
491
519
  created: string;
492
520
  deleted: string;
493
521
  noChanges: string;
@@ -495,6 +523,22 @@ export declare const vigDesignSystemTranslations: {
495
523
  addedStart: string;
496
524
  removedStart: string;
497
525
  };
526
+ split: {
527
+ switch: string;
528
+ };
529
+ calendar: {
530
+ previous: string;
531
+ next: string;
532
+ today: string;
533
+ views: string;
534
+ month: string;
535
+ week: string;
536
+ entries: string;
537
+ moveHint: string;
538
+ picked: string;
539
+ moved: string;
540
+ cancelled: string;
541
+ };
498
542
  versions: {
499
543
  label: string;
500
544
  agent: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AA0B3B,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBvC,CAAC;AA4BF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,0BA8BpF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,OAAO,IAAI,QAIhE;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AA0B3B,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBvC,CAAC;AA4BF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,0BA8BpF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,OAAO,IAAI,QAIhE;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}