@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
@@ -2110,6 +2110,7 @@
2110
2110
  .theme-picker,
2111
2111
  .locale-picker,
2112
2112
  .text-size-picker,
2113
+ .search-picker,
2113
2114
  .share-picker,
2114
2115
  .date-time-picker
2115
2116
  ) {
@@ -2121,6 +2122,7 @@
2121
2122
  .theme-picker-button,
2122
2123
  .locale-picker-button,
2123
2124
  .text-size-picker-button,
2125
+ .search-picker-button,
2124
2126
  .share-picker-button,
2125
2127
  .date-time-picker-button
2126
2128
  ) {
@@ -2156,7 +2158,8 @@
2156
2158
  .locale-picker-icon,
2157
2159
  .text-size-picker-icon,
2158
2160
  .motion-picker-icon,
2159
- .share-picker-icon
2161
+ .share-picker-icon,
2162
+ .search-picker-icon
2160
2163
  ) {
2161
2164
  display: inline-flex;
2162
2165
  align-items: center;
@@ -2235,11 +2238,359 @@
2235
2238
  line-height: 0;
2236
2239
  }
2237
2240
 
2241
+ /* Components added 2026-10-05: kbd-shortcut, show-more, thinking,
2242
+ empty-state, file-tree, one-time-password-input, multi-select, and
2243
+ the four calendar views. The calendar views reuse the
2244
+ calendar-table-* sub-element hooks, so they only need the table
2245
+ root rule. show-more's clamp is keyed on data-expanded (the
2246
+ component never sets an inline style); file-tree hides a closed
2247
+ folder's group via aria-expanded. */
2248
+ :where(.calendar-year-table, .calendar-month-table, .calendar-week-table, .calendar-day-table) {
2249
+ width: 100%;
2250
+ border-collapse: collapse;
2251
+ }
2252
+
2253
+ :where(.kbd-shortcut) {
2254
+ display: inline-flex;
2255
+ align-items: center;
2256
+ gap: var(--lily-space-xs);
2257
+ }
2258
+
2259
+ :where(.kbd-shortcut-key) {
2260
+ display: inline-block;
2261
+ padding: 0.125rem 0.4rem;
2262
+ font-family: var(--lily-font-mono);
2263
+ font-size: 0.85em;
2264
+ background-color: var(--lily-surface-alt);
2265
+ border: var(--border) solid var(--lily-border-strong);
2266
+ border-bottom-width: 2px;
2267
+ border-radius: var(--lily-radius-sm);
2268
+ }
2269
+
2270
+ :where(.show-more-content[data-expanded="false"]) {
2271
+ max-height: 6em;
2272
+ overflow: hidden;
2273
+ }
2274
+
2275
+ :where(.show-more-button) {
2276
+ margin-block-start: var(--lily-space-xs);
2277
+ padding: var(--lily-space-xs);
2278
+ font: inherit;
2279
+ color: inherit;
2280
+ text-decoration: underline;
2281
+ background: none;
2282
+ border: 0;
2283
+ cursor: pointer;
2284
+ }
2285
+
2286
+ :where(.thinking) {
2287
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2288
+ color: var(--lily-text-muted);
2289
+ border: var(--border) solid var(--lily-border-strong);
2290
+ border-radius: var(--lily-radius-md);
2291
+ }
2292
+
2293
+ :where(.thinking-summary) {
2294
+ cursor: pointer;
2295
+ }
2296
+
2297
+ :where(.thinking[data-streaming] .thinking-summary) {
2298
+ font-style: italic;
2299
+ }
2300
+
2301
+ :where(.empty-state) {
2302
+ padding: var(--lily-space-lg);
2303
+ text-align: center;
2304
+ color: var(--lily-text-muted);
2305
+ }
2306
+
2307
+ :where(.file-tree, .file-tree [role="group"]) {
2308
+ margin: 0;
2309
+ padding-inline-start: 0;
2310
+ list-style: none;
2311
+ }
2312
+
2313
+ :where(.file-tree [role="group"]) {
2314
+ padding-inline-start: var(--lily-space-md);
2315
+ }
2316
+
2317
+ :where(.file-tree [role="treeitem"]) {
2318
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2319
+ cursor: pointer;
2320
+ }
2321
+
2322
+ :where(.file-tree [role="treeitem"][aria-expanded="false"] > [role="group"]) {
2323
+ display: none;
2324
+ }
2325
+
2326
+ :where(.file-tree [role="treeitem"]:focus-visible) {
2327
+ outline: var(--lily-focus-ring);
2328
+ outline-offset: -2px;
2329
+ }
2330
+
2331
+ :where(.one-time-password-input, .multi-select, .multi-select-with-extras select) {
2332
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2333
+ font: inherit;
2334
+ color: var(--lily-text);
2335
+ background-color: var(--lily-surface);
2336
+ border: var(--border) solid var(--lily-border-strong);
2337
+ border-radius: var(--lily-radius-sm);
2338
+ }
2339
+
2340
+ :where(.one-time-password-input) {
2341
+ font-family: var(--lily-font-mono);
2342
+ letter-spacing: 0.25em;
2343
+ }
2344
+
2345
+ /* Chart containers added 2026-10-05 (gauge, heatmap, radar, sankey, pie,
2346
+ ring, funnel, candlestick, composed, choropleth, sunburst) join the
2347
+ existing five as block figures. Every chart's optional data-table
2348
+ wrapper sits below the graphic; the table itself inherits the
2349
+ catalog's table styling. */
2350
+ :where(
2351
+ .gauge-chart,
2352
+ .heatmap-chart,
2353
+ .radar-chart,
2354
+ .sankey-chart,
2355
+ .pie-chart,
2356
+ .ring-chart,
2357
+ .funnel-chart,
2358
+ .candlestick-chart,
2359
+ .composed-chart,
2360
+ .choropleth-chart,
2361
+ .sunburst-chart
2362
+ ) {
2363
+ display: block;
2364
+ margin: 0;
2365
+ }
2366
+
2367
+ :where(
2368
+ .area-chart-data-table,
2369
+ .bar-chart-data-table,
2370
+ .column-chart-data-table,
2371
+ .line-chart-data-table,
2372
+ .scatter-chart-data-table,
2373
+ .gauge-chart-data-table,
2374
+ .heatmap-chart-data-table,
2375
+ .radar-chart-data-table,
2376
+ .sankey-chart-data-table,
2377
+ .pie-chart-data-table,
2378
+ .ring-chart-data-table,
2379
+ .funnel-chart-data-table,
2380
+ .candlestick-chart-data-table,
2381
+ .composed-chart-data-table,
2382
+ .choropleth-chart-data-table,
2383
+ .sunburst-chart-data-table
2384
+ ) {
2385
+ margin-block-start: var(--lily-space-sm);
2386
+ overflow-x: auto;
2387
+ }
2388
+
2389
+ /* tool-call (2026-10-05): a bordered disclosure; the status word sits next
2390
+ to the name in the summary and is never the only cue. [data-status] is
2391
+ the consumer hook for a spinner or icon. */
2392
+ :where(.tool-call) {
2393
+ border: var(--border) solid var(--lily-border-strong);
2394
+ border-radius: var(--lily-radius-md);
2395
+ background-color: var(--lily-surface);
2396
+ color: var(--lily-text);
2397
+ }
2398
+
2399
+ :where(.tool-call-summary) {
2400
+ display: flex;
2401
+ align-items: center;
2402
+ gap: var(--lily-space-sm);
2403
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2404
+ cursor: pointer;
2405
+ }
2406
+
2407
+ :where(.tool-call-content) {
2408
+ display: grid;
2409
+ gap: var(--lily-space-xs);
2410
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2411
+ border-block-start: var(--border) solid var(--lily-border-strong);
2412
+ }
2413
+
2414
+ :where(.tool-call-name) {
2415
+ font-family: var(--lily-font-mono);
2416
+ }
2417
+
2418
+ :where(.tool-call-status) {
2419
+ color: var(--lily-text-muted);
2420
+ }
2421
+
2422
+ :where(.tool-call-input pre, .tool-call-output pre) {
2423
+ margin: 0;
2424
+ overflow-x: auto;
2425
+ font-family: var(--lily-font-mono);
2426
+ }
2427
+
2428
+ :where(.tool-call-error) {
2429
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2430
+ border: var(--border) solid var(--lily-border-strong);
2431
+ border-radius: var(--lily-radius-sm);
2432
+ font-weight: 600;
2433
+ }
2434
+
2435
+ /* mark (2026-10-05): the native <mark> highlight. The UA default is a
2436
+ fixed yellow; this uses the theme's own surface and text tokens so the
2437
+ pair keeps its contrast in every theme (including dark ones). */
2438
+ :where(.mark) {
2439
+ padding-inline: 0.15em;
2440
+ color: var(--lily-text);
2441
+ background-color: var(--lily-surface-alt);
2442
+ border-radius: var(--lily-radius-sm);
2443
+ box-shadow: 0 0 0 1px var(--lily-border-strong);
2444
+ }
2445
+
2446
+ /* chat-composer (2026-10-05): one row, textarea growing, one button. The
2447
+ button's visible word is its accessible name — hide it visually, never
2448
+ with display:none, if you replace it with an icon. */
2449
+ :where(.chat-composer) {
2450
+ display: flex;
2451
+ align-items: flex-end;
2452
+ gap: var(--lily-space-xs);
2453
+ }
2454
+
2455
+ :where(.chat-composer-input) {
2456
+ flex: 1;
2457
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2458
+ font: inherit;
2459
+ color: var(--lily-text);
2460
+ background-color: var(--lily-surface);
2461
+ border: var(--border) solid var(--lily-border-strong);
2462
+ border-radius: var(--lily-radius-md);
2463
+ resize: none;
2464
+ }
2465
+
2466
+ :where(.chat-composer-button) {
2467
+ min-width: 2.5rem;
2468
+ min-height: 2.5rem;
2469
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2470
+ font: inherit;
2471
+ color: var(--lily-text);
2472
+ background-color: var(--lily-surface);
2473
+ border: var(--border) solid var(--lily-border-strong);
2474
+ border-radius: var(--lily-radius-md);
2475
+ cursor: pointer;
2476
+ }
2477
+
2478
+ :where(.chat-composer-button:disabled) {
2479
+ cursor: not-allowed;
2480
+ opacity: 0.6;
2481
+ }
2482
+
2483
+ /* Picker tooltips (added 2026-10-04): a visual-only role="tooltip"
2484
+ element beside each picker's icon button, holding the same text as
2485
+ its aria-label. The component toggles [hidden]; position and look
2486
+ are here. It sits just below the button, in the inverse of the
2487
+ page colours so it never disappears into the surface. A ::before
2488
+ strip bridges the gap to the button so the pointer can travel onto
2489
+ the tooltip without it closing (WCAG 1.4.13, hoverable). */
2490
+ :where(.motion-picker) {
2491
+ position: relative;
2492
+ display: inline-block;
2493
+ }
2494
+
2495
+ :where(
2496
+ .theme-picker-tooltip,
2497
+ .locale-picker-tooltip,
2498
+ .text-size-picker-tooltip,
2499
+ .motion-picker-tooltip,
2500
+ .share-picker-tooltip,
2501
+ .search-picker-tooltip,
2502
+ .date-time-picker-tooltip
2503
+ ) {
2504
+ position: absolute;
2505
+ z-index: 11;
2506
+ inset-inline-start: 0;
2507
+ inset-block-start: 100%;
2508
+ margin-block-start: var(--lily-space-xs);
2509
+ padding: var(--lily-space-xs) var(--lily-space-sm);
2510
+ font-size: 0.875em;
2511
+ line-height: 1.3;
2512
+ white-space: nowrap;
2513
+ color: var(--lily-surface);
2514
+ background-color: var(--lily-text);
2515
+ border-radius: var(--lily-radius-sm);
2516
+ box-shadow: var(--lily-shadow-md);
2517
+ }
2518
+
2519
+ :where(
2520
+ .theme-picker-tooltip,
2521
+ .locale-picker-tooltip,
2522
+ .text-size-picker-tooltip,
2523
+ .motion-picker-tooltip,
2524
+ .share-picker-tooltip,
2525
+ .search-picker-tooltip,
2526
+ .date-time-picker-tooltip
2527
+ )::before {
2528
+ content: "";
2529
+ position: absolute;
2530
+ inset-inline: 0;
2531
+ inset-block-end: 100%;
2532
+ height: var(--lily-space-xs);
2533
+ }
2534
+
2535
+ :where(
2536
+ .theme-picker-tooltip,
2537
+ .locale-picker-tooltip,
2538
+ .text-size-picker-tooltip,
2539
+ .motion-picker-tooltip,
2540
+ .share-picker-tooltip,
2541
+ .search-picker-tooltip,
2542
+ .date-time-picker-tooltip
2543
+ )[hidden] {
2544
+ display: none;
2545
+ }
2546
+
2547
+ /* search-picker's panel holds a search form rather than a list: the
2548
+ field and the ⏎ submit button sit in one row, the button at the
2549
+ field's inline end (right in LTR, left under dir="rtl"). The ⏎
2550
+ button matches the picker trigger buttons' size and border. */
2551
+ :where(.search-picker-form) {
2552
+ display: flex;
2553
+ align-items: stretch;
2554
+ gap: var(--lily-space-xs);
2555
+ margin: 0;
2556
+ }
2557
+
2558
+ :where(.search-picker-input) {
2559
+ min-width: 14rem;
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-sm);
2566
+ }
2567
+
2568
+ :where(.search-picker-submit) {
2569
+ display: inline-flex;
2570
+ align-items: center;
2571
+ justify-content: center;
2572
+ min-width: 2.5rem;
2573
+ min-height: 2.5rem;
2574
+ padding: var(--lily-space-xs);
2575
+ font: inherit;
2576
+ line-height: 1;
2577
+ color: var(--lily-text);
2578
+ background-color: var(--lily-surface);
2579
+ border: var(--border) solid var(--lily-border-strong);
2580
+ border-radius: var(--lily-radius-md);
2581
+ cursor: pointer;
2582
+ }
2583
+
2584
+ :where(.search-picker-submit:hover) {
2585
+ background-color: var(--lily-surface-alt);
2586
+ }
2587
+
2238
2588
  :where(
2239
2589
  .theme-picker-list,
2240
2590
  .locale-picker-list,
2241
2591
  .text-size-picker-list,
2242
- .share-picker-list
2592
+ .share-picker-list,
2593
+ .search-picker-panel
2243
2594
  ) {
2244
2595
  position: absolute;
2245
2596
  z-index: 10;
@@ -2263,7 +2614,8 @@
2263
2614
  .theme-picker-list,
2264
2615
  .locale-picker-list,
2265
2616
  .text-size-picker-list,
2266
- .share-picker-list
2617
+ .share-picker-list,
2618
+ .search-picker-panel
2267
2619
  )[hidden] {
2268
2620
  display: none;
2269
2621
  }