@lilydesignsystem/themes 0.1.0 → 0.2.0

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/dist/abyss.css +355 -3
  2. package/dist/acid.css +355 -3
  3. package/dist/adobe-spectrum.css +355 -3
  4. package/dist/aqua.css +355 -3
  5. package/dist/autumn.css +355 -3
  6. package/dist/black.css +355 -3
  7. package/dist/bumblebee.css +355 -3
  8. package/dist/business.css +355 -3
  9. package/dist/caramellatte.css +355 -3
  10. package/dist/cmyk.css +355 -3
  11. package/dist/coffee.css +355 -3
  12. package/dist/corporate.css +355 -3
  13. package/dist/cupcake.css +355 -3
  14. package/dist/cyberpunk.css +355 -3
  15. package/dist/dark.css +355 -3
  16. package/dist/dim.css +355 -3
  17. package/dist/dracula.css +355 -3
  18. package/dist/emerald.css +355 -3
  19. package/dist/fantasy.css +355 -3
  20. package/dist/forest.css +355 -3
  21. package/dist/garden.css +355 -3
  22. package/dist/halloween.css +355 -3
  23. package/dist/lemonade.css +355 -3
  24. package/dist/light.css +355 -3
  25. package/dist/lofi.css +355 -3
  26. package/dist/luxury.css +355 -3
  27. package/dist/mozilla-protocol.css +355 -3
  28. package/dist/night.css +355 -3
  29. package/dist/nord.css +355 -3
  30. package/dist/pastel.css +355 -3
  31. package/dist/retro.css +355 -3
  32. package/dist/silk.css +355 -3
  33. package/dist/sunset.css +355 -3
  34. package/dist/synthwave.css +355 -3
  35. package/dist/united-kingdom-government-digital-service.css +355 -3
  36. package/dist/united-kingdom-national-health-service-england-for-patients.css +355 -3
  37. package/dist/united-kingdom-national-health-service-england-for-practitioners.css +355 -3
  38. package/dist/united-kingdom-national-health-service-scotland-for-patients.css +355 -3
  39. package/dist/united-kingdom-national-health-service-scotland-for-practitioners.css +355 -3
  40. package/dist/united-kingdom-national-health-service-wales-for-patients.css +355 -3
  41. package/dist/united-kingdom-national-health-service-wales-for-practitioners.css +355 -3
  42. package/dist/united-states-web-design-system.css +355 -3
  43. package/dist/valentine.css +355 -3
  44. package/dist/winter.css +355 -3
  45. package/dist/wireframe.css +355 -3
  46. package/package.json +1 -1
@@ -2213,6 +2213,7 @@
2213
2213
  .theme-picker,
2214
2214
  .locale-picker,
2215
2215
  .text-size-picker,
2216
+ .search-picker,
2216
2217
  .share-picker,
2217
2218
  .date-time-picker
2218
2219
  ) {
@@ -2224,6 +2225,7 @@
2224
2225
  .theme-picker-button,
2225
2226
  .locale-picker-button,
2226
2227
  .text-size-picker-button,
2228
+ .search-picker-button,
2227
2229
  .share-picker-button,
2228
2230
  .date-time-picker-button
2229
2231
  ) {
@@ -2259,7 +2261,8 @@
2259
2261
  .locale-picker-icon,
2260
2262
  .text-size-picker-icon,
2261
2263
  .motion-picker-icon,
2262
- .share-picker-icon
2264
+ .share-picker-icon,
2265
+ .search-picker-icon
2263
2266
  ) {
2264
2267
  display: inline-flex;
2265
2268
  align-items: center;
@@ -2338,11 +2341,359 @@
2338
2341
  line-height: 0;
2339
2342
  }
2340
2343
 
