@lostgradient/cinder 0.11.0 → 0.12.1

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 (107) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/components.json +3 -2
  3. package/dist/components/accordion/index.js +14 -11
  4. package/dist/components/accordion-item/accordion-item.css +20 -7
  5. package/dist/components/accordion-item/accordion-item.schema.js +5 -1
  6. package/dist/components/accordion-item/accordion-item.types.d.ts +4 -0
  7. package/dist/components/accordion-item/accordion-item.variables.js +13 -2
  8. package/dist/components/accordion-item/index.js +14 -11
  9. package/dist/components/action-row/action-row.css +20 -9
  10. package/dist/components/action-row/action-row.schema.js +5 -1
  11. package/dist/components/action-row/action-row.types.d.ts +43 -0
  12. package/dist/components/action-row/action-row.variables.js +12 -2
  13. package/dist/components/chat/chat.svelte.d.ts +1 -0
  14. package/dist/components/code-block/code-block.css +15 -9
  15. package/dist/components/code-block/code-block.variables.js +8 -2
  16. package/dist/components/confirm-dialog/confirm-dialog.css +2 -0
  17. package/dist/components/confirm-dialog/confirm-dialog.schema.js +10 -1
  18. package/dist/components/confirm-dialog/confirm-dialog.types.d.ts +7 -0
  19. package/dist/components/confirm-dialog/index.js +478 -106
  20. package/dist/components/faceted-filter-bar/faceted-filter-bar.schema.js +5 -1
  21. package/dist/components/faceted-filter-bar/faceted-filter-bar.types.d.ts +2 -0
  22. package/dist/components/faceted-filter-bar/index.js +40 -31
  23. package/dist/components/navigation-bar/index.js +11 -17
  24. package/dist/components/run-step-timeline/index.js +65 -6
  25. package/dist/components/run-step-timeline/run-step-timeline.utilities.d.ts +9 -1
  26. package/dist/components/side-navigation/side-navigation.css +2 -1
  27. package/dist/components/side-navigation/side-navigation.schema.js +9 -6
  28. package/dist/components/side-navigation/side-navigation.types.d.ts +11 -0
  29. package/dist/components/side-navigation/side-navigation.variables.js +2 -2
  30. package/dist/components/stat/stat.css +16 -8
  31. package/dist/components/stat/stat.schema.js +5 -1
  32. package/dist/components/stat/stat.types.d.ts +19 -0
  33. package/dist/components/stat/stat.variables.js +11 -2
  34. package/dist/components/stat-group/stat-group.css +7 -4
  35. package/dist/components/stat-group/stat-group.schema.js +5 -1
  36. package/dist/components/stat-group/stat-group.types.d.ts +27 -0
  37. package/dist/components/stat-group/stat-group.variables.js +6 -2
  38. package/dist/index.js +365 -256
  39. package/dist/server/components/accordion/index.js +2 -2
  40. package/dist/server/components/accordion-item/index.js +2 -2
  41. package/dist/server/components/color-field/index.js +2 -2
  42. package/dist/server/components/confirm-dialog/index.js +7 -2
  43. package/dist/server/components/faceted-filter-bar/index.js +1 -1
  44. package/dist/server/components/navigation-bar/index.js +1 -1
  45. package/dist/server/components/run-step-timeline/index.js +1 -1
  46. package/dist/server/index.js +10 -10
  47. package/dist/server/{index.server-cf6pxeyg.js → index.server-0rzd71e0.js} +1 -1
  48. package/dist/server/{index.server-5tf22d6e.js → index.server-4wx0qven.js} +3 -3
  49. package/dist/server/{index.server-894t97kv.js → index.server-7yvpb6z7.js} +4 -4
  50. package/dist/server/{index.server-btgb3d56.js → index.server-d5a5ccz7.js} +18 -12
  51. package/dist/server/{index.server-z38bxms8.js → index.server-g5jgq3jp.js} +65 -6
  52. package/dist/server/{index.server-y83kqayt.js → index.server-h3nzp8g8.js} +1 -1
  53. package/dist/server/index.server-jwvxxjvc.js +50 -0
  54. package/dist/server/{index.server-39ne5cd1.js → index.server-pxq277t5.js} +32 -1
  55. package/package.json +22 -95
  56. package/src/components/accordion/accordion.examples.json +6 -0
  57. package/src/components/accordion-item/accordion-item.css +20 -7
  58. package/src/components/accordion-item/accordion-item.schema.json +4 -0
  59. package/src/components/accordion-item/accordion-item.schema.ts +4 -0
  60. package/src/components/accordion-item/accordion-item.svelte +9 -7
  61. package/src/components/accordion-item/accordion-item.types.ts +4 -0
  62. package/src/components/accordion-item/accordion-item.variables.json +12 -1
  63. package/src/components/accordion-item/accordion-item.variables.ts +12 -1
  64. package/src/components/action-row/action-row.css +20 -9
  65. package/src/components/action-row/action-row.examples.json +6 -0
  66. package/src/components/action-row/action-row.schema.json +4 -0
  67. package/src/components/action-row/action-row.schema.ts +4 -0
  68. package/src/components/action-row/action-row.types.ts +44 -0
  69. package/src/components/action-row/action-row.variables.json +11 -1
  70. package/src/components/action-row/action-row.variables.ts +11 -1
  71. package/src/components/chat/chat.examples.json +6 -0
  72. package/src/components/code-block/code-block.css +15 -9
  73. package/src/components/code-block/code-block.variables.json +7 -1
  74. package/src/components/code-block/code-block.variables.ts +7 -1
  75. package/src/components/confirm-dialog/confirm-dialog.css +2 -0
  76. package/src/components/confirm-dialog/confirm-dialog.schema.json +8 -0
  77. package/src/components/confirm-dialog/confirm-dialog.schema.ts +10 -0
  78. package/src/components/confirm-dialog/confirm-dialog.svelte +31 -3
  79. package/src/components/confirm-dialog/confirm-dialog.types.ts +7 -0
  80. package/src/components/faceted-filter-bar/faceted-filter-bar.schema.json +4 -0
  81. package/src/components/faceted-filter-bar/faceted-filter-bar.schema.ts +4 -0
  82. package/src/components/faceted-filter-bar/faceted-filter-bar.svelte +13 -11
  83. package/src/components/faceted-filter-bar/faceted-filter-bar.types.ts +2 -0
  84. package/src/components/navigation-bar/navigation-bar.svelte +2 -2
  85. package/src/components/run-step-timeline/run-step-timeline.svelte +4 -4
  86. package/src/components/run-step-timeline/run-step-timeline.utilities.ts +68 -0
  87. package/src/components/side-navigation/side-navigation.css +2 -1
  88. package/src/components/side-navigation/side-navigation.examples.json +6 -0
  89. package/src/components/side-navigation/side-navigation.schema.json +8 -5
  90. package/src/components/side-navigation/side-navigation.schema.ts +8 -5
  91. package/src/components/side-navigation/side-navigation.types.ts +12 -0
  92. package/src/components/side-navigation/side-navigation.variables.json +1 -1
  93. package/src/components/side-navigation/side-navigation.variables.ts +1 -1
  94. package/src/components/stat/stat.css +16 -8
  95. package/src/components/stat/stat.schema.json +4 -0
  96. package/src/components/stat/stat.schema.ts +4 -0
  97. package/src/components/stat/stat.types.ts +20 -0
  98. package/src/components/stat/stat.variables.json +10 -1
  99. package/src/components/stat/stat.variables.ts +10 -1
  100. package/src/components/stat-group/stat-group.css +7 -4
  101. package/src/components/stat-group/stat-group.examples.json +6 -0
  102. package/src/components/stat-group/stat-group.schema.json +4 -0
  103. package/src/components/stat-group/stat-group.schema.ts +4 -0
  104. package/src/components/stat-group/stat-group.types.ts +28 -0
  105. package/src/components/stat-group/stat-group.variables.json +5 -1
  106. package/src/components/stat-group/stat-group.variables.ts +5 -1
  107. package/dist/server/index.server-hfx487zj.js +0 -42
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @lostgradient/cinder
2
2
 
