@gravionlabs/helix-ui 22.2.7 → 22.2.9

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravionlabs/helix-ui",
3
- "version": "22.2.7",
3
+ "version": "22.2.9",
4
4
  "description": "Helix UI: vanilla Angular components on the Helix design tokens — plain CSS, no runtime styling engine.",
5
5
  "license": "MIT",
6
6
  "keywords": [
package/styles.css CHANGED
@@ -1773,6 +1773,63 @@
1773
1773
  justify-content: flex-end;
1774
1774
  }
1775
1775
 
1776
+ /* the filter button of filterDisplay="menu": an icon button beside the label, marked when the column is filtered */
1777
+ .hx-data-table-filter-button {
1778
+ display: inline-flex;
1779
+ flex: none;
1780
+ align-items: center;
1781
+ margin: 0;
1782
+ position: relative;
1783
+ padding: 0.125rem;
1784
+ border: 0;
1785
+ background: transparent;
1786
+ color: var(--h-datatable-sort-icon-color);
1787
+ cursor: pointer;
1788
+ border-radius: 2px;
1789
+ outline-color: transparent;
1790
+ }
1791
+
1792
+ .hx-data-table-filter-icon {
1793
+ display: inline-block;
1794
+ flex: none;
1795
+ width: var(--h-datatable-sort-icon-size);
1796
+ height: var(--h-datatable-sort-icon-size);
1797
+ background: currentcolor;
1798
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16l-6 7.5V19l-4 1.5v-8L4 5Z'/%3E%3C/svg%3E") center/contain no-repeat;
1799
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16l-6 7.5V19l-4 1.5v-8L4 5Z'/%3E%3C/svg%3E") center/contain no-repeat;
1800
+ }
1801
+
1802
+ .hx-data-table-filter-button:hover {
1803
+ color: var(--h-datatable-sort-icon-hover-color);
1804
+ }
1805
+
1806
+ .hx-data-table-filter-button:focus-visible {
1807
+ outline: var(--h-datatable-header-cell-focus-ring-width) var(--h-datatable-header-cell-focus-ring-style) var(--h-datatable-header-cell-focus-ring-color);
1808
+ outline-offset: var(--h-datatable-header-cell-focus-ring-offset);
1809
+ box-shadow: var(--h-datatable-header-cell-focus-ring-shadow);
1810
+ }
1811
+
1812
+ .hx-data-table-filter-button.hx-data-table-filter-active {
1813
+ color: var(--h-datatable-header-cell-selected-color);
1814
+ }
1815
+
1816
+ .hx-data-table-filter-button.hx-data-table-filter-active::after {
1817
+ content: "";
1818
+ position: absolute;
1819
+ top: 0;
1820
+ right: 0;
1821
+ width: 0.375rem;
1822
+ height: 0.375rem;
1823
+ border-radius: 50%;
1824
+ background: currentcolor;
1825
+ }
1826
+
1827
+ .hx-data-table-filter-menu {
1828
+ display: flex;
1829
+ align-items: center;
1830
+ gap: var(--h-datatable-header-cell-gap);
1831
+ }
1832
+
1776
1833
  /* sortable headers: a button that fills the header cell */
