jsl-ui 10.0.1 → 10.0.2

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.
@@ -210,7 +210,7 @@ export const gridShowcase: IJSLVNode = {
210
210
  { tag: "details", attr: { class: "usage" }, children: [
211
211
  text("summary", "Grid showcase scope"),
212
212
  text("p", 'NumericFormatter supplies right-aligned cells; NumericFormatter and DateFormatter apply tabular numerals. Set headerCssClass: "right" or "center" explicitly to match a column’s content. Header alignment is never inferred from its formatter.'),
213
- text("p", "These examples use the existing GridComponent constructor, column definitions, editors, and DataView APIs. The default row height is 36 px; rowHeight can retain a different density. Core presentation follows the shared theme and inherits the host's typography. Filter dialogs, menus, and lifecycle behavior are reserved for later steps.")
213
+ text("p", "These examples use the existing GridComponent constructor, column definitions, editors, and DataView APIs. The default row height is 40 px; rowHeight can retain a different density. Column headers fit up to two lines. Core presentation follows the shared theme and inherits the host's typography. Filter dialogs, menus, and lifecycle behavior are reserved for later steps.")
214
214
  ] }
215
215
  ]
216
216
  };
@@ -8,7 +8,42 @@
8
8
  -webkit-font-smoothing: antialiased;
9
9
  }
10
10
 
11
- * { box-sizing: border-box; }
11
+ /* Keep the showcase layout predictable without resetting sizing on library DOM.
12
+ Grid cells and component internals should exercise their own box model. */
13
+ :where(
14
+ .skip-link, .sidebar, .brand, .brand-caption, .brand-mark, .nav-label, .nav-item,
15
+ .nav-number, .nav-icon, .sidebar-note, .status-dot, main, .page-meta, .page-tools,
16
+ .theme-picker, .version, .hero, .eyebrow, .hero-preview, .preview-caption,
17
+ .preview-note, .hero-description, .overview-bar, .overview-label, .overview-stat,
18
+ .sample-grid, .sample-card, .card-heading, .sample-number, .card-description,
19
+ .sample-row, .sample-status, .sample-code, .inline-note, .showcase-icon,
20
+ .format-bold, .format-italic, .format-underline, .sample-divider, .size-row,
21
+ .size-sample, .size-caption, .context-panel, .context-body, .context-eyebrow,
22
+ .context-copy, .context-footer, .count-badge, .usage, .page-footer,
23
+ .component-section, .showcase-dialog-copy, .dialog-summary, .dialog-summary-label,
24
+ .dialog-form-field, .dialog-member, .dialog-member-avatar, .dialog-member-role,
25
+ .dialog-help, .dialog-check, .tabs-example-copy, .tabs-draft-input,
26
+ .tabs-example-check, .tabs-header-badge, .tabs-rich-header, .date-hero-preview,
27
+ .date-showcase-field, .slider-sample, .showcase-slider, .slider-readout,
28
+ .slider-with-tooltip, .slider-orientations, .showcase-slider-vertical,
29
+ .slider-disabled-example, .showcase-calendar, .select-showcase-field,
30
+ .select-hero-preview, .select-person, .select-person-avatar, .select-person-copy,
31
+ .checks-expander-preview, .checkbox-stack, .checkbox-child-list,
32
+ .expander-example-copy, .expander-preview-copy, .expander-rich-header,
33
+ .expander-stack, .expander-custom-icon, .fields-preview, .field-sample,
34
+ .unstyled-input-sample, .showcase-inline-input, .composed-fields,
35
+ .notification-samples, .notification-action-copy, .loading-label-samples,
36
+ .loading-demo, .loading-demo-panel, .navigation-preview,
37
+ .navigation-compact-sample, .navigation-rich-brand, .navigation-brand-mark,
38
+ .remaining-demo, .layout-demo-panel, .tree-demo-content, .grid-samples,
39
+ .grid-sample-card, .grid-sample-host, .format-preview
40
+ ) { box-sizing: border-box; }
41
+
42
+ /* Showcase-owned native controls also keep the page's intended dimensions. */
43
+ .theme-picker select, .dialog-form-field input, .dialog-form-field textarea,
44
+ .dialog-check input, .tabs-draft-input, .tabs-example-check input {
45
+ box-sizing: border-box;
46
+ }
12
47
  body { margin: 0; font-size: 14px; line-height: 1.6; }
13
48
  a { color: inherit; }
14
49
  .skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 5; padding: 0.5rem 1rem; background: var(--jsl-color-surface); }
@@ -219,7 +254,7 @@ h2 { font-size: 14px; font-weight: 600; margin: 0; letter-spacing: -0.15px; }
219
254
  .navigation-brand-mark { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 6px; background: var(--jsl-color-accent); color: var(--jsl-color-on-accent); font-size: 12px; }
220
255
  .remaining-demo { display: flex; flex-direction: column; gap: 20px; margin-top: 24px; }
221
256
  .remaining-demo h3 { margin: 0; font-size: 14px; font-weight: 600; }
222
- .layout-demo-panel { padding: 16px; background: var(--jsl-color-surface); color: var(--jsl-color-text); overflow: auto; height: 100%; box-sizing: border-box; }
257
+ .layout-demo-panel { padding: 16px; background: var(--jsl-color-surface); color: var(--jsl-color-text); overflow: auto; height: 100%; }
223
258
  .layout-demo-panel p { color: var(--jsl-color-text-secondary); font-size: 13px; line-height: 1.6; }
224
259
  .tree-demo-content { display: flex; align-items: center; gap: 8px; }
225
260
  .grid-samples { display: flex; flex-direction: column; gap: 24px; margin: 24px 0; }
@@ -209,9 +209,12 @@ classes should alter those!
209
209
  margin-bottom: 0;