3
+ ## 0.12.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#737](https://github.com/stevekinney/cinder/pull/737) [`3600db8`](https://github.com/stevekinney/cinder/commit/3600db878c53ae5d7048487207b08a60d5421b22) Thanks [@stevekinney](https://github.com/stevekinney)! - Publish the post-0.12 downstream fixes for Chat full-height layout metadata and dense inspector styling hooks.
8
+
9
+ ## 0.12.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#721](https://github.com/stevekinney/cinder/pull/721) [`a6ee978`](https://github.com/stevekinney/cinder/commit/a6ee9784198ff450c1a9493e3c52a2f2c0965b62) Thanks [@stevekinney](https://github.com/stevekinney)! - Add public source-excerpt styling variables to CodeBlock, typed confirmation to ConfirmDialog, and a facet-only mode to FacetedFilterBar.
14
+
15
+ ### Patch Changes
16
+
17
+ - [#725](https://github.com/stevekinney/cinder/pull/725) [`a2a3254`](https://github.com/stevekinney/cinder/commit/a2a3254df455b37f74abf4f73e8e8030017af309) Thanks [@stevekinney](https://github.com/stevekinney)! - Render compensation steps directly beneath the forward-step subtree they reverse.
18
+
3
19
  ## 0.11.0
4
20
 
5
21
  ### Minor Changes
package/components.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "manifestVersion": 1,
4
4
  "package": {
5
5
  "name": "@lostgradient/cinder",
6
- "version": "0.11.0",
6
+ "version": "0.12.1",
7
7
  "framework": "svelte",
8
8
  "frameworkVersionRange": ">=5.56.0 <6",
9
9
  "classPrefix": "cinder-",
@@ -924,7 +924,8 @@
924
924
  "tags": ["chat", "conversation", "domain-suite"],
925
925
  "useWhen": [
926
926
  "Shipping a full chat surface with composer, scroll-anchor, unread indicator, and attachments bundled as one heavyweight drop-in.",
927
- "Building an AI assistant or support thread where conversation state is modeled as a transcript of role-tagged messages."
927
+ "Building an AI assistant or support thread where conversation state is modeled as a transcript of role-tagged messages.",
928
+ "Embedding Chat in a definite-height flex or grid region where its internal transcript should own scrolling."
928
929
  ],
929
930
  "avoidWhen": [
930
931
  {
@@ -83,15 +83,16 @@ function classNames(...parts) {
83
83
  }
84
84
 
85
85
  // src/components/accordion-item/accordion-item.svelte
86
- var root = $.from_html(`<div class="cinder-accordion-item__panel"><div class="cinder-accordion-item__panel-inner"><!></div></div>`);
87
- var root_1 = $.from_html(`<div><h3 class="cinder-accordion-item__heading"><button type="button" class="cinder-accordion-item__trigger"><span class="cinder-accordion-item__title"> </span> <svg class="cinder-accordion-item__chevron" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06z" clip-rule="evenodd"></path></svg></button></h3> <!></div>`);
86
+ var root = $.from_html(`<div class="cinder-accordion-item__panel-inner"><!></div>`);
87
+ var root_1 = $.from_html(`<div><h3 class="cinder-accordion-item__heading"><button type="button" class="cinder-accordion-item__trigger"><span class="cinder-accordion-item__title"> </span> <svg class="cinder-accordion-item__chevron" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06z" clip-rule="evenodd"></path></svg></button></h3> <div class="cinder-accordion-item__panel"><!></div></div>`);
88
88
  function Accordion_item($$anchor, $$props) {
89
+ const instanceId = $.props_id();
89
90
  $.push($$props, true);
90
91
  let disabled = $.prop($$props, "disabled", 3, false);
91
92
  const context = getAccordionContext();
92
93
  const isExpanded = $.derived(() => context.expandedIds.includes($$props.id));
93
- const headerId = $.derived(() => `${$$props.id}-header`);
94
- const panelId = $.derived(() => `${$$props.id}-panel`);
94
+ const headerId = $.derived(() => `${instanceId}-header`);
95
+ const panelId = $.derived(() => `${instanceId}-panel`);
95
96
  function handleClick() {
96
97
  if (disabled())
97
98
  return;
@@ -106,26 +107,26 @@ function Accordion_item($$anchor, $$props) {
106
107
  $.next(2);
107
108
  $.reset(button);
108
109
  $.reset(h3);
109
- var node = $.sibling(h3, 2);
110
+ var div_1 = $.sibling(h3, 2);
111
+ var node = $.child(div_1);
110
112
  {
111
113
  var consequent = ($$anchor2) => {
112
- var div_1 = root();
113
- var div_2 = $.child(div_1);
114
+ var div_2 = root();
114
115
  var node_1 = $.child(div_2);
115
116
  $.snippet(node_1, () => $$props.children);
116
117
  $.reset(div_2);
117
- $.reset(div_1);
118
- $.template_effect(() => $.set_attribute(div_1, "id", $.get(panelId)));
119
- $.append($$anchor2, div_1);
118
+ $.append($$anchor2, div_2);
120
119
  };
121
120
  $.if(node, ($$render) => {
122
121
  if ($.get(isExpanded))
123
122
  $$render(consequent);
124
123
  });
125
124
  }
125
+ $.reset(div_1);
126
126
  $.reset(div);
127
127
  $.template_effect(($0) => {
128
128
  $.set_class(div, 1, $0);
129
+ $.set_style(div, $$props.style);
129
130
  $.set_attribute(div, "data-cinder-expanded", $.get(isExpanded) ? "" : undefined);
130
131
  $.set_attribute(div, "data-cinder-disabled", disabled() ? "" : undefined);
131
132
  $.set_attribute(button, "id", $.get(headerId));
@@ -133,6 +134,8 @@ function Accordion_item($$anchor, $$props) {
133
134
  $.set_attribute(button, "aria-controls", $.get(panelId));
134
135
  button.disabled = disabled();
135
136
  $.set_text(text, $$props.title);
137
+ $.set_attribute(div_1, "id", $.get(panelId));
138
+ $.set_attribute(div_1, "hidden", !$.get(isExpanded));
136
139
  }, [
137
140
  () => $.clsx(classNames("cinder-accordion-item", $$props.class))
138
141
  ]);
@@ -223,4 +226,4 @@ export {
223
226
  Accordion2 as Accordion
224
227
  };
225
228
 
226
- //# debugId=1DCB10602C8FB38664756E2164756E21
229
+ //# debugId=86A20AE2C42C2B0D64756E2164756E21
@@ -5,6 +5,16 @@
5
5
  * ======================================== */
6
6
 
7
7
  .cinder-accordion-item {
8
+ --cinder-accordion-item-trigger-gap: var(--cinder-space-4);
9
+ --cinder-accordion-item-trigger-padding-block: var(--cinder-space-4);
10
+ --cinder-accordion-item-trigger-padding-inline: var(--cinder-space-5);
11
+ --cinder-accordion-item-trigger-font-size: var(--cinder-text-base);
12
+ --cinder-accordion-item-trigger-font-weight: var(--cinder-font-medium);
13
+ --cinder-accordion-item-panel-inner-padding-block-start: var(--cinder-space-4);
14
+ --cinder-accordion-item-panel-inner-padding-block-end: var(--cinder-space-5);
15
+ --cinder-accordion-item-panel-inner-padding-inline: var(--cinder-space-5);
16
+ --cinder-accordion-item-panel-font-size: var(--cinder-text-base);
17
+ --cinder-accordion-item-panel-line-height: var(--cinder-leading-normal);
8
18
  border-block-end: 1px solid var(--cinder-border);
9
19
  }
10
20
 
@@ -31,12 +41,13 @@
31
41
  display: flex;
32
42
  align-items: center;
33
43
  justify-content: space-between;
34
- gap: var(--cinder-space-4);
44
+ gap: var(--cinder-accordion-item-trigger-gap, var(--cinder-space-4));
35
45
  width: 100%;
36
- padding: var(--cinder-space-4) var(--cinder-space-5);
46
+ padding: var(--cinder-accordion-item-trigger-padding-block, var(--cinder-space-4))
47
+ var(--cinder-accordion-item-trigger-padding-inline, var(--cinder-space-5));
37
48
 
38
- font-size: var(--cinder-text-base);
39
- font-weight: var(--cinder-font-medium);
49
+ font-size: var(--cinder-accordion-item-trigger-font-size, var(--cinder-text-base));
50
+ font-weight: var(--cinder-accordion-item-trigger-font-weight, var(--cinder-font-medium));
40
51
  line-height: var(--cinder-leading-snug);
41
52
  color: var(--cinder-text);
42
53
  text-align: start;
@@ -146,9 +157,11 @@
146
157
  }
147
158
 
148
159
  .cinder-accordion-item__panel-inner {
149
- padding: var(--cinder-space-4) var(--cinder-space-5) var(--cinder-space-5);
150
- font-size: var(--cinder-text-base);
151
- line-height: var(--cinder-leading-normal);
160
+ padding: var(--cinder-accordion-item-panel-inner-padding-block-start, var(--cinder-space-4))
161
+ var(--cinder-accordion-item-panel-inner-padding-inline, var(--cinder-space-5))
162
+ var(--cinder-accordion-item-panel-inner-padding-block-end, var(--cinder-space-5));
163
+ font-size: var(--cinder-accordion-item-panel-font-size, var(--cinder-text-base));
164
+ line-height: var(--cinder-accordion-item-panel-line-height, var(--cinder-leading-normal));
152
165
  color: var(--cinder-text-muted);
153
166
  }
154
167
 
@@ -72,6 +72,10 @@ var schema = {
72
72
  class: {
73
73
  type: "string",
74
74
  description: "Additional CSS class merged with `.cinder-accordion-item`."
75
+ },
76
+ style: {
77
+ type: "string",
78
+ description: "Inline style string applied to the `.cinder-accordion-item` root."
75
79
  }
76
80
  },
77
81
  additionalProperties: false,
@@ -92,4 +96,4 @@ export {
92
96
  accordion_item_schema_default as default
93
97
  };
94
98
 
95
- //# debugId=CED71061F07864C964756E2164756E21
99
+ //# debugId=D45061C2BEE6BE8464756E2164756E21
@@ -12,6 +12,8 @@ export type AccordionItemProps = {
12
12
  disabled?: boolean;
13
13
  /** Additional CSS class merged with `.cinder-accordion-item`. */
14
14
  class?: string;
15
+ /** Inline style string applied to the `.cinder-accordion-item` root. */
16
+ style?: string;
15
17
  /** Panel content rendered when the item is expanded. */
16
18
  children: Snippet;
17
19
  };
@@ -28,4 +30,6 @@ export interface AccordionItemSchemaProps {
28
30
  disabled?: boolean;
29
31
  /** Additional CSS class merged with `.cinder-accordion-item`. */
30
32
  class?: string;
33
+ /** Inline style string applied to the `.cinder-accordion-item` root. */
34
+ style?: string;
31
35
  }
@@ -52,10 +52,21 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
52
52
  });
53
53
 
54
54
  // src/components/accordion-item/accordion-item.variables.ts
55
- var variables = [];
55
+ var variables = [
56
+ "--cinder-accordion-item-panel-font-size",
57
+ "--cinder-accordion-item-panel-inner-padding-block-end",
58
+ "--cinder-accordion-item-panel-inner-padding-block-start",
59
+ "--cinder-accordion-item-panel-inner-padding-inline",
60
+ "--cinder-accordion-item-panel-line-height",
61
+ "--cinder-accordion-item-trigger-font-size",
62
+ "--cinder-accordion-item-trigger-font-weight",
63
+ "--cinder-accordion-item-trigger-gap",
64
+ "--cinder-accordion-item-trigger-padding-block",
65
+ "--cinder-accordion-item-trigger-padding-inline"
66
+ ];
56
67
  var accordion_item_variables_default = variables;
57
68
  export {
58
69
  accordion_item_variables_default as default
59
70
  };
60
71
 
61
- //# debugId=24BF9D6EF0FBB68164756E2164756E21
72
+ //# debugId=FE56BCDDC2ED5DB364756E2164756E21
@@ -83,15 +83,16 @@ function classNames(...parts) {
83
83
  }
84
84
 
85
85
  // src/components/accordion-item/accordion-item.svelte
86
- var root = $.from_html(`<div class="cinder-accordion-item__panel"><div class="cinder-accordion-item__panel-inner"><!></div></div>`);
87
- var root_1 = $.from_html(`<div><h3 class="cinder-accordion-item__heading"><button type="button" class="cinder-accordion-item__trigger"><span class="cinder-accordion-item__title"> </span> <svg class="cinder-accordion-item__chevron" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06z" clip-rule="evenodd"></path></svg></button></h3> <!></div>`);
86
+ var root = $.from_html(`<div class="cinder-accordion-item__panel-inner"><!></div>`);
87
+ var root_1 = $.from_html(`<div><h3 class="cinder-accordion-item__heading"><button type="button" class="cinder-accordion-item__trigger"><span class="cinder-accordion-item__title"> </span> <svg class="cinder-accordion-item__chevron" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06z" clip-rule="evenodd"></path></svg></button></h3> <div class="cinder-accordion-item__panel"><!></div></div>`);
88
88
  function Accordion_item($$anchor, $$props) {
89
+ const instanceId = $.props_id();
89
90
  $.push($$props, true);
90
91
  let disabled = $.prop($$props, "disabled", 3, false);
91
92
  const context = getAccordionContext();
92
93
  const isExpanded = $.derived(() => context.expandedIds.includes($$props.id));
93
- const headerId = $.derived(() => `${$$props.id}-header`);
94
- const panelId = $.derived(() => `${$$props.id}-panel`);
94
+ const headerId = $.derived(() => `${instanceId}-header`);
95
+ const panelId = $.derived(() => `${instanceId}-panel`);
95
96
  function handleClick() {
96
97
  if (disabled())
97
98
  return;
@@ -106,26 +107,26 @@ function Accordion_item($$anchor, $$props) {
106
107
  $.next(2);
107
108
  $.reset(button);
108
109
  $.reset(h3);
109
- var node = $.sibling(h3, 2);
110
+ var div_1 = $.sibling(h3, 2);
111
+ var node = $.child(div_1);
110
112
  {
111
113
  var consequent = ($$anchor2) => {
112
- var div_1 = root();
113
- var div_2 = $.child(div_1);
114
+ var div_2 = root();
114
115
  var node_1 = $.child(div_2);
115
116
  $.snippet(node_1, () => $$props.children);
116
117
  $.reset(div_2);
117
- $.reset(div_1);
118
- $.template_effect(() => $.set_attribute(div_1, "id", $.get(panelId)));
119
- $.append($$anchor2, div_1);
118
+ $.append($$anchor2, div_2);
120
119
  };
121
120
  $.if(node, ($$render) => {
122
121
  if ($.get(isExpanded))
123
122
  $$render(consequent);
124
123
  });
125
124
  }
125
+ $.reset(div_1);
126
126
  $.reset(div);
127
127
  $.template_effect(($0) => {
128
128
  $.set_class(div, 1, $0);
129
+ $.set_style(div, $$props.style);
129
130
  $.set_attribute(div, "data-cinder-expanded", $.get(isExpanded) ? "" : undefined);
130
131
  $.set_attribute(div, "data-cinder-disabled", disabled() ? "" : undefined);
131
132
  $.set_attribute(button, "id", $.get(headerId));
@@ -133,6 +134,8 @@ function Accordion_item($$anchor, $$props) {
133
134
  $.set_attribute(button, "aria-controls", $.get(panelId));
134
135
  button.disabled = disabled();
135
136
  $.set_text(text, $$props.title);
137
+ $.set_attribute(div_1, "id", $.get(panelId));
138
+ $.set_attribute(div_1, "hidden", !$.get(isExpanded));
136
139
  }, [
137
140
  () => $.clsx(classNames("cinder-accordion-item", $$props.class))
138
141
  ]);
@@ -149,4 +152,4 @@ export {
149
152
  Accordion_item as AccordionItem
150
153
  };
151
154
 
152
- //# debugId=327E97542BFF12B664756E2164756E21
155
+ //# debugId=7FB287FC6F3C44AF64756E2164756E21
@@ -1,9 +1,19 @@
1
1
  @layer cinder.tokens, cinder.foundation, cinder.components, cinder.utilities;
2
2
  @layer cinder.components {
3
3
  .cinder-action-row {
4
+ --cinder-action-row-padding-block: var(--cinder-space-3);
5
+ --cinder-action-row-padding-inline: var(--cinder-space-4);
6
+ --cinder-action-row-layout-column-gap: var(--cinder-space-3);
7
+ --cinder-action-row-layout-row-gap: var(--cinder-space-2);
8
+ --cinder-action-row-body-gap: var(--cinder-space-1);
9
+ --cinder-action-row-title-font-size: var(--cinder-text-sm);
10
+ --cinder-action-row-description-font-size: var(--cinder-text-sm);
11
+ --cinder-action-row-meta-font-size: var(--cinder-text-xs);
12
+ --cinder-action-row-trailing-gap: var(--cinder-space-2);
4
13
  display: block;
5
14
  inline-size: 100%;
6
- padding: var(--cinder-space-3) var(--cinder-space-4);
15
+ padding: var(--cinder-action-row-padding-block, var(--cinder-space-3))
16
+ var(--cinder-action-row-padding-inline, var(--cinder-space-4));
7
17
  border: 0;
8
18
  border-radius: var(--cinder-radius-md);
9
19
  background: transparent;
@@ -14,7 +24,8 @@
14
24
  }
15
25
 
16
26
  .cinder-action-row[data-cinder-density='condensed'] {
17
- padding: var(--cinder-space-2) var(--cinder-space-3);
27
+ --cinder-action-row-padding-block: var(--cinder-space-2);
28
+ --cinder-action-row-padding-inline: var(--cinder-space-3);
18
29
  }
19
30
 
20
31
  @media (hover: hover) {
@@ -67,8 +78,8 @@
67
78
  .cinder-action-row__layout {
68
79
  display: grid;
69
80
  align-items: center;
70
- column-gap: var(--cinder-space-3);
71
- row-gap: var(--cinder-space-2);
81
+ column-gap: var(--cinder-action-row-layout-column-gap, var(--cinder-space-3));
82
+ row-gap: var(--cinder-action-row-layout-row-gap, var(--cinder-space-2));
72
83
  grid-template-columns: 1fr;
73
84
  grid-template-areas: 'body';
74
85
  }
@@ -99,34 +110,34 @@
99
110
  display: flex;
100
111
  min-inline-size: 0;
101
112
  flex-direction: column;
102
- gap: var(--cinder-space-1);
113
+ gap: var(--cinder-action-row-body-gap, var(--cinder-space-1));
103
114
  }
104
115
 
105
116
  .cinder-action-row__trailing {
106
117
  grid-area: trailing;
107
118
  display: inline-flex;
108
119
  align-items: center;
109
- gap: var(--cinder-space-2);
120
+ gap: var(--cinder-action-row-trailing-gap, var(--cinder-space-2));
110
121
  color: var(--cinder-text-muted);
111
122
  }
112
123
 
113
124
  .cinder-action-row__title {
114
125
  color: inherit;
115
- font-size: var(--cinder-text-sm);
126
+ font-size: var(--cinder-action-row-title-font-size, var(--cinder-text-sm));
116
127
  line-height: var(--cinder-leading-snug);
117
128
  overflow-wrap: anywhere;
118
129
  }
119
130
 
120
131
  .cinder-action-row__description {
121
132
  color: var(--cinder-text-muted);
122
- font-size: var(--cinder-text-sm);
133
+ font-size: var(--cinder-action-row-description-font-size, var(--cinder-text-sm));
123
134
  line-height: var(--cinder-leading-snug);
124
135
  overflow-wrap: anywhere;
125
136
  }
126
137
 
127
138
  .cinder-action-row__meta {
128
139
  color: var(--cinder-text-muted);
129
- font-size: var(--cinder-text-xs);
140
+ font-size: var(--cinder-action-row-meta-font-size, var(--cinder-text-xs));
130
141
  line-height: var(--cinder-leading-snug);
131
142
  overflow-wrap: anywhere;
132
143
  }
@@ -84,6 +84,10 @@ var schema = {
84
84
  class: {
85
85
  type: "string",
86
86
  description: "Additional classes merged with `.cinder-action-row`."
87
+ },
88
+ style: {
89
+ type: "string",
90
+ description: "Inline style string applied to the `.cinder-action-row` root."
87
91
  }
88
92
  },
89
93
  additionalProperties: false,
@@ -123,4 +127,4 @@ export {
123
127
  action_row_schema_default as default
124
128
  };
125
129
 
126
- //# debugId=CAD2E7A8D028F6E564756E2164756E21
130
+ //# debugId=FB7AA1AE4716503064756E2164756E21
@@ -43,3 +43,46 @@ export type ActionRowProps = Omit<HTMLButtonAttributes, 'aria-current' | 'aria-p
43
43
  /** Additional classes merged with `.cinder-action-row`. */
44
44
  class?: string;
45
45
  };
46
+ /** Schema generator surface for ActionRow — excludes native button attributes except supported styling hooks. */
47
+ export interface ActionRowSchemaProps {
48
+ /**
49
+ * Density token surfaced as `data-cinder-density`.
50
+ * @default "comfortable"
51
+ */
52
+ density?: ActionRowDensity;
53
+ /**
54
+ * Whether the row is currently selected.
55
+ * @default false
56
+ */
57
+ selected?: boolean;
58
+ /**
59
+ * Accessible state mapping for selected rows.
60
+ * Use `pressed` for in-page selectable rows and `current` for navigation/current-item rows.
61
+ * @default "pressed"
62
+ */
63
+ selectedState?: ActionRowSelectedState;
64
+ /**
65
+ * `aria-current` value used when `selectedState="current"` and `selected` is true.
66
+ * @default "true"
67
+ */
68
+ currentValue?: ActionRowCurrentValue;
69
+ /**
70
+ * Native button type.
71
+ * @default "button"
72
+ */
73
+ type?: 'button' | 'submit' | 'reset';
74
+ /** Leading visual such as an icon, avatar, marker, or status dot. */
75
+ leading?: Snippet;
76
+ /** Primary row label. Required so the row has visible text and an accessible name. */
77
+ title: Snippet;
78
+ /** Secondary description below the title. */
79
+ description?: Snippet;
80
+ /** Tertiary metadata such as timestamp, status text, or a compact badge. */
81
+ meta?: Snippet;
82
+ /** Trailing region such as a timestamp, count, badge, chevron, or shortcut hint. */
83
+ trailing?: Snippet;
84
+ /** Additional classes merged with `.cinder-action-row`. */
85
+ class?: string;
86
+ /** Inline style string applied to the `.cinder-action-row` root. */
87
+ style?: string;
88
+ }
@@ -52,10 +52,20 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
52
52
  });
53
53
 
54
54
  // src/components/action-row/action-row.variables.ts
55
- var variables = [];
55
+ var variables = [
56
+ "--cinder-action-row-body-gap",
57
+ "--cinder-action-row-description-font-size",
58
+ "--cinder-action-row-layout-column-gap",
59
+ "--cinder-action-row-layout-row-gap",
60
+ "--cinder-action-row-meta-font-size",
61
+ "--cinder-action-row-padding-block",
62
+ "--cinder-action-row-padding-inline",
63
+ "--cinder-action-row-title-font-size",
64
+ "--cinder-action-row-trailing-gap"
65
+ ];
56
66
  var action_row_variables_default = variables;
57
67
  export {
58
68
  action_row_variables_default as default
59
69
  };
60
70
 
61
- //# debugId=760088280D320BC064756E2164756E21
71
+ //# debugId=4A0646B62FFB1E4364756E2164756E21
@@ -8,6 +8,7 @@
8
8
  * @tag domain-suite
9
9
  * @useWhen Shipping a full chat surface with composer, scroll-anchor, unread indicator, and attachments bundled as one heavyweight drop-in.
10
10
  * @useWhen Building an AI assistant or support thread where conversation state is modeled as a transcript of role-tagged messages.
11
+ * @useWhen Embedding Chat in a definite-height flex or grid region where its internal transcript should own scrolling.
11
12
  * @avoidWhen Rendering a one-off message list — compose lighter primitives directly instead of pulling the full suite.
12
13
  * @avoidWhen The transcript is read-only and needs no composer — a simple list of message bubbles is a better fit.
13
14
  * @related markdown-editor
@@ -9,12 +9,17 @@
9
9
  * ======================================== */
10
10
 
11
11
  .cinder-code-block {
12
+ --cinder-code-block-background: var(--_cinder-code-block-code-surface);
13
+ --cinder-code-block-font-size: var(--cinder-text-sm);
14
+ --cinder-code-block-height: auto;
15
+ --cinder-code-block-line-height: var(--cinder-leading-relaxed);
16
+ --cinder-code-block-padding: var(--cinder-space-4);
12
17
  --_cinder-code-block-code-surface: light-dark(
13
18
  var(--cinder-surface-raised),
14
19
  var(--cinder-surface-inset)
15
20
  );
16
21
 
17
- background: var(--cinder-surface-inset);
22
+ background: var(--cinder-code-block-background);
18
23
  border: 1px solid var(--cinder-border);
19
24
  border-radius: var(--cinder-radius-md);
20
25
  overflow: hidden;
@@ -44,33 +49,34 @@
44
49
  * inner pre elements can stay metrically identical. */
45
50
  .cinder-code-block__viewport {
46
51
  display: block;
47
- overflow-x: auto;
48
- background: var(--_cinder-code-block-code-surface);
52
+ block-size: var(--cinder-code-block-height);
53
+ overflow: auto;
54
+ background: var(--cinder-code-block-background);
49
55
  }
50
56
 
51
57
  .cinder-code-block__pre,
52
58
  .cinder-code-block :where(pre.shiki) {
53
59
  margin: 0;
54
- padding: var(--cinder-space-4);
60
+ padding: var(--cinder-code-block-padding);
55
61
  width: max-content;
56
62
  min-width: 100%;
57
63
  overflow-x: clip;
58
64
  font-family: var(--cinder-font-mono);
59
- font-size: var(--cinder-text-sm);
60
- line-height: var(--cinder-leading-relaxed);
65
+ font-size: var(--cinder-code-block-font-size);
66
+ line-height: var(--cinder-code-block-line-height);
61
67
  color: var(--cinder-text);
62
68
  /* Use near-white in light mode so github-light token colors (e.g. #d73a49
63
69
  * keyword red) clear 4.5:1 WCAG AA. In dark mode keep the deep inset so
64
70
  * github-dark tokens maintain contrast on a very dark surface. */
65
- background: var(--_cinder-code-block-code-surface);
71
+ background: var(--cinder-code-block-background);
66
72
  }
67
73
 
68
74
  /* Shiki writes inline background styles on its generated <pre>; keep the
69
75
  * highlighted state visually and metrically identical to the plain fallback. */
70
76
  .cinder-code-block :where(pre.shiki) {
71
77
  margin: 0 !important;
72
- padding: var(--cinder-space-4) !important;
73
- background: var(--_cinder-code-block-code-surface) !important;
78
+ padding: var(--cinder-code-block-padding) !important;
79
+ background: var(--cinder-code-block-background) !important;
74
80
  }
75
81
 
76
82
  .cinder-code-block__code,
@@ -52,10 +52,16 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
52
52
  });
53
53
 
54
54
  // src/components/code-block/code-block.variables.ts
55
- var variables = [];
55
+ var variables = [
56
+ "--cinder-code-block-background",
57
+ "--cinder-code-block-font-size",
58
+ "--cinder-code-block-height",
59
+ "--cinder-code-block-line-height",
60
+ "--cinder-code-block-padding"
61
+ ];
56
62
  var code_block_variables_default = variables;
57
63
  export {
58
64
  code_block_variables_default as default
59
65
  };
60
66
 
61
- //# debugId=28C5BF47C17214D064756E2164756E21
67
+ //# debugId=78150DCF4A1748A164756E2164756E21
@@ -1,4 +1,6 @@
1
1
  @layer cinder.tokens, cinder.foundation, cinder.components, cinder.utilities;
2
+ @import '../input/input.css';
3
+
2
4
  @layer cinder.components {
3
5
  .cinder-confirm-dialog__description {
4
6
  margin: 0;
@@ -87,6 +87,15 @@ Never use "OK" or "Confirm" in production — they don't describe the action.`
87
87
  description: `When true, the confirm button uses variant="danger". The cancel button still
88
88
  receives default focus regardless — color is never the sole destructive signal.`
89
89
  },
90
+ typeToConfirm: {
91
+ type: "string",
92
+ description: `When set, renders a labelled text input and disables the confirm button until the
93
+ trimmed input matches this value case-insensitively.`
94
+ },
95
+ typeToConfirmLabel: {
96
+ type: "string",
97
+ description: 'Visible label for the typed-confirmation input. Defaults to `Type "<value>" to confirm`.'
98
+ },
90
99
  class: {
91
100
  type: "string",
92
101
  description: "Optional extra class on the underlying <Modal>. Destructured as `class: className` per repo convention."
@@ -123,4 +132,4 @@ export {
123
132
  confirm_dialog_schema_default as default
124
133
  };
125
134
 
126
- //# debugId=A7F3FC6EA5DCEDE864756E2164756E21
135
+ //# debugId=9E452C902BC5550F64756E2164756E21
@@ -36,6 +36,13 @@ export type ConfirmDialogProps = {
36
36
  * receives default focus regardless — color is never the sole destructive signal.
37
37
  */
38
38
  destructive?: boolean;
39
+ /**
40
+ * When set, renders a labelled text input and disables the confirm button until the
41
+ * trimmed input matches this value case-insensitively.
42
+ */
43
+ typeToConfirm?: string;
44
+ /** Visible label for the typed-confirmation input. Defaults to `Type "<value>" to confirm`. */
45
+ typeToConfirmLabel?: string;
39
46
  /** Fired when the user activates the confirm button. Required. Component closes itself after. */
40
47
  onconfirm: () => void;
41
48
  /**