1777
1834
  .hx-data-table-sort {
1778
1835
  display: inline-flex;
@@ -2138,7 +2195,8 @@
2138
2195
  .hx-date-picker-disabled .hx-date-picker-month,
2139
2196
  .hx-date-picker-disabled .hx-date-picker-year,
2140
2197
  .hx-date-picker-disabled .hx-date-picker-nav,
2141
- .hx-date-picker-disabled .hx-date-picker-title-button {
2198
+ .hx-date-picker-disabled .hx-date-picker-title-button,
2199
+ .hx-date-picker-disabled .hx-range-preset {
2142
2200
  cursor: default;
2143
2201
  }
2144
2202
 
@@ -2280,7 +2338,7 @@
2280
2338
  cursor: pointer;
2281
2339
  }
2282
2340
 
2283
- .hx-date-picker-button:hover {
2341
+ .hx-date-picker-button:not(:disabled):hover {
2284
2342
  background: var(--h-datepicker-select-month-hover-background);
2285
2343
  }
2286
2344
 
@@ -2288,6 +2346,223 @@
2288
2346
  outline: var(--h-datepicker-date-focus-ring-width) var(--h-datepicker-date-focus-ring-style) var(--h-datepicker-date-focus-ring-color);
2289
2347
  }
2290
2348
 
2349
+ /* range presets (`presets` of a range date picker and of the date-time range picker): a row of buttons or one select */
2350
+ .hx-range-presets {
2351
+ display: flex;
2352
+ flex-wrap: wrap;
2353
+ gap: var(--h-datepicker-title-gap);
2354
+ }
2355
+
2356
+ .hx-range-presets-select {
2357
+ display: block;
2358
+ }
2359
+
2360
+ .hx-range-preset:disabled {
2361
+ cursor: default;
2362
+ }
2363
+
2364
+ /* above the calendar, inside the panel's padding */
2365
+ .hx-date-picker-panel > .hx-range-presets {
2366
+ padding-bottom: var(--h-datepicker-title-gap);
2367
+ }
2368
+
2369
+ /* the message of a refused preset, under the presets */
2370
+ .hx-date-picker-panel > .hx-date-picker-error {
2371
+ margin: 0 0 var(--h-datepicker-title-gap);
2372
+ color: var(--h-inputtext-invalid-border-color);
2373
+ }
2374
+
2375
+ /* date-range-quick-select */
2376
+ /*
2377
+ * DateRangeQuickSelect: `<hx-date-range-quick-select>`. One read-only field with a button (styled by `date-picker.scss`)
2378
+ * and a compact Kibana-style popup: Quick select (Last/Next N unit, Apply), Commonly used, Recently used and one
2379
+ * summary button each for the start and the end, which opens the editor of that side (tabs Absolute / Relative / Now,
2380
+ * the calendar in the Absolute tab); every colour and size comes from the date picker and input tokens.
2381
+ */
2382
+ .hx-date-range-quick-select {
2383
+ display: block;
2384
+ position: relative;
2385
+ }
2386
+
2387
+ .hx-date-range-quick-select .hx-date-range-quick-select-control {
2388
+ display: flex;
2389
+ width: 100%;
2390
+ }
2391
+
2392
+ /* kept compact, about 360px wide; the popup carries the outer border */
2393
+ .hx-date-range-quick-select-popup {
2394
+ display: flex;
2395
+ flex-direction: column;
2396
+ gap: var(--h-datepicker-title-gap);
2397
+ width: 24rem;
2398
+ max-width: calc(100vw - 2rem);
2399
+ overflow: auto;
2400
+ padding: var(--h-datepicker-panel-padding);
2401
+ border: 1px solid var(--h-datepicker-panel-border-color);
2402
+ }
2403
+
2404
+ .hx-date-range-quick-select-section {
2405
+ display: flex;
2406
+ flex-direction: column;
2407
+ gap: var(--h-datepicker-title-gap);
2408
+ }
2409
+
2410
+ .hx-date-range-quick-select-caption {
2411
+ font-weight: var(--h-datepicker-title-font-weight);
2412
+ }
2413
+
2414
+ .hx-date-range-quick-select-row {
2415
+ display: flex;
2416
+ flex-wrap: wrap;
2417
+ align-items: center;
2418
+ gap: var(--h-datepicker-title-gap);
2419
+ }
2420
+
2421
+ .hx-date-range-quick-select-amount {
2422
+ width: 4.5rem;
2423
+ }
2424
+
2425
+ /* the selects keep a readable width */
2426
+ .hx-date-range-quick-select-direction {
2427
+ min-width: 5.5rem;
2428
+ }
2429
+
2430
+ .hx-date-range-quick-select-unit {
2431
+ min-width: 6.5rem;
2432
+ }
2433
+
2434
+ .hx-date-range-quick-select-apply {
2435
+ font-weight: var(--h-datepicker-title-font-weight);
2436
+ }
2437
+
2438
+ /* the other list classes (`-common`, `-recent`) are hooks styled through their parts */
2439
+ .hx-date-range-quick-select-ranges {
2440
+ display: grid;
2441
+ grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
2442
+ margin: 0;
2443
+ padding: 0;
2444
+ list-style: none;
2445
+ }
2446
+
2447
+ .hx-date-range-quick-select-ranges .hx-date-picker-button {
2448
+ width: 100%;
2449
+ text-align: start;
2450
+ }
2451
+
2452
+ /* one line per side: the name above its value */
2453
+ .hx-date-range-quick-select-summary {
2454
+ display: flex;
2455
+ align-items: stretch;
2456
+ gap: var(--h-datepicker-title-gap);
2457
+ }
2458
+
2459
+ .hx-date-range-quick-select-side-line {
2460
+ display: flex;
2461
+ flex: 1 1 0;
2462
+ flex-direction: column;
2463
+ align-items: flex-start;
2464
+ min-width: 0;
2465
+ padding: var(--h-datepicker-select-month-padding);
2466
+ border: 1px solid var(--h-datepicker-panel-border-color);
2467
+ border-radius: var(--h-datepicker-select-month-border-radius);
2468
+ background: transparent;
2469
+ color: inherit;
2470
+ font: inherit;
2471
+ text-align: start;
2472
+ cursor: pointer;
2473
+ }
2474
+
2475
+ .hx-date-range-quick-select-side-line:hover {
2476
+ background: var(--h-datepicker-select-month-hover-background);
2477
+ }
2478
+
2479
+ /* the side whose editor is open */
2480
+ .hx-date-range-quick-select-side-line[aria-expanded=true] {
2481
+ border-color: var(--h-datepicker-date-selected-background);
2482
+ }
2483
+
2484
+ .hx-date-range-quick-select-side-line:focus-visible,
2485
+ .hx-date-range-quick-select-tab:focus-visible,
2486
+ .hx-date-range-quick-select-tabpanel:focus-visible {
2487
+ outline: var(--h-datepicker-date-focus-ring-width) var(--h-datepicker-date-focus-ring-style) var(--h-datepicker-date-focus-ring-color);
2488
+ outline-offset: var(--h-datepicker-date-focus-ring-offset);
2489
+ }
2490
+
2491
+ .hx-date-range-quick-select-side-name {
2492
+ color: var(--h-datepicker-week-day-color);
2493
+ font-weight: var(--h-datepicker-week-day-font-weight);
2494
+ }
2495
+
2496
+ .hx-date-range-quick-select-side-value {
2497
+ max-width: 100%;
2498
+ overflow: hidden;
2499
+ text-overflow: ellipsis;
2500
+ white-space: nowrap;
2501
+ }
2502
+
2503
+ /* the editor of one side: tabs Absolute / Relative / Now; the other classes (`-editor-from`, `-editor-to`,
2504
+ `-side-date`, `-expression`, `-resolved-date`) are hooks styled through their parts */
2505
+ .hx-date-range-quick-select-editor,
2506
+ .hx-date-range-quick-select-tabpanel {
2507
+ display: flex;
2508
+ flex-direction: column;
2509
+ gap: var(--h-datepicker-title-gap);
2510
+ }
2511
+
2512
+ .hx-date-range-quick-select-tabs {
2513
+ display: flex;
2514
+ border-bottom: 1px solid var(--h-datepicker-panel-border-color);
2515
+ }
2516
+
2517
+ .hx-date-range-quick-select-tab {
2518
+ padding: var(--h-datepicker-select-month-padding);
2519
+ border: 0;
2520
+ border-bottom: 2px solid transparent;
2521
+ background: transparent;
2522
+ color: var(--h-datepicker-select-month-color);
2523
+ font: inherit;
2524
+ cursor: pointer;
2525
+ }
2526
+
2527
+ .hx-date-range-quick-select-tab:hover {
2528
+ background: var(--h-datepicker-select-month-hover-background);
2529
+ }
2530
+
2531
+ .hx-date-range-quick-select-tab[aria-selected=true] {
2532
+ border-bottom-color: var(--h-datepicker-date-selected-background);
2533
+ font-weight: var(--h-datepicker-title-font-weight);
2534
+ }
2535
+
2536
+ .hx-date-range-quick-select-side-amount {
2537
+ width: 4.5rem;
2538
+ }
2539
+
2540
+ .hx-date-range-quick-select-side-unit {
2541
+ flex: 1 1 10rem;
2542
+ }
2543
+
2544
+ .hx-date-range-quick-select-side-round {
2545
+ display: flex;
2546
+ align-items: center;
2547
+ gap: var(--h-datepicker-title-gap);
2548
+ }
2549
+
2550
+ .hx-date-range-quick-select-now-hint,
2551
+ .hx-date-range-quick-select-side-resolved {
2552
+ margin: 0;
2553
+ }
2554
+
2555
+ /* the date math of a relative side and the date it resolves to */
2556
+ .hx-date-range-quick-select-side-resolved {
2557
+ color: var(--h-datepicker-week-day-color);
2558
+ }
2559
+
2560
+ /* a range could not be applied */
2561
+ .hx-date-range-quick-select-error {
2562
+ margin: 0;
2563
+ color: var(--h-inputtext-invalid-border-color);
2564
+ }
2565
+
2291
2566
  /* date-time-picker */
2292
2567
  /*
2293
2568
  * DateTimePicker: `<hx-date-time-picker>`. The field, button and popup of the date picker with the calendar and a
@@ -2535,10 +2810,8 @@
2535
2810
  font-weight: var(--h-datepicker-title-font-weight);
2536
2811
  }
2537
2812
 
2538
- .hx-date-time-range-picker-presets {
2539
- display: flex;
2540
- flex-wrap: wrap;
2541
- gap: var(--h-datepicker-title-gap);
2813
+ /* the preset row (`.hx-range-presets`, styled by `date-picker.scss`) at the top of the popup */
2814
+ .hx-date-time-range-picker-popup > .hx-range-presets {
2542
2815
  padding: var(--h-datepicker-panel-padding) var(--h-datepicker-panel-padding) 0;
2543
2816
  }
2544
2817