@mhmo91/schmancy 0.9.24 → 0.9.25

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 (46) hide show
  1. package/custom-elements.json +30 -15
  2. package/dist/agent/schmancy.agent.js +99 -8
  3. package/dist/agent/schmancy.agent.js.map +1 -1
  4. package/dist/agent/schmancy.manifest.json +128 -3
  5. package/dist/area-CFLFXu0Z.cjs.map +1 -1
  6. package/dist/area-CfozaCAZ.js.map +1 -1
  7. package/dist/card-CTUaARLm.js.map +1 -1
  8. package/dist/card-DtN6p1Jq.cjs.map +1 -1
  9. package/dist/chips-B-27tj7O.cjs.map +1 -1
  10. package/dist/chips-DhAWrSgi.js.map +1 -1
  11. package/dist/handover/agent-runtime-followups.md +1 -1
  12. package/dist/handover/agent-runtime-v1.md +3 -3
  13. package/dist/handover/agent-runtime-v2-loopback.md +5 -5
  14. package/dist/lightbox-Cb5-XPWV.js.map +1 -1
  15. package/dist/lightbox-Dk2ICCBB.cjs.map +1 -1
  16. package/dist/radio-group-DYvIgv3P.cjs.map +1 -1
  17. package/dist/radio-group-DchZApJl.js.map +1 -1
  18. package/dist/table-B8H-zioX.js.map +1 -1
  19. package/dist/table-ChHS4xby.cjs.map +1 -1
  20. package/dist/tree.cjs.map +1 -1
  21. package/dist/tree.js.map +1 -1
  22. package/dist/typewriter.cjs.map +1 -1
  23. package/dist/typewriter.js.map +1 -1
  24. package/dist/typography.cjs.map +1 -1
  25. package/dist/typography.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/area/area.component.ts +14 -0
  28. package/src/card/card.ts +1 -0
  29. package/src/chips/assist-chip.ts +11 -2
  30. package/src/chips/suggestion-chip.ts +9 -6
  31. package/src/lightbox/lightbox.ts +11 -0
  32. package/src/radio-group/radio-button.ts +1 -0
  33. package/src/table/table.ts +8 -2
  34. package/src/tree/tree.ts +1 -0
  35. package/src/typewriter/typewriter.ts +12 -0
  36. package/src/typography/typography.ts +1 -0
  37. package/types/src/area/area.component.d.ts +14 -0
  38. package/types/src/card/card.d.ts +1 -0
  39. package/types/src/chips/assist-chip.d.ts +11 -2
  40. package/types/src/chips/suggestion-chip.d.ts +9 -6
  41. package/types/src/lightbox/lightbox.d.ts +11 -0
  42. package/types/src/radio-group/radio-button.d.ts +1 -0
  43. package/types/src/table/table.d.ts +8 -2
  44. package/types/src/tree/tree.d.ts +1 -0
  45. package/types/src/typewriter/typewriter.d.ts +12 -0
  46. package/types/src/typography/typography.d.ts +1 -0
@@ -46,6 +46,7 @@
46
46
  {
47
47
  "name": "schmancy-area",
48
48
  "path": "./src/area/area.component.ts",
49
+ "description": "Router outlet — renders the active route's component for the named area. Drives the schmancy router via the `area` service.",
49
50
  "attributes": [
50
51
  {
51
52
  "name": "name",
@@ -72,7 +73,8 @@
72
73
  ],
73
74
  "events": [
74
75
  {
75
- "name": "redirect"
76
+ "name": "redirect",
77
+ "description": "When the area resolves a route to a different destination (programmatic redirect). `detail.from` and `detail.to` are the route names."
76
78
  }
77
79
  ]
78
80
  },
@@ -1274,7 +1276,8 @@
1274
1276
  ],
1275
1277
  "events": [
1276
1278
  {
1277
- "name": "schmancy-click"
1279
+ "name": "schmancy-click",
1280
+ "description": "When an interactive card is clicked or activated via keyboard. `detail.value` echoes the card's `type`. Only fires when `interactive` is set."
1278
1281
  }
1279
1282
  ]