2344
+ /* Components added 2026-10-05: kbd-shortcut, show-more, thinking,
2345
+ empty-state, file-tree, one-time-password-input, multi-select, and
2346
+ the four calendar views. The calendar views reuse the
2347
+ calendar-table-* sub-element hooks, so they only need the table
2348
+ root rule. show-more's clamp is keyed on data-expanded (the
2349
+ component never sets an inline style); file-tree hides a closed
2350
+ folder's group via aria-expanded. */
2351
+ :where(.calendar-year-table, .calendar-month-table, .calendar-week-table, .calendar-day-table) {
2352
+ width: 100%;
2353
+ border-collapse: collapse;
2354
+ }
2355
+
2356
+ :where(.kbd-shortcut) {
2357
+ display: inline-flex;
2358
+ align-items: center;
2359
+ gap: var(--lily-space-xs);
2360
+ }
2361
+
2362
+ :where(.kbd-shortcut-key) {
2363
+ display: inline-block;
2364
+ padding: 0.125rem 0.4rem;
2365
+ font-family: var(--lily-font-mono);
2366
+ font-size: 0.85em;
2367
+ background-color: var(--lily-surface-alt);
2368
+ border: var(--border) solid var(--lily-border-strong);
2369
+ border-bottom-width: 2px;
2370
+ border-radius: var(--lily-radius-sm);
2371
+ }
2372
+
2373
+ :where(.show-more-content[data-expanded="false"]) {
2374
+ max-height: 6em;
2375
+ overflow: hidden;
2376
+ }
2377
+
2378
+ :where(.show-more-button) {
2379
+ margin-block-start: var(--lily-space-xs);
2380
+ padding: var(--lily-space-xs);
2381
+ font: inherit;
2382
+ color: inherit;
2383
+ text-decoration: underline;
2384
+ background: none;
2385
+ border: 0;
2386
+ cursor: pointer;
2387
+ }
2388
+
2389
+ :where(.thinking) {
2390
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2391
+ color: var(--lily-text-muted);
2392
+ border: var(--border) solid var(--lily-border-strong);
2393
+ border-radius: var(--lily-radius-md);
2394
+ }
2395
+
2396
+ :where(.thinking-summary) {
2397
+ cursor: pointer;
2398
+ }
2399
+
2400
+ :where(.thinking[data-streaming] .thinking-summary) {
2401
+ font-style: italic;
2402
+ }
2403
+
2404
+ :where(.empty-state) {
2405
+ padding: var(--lily-space-lg);
2406
+ text-align: center;
2407
+ color: var(--lily-text-muted);
2408
+ }
2409
+
2410
+ :where(.file-tree, .file-tree [role="group"]) {
2411
+ margin: 0;
2412
+ padding-inline-start: 0;
2413
+ list-style: none;
2414
+ }
2415
+
2416
+ :where(.file-tree [role="group"]) {
2417
+ padding-inline-start: var(--lily-space-md);
2418
+ }
2419
+
2420
+ :where(.file-tree [role="treeitem"]) {
2421
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2422
+ cursor: pointer;
2423
+ }
2424
+
2425
+ :where(.file-tree [role="treeitem"][aria-expanded="false"] > [role="group"]) {
2426
+ display: none;
2427
+ }
2428
+
2429
+ :where(.file-tree [role="treeitem"]:focus-visible) {
2430
+ outline: var(--lily-focus-ring);
2431
+ outline-offset: -2px;
2432
+ }
2433
+
2434
+ :where(.one-time-password-input, .multi-select, .multi-select-with-extras select) {
2435
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2436
+ font: inherit;
2437
+ color: var(--lily-text);
2438
+ background-color: var(--lily-surface);
2439
+ border: var(--border) solid var(--lily-border-strong);
2440
+ border-radius: var(--lily-radius-sm);
2441
+ }
2442
+
2443
+ :where(.one-time-password-input) {
2444
+ font-family: var(--lily-font-mono);
2445
+ letter-spacing: 0.25em;
2446
+ }
2447
+
2448
+ /* Chart containers added 2026-10-05 (gauge, heatmap, radar, sankey, pie,
2449
+ ring, funnel, candlestick, composed, choropleth, sunburst) join the
2450
+ existing five as block figures. Every chart's optional data-table
2451
+ wrapper sits below the graphic; the table itself inherits the
2452
+ catalog's table styling. */
2453
+ :where(
2454
+ .gauge-chart,
2455
+ .heatmap-chart,
2456
+ .radar-chart,
2457
+ .sankey-chart,
2458
+ .pie-chart,
2459
+ .ring-chart,
2460
+ .funnel-chart,
2461
+ .candlestick-chart,
2462
+ .composed-chart,
2463
+ .choropleth-chart,
2464
+ .sunburst-chart
2465
+ ) {
2466
+ display: block;
2467
+ margin: 0;
2468
+ }
2469
+
2470
+ :where(
2471
+ .area-chart-data-table,
2472
+ .bar-chart-data-table,
2473
+ .column-chart-data-table,
2474
+ .line-chart-data-table,
2475
+ .scatter-chart-data-table,
2476
+ .gauge-chart-data-table,
2477
+ .heatmap-chart-data-table,
2478
+ .radar-chart-data-table,
2479
+ .sankey-chart-data-table,
2480
+ .pie-chart-data-table,
2481
+ .ring-chart-data-table,
2482
+ .funnel-chart-data-table,
2483
+ .candlestick-chart-data-table,
2484
+ .composed-chart-data-table,
2485
+ .choropleth-chart-data-table,
2486
+ .sunburst-chart-data-table
2487
+ ) {
2488
+ margin-block-start: var(--lily-space-sm);
2489
+ overflow-x: auto;
2490
+ }
2491
+
2492
+ /* tool-call (2026-10-05): a bordered disclosure; the status word sits next
2493
+ to the name in the summary and is never the only cue. [data-status] is
2494
+ the consumer hook for a spinner or icon. */
2495
+ :where(.tool-call) {
2496
+ border: var(--border) solid var(--lily-border-strong);
2497
+ border-radius: var(--lily-radius-md);
2498
+ background-color: var(--lily-surface);
2499
+ color: var(--lily-text);
2500
+ }
2501
+
2502
+ :where(.tool-call-summary) {
2503
+ display: flex;
2504
+ align-items: center;
2505
+ gap: var(--lily-space-sm);
2506
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2507
+ cursor: pointer;
2508
+ }
2509
+
2510
+ :where(.tool-call-content) {
2511
+ display: grid;
2512
+ gap: var(--lily-space-xs);
2513
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2514
+ border-block-start: var(--border) solid var(--lily-border-strong);
2515
+ }
2516
+
2517
+ :where(.tool-call-name) {
2518
+ font-family: var(--lily-font-mono);
2519
+ }
2520
+
2521
+ :where(.tool-call-status) {
2522
+ color: var(--lily-text-muted);
2523
+ }
2524
+
2525
+ :where(.tool-call-input pre, .tool-call-output pre) {
2526
+ margin: 0;
2527
+ overflow-x: auto;
2528
+ font-family: var(--lily-font-mono);
2529
+ }
2530
+
2531
+ :where(.tool-call-error) {
2532
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2533
+ border: var(--border) solid var(--lily-border-strong);
2534
+ border-radius: var(--lily-radius-sm);
2535
+ font-weight: 600;
2536
+ }
2537
+
2538
+ /* mark (2026-10-05): the native <mark> highlight. The UA default is a
2539
+ fixed yellow; this uses the theme's own surface and text tokens so the
2540
+ pair keeps its contrast in every theme (including dark ones). */
2541
+ :where(.mark) {
2542
+ padding-inline: 0.15em;
2543
+ color: var(--lily-text);
2544
+ background-color: var(--lily-surface-alt);
2545
+ border-radius: var(--lily-radius-sm);
2546
+ box-shadow: 0 0 0 1px var(--lily-border-strong);
2547
+ }
2548
+
2549
+ /* chat-composer (2026-10-05): one row, textarea growing, one button. The
2550
+ button's visible word is its accessible name — hide it visually, never
2551
+ with display:none, if you replace it with an icon. */
2552
+ :where(.chat-composer) {
2553
+ display: flex;
2554
+ align-items: flex-end;
2555
+ gap: var(--lily-space-xs);
2556
+ }
2557
+
2558
+ :where(.chat-composer-input) {
2559
+ flex: 1;
2560
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2561
+ font: inherit;
2562
+ color: var(--lily-text);
2563
+ background-color: var(--lily-surface);
2564
+ border: var(--border) solid var(--lily-border-strong);
2565
+ border-radius: var(--lily-radius-md);
2566
+ resize: none;
2567
+ }
2568
+
2569
+ :where(.chat-composer-button) {
2570
+ min-width: 2.5rem;
2571
+ min-height: 2.5rem;
2572
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2573
+ font: inherit;
2574
+ color: var(--lily-text);
2575
+ background-color: var(--lily-surface);
2576
+ border: var(--border) solid var(--lily-border-strong);
2577
+ border-radius: var(--lily-radius-md);
2578
+ cursor: pointer;
2579
+ }
2580
+
2581
+ :where(.chat-composer-button:disabled) {
2582
+ cursor: not-allowed;
2583
+ opacity: 0.6;
2584
+ }
2585
+
2586
+ /* Picker tooltips (added 2026-10-04): a visual-only role="tooltip"
2587
+ element beside each picker's icon button, holding the same text as
2588
+ its aria-label. The component toggles [hidden]; position and look
2589
+ are here. It sits just below the button, in the inverse of the
2590
+ page colours so it never disappears into the surface. A ::before
2591
+ strip bridges the gap to the button so the pointer can travel onto
2592
+ the tooltip without it closing (WCAG 1.4.13, hoverable). */
2593
+ :where(.motion-picker) {
2594
+ position: relative;
2595
+ display: inline-block;
2596
+ }
2597
+
2598
+ :where(
2599
+ .theme-picker-tooltip,
2600
+ .locale-picker-tooltip,
2601
+ .text-size-picker-tooltip,
2602
+ .motion-picker-tooltip,
2603
+ .share-picker-tooltip,
2604
+ .search-picker-tooltip,
2605
+ .date-time-picker-tooltip
2606
+ ) {
2607
+ position: absolute;
2608
+ z-index: 11;
2609
+ inset-inline-start: 0;
2610
+ inset-block-start: 100%;
2611
+ margin-block-start: var(--lily-space-xs);
2612
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2613
+ font-size: 0.875em;
2614
+ line-height: 1.3;
2615
+ white-space: nowrap;
2616
+ color: var(--lily-surface);
2617
+ background-color: var(--lily-text);
2618
+ border-radius: var(--lily-radius-sm);
2619
+ box-shadow: var(--lily-shadow-md);
2620
+ }
2621
+
2622
+ :where(
2623
+ .theme-picker-tooltip,
2624
+ .locale-picker-tooltip,
2625
+ .text-size-picker-tooltip,
2626
+ .motion-picker-tooltip,
2627
+ .share-picker-tooltip,
2628
+ .search-picker-tooltip,
2629
+ .date-time-picker-tooltip
2630
+ )::before {
2631
+ content: "";
2632
+ position: absolute;
2633
+ inset-inline: 0;
2634
+ inset-block-end: 100%;
2635
+ height: var(--lily-space-xs);
2636
+ }
2637
+
2638
+ :where(
2639
+ .theme-picker-tooltip,
2640
+ .locale-picker-tooltip,
2641
+ .text-size-picker-tooltip,
2642
+ .motion-picker-tooltip,
2643
+ .share-picker-tooltip,
2644
+ .search-picker-tooltip,
2645
+ .date-time-picker-tooltip
2646
+ )[hidden] {
2647
+ display: none;
2648
+ }
2649
+
2650
+ /* search-picker's panel holds a search form rather than a list: the
2651
+ field and the ⏎ submit button sit in one row, the button at the
2652
+ field's inline end (right in LTR, left under dir="rtl"). The ⏎
2653
+ button matches the picker trigger buttons' size and border. */
2654
+ :where(.search-picker-form) {
2655
+ display: flex;
2656
+ align-items: stretch;
2657
+ gap: var(--lily-space-xs);
2658
+ margin: 0;
2659
+ }
2660
+
2661
+ :where(.search-picker-input) {
2662
+ min-width: 14rem;
2663
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2664
+ font: inherit;
2665
+ color: var(--lily-text);
2666
+ background-color: var(--lily-surface);
2667
+ border: var(--border) solid var(--lily-border-strong);
2668
+ border-radius: var(--lily-radius-sm);
2669
+ }
2670
+
2671
+ :where(.search-picker-submit) {
2672
+ display: inline-flex;
2673
+ align-items: center;
2674
+ justify-content: center;
2675
+ min-width: 2.5rem;
2676
+ min-height: 2.5rem;
2677
+ padding: var(--lily-space-xs);
2678
+ font: inherit;
2679
+ line-height: 1;
2680
+ color: var(--lily-text);
2681
+ background-color: var(--lily-surface);
2682
+ border: var(--border) solid var(--lily-border-strong);
2683
+ border-radius: var(--lily-radius-md);
2684
+ cursor: pointer;
2685
+ }
2686
+
2687
+ :where(.search-picker-submit:hover) {
2688
+ background-color: var(--lily-surface-alt);
2689
+ }
2690
+
2341
2691
  :where(
2342
2692
  .theme-picker-list,
2343
2693
  .locale-picker-list,
2344
2694
  .text-size-picker-list,
2345
- .share-picker-list
2695
+ .share-picker-list,
2696
+ .search-picker-panel
2346
2697
  ) {
2347
2698
  position: absolute;
2348
2699
  z-index: 10;
@@ -2366,7 +2717,8 @@
2366
2717
  .theme-picker-list,
2367
2718
  .locale-picker-list,
2368
2719
  .text-size-picker-list,
2369
- .share-picker-list
2720
+ .share-picker-list,
2721
+ .search-picker-panel
2370
2722
  )[hidden] {
2371
2723
  display: none;
2372
2724
  }