@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
@@ -3026,6 +3026,7 @@
3026
3026
  .theme-picker,
3027
3027
  .locale-picker,
3028
3028
  .text-size-picker,
3029
+ .search-picker,
3029
3030
  .share-picker,
3030
3031
  .date-time-picker
3031
3032
  ) {
@@ -3037,6 +3038,7 @@
3037
3038
  .theme-picker-button,
3038
3039
  .locale-picker-button,
3039
3040
  .text-size-picker-button,
3041
+ .search-picker-button,
3040
3042
  .share-picker-button,
3041
3043
  .date-time-picker-button
3042
3044
  ) {
@@ -3072,7 +3074,8 @@
3072
3074
  .locale-picker-icon,
3073
3075
  .text-size-picker-icon,
3074
3076
  .motion-picker-icon,
3075
- .share-picker-icon
3077
+ .share-picker-icon,
3078
+ .search-picker-icon
3076
3079
  ) {
3077
3080
  display: inline-flex;
3078
3081
  align-items: center;
@@ -3151,11 +3154,359 @@
3151
3154
  line-height: 0;
3152
3155
  }
3153
3156
 
3157
+ /* Components added 2026-10-05: kbd-shortcut, show-more, thinking,
3158
+ empty-state, file-tree, one-time-password-input, multi-select, and
3159
+ the four calendar views. The calendar views reuse the
3160
+ calendar-table-* sub-element hooks, so they only need the table
3161
+ root rule. show-more's clamp is keyed on data-expanded (the
3162
+ component never sets an inline style); file-tree hides a closed
3163
+ folder's group via aria-expanded. */
3164
+ :where(.calendar-year-table, .calendar-month-table, .calendar-week-table, .calendar-day-table) {
3165
+ width: 100%;
3166
+ border-collapse: collapse;
3167
+ }
3168
+
3169
+ :where(.kbd-shortcut) {
3170
+ display: inline-flex;
3171
+ align-items: center;
3172
+ gap: var(--lily-space-xs);
3173
+ }
3174
+
3175
+ :where(.kbd-shortcut-key) {
3176
+ display: inline-block;
3177
+ padding: 0.125rem 0.4rem;
3178
+ font-family: var(--lily-font-mono);
3179
+ font-size: 0.85em;
3180
+ background-color: var(--lily-surface-alt);
3181
+ border: var(--border) solid var(--lily-border-strong);
3182
+ border-bottom-width: 2px;
3183
+ border-radius: var(--lily-radius-sm);
3184
+ }
3185
+
3186
+ :where(.show-more-content[data-expanded="false"]) {
3187
+ max-height: 6em;
3188
+ overflow: hidden;
3189
+ }
3190
+
3191
+ :where(.show-more-button) {
3192
+ margin-block-start: var(--lily-space-xs);
3193
+ padding: var(--lily-space-xs);
3194
+ font: inherit;
3195
+ color: inherit;
3196
+ text-decoration: underline;
3197
+ background: none;
3198
+ border: 0;
3199
+ cursor: pointer;
3200
+ }
3201
+
3202
+ :where(.thinking) {
3203
+ padding: var(--lily-space-xs) var(--lily-space-sm);
3204
+ color: var(--lily-text-muted);
3205
+ border: var(--border) solid var(--lily-border-strong);
3206
+ border-radius: var(--lily-radius-md);
3207
+ }
3208
+
3209
+ :where(.thinking-summary) {
3210
+ cursor: pointer;
3211
+ }
3212
+
3213
+ :where(.thinking[data-streaming] .thinking-summary) {
3214
+ font-style: italic;
3215
+ }
3216
+
3217
+ :where(.empty-state) {
3218
+ padding: var(--lily-space-lg);
3219
+ text-align: center;
3220
+ color: var(--lily-text-muted);
3221
+ }
3222
+
3223
+ :where(.file-tree, .file-tree [role="group"]) {
3224
+ margin: 0;
3225
+ padding-inline-start: 0;
3226
+ list-style: none;
3227
+ }
3228
+
3229
+ :where(.file-tree [role="group"]) {
3230
+ padding-inline-start: var(--lily-space-md);
3231
+ }
3232
+
3233
+ :where(.file-tree [role="treeitem"]) {
3234
+ padding: var(--lily-space-xs) var(--lily-space-sm);
3235
+ cursor: pointer;
3236
+ }
3237
+
3238
+ :where(.file-tree [role="treeitem"][aria-expanded="false"] > [role="group"]) {
3239
+ display: none;
3240
+ }
3241
+
3242
+ :where(.file-tree [role="treeitem"]:focus-visible) {
3243
+ outline: var(--lily-focus-ring);
3244
+ outline-offset: -2px;
3245
+ }
3246
+
3247
+ :where(.one-time-password-input, .multi-select, .multi-select-with-extras select) {
3248
+ padding: var(--lily-space-xs) var(--lily-space-sm);
3249
+ font: inherit;
3250
+ color: var(--lily-text);
3251
+ background-color: var(--lily-surface);
3252
+ border: var(--border) solid var(--lily-border-strong);
3253
+ border-radius: var(--lily-radius-sm);
3254
+ }
3255
+
3256
+ :where(.one-time-password-input) {
3257
+ font-family: var(--lily-font-mono);
3258
+ letter-spacing: 0.25em;
3259
+ }
3260
+
3261
+ /* Chart containers added 2026-10-05 (gauge, heatmap, radar, sankey, pie,
3262
+ ring, funnel, candlestick, composed, choropleth, sunburst) join the
3263
+ existing five as block figures. Every chart's optional data-table
3264
+ wrapper sits below the graphic; the table itself inherits the
3265
+ catalog's table styling. */
3266
+ :where(
3267
+ .gauge-chart,
3268
+ .heatmap-chart,
3269
+ .radar-chart,
3270
+ .sankey-chart,
3271
+ .pie-chart,
3272
+ .ring-chart,
3273
+ .funnel-chart,
3274
+ .candlestick-chart,
3275
+ .composed-chart,
3276
+ .choropleth-chart,
3277
+ .sunburst-chart
3278
+ ) {
3279
+ display: block;
3280
+ margin: 0;
3281
+ }
3282
+
3283
+ :where(
3284
+ .area-chart-data-table,
3285
+ .bar-chart-data-table,
3286
+ .column-chart-data-table,
3287
+ .line-chart-data-table,
3288
+ .scatter-chart-data-table,
3289
+ .gauge-chart-data-table,
3290
+ .heatmap-chart-data-table,
3291
+ .radar-chart-data-table,
3292
+ .sankey-chart-data-table,
3293
+ .pie-chart-data-table,
3294
+ .ring-chart-data-table,
3295
+ .funnel-chart-data-table,
3296
+ .candlestick-chart-data-table,
3297
+ .composed-chart-data-table,
3298
+ .choropleth-chart-data-table,
3299
+ .sunburst-chart-data-table
3300
+ ) {
3301
+ margin-block-start: var(--lily-space-sm);
3302
+ overflow-x: auto;
3303
+ }
3304
+
3305
+ /* tool-call (2026-10-05): a bordered disclosure; the status word sits next
3306
+ to the name in the summary and is never the only cue. [data-status] is
3307
+ the consumer hook for a spinner or icon. */
3308
+ :where(.tool-call) {
3309
+ border: var(--border) solid var(--lily-border-strong);
3310
+ border-radius: var(--lily-radius-md);
3311
+ background-color: var(--lily-surface);
3312
+ color: var(--lily-text);
3313
+ }
3314
+
3315
+ :where(.tool-call-summary) {
3316
+ display: flex;
3317
+ align-items: center;
3318
+ gap: var(--lily-space-sm);
3319
+ padding: var(--lily-space-xs) var(--lily-space-sm);
3320
+ cursor: pointer;
3321
+ }
3322
+
3323
+ :where(.tool-call-content) {
3324
+ display: grid;
3325
+ gap: var(--lily-space-xs);
3326
+ padding: var(--lily-space-xs) var(--lily-space-sm);
3327
+ border-block-start: var(--border) solid var(--lily-border-strong);
3328
+ }
3329
+
3330
+ :where(.tool-call-name) {
3331
+ font-family: var(--lily-font-mono);
3332
+ }
3333
+
3334
+ :where(.tool-call-status) {
3335
+ color: var(--lily-text-muted);
3336
+ }
3337
+
3338
+ :where(.tool-call-input pre, .tool-call-output pre) {
3339
+ margin: 0;
3340
+ overflow-x: auto;
3341
+ font-family: var(--lily-font-mono);
3342
+ }
3343
+
3344
+ :where(.tool-call-error) {
3345
+ padding: var(--lily-space-xs) var(--lily-space-sm);
3346
+ border: var(--border) solid var(--lily-border-strong);
3347
+ border-radius: var(--lily-radius-sm);
3348
+ font-weight: 600;
3349
+ }
3350
+
3351
+ /* mark (2026-10-05): the native <mark> highlight. The UA default is a
3352
+ fixed yellow; this uses the theme's own surface and text tokens so the
3353
+ pair keeps its contrast in every theme (including dark ones). */
3354
+ :where(.mark) {
3355
+ padding-inline: 0.15em;
3356
+ color: var(--lily-text);
3357
+ background-color: var(--lily-surface-alt);
3358
+ border-radius: var(--lily-radius-sm);
3359
+ box-shadow: 0 0 0 1px var(--lily-border-strong);
3360
+ }
3361
+
3362
+ /* chat-composer (2026-10-05): one row, textarea growing, one button. The
3363
+ button's visible word is its accessible name — hide it visually, never
3364
+ with display:none, if you replace it with an icon. */
3365
+ :where(.chat-composer) {
3366
+ display: flex;
3367
+ align-items: flex-end;
3368
+ gap: var(--lily-space-xs);
3369
+ }
3370
+
3371
+ :where(.chat-composer-input) {
3372
+ flex: 1;
3373
+ padding: var(--lily-space-xs) var(--lily-space-sm);
3374
+ font: inherit;
3375
+ color: var(--lily-text);
3376
+ background-color: var(--lily-surface);
3377
+ border: var(--border) solid var(--lily-border-strong);
3378
+ border-radius: var(--lily-radius-md);
3379
+ resize: none;
3380
+ }
3381
+
3382
+ :where(.chat-composer-button) {
3383
+ min-width: 2.5rem;
3384
+ min-height: 2.5rem;
3385
+ padding: var(--lily-space-xs) var(--lily-space-sm);
3386
+ font: inherit;
3387
+ color: var(--lily-text);
3388
+ background-color: var(--lily-surface);
3389
+ border: var(--border) solid var(--lily-border-strong);
3390
+ border-radius: var(--lily-radius-md);
3391
+ cursor: pointer;
3392
+ }
3393
+
3394
+ :where(.chat-composer-button:disabled) {
3395
+ cursor: not-allowed;
3396
+ opacity: 0.6;
3397
+ }
3398
+
3399
+ /* Picker tooltips (added 2026-10-04): a visual-only role="tooltip"
3400
+ element beside each picker's icon button, holding the same text as
3401
+ its aria-label. The component toggles [hidden]; position and look
3402
+ are here. It sits just below the button, in the inverse of the
3403
+ page colours so it never disappears into the surface. A ::before
3404
+ strip bridges the gap to the button so the pointer can travel onto
3405
+ the tooltip without it closing (WCAG 1.4.13, hoverable). */
3406
+ :where(.motion-picker) {
3407
+ position: relative;
3408
+ display: inline-block;
3409
+ }
3410
+
3411
+ :where(
3412
+ .theme-picker-tooltip,
3413
+ .locale-picker-tooltip,
3414
+ .text-size-picker-tooltip,
3415
+ .motion-picker-tooltip,
3416
+ .share-picker-tooltip,
3417
+ .search-picker-tooltip,
3418
+ .date-time-picker-tooltip
3419
+ ) {
3420
+ position: absolute;
3421
+ z-index: 11;
3422
+ inset-inline-start: 0;
3423
+ inset-block-start: 100%;
3424
+ margin-block-start: var(--lily-space-xs);
3425
+ padding: var(--lily-space-xs) var(--lily-space-sm);
3426
+ font-size: 0.875em;
3427
+ line-height: 1.3;
3428
+ white-space: nowrap;
3429
+ color: var(--lily-surface);
3430
+ background-color: var(--lily-text);
3431
+ border-radius: var(--lily-radius-sm);
3432
+ box-shadow: var(--lily-shadow-md);
3433
+ }
3434
+
3435
+ :where(
3436
+ .theme-picker-tooltip,
3437
+ .locale-picker-tooltip,
3438
+ .text-size-picker-tooltip,
3439
+ .motion-picker-tooltip,
3440
+ .share-picker-tooltip,
3441
+ .search-picker-tooltip,
3442
+ .date-time-picker-tooltip
3443
+ )::before {
3444
+ content: "";
3445
+ position: absolute;
3446
+ inset-inline: 0;
3447
+ inset-block-end: 100%;
3448
+ height: var(--lily-space-xs);
3449
+ }
3450
+
3451
+ :where(
3452
+ .theme-picker-tooltip,
3453
+ .locale-picker-tooltip,
3454
+ .text-size-picker-tooltip,
3455
+ .motion-picker-tooltip,
3456
+ .share-picker-tooltip,
3457
+ .search-picker-tooltip,
3458
+ .date-time-picker-tooltip
3459
+ )[hidden] {
3460
+ display: none;
3461
+ }
3462
+
3463
+ /* search-picker's panel holds a search form rather than a list: the
3464
+ field and the ⏎ submit button sit in one row, the button at the
3465
+ field's inline end (right in LTR, left under dir="rtl"). The ⏎
3466
+ button matches the picker trigger buttons' size and border. */
3467
+ :where(.search-picker-form) {
3468
+ display: flex;
3469
+ align-items: stretch;
3470
+ gap: var(--lily-space-xs);
3471
+ margin: 0;
3472
+ }
3473
+
3474
+ :where(.search-picker-input) {
3475
+ min-width: 14rem;
3476
+ padding: var(--lily-space-xs) var(--lily-space-sm);
3477
+ font: inherit;
3478
+ color: var(--lily-text);
3479
+ background-color: var(--lily-surface);
3480
+ border: var(--border) solid var(--lily-border-strong);
3481
+ border-radius: var(--lily-radius-sm);
3482
+ }
3483
+
3484
+ :where(.search-picker-submit) {
3485
+ display: inline-flex;
3486
+ align-items: center;
3487
+ justify-content: center;
3488
+ min-width: 2.5rem;
3489
+ min-height: 2.5rem;
3490
+ padding: var(--lily-space-xs);
3491
+ font: inherit;
3492
+ line-height: 1;
3493
+ color: var(--lily-text);
3494
+ background-color: var(--lily-surface);
3495
+ border: var(--border) solid var(--lily-border-strong);
3496
+ border-radius: var(--lily-radius-md);
3497
+ cursor: pointer;
3498
+ }
3499
+
3500
+ :where(.search-picker-submit:hover) {
3501
+ background-color: var(--lily-surface-alt);
3502
+ }
3503
+
3154
3504
  :where(
3155
3505
  .theme-picker-list,
3156
3506
  .locale-picker-list,
3157
3507
  .text-size-picker-list,
3158
- .share-picker-list
3508
+ .share-picker-list,
3509
+ .search-picker-panel
3159
3510
  ) {
3160
3511
  position: absolute;
3161
3512
  z-index: 10;
@@ -3179,7 +3530,8 @@
3179
3530
  .theme-picker-list,
3180
3531
  .locale-picker-list,
3181
3532
  .text-size-picker-list,
3182
- .share-picker-list
3533
+ .share-picker-list,
3534
+ .search-picker-panel
3183
3535
  )[hidden] {
3184
3536
  display: none;
3185
3537
  }