1280
1283
  },
@@ -1751,7 +1754,7 @@
1751
1754
  {
1752
1755
  "name": "schmancy-assist-chip",
1753
1756
  "path": "./src/chips/assist-chip.ts",
1754
- "description": "Assist chip component - prompts user actions like opening calendar events or sharing content\nPure Schmancy implementation with Tailwind CSS and RxJS state management",
1757
+ "description": "Assist chip single-tap trigger for a contextual action (open calendar event, share content, jump to related view). Distinct from filter and input chips: assist chips have no selected state; clicking fires `action`.",
1755
1758
  "attributes": [
1756
1759
  {
1757
1760
  "name": "value",
@@ -1836,7 +1839,8 @@
1836
1839
  ],
1837
1840
  "events": [
1838
1841
  {
1839
- "name": "action"
1842
+ "name": "action",
1843
+ "description": "When the chip is clicked or activated via keyboard. `detail.value` echoes the chip's `value` attribute."
1840
1844
  },
1841
1845
  {
1842
1846
  "name": "click"
@@ -2227,7 +2231,7 @@
2227
2231
  {
2228
2232
  "name": "schmancy-suggestion-chip",
2229
2233
  "path": "./src/chips/suggestion-chip.ts",
2230
- "description": "Suggestion chip component - provides contextual recommendations to users\n\nIMPORTANT: Suggestion chips do NOT have a selected state. They are designed to\nprovide suggestions and recommendations that trigger actions when clicked.\nUnlike filter chips, they cannot be toggled on/off.\n\nPure Schmancy implementation with Tailwind CSS and RxJS state management",
2234
+ "description": "Suggestion chip single-tap insertion of a recommended value. Distinct from filter chips (no selected state) and assist chips (assist triggers an action; suggestion offers a value the user can pick).",
2231
2235
  "attributes": [
2232
2236
  {
2233
2237
  "name": "value",
@@ -2312,7 +2316,8 @@
2312
2316
  ],
2313
2317
  "events": [
2314
2318
  {
2315
- "name": "action"
2319
+ "name": "action",
2320
+ "description": "When the chip is clicked or activated via keyboard. `detail.value` echoes the chip's `value` attribute."
2316
2321
  },
2317
2322
  {
2318
2323
  "name": "click"
@@ -6587,6 +6592,7 @@
6587
6592
  {
6588
6593
  "name": "schmancy-lightbox",
6589
6594
  "path": "./src/lightbox/lightbox.ts",
6595
+ "description": "Image lightbox — thumbnail grid that opens to a full-screen viewer on click, with keyboard navigation between images.",
6590
6596
  "attributes": [
6591
6597
  {
6592
6598
  "name": "src",
@@ -6637,10 +6643,12 @@
6637
6643
  ],
6638
6644
  "events": [
6639
6645
  {
6640
- "name": "close"
6646
+ "name": "change",
6647
+ "description": "When the active image index changes (next/prev). `detail.index` is the new active image's position in the array."
6641
6648
  },
6642
6649
  {
6643
- "name": "change"
6650
+ "name": "close",
6651
+ "description": "When the viewer is dismissed (ESC, backdrop click, close button)."
6644
6652
  }
6645
6653
  ]
6646
6654
  },
@@ -8892,7 +8900,8 @@
8892
8900
  ],
8893
8901
  "events": [
8894
8902
  {
8895
- "name": "radio-button-click"
8903
+ "name": "radio-button-click",
8904
+ "description": "Internal event consumed by the parent schmancy-radio-group; `detail.value` is the clicked button's value. Listen on schmancy-radio-group for the public `change` event instead of subscribing here."
8896
8905
  },
8897
8906
  {
8898
8907
  "name": "change"
@@ -9909,7 +9918,7 @@
9909
9918
  {
9910
9919
  "name": "schmancy-table",
9911
9920
  "path": "./src/table/table.ts",
9912
- "description": "SchmancyDataTable is a generic data table component.\nIt supports sorting, filtering, and custom rendering of rows.",
9921
+ "description": "Generic data table typed columns, optional sort, custom renderers per column. Pass `data` (array) and `columns` (TableColumn descriptors).",
9913
9922
  "attributes": [
9914
9923
  {
9915
9924
  "name": "keyField",
@@ -9959,10 +9968,12 @@
9959
9968
  ],
9960
9969
  "events": [
9961
9970
  {
9962
- "name": "sort-change"
9971
+ "name": "click",
9972
+ "description": "When a data row is activated. `detail.item` is the row's source object, `detail.index` is the position in the data array."
9963
9973
  },
9964
9974
  {
9965
- "name": "click"
9975
+ "name": "sort-change",
9976
+ "description": "When the user toggles a column sort. `detail.column` is the column key, `detail.direction` is `'asc' | 'desc' | null`."
9966
9977
  }
9967
9978
  ]
9968
9979
  },
@@ -10727,7 +10738,8 @@
10727
10738
  ],
10728
10739
  "events": [
10729
10740
  {
10730
- "name": "toggle"
10741
+ "name": "toggle",
10742
+ "description": "When the root toggler or chevron is clicked. Fires before the open state flips; the host's `open` property reflects the new state on the next animation frame."
10731
10743
  }
10732
10744
  ],
10733
10745
  "slots": [
@@ -10744,6 +10756,7 @@
10744
10756
  {
10745
10757
  "name": "schmancy-typewriter",
10746
10758
  "path": "./src/typewriter/typewriter.ts",
10759
+ "description": "Typewriter effect — animates text typing/deletion with a cursor. Wraps the TypeIt library, lazy-loaded on first render.",
10747
10760
  "attributes": [
10748
10761
  {
10749
10762
  "name": "speed",
@@ -10854,7 +10867,8 @@
10854
10867
  ],
10855
10868
  "events": [
10856
10869
  {
10857
- "name": "typeit-complete"
10870
+ "name": "typeit-complete",
10871
+ "description": "When the animation finishes typing all content. Fires after the final `afterComplete` callback in the underlying TypeIt instance."
10858
10872
  }
10859
10873
  ]
10860
10874
  },
@@ -10999,7 +11013,8 @@
10999
11013
  ],
11000
11014
  "events": [
11001
11015
  {
11002
- "name": "change"
11016
+ "name": "change",
11017
+ "description": "When `editable` is true, fires on blur or Enter with `detail.value` set to the new text content. Not fired when `editable` is unset (the default)."
11003
11018
  }
11004
11019
  ],
11005
11020
  "slots": [
@@ -30887,6 +30887,13 @@ var vp = {
30887
30887
  kind: "class",
30888
30888
  name: "SchmancyArea",
30889
30889
  tagName: "schmancy-area",
30890
+ description: "Router outlet — renders the active route's component for the named area. Drives the schmancy router via the `area` service.",
30891
+ summary: "Mount once per \"addressable region\" of the app (typically the main content area). Use the imperative `area.push({ area, component, params })` service to navigate. Multiple named areas can coexist on a page (e.g. main content + a sheet).",
30892
+ platformPrimitive: {
30893
+ tag: "div",
30894
+ mode: "-",
30895
+ note: "Routing outlet. Degrades to an empty div if the tag never registers — routing is lost but the page stays accessible."
30896
+ },
30890
30897
  attributes: [{
30891
30898
  name: "name",
30892
30899
  type: { text: "string" },
@@ -30894,7 +30901,12 @@ var vp = {
30894
30901
  }, {
30895
30902
  name: "default",
30896
30903
  type: { text: "RouteComponent" }
30897
- }]
30904
+ }],
30905
+ events: [{
30906
+ name: "redirect",
30907
+ description: "When the area resolves a route to a different destination (programmatic redirect). `detail.from` and `detail.to` are the route names."
30908
+ }],
30909
+ examples: ["<schmancy-area name=\"main\"></schmancy-area>\n<script>\n import { area } from '@mhmo91/schmancy';\n area.push({ area: 'main', component: MyDashboardView, params: { id: 42 } });\n<\/script>"]
30898
30910
  }]
30899
30911
  },
30900
30912
  {
@@ -31593,6 +31605,10 @@ var vp = {
31593
31605
  description: "ARIA label for accessibility."
31594
31606
  }
31595
31607
  ],
31608
+ events: [{
31609
+ name: "schmancy-click",
31610
+ description: "When an interactive card is clicked or activated via keyboard. `detail.value` echoes the card's `type`. Only fires when `interactive` is set."
31611
+ }],
31596
31612
  examples: ["<schmancy-card type=\"elevated\" href=\"/items/42\">\n <schmancy-card-media src=\"/thumb.jpg\" alt=\"Thumbnail\"></schmancy-card-media>\n <schmancy-card-content>\n <h3>Title</h3>\n <p>One-line description of the card's content.</p>\n </schmancy-card-content>\n <schmancy-card-action>\n <schmancy-button variant=\"text\">Open</schmancy-button>\n </schmancy-card-action>\n</schmancy-card>"]
31597
31613
  }]
31598
31614
  },
@@ -31883,7 +31899,13 @@ var vp = {
31883
31899
  kind: "class",
31884
31900
  name: "SchmancyAssistChip",
31885
31901
  tagName: "schmancy-assist-chip",
31886
- description: "Assist chip component - prompts user actions like opening calendar events or sharing content Pure Schmancy implementation with Tailwind CSS and RxJS state management",
31902
+ description: "Assist chip single-tap trigger for a contextual action (open calendar event, share content, jump to related view). Distinct from filter and input chips: assist chips have no selected state; clicking fires `action`.",
31903
+ summary: "Use for \"do this thing\" suggestions surfaced in context (next to a date, after a recipient list, near a long description). Pair with schmancy-icon for the leading glyph.",
31904
+ platformPrimitive: {
31905
+ tag: "button",
31906
+ mode: "click",
31907
+ note: "Material 3 assist-chip semantics. Degrades to a plain `<button>` if the tag never registers."
31908
+ },
31887
31909
  attributes: [
31888
31910
  {
31889
31911
  name: "value",
@@ -31921,7 +31943,12 @@ var vp = {
31921
31943
  default: "true",
31922
31944
  description: "Elevated style variant - true by default per M3 spec for assist chips"
31923
31945
  }
31924
- ]
31946
+ ],
31947
+ events: [{
31948
+ name: "action",
31949
+ description: "When the chip is clicked or activated via keyboard. `detail.value` echoes the chip's `value` attribute."
31950
+ }],
31951
+ examples: ["<schmancy-assist-chip @action=${(e) => share(e.detail.value)}>\n <schmancy-icon slot=\"icon\">share</schmancy-icon>\n Share\n</schmancy-assist-chip>"]
31925
31952
  }]
31926
31953
  },
31927
31954
  {
@@ -32036,7 +32063,13 @@ var vp = {
32036
32063
  kind: "class",
32037
32064
  name: "SchmancySuggestionChip",
32038
32065
  tagName: "schmancy-suggestion-chip",
32039
- description: "Suggestion chip component - provides contextual recommendations to users IMPORTANT: Suggestion chips do NOT have a selected state. They are designed to provide suggestions and recommendations that trigger actions when clicked. Unlike filter chips, they cannot be toggled on/off. Pure Schmancy implementation with Tailwind CSS and RxJS state management",
32066
+ description: "Suggestion chip single-tap insertion of a recommended value. Distinct from filter chips (no selected state) and assist chips (assist triggers an action; suggestion offers a value the user can pick).",
32067
+ summary: "Use for \"would you also like to…\" prompts above a search input or below a message thread. Click fires `action` with the chip's `value` so the parent can insert it into a field or trigger a search.",
32068
+ platformPrimitive: {
32069
+ tag: "button",
32070
+ mode: "click",
32071
+ note: "Material 3 suggestion-chip semantics. Degrades to a plain `<button>` if the tag never registers."
32072
+ },
32040
32073
  attributes: [
32041
32074
  {
32042
32075
  name: "value",
@@ -32074,7 +32107,12 @@ var vp = {
32074
32107
  default: "false",
32075
32108
  description: "Elevated style variant - flat by default per M3 spec"
32076
32109
  }
32077
- ]
32110
+ ],
32111
+ events: [{
32112
+ name: "action",
32113
+ description: "When the chip is clicked or activated via keyboard. `detail.value` echoes the chip's `value` attribute."
32114
+ }],
32115
+ examples: ["<schmancy-suggestion-chip value=\"yesterday\" @action=${(e) => setRange(e.detail.value)}>\n Yesterday\n</schmancy-suggestion-chip>"]
32078
32116
  }]
32079
32117
  },
32080
32118
  {
@@ -33364,6 +33402,13 @@ var vp = {
33364
33402
  kind: "class",
33365
33403
  name: "SchmancyLightbox",
33366
33404
  tagName: "schmancy-lightbox",
33405
+ description: "Image lightbox — thumbnail grid that opens to a full-screen viewer on click, with keyboard navigation between images.",
33406
+ summary: "Drop-in for galleries / image lists where each thumbnail should expand to fill the viewport. Pass an `images` array of `{ src, alt, caption? }`.",
33407
+ platformPrimitive: {
33408
+ tag: "dialog",
33409
+ mode: "close",
33410
+ note: "Modal full-screen viewer with keyboard navigation. Degrades to a plain image grid if the tag never registers."
33411
+ },
33367
33412
  attributes: [
33368
33413
  {
33369
33414
  name: "src",
@@ -33385,7 +33430,15 @@ var vp = {
33385
33430
  type: { text: "boolean" },
33386
33431
  default: "false"
33387
33432
  }
33388
- ]
33433
+ ],
33434
+ events: [{
33435
+ name: "change",
33436
+ description: "When the active image index changes (next/prev). `detail.index` is the new active image's position in the array."
33437
+ }, {
33438
+ name: "close",
33439
+ description: "When the viewer is dismissed (ESC, backdrop click, close button)."
33440
+ }],
33441
+ examples: ["<schmancy-lightbox .images=${[{ src: '/a.jpg', alt: 'A' }, { src: '/b.jpg', alt: 'B' }]}></schmancy-lightbox>"]
33389
33442
  }]
33390
33443
  },
33391
33444
  {
@@ -34829,6 +34882,10 @@ var vp = {
34829
34882
  default: "''"
34830
34883
  }
34831
34884
  ],
34885
+ events: [{
34886
+ name: "radio-button-click",
34887
+ description: "Internal event consumed by the parent schmancy-radio-group; `detail.value` is the clicked button's value. Listen on schmancy-radio-group for the public `change` event instead of subscribing here."
34888
+ }],
34832
34889
  examples: ["<schmancy-radio-group name=\"plan\">\n <schmancy-radio-button value=\"free\">Free</schmancy-radio-button>\n <schmancy-radio-button value=\"pro\" checked>Pro</schmancy-radio-button>\n</schmancy-radio-group>"]
34833
34890
  }]