210
210
  display: inline-block;
211
211
  max-width: 100%;
212
+ max-height: 2.4em;
212
213
  overflow: hidden;
213
214
  text-overflow: ellipsis;
214
- vertical-align: top;
215
+ white-space: normal;
216
+ line-height: 1.2;
217
+ vertical-align: middle;
215
218
  }
216
219
  .slick-header-sortable .slick-column-name { max-width: calc(100% - 1.25rem); }
217
220
  .slick-header-column .slick-sort-indicator,
@@ -221,8 +224,8 @@ classes should alter those!
221
224
  position: relative;
222
225
  vertical-align: top;
223
226
  margin: 0 0 0 .375rem;
224
- height: var(--jsl-grid-header-height, 26px);
225
- line-height: var(--jsl-grid-header-height, 26px);
227
+ height: var(--jsl-grid-header-height, 40px);
228
+ line-height: var(--jsl-grid-header-height, 40px);
226
229
  color: var(--jsl-color-accent);
227
230
  }
228
231
  .slick-header-column .slick-sort-indicator { width: .65rem; }
@@ -46,10 +46,10 @@ classes should alter those!
46
46
  float: left;
47
47
  }
48
48
 
49
- /* Column headers are 6px taller; grouped headers retain their existing size. */
49
+ /* Column headers fit up to two lines; grouped headers retain their existing size. */
50
50
  .slick-header-column.ui-state-default {
51
- height: var(--jsl-grid-header-height, 26px);
52
- line-height: var(--jsl-grid-header-height, 26px);
51
+ height: var(--jsl-grid-header-height, 40px);
52
+ line-height: var(--jsl-grid-header-height, 40px);
53
53
  }
54
54
 
55
55
  .slick-footerrow-column.ui-state-default {
@@ -28,7 +28,7 @@ export function SlickGrid(container, data, columns, options) {
28
28
  alwaysShowHorizontalScroll: false,
29
29
  alwaysAllowHorizontalScroll: false,
30
30
  explicitInitialization: false,
31
- rowHeight: 36,
31
+ rowHeight: 40,
32
32
  defaultColumnWidth: 80,
33
33
  enableAddRow: false,
34
34
  leaveSpaceForNewRows: false,
package/lib/grid.css CHANGED
@@ -46,8 +46,8 @@
46
46
  }
47
47
 
48
48
  .slick-header-column.ui-state-default {
49
- height: var(--jsl-grid-header-height, 26px);
50
- line-height: var(--jsl-grid-header-height, 26px);
49
+ height: var(--jsl-grid-header-height, 40px);
50
+ line-height: var(--jsl-grid-header-height, 40px);
51
51
  }
52
52
 
53
53
  .slick-footerrow-column.ui-state-default {
@@ -463,9 +463,12 @@ input.editor-text, textarea.editor-text {
463
463
  .slick-header-column .slick-column-name {
464
464
  float: none;
465
465
  text-overflow: ellipsis;
466
- vertical-align: top;
466
+ white-space: normal;
467
+ vertical-align: middle;
467
468
  max-width: 100%;
469
+ max-height: 2.4em;
468
470
  margin-bottom: 0;
471
+ line-height: 1.2;
469
472
  display: inline-block;
470
473
  overflow: hidden;
471
474
  }
@@ -477,8 +480,8 @@ input.editor-text, textarea.editor-text {
477
480
  .slick-header-column .slick-sort-indicator, .slick-header-column .slick-sort-indicator-numbered {
478
481
  float: none;
479
482
  vertical-align: top;
480
- height: var(--jsl-grid-header-height, 26px);
481
- line-height: var(--jsl-grid-header-height, 26px);
483
+ height: var(--jsl-grid-header-height, 40px);
484
+ line-height: var(--jsl-grid-header-height, 40px);
482
485
  color: var(--jsl-color-accent);
483
486
  margin: 0 0 0 .375rem;
484
487
  display: inline-block;
package/lib/index.css CHANGED
@@ -881,8 +881,8 @@ div.jsl-fill {
881
881
  }
882
882
 
883
883
  .slick-header-column.ui-state-default {
884
- height: var(--jsl-grid-header-height, 26px);
885
- line-height: var(--jsl-grid-header-height, 26px);
884
+ height: var(--jsl-grid-header-height, 40px);
885
+ line-height: var(--jsl-grid-header-height, 40px);
886
886
  }
887
887
 
888
888
  .slick-footerrow-column.ui-state-default {
@@ -1298,9 +1298,12 @@ input.editor-text, textarea.editor-text {
1298
1298
  .slick-header-column .slick-column-name {
1299
1299
  float: none;
1300
1300
  text-overflow: ellipsis;
1301
- vertical-align: top;
1301
+ white-space: normal;
1302
+ vertical-align: middle;
1302
1303
  max-width: 100%;
1304
+ max-height: 2.4em;
1303
1305
  margin-bottom: 0;
1306
+ line-height: 1.2;
1304
1307
  display: inline-block;
1305
1308
  overflow: hidden;
1306
1309
  }
@@ -1312,8 +1315,8 @@ input.editor-text, textarea.editor-text {
1312
1315
  .slick-header-column .slick-sort-indicator, .slick-header-column .slick-sort-indicator-numbered {
1313
1316
  float: none;
1314
1317
  vertical-align: top;
1315
- height: var(--jsl-grid-header-height, 26px);
1316
- line-height: var(--jsl-grid-header-height, 26px);
1318
+ height: var(--jsl-grid-header-height, 40px);
1319
+ line-height: var(--jsl-grid-header-height, 40px);
1317
1320
  color: var(--jsl-color-accent);
1318
1321
  margin: 0 0 0 .375rem;
1319
1322
  display: inline-block;