34834
34891
  },
@@ -35442,7 +35499,13 @@ var vp = {
35442
35499
  kind: "class",
35443
35500
  name: "SchmancyDataTable",
35444
35501
  tagName: "schmancy-table",
35445
- description: "SchmancyDataTable is a generic data table component. It supports sorting, filtering, and custom rendering of rows.",
35502
+ description: "Generic data table typed columns, optional sort, custom renderers per column. Pass `data` (array) and `columns` (TableColumn descriptors).",
35503
+ summary: "Use for tabular data where each column has a known shape. Pair with `<schmancy-table-row>` for the per-row interaction surface. Sort by setting `sortable: true` on a column descriptor; the table emits `sort-change` so the parent can re-fetch / re-sort in the data layer if needed.",
35504
+ platformPrimitive: {
35505
+ tag: "table",
35506
+ mode: "-",
35507
+ note: "Renders an accessible table with `<lit-virtualizer>` for large datasets. Degrades to a styled `<table>` if the tag never registers."
35508
+ },
35446
35509
  attributes: [
35447
35510
  {
35448
35511
  name: "keyField",
@@ -35459,7 +35522,15 @@ var vp = {
35459
35522
  type: { text: "boolean" },
35460
35523
  default: "false"
35461
35524
  }
35462
- ]
35525
+ ],
35526
+ events: [{
35527
+ name: "click",
35528
+ description: "When a data row is activated. `detail.item` is the row's source object, `detail.index` is the position in the data array."
35529
+ }, {
35530
+ name: "sort-change",
35531
+ description: "When the user toggles a column sort. `detail.column` is the column key, `detail.direction` is `'asc' | 'desc' | null`."
35532
+ }],
35533
+ examples: ["<schmancy-table .data=${rows} .columns=${[{ name: 'Name', key: 'name' }, { name: 'Status', key: 'status' }]}></schmancy-table>"]
35463
35534
  }]
35464
35535
  },
35465
35536
  {
@@ -35857,6 +35928,10 @@ var vp = {
35857
35928
  default: "false",
35858
35929
  description: "Whether the tree’s children are visible"
35859
35930
  }],
35931
+ events: [{
35932
+ name: "toggle",
35933
+ description: "When the root toggler or chevron is clicked. Fires before the open state flips; the host's `open` property reflects the new state on the next animation frame."
35934
+ }],
35860
35935
  slots: [{
35861
35936
  name: "root",
35862
35937
  description: "The root element of the tree"
@@ -35874,6 +35949,13 @@ var vp = {
35874
35949
  kind: "class",
35875
35950
  name: "TypewriterElement",
35876
35951
  tagName: "schmancy-typewriter",
35952
+ description: "Typewriter effect — animates text typing/deletion with a cursor. Wraps the TypeIt library, lazy-loaded on first render.",
35953
+ summary: "Drop string content as the default slot or use `<p>` / `<span>` with `cycle=\"A|B|C\"` attribute children for cycling phrases. Set `loop` for infinite cycling, `once` to remember completion across sessions via sessionStorage.",
35954
+ platformPrimitive: {
35955
+ tag: "span",
35956
+ mode: "-",
35957
+ note: "Animated text container. Degrades to its raw text content if the tag never registers — animation is lost but content stays visible."
35958
+ },
35877
35959
  attributes: [
35878
35960
  {
35879
35961
  name: "speed",
@@ -35924,6 +36006,11 @@ var vp = {
35924
36006
  description: "Default pause duration for cycling (ms)."
35925
36007
  }
35926
36008
  ],
36009
+ events: [{
36010
+ name: "typeit-complete",
36011
+ description: "When the animation finishes typing all content. Fires after the final `afterComplete` callback in the underlying TypeIt instance."
36012
+ }],
36013
+ examples: ["<schmancy-typewriter speed=\"35\" cursor-char=\"|\">\n Hello, world.\n</schmancy-typewriter>"],
35927
36014
  contexts: [{
35928
36015
  name: "delayContext",
35929
36016
  kind: "consume"
@@ -36056,6 +36143,10 @@ var vp = {
36056
36143
  description: "Placeholder shown when editable and empty"
36057
36144
  }
36058
36145
  ],
36146
+ events: [{
36147
+ name: "change",
36148
+ description: "When `editable` is true, fires on blur or Enter with `detail.value` set to the new text content. Not fired when `editable` is unset (the default)."
36149
+ }],
36059
36150
  slots: [{
36060
36151
  name: "",
36061
36152
  description: "The text for the typography."