@indico-data/design-system 2.49.0 → 2.50.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.
package/lib/index.css CHANGED
@@ -4204,124 +4204,124 @@ p,
4204
4204
  border-color: var(--pf-secondary-color-900);
4205
4205
  }
4206
4206
 
4207
- .border-gray {
4208
- border-color: var(--pf-gray-color);
4207
+ .border-tertiary {
4208
+ border-color: var(--pf-tertiary-color);
4209
4209
  }
4210
4210
 
4211
- .border-gray-100 {
4212
- border-color: var(--pf-gray-color-100);
4211
+ .border-tertiary-100 {
4212
+ border-color: var(--pf-tertiary-color-100);
4213
4213
  }
4214
4214
 
4215
- .border-gray-200 {
4216
- border-color: var(--pf-gray-color-200);
4215
+ .border-tertiary-200 {
4216
+ border-color: var(--pf-tertiary-color-200);
4217
4217
  }
4218
4218
 
4219
- .border-gray-300 {
4220
- border-color: var(--pf-gray-color-300);
4219
+ .border-tertiary-300 {
4220
+ border-color: var(--pf-tertiary-color-300);
4221
4221
  }
4222
4222
 
4223
- .border-gray-400 {
4224
- border-color: var(--pf-gray-color-400);
4223
+ .border-tertiary-400 {
4224
+ border-color: var(--pf-tertiary-color-400);
4225
4225
  }
4226
4226
 
4227
- .border-gray-500 {
4228
- border-color: var(--pf-gray-color-500);
4227
+ .border-tertiary-500 {
4228
+ border-color: var(--pf-tertiary-color-500);
4229
4229
  }
4230
4230
 
4231
- .border-gray-600 {
4232
- border-color: var(--pf-gray-color-600);
4231
+ .border-tertiary-600 {
4232
+ border-color: var(--pf-tertiary-color-600);
4233
4233
  }
4234
4234
 
4235
- .border-gray-700 {
4236
- border-color: var(--pf-gray-color-700);
4235
+ .border-tertiary-700 {
4236
+ border-color: var(--pf-tertiary-color-700);
4237
4237
  }
4238
4238
 
4239
- .border-gray-800 {
4240
- border-color: var(--pf-gray-color-800);
4239
+ .border-tertiary-800 {
4240
+ border-color: var(--pf-tertiary-color-800);
4241
4241
  }
4242
4242
 
4243
- .border-gray-900 {
4244
- border-color: var(--pf-gray-color-900);
4243
+ .border-tertiary-900 {
4244
+ border-color: var(--pf-tertiary-color-900);
4245
4245
  }
4246
4246
 
4247
- .border-steel {
4248
- border-color: var(--pf-steel-color);
4247
+ .border-gray {
4248
+ border-color: var(--pf-gray-color);
4249
4249
  }
4250
4250
 
4251
- .border-steel-100 {
4252
- border-color: var(--pf-steel-color-100);
4251
+ .border-gray-100 {
4252
+ border-color: var(--pf-gray-color-100);
4253
4253
  }
4254
4254
 
4255
- .border-steel-200 {
4256
- border-color: var(--pf-steel-color-200);
4255
+ .border-gray-200 {
4256
+ border-color: var(--pf-gray-color-200);
4257
4257
  }
4258
4258
 
4259
- .border-steel-300 {
4260
- border-color: var(--pf-steel-color-300);
4259
+ .border-gray-300 {
4260
+ border-color: var(--pf-gray-color-300);
4261
4261
  }
4262
4262
 
4263
- .border-steel-400 {
4264
- border-color: var(--pf-steel-color-400);
4263
+ .border-gray-400 {
4264
+ border-color: var(--pf-gray-color-400);
4265
4265
  }
4266
4266
 
4267
- .border-steel-500 {
4268
- border-color: var(--pf-steel-color-500);
4267
+ .border-gray-500 {
4268
+ border-color: var(--pf-gray-color-500);
4269
4269
  }
4270
4270
 
4271
- .border-steel-600 {
4272
- border-color: var(--pf-steel-color-600);
4271
+ .border-gray-600 {
4272
+ border-color: var(--pf-gray-color-600);
4273
4273
  }
4274
4274
 
4275
- .border-steel-700 {
4276
- border-color: var(--pf-steel-color-700);
4275
+ .border-gray-700 {
4276
+ border-color: var(--pf-gray-color-700);
4277
4277
  }
4278
4278
 
4279
- .border-steel-800 {
4280
- border-color: var(--pf-steel-color-800);
4279
+ .border-gray-800 {
4280
+ border-color: var(--pf-gray-color-800);
4281
4281
  }
4282
4282
 
4283
- .border-steel-900 {
4284
- border-color: var(--pf-steel-color-900);
4283
+ .border-gray-900 {
4284
+ border-color: var(--pf-gray-color-900);
4285
4285
  }
4286
4286
 
4287
- .border-green {
4288
- border-color: var(--pf-green-color);
4287
+ .border-red {
4288
+ border-color: var(--pf-red-color);
4289
4289
  }
4290
4290
 
4291
- .border-green-100 {
4292
- border-color: var(--pf-green-color-100);
4291
+ .border-red-100 {
4292
+ border-color: var(--pf-red-color-100);
4293
4293
  }
4294
4294
 
4295
- .border-green-200 {
4296
- border-color: var(--pf-green-color-200);
4295
+ .border-red-200 {
4296
+ border-color: var(--pf-red-color-200);
4297
4297
  }
4298
4298
 
4299
- .border-green-300 {
4300
- border-color: var(--pf-green-color-300);
4299
+ .border-red-300 {
4300
+ border-color: var(--pf-red-color-300);
4301
4301
  }
4302
4302
 
4303
- .border-green-400 {
4304
- border-color: var(--pf-green-color-400);
4303
+ .border-red-400 {
4304
+ border-color: var(--pf-red-color-400);
4305
4305
  }
4306
4306
 
4307
- .border-green-500 {
4308
- border-color: var(--pf-green-color-500);
4307
+ .border-red-500 {
4308
+ border-color: var(--pf-red-color-500);
4309
4309
  }
4310
4310
 
4311
- .border-green-600 {
4312
- border-color: var(--pf-green-color-600);
4311
+ .border-red-600 {
4312
+ border-color: var(--pf-red-color-600);
4313
4313
  }
4314
4314
 
4315
- .border-green-700 {
4316
- border-color: var(--pf-green-color-700);
4315
+ .border-red-700 {
4316
+ border-color: var(--pf-red-color-700);
4317
4317
  }
4318
4318
 
4319
- .border-green-800 {
4320
- border-color: var(--pf-green-color-800);
4319
+ .border-red-800 {
4320
+ border-color: var(--pf-red-color-800);
4321
4321
  }
4322
4322
 
4323
- .border-green-900 {
4324
- border-color: var(--pf-green-color-900);
4323
+ .border-red-900 {
4324
+ border-color: var(--pf-red-color-900);
4325
4325
  }
4326
4326
 
4327
4327
  .border-orange {
@@ -4364,44 +4364,124 @@ p,
4364
4364
  border-color: var(--pf-orange-color-900);
4365
4365
  }
4366
4366
 
4367
- .border-red {
4368
- border-color: var(--pf-red-color);
4367
+ .border-yellow {
4368
+ border-color: var(--pf-yellow-color);
4369
4369
  }
4370
4370
 
4371
- .border-red-100 {
4372
- border-color: var(--pf-red-color-100);
4371
+ .border-yellow-100 {
4372
+ border-color: var(--pf-yellow-color-100);
4373
4373
  }
4374
4374
 
4375
- .border-red-200 {
4376
- border-color: var(--pf-red-color-200);
4375
+ .border-yellow-200 {
4376
+ border-color: var(--pf-yellow-color-200);
4377
4377
  }
4378
4378
 
4379
- .border-red-300 {
4380
- border-color: var(--pf-red-color-300);
4379
+ .border-yellow-300 {
4380
+ border-color: var(--pf-yellow-color-300);
4381
4381
  }
4382
4382
 
4383
- .border-red-400 {
4384
- border-color: var(--pf-red-color-400);
4383
+ .border-yellow-400 {
4384
+ border-color: var(--pf-yellow-color-400);
4385
4385
  }
4386
4386
 
4387
- .border-red-500 {
4388
- border-color: var(--pf-red-color-500);
4387
+ .border-yellow-500 {
4388
+ border-color: var(--pf-yellow-color-500);
4389
4389
  }
4390
4390
 
4391
- .border-red-600 {
4392
- border-color: var(--pf-red-color-600);
4391
+ .border-yellow-600 {
4392
+ border-color: var(--pf-yellow-color-600);
4393
4393
  }
4394
4394
 
4395
- .border-red-700 {
4396
- border-color: var(--pf-red-color-700);
4395
+ .border-yellow-700 {
4396
+ border-color: var(--pf-yellow-color-700);
4397
4397
  }
4398
4398
 
4399
- .border-red-800 {
4400
- border-color: var(--pf-red-color-800);
4399
+ .border-yellow-800 {
4400
+ border-color: var(--pf-yellow-color-800);
4401
4401
  }
4402
4402
 
4403
- .border-red-900 {
4404
- border-color: var(--pf-red-color-900);
4403
+ .border-yellow-900 {
4404
+ border-color: var(--pf-yellow-color-900);
4405
+ }
4406
+
4407
+ .border-green {
4408
+ border-color: var(--pf-green-color);
4409
+ }
4410
+
4411
+ .border-green-100 {
4412
+ border-color: var(--pf-green-color-100);
4413
+ }
4414
+
4415
+ .border-green-200 {
4416
+ border-color: var(--pf-green-color-200);
4417
+ }
4418
+
4419
+ .border-green-300 {
4420
+ border-color: var(--pf-green-color-300);
4421
+ }
4422
+
4423
+ .border-green-400 {
4424
+ border-color: var(--pf-green-color-400);
4425
+ }
4426
+
4427
+ .border-green-500 {
4428
+ border-color: var(--pf-green-color-500);
4429
+ }
4430
+
4431
+ .border-green-600 {
4432
+ border-color: var(--pf-green-color-600);
4433
+ }
4434
+
4435
+ .border-green-700 {
4436
+ border-color: var(--pf-green-color-700);
4437
+ }
4438
+
4439
+ .border-green-800 {
4440
+ border-color: var(--pf-green-color-800);
4441
+ }
4442
+
4443
+ .border-green-900 {
4444
+ border-color: var(--pf-green-color-900);
4445
+ }
4446
+
4447
+ .border-purple {
4448
+ border-color: var(--pf-purple-color);
4449
+ }
4450
+
4451
+ .border-purple-100 {
4452
+ border-color: var(--pf-purple-color-100);
4453
+ }
4454
+
4455
+ .border-purple-200 {
4456
+ border-color: var(--pf-purple-color-200);
4457
+ }
4458
+
4459
+ .border-purple-300 {
4460
+ border-color: var(--pf-purple-color-300);
4461
+ }
4462
+
4463
+ .border-purple-400 {
4464
+ border-color: var(--pf-purple-color-400);
4465
+ }
4466
+
4467
+ .border-purple-500 {
4468
+ border-color: var(--pf-purple-color-500);
4469
+ }
4470
+
4471
+ .border-purple-600 {
4472
+ border-color: var(--pf-purple-color-600);
4473
+ }
4474
+
4475
+ .border-purple-700 {
4476
+ border-color: var(--pf-purple-color-700);
4477
+ }
4478
+
4479
+ .border-purple-800 {
4480
+ border-color: var(--pf-purple-color-800);
4481
+ }
4482
+
4483
+ .border-purple-900 {
4484
+ border-color: var(--pf-purple-color-900);
4405
4485
  }
4406
4486
 
4407
4487
  .rounded {
package/lib/index.esm.css CHANGED
@@ -4204,124 +4204,124 @@ p,
4204
4204
  border-color: var(--pf-secondary-color-900);
4205
4205
  }
4206
4206
 
4207
- .border-gray {
4208
- border-color: var(--pf-gray-color);
4207
+ .border-tertiary {
4208
+ border-color: var(--pf-tertiary-color);
4209
4209
  }
4210
4210
 
4211
- .border-gray-100 {
4212
- border-color: var(--pf-gray-color-100);
4211
+ .border-tertiary-100 {
4212
+ border-color: var(--pf-tertiary-color-100);
4213
4213
  }
4214
4214
 
4215
- .border-gray-200 {
4216
- border-color: var(--pf-gray-color-200);
4215
+ .border-tertiary-200 {
4216
+ border-color: var(--pf-tertiary-color-200);
4217
4217
  }
4218
4218
 
4219
- .border-gray-300 {
4220
- border-color: var(--pf-gray-color-300);
4219
+ .border-tertiary-300 {
4220
+ border-color: var(--pf-tertiary-color-300);
4221
4221
  }
4222
4222
 
4223
- .border-gray-400 {
4224
- border-color: var(--pf-gray-color-400);
4223
+ .border-tertiary-400 {
4224
+ border-color: var(--pf-tertiary-color-400);
4225
4225
  }
4226
4226
 
4227
- .border-gray-500 {
4228
- border-color: var(--pf-gray-color-500);
4227
+ .border-tertiary-500 {
4228
+ border-color: var(--pf-tertiary-color-500);
4229
4229
  }
4230
4230
 
4231
- .border-gray-600 {
4232
- border-color: var(--pf-gray-color-600);
4231
+ .border-tertiary-600 {
4232
+ border-color: var(--pf-tertiary-color-600);
4233
4233
  }
4234
4234
 
4235
- .border-gray-700 {
4236
- border-color: var(--pf-gray-color-700);
4235
+ .border-tertiary-700 {
4236
+ border-color: var(--pf-tertiary-color-700);
4237
4237
  }
4238
4238
 
4239
- .border-gray-800 {
4240
- border-color: var(--pf-gray-color-800);
4239
+ .border-tertiary-800 {
4240
+ border-color: var(--pf-tertiary-color-800);
4241
4241
  }
4242
4242
 
4243
- .border-gray-900 {
4244
- border-color: var(--pf-gray-color-900);
4243
+ .border-tertiary-900 {
4244
+ border-color: var(--pf-tertiary-color-900);
4245
4245
  }
4246
4246
 
4247
- .border-steel {
4248
- border-color: var(--pf-steel-color);
4247
+ .border-gray {
4248
+ border-color: var(--pf-gray-color);
4249
4249
  }
4250
4250
 
4251
- .border-steel-100 {
4252
- border-color: var(--pf-steel-color-100);
4251
+ .border-gray-100 {
4252
+ border-color: var(--pf-gray-color-100);
4253
4253
  }
4254
4254
 
4255
- .border-steel-200 {
4256
- border-color: var(--pf-steel-color-200);
4255
+ .border-gray-200 {
4256
+ border-color: var(--pf-gray-color-200);
4257
4257
  }
4258
4258
 
4259
- .border-steel-300 {
4260
- border-color: var(--pf-steel-color-300);
4259
+ .border-gray-300 {
4260
+ border-color: var(--pf-gray-color-300);
4261
4261
  }
4262
4262
 
4263
- .border-steel-400 {
4264
- border-color: var(--pf-steel-color-400);
4263
+ .border-gray-400 {
4264
+ border-color: var(--pf-gray-color-400);
4265
4265
  }
4266
4266
 
4267
- .border-steel-500 {
4268
- border-color: var(--pf-steel-color-500);
4267
+ .border-gray-500 {
4268
+ border-color: var(--pf-gray-color-500);
4269
4269
  }
4270
4270
 
4271
- .border-steel-600 {
4272
- border-color: var(--pf-steel-color-600);
4271
+ .border-gray-600 {
4272
+ border-color: var(--pf-gray-color-600);
4273
4273
  }
4274
4274
 
4275
- .border-steel-700 {
4276
- border-color: var(--pf-steel-color-700);
4275
+ .border-gray-700 {
4276
+ border-color: var(--pf-gray-color-700);
4277
4277
  }
4278
4278
 
4279
- .border-steel-800 {
4280
- border-color: var(--pf-steel-color-800);
4279
+ .border-gray-800 {
4280
+ border-color: var(--pf-gray-color-800);
4281
4281
  }
4282
4282
 
4283
- .border-steel-900 {
4284
- border-color: var(--pf-steel-color-900);
4283
+ .border-gray-900 {
4284
+ border-color: var(--pf-gray-color-900);
4285
4285
  }
4286
4286
 
4287
- .border-green {
4288
- border-color: var(--pf-green-color);
4287
+ .border-red {
4288
+ border-color: var(--pf-red-color);
4289
4289
  }
4290
4290
 
4291
- .border-green-100 {
4292
- border-color: var(--pf-green-color-100);
4291
+ .border-red-100 {
4292
+ border-color: var(--pf-red-color-100);
4293
4293
  }
4294
4294
 
4295
- .border-green-200 {
4296
- border-color: var(--pf-green-color-200);
4295
+ .border-red-200 {
4296
+ border-color: var(--pf-red-color-200);
4297
4297
  }
4298
4298
 
4299
- .border-green-300 {
4300
- border-color: var(--pf-green-color-300);
4299
+ .border-red-300 {
4300
+ border-color: var(--pf-red-color-300);
4301
4301
  }
4302
4302
 
4303
- .border-green-400 {
4304
- border-color: var(--pf-green-color-400);
4303
+ .border-red-400 {
4304
+ border-color: var(--pf-red-color-400);
4305
4305
  }
4306
4306
 
4307
- .border-green-500 {
4308
- border-color: var(--pf-green-color-500);
4307
+ .border-red-500 {
4308
+ border-color: var(--pf-red-color-500);
4309
4309
  }
4310
4310
 
4311
- .border-green-600 {
4312
- border-color: var(--pf-green-color-600);
4311
+ .border-red-600 {
4312
+ border-color: var(--pf-red-color-600);
4313
4313
  }
4314
4314
 
4315
- .border-green-700 {
4316
- border-color: var(--pf-green-color-700);
4315
+ .border-red-700 {
4316
+ border-color: var(--pf-red-color-700);
4317
4317
  }
4318
4318
 
4319
- .border-green-800 {
4320
- border-color: var(--pf-green-color-800);
4319
+ .border-red-800 {
4320
+ border-color: var(--pf-red-color-800);
4321
4321
  }
4322
4322
 
4323
- .border-green-900 {
4324
- border-color: var(--pf-green-color-900);
4323
+ .border-red-900 {
4324
+ border-color: var(--pf-red-color-900);
4325
4325
  }
4326
4326
 
4327
4327
  .border-orange {
@@ -4364,44 +4364,124 @@ p,
4364
4364
  border-color: var(--pf-orange-color-900);
4365
4365
  }
4366
4366
 
4367
- .border-red {
4368
- border-color: var(--pf-red-color);
4367
+ .border-yellow {
4368
+ border-color: var(--pf-yellow-color);
4369
4369
  }
4370
4370
 
4371
- .border-red-100 {
4372
- border-color: var(--pf-red-color-100);
4371
+ .border-yellow-100 {
4372
+ border-color: var(--pf-yellow-color-100);
4373
4373
  }
4374
4374
 
4375
- .border-red-200 {
4376
- border-color: var(--pf-red-color-200);
4375
+ .border-yellow-200 {
4376
+ border-color: var(--pf-yellow-color-200);
4377
4377
  }
4378
4378
 
4379
- .border-red-300 {
4380
- border-color: var(--pf-red-color-300);
4379
+ .border-yellow-300 {
4380
+ border-color: var(--pf-yellow-color-300);
4381
4381
  }
4382
4382
 
4383
- .border-red-400 {
4384
- border-color: var(--pf-red-color-400);
4383
+ .border-yellow-400 {
4384
+ border-color: var(--pf-yellow-color-400);
4385
4385
  }
4386
4386
 
4387
- .border-red-500 {
4388
- border-color: var(--pf-red-color-500);
4387
+ .border-yellow-500 {
4388
+ border-color: var(--pf-yellow-color-500);
4389
4389
  }
4390
4390
 
4391
- .border-red-600 {
4392
- border-color: var(--pf-red-color-600);
4391
+ .border-yellow-600 {
4392
+ border-color: var(--pf-yellow-color-600);
4393
4393
  }
4394
4394
 
4395
- .border-red-700 {
4396
- border-color: var(--pf-red-color-700);
4395
+ .border-yellow-700 {
4396
+ border-color: var(--pf-yellow-color-700);
4397
4397
  }
4398
4398
 
4399
- .border-red-800 {
4400
- border-color: var(--pf-red-color-800);
4399
+ .border-yellow-800 {
4400
+ border-color: var(--pf-yellow-color-800);
4401
4401
  }
4402
4402
 
4403
- .border-red-900 {
4404
- border-color: var(--pf-red-color-900);
4403
+ .border-yellow-900 {
4404
+ border-color: var(--pf-yellow-color-900);
4405
+ }
4406
+
4407
+ .border-green {
4408
+ border-color: var(--pf-green-color);
4409
+ }
4410
+
4411
+ .border-green-100 {
4412
+ border-color: var(--pf-green-color-100);
4413
+ }
4414
+
4415
+ .border-green-200 {
4416
+ border-color: var(--pf-green-color-200);
4417
+ }
4418
+
4419
+ .border-green-300 {
4420
+ border-color: var(--pf-green-color-300);
4421
+ }
4422
+
4423
+ .border-green-400 {
4424
+ border-color: var(--pf-green-color-400);
4425
+ }
4426
+
4427
+ .border-green-500 {
4428
+ border-color: var(--pf-green-color-500);
4429
+ }
4430
+
4431
+ .border-green-600 {
4432
+ border-color: var(--pf-green-color-600);
4433
+ }
4434
+
4435
+ .border-green-700 {
4436
+ border-color: var(--pf-green-color-700);
4437
+ }
4438
+
4439
+ .border-green-800 {
4440
+ border-color: var(--pf-green-color-800);
4441
+ }
4442
+
4443
+ .border-green-900 {
4444
+ border-color: var(--pf-green-color-900);
4445
+ }
4446
+
4447
+ .border-purple {
4448
+ border-color: var(--pf-purple-color);
4449
+ }
4450
+
4451
+ .border-purple-100 {
4452
+ border-color: var(--pf-purple-color-100);
4453
+ }
4454
+
4455
+ .border-purple-200 {
4456
+ border-color: var(--pf-purple-color-200);
4457
+ }
4458
+
4459
+ .border-purple-300 {
4460
+ border-color: var(--pf-purple-color-300);
4461
+ }
4462
+
4463
+ .border-purple-400 {
4464
+ border-color: var(--pf-purple-color-400);
4465
+ }
4466
+
4467
+ .border-purple-500 {
4468
+ border-color: var(--pf-purple-color-500);
4469
+ }
4470
+
4471
+ .border-purple-600 {
4472
+ border-color: var(--pf-purple-color-600);
4473
+ }
4474
+
4475
+ .border-purple-700 {
4476
+ border-color: var(--pf-purple-color-700);
4477
+ }
4478
+
4479
+ .border-purple-800 {
4480
+ border-color: var(--pf-purple-color-800);
4481
+ }
4482
+
4483
+ .border-purple-900 {
4484
+ border-color: var(--pf-purple-color-900);
4405
4485
  }
4406
4486
 
4407
4487
  .rounded {
@@ -0,0 +1,7 @@
1
+ export type UtilityClassData = {
2
+ className: string;
3
+ css: string;
4
+ category: string;
5
+ resolvedCss?: string;
6
+ };
7
+ export declare const utilityClassesData: UtilityClassData[];
@@ -0,0 +1 @@
1
+ export declare const UtilityClassesTable: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { UtilityClassesTable } from './UtilityClassesTable';
3
+ declare const meta: Meta<typeof UtilityClassesTable>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof UtilityClassesTable>;
6
+ export declare const Default: Story;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indico-data/design-system",
3
- "version": "2.49.0",
3
+ "version": "2.50.0",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "main": "lib/index.js",
@@ -2,13 +2,16 @@ import { Meta } from '@storybook/addon-docs';
2
2
 
3
3
  <Meta title="Getting Started" />
4
4
 
5
- # Permafrost
5
+ # Permafrost
6
+
6
7
  #### Permafrost is the name of our User Interface Design System and Component Library.
8
+
7
9
  Permafrost is utilized in Indico's React projects to ensure a consistent look and feel across our products. It leverages many variables and components that are defined in our design system. We also wrap multiple libraries such as `react-day-picker` or `react-select` to ensure a consistent look and feel.
8
10
 
9
11
  <div style={{ marginBottom: '3rem' }} />
10
12
 
11
13
  ## Installation
14
+
12
15
  Indico serves Permafrost as a package on npm. In order to take advantage of it in your project, you can install it by adding the following to your `package.json`:
13
16
 
14
17
  ```json
@@ -16,16 +19,17 @@ Indico serves Permafrost as a package on npm. In order to take advantage of it i
16
19
  "@indico-data/permafrost": "latest" // or the specific version you want
17
20
  }
18
21
  ```
19
- After adding the package, import the CSS file to apply Permafrost’s styles to the components.
22
+
23
+ After adding the package, import the CSS file to apply Permafrost's styles to the components.
20
24
 
21
25
  ```css
22
- @import "@indico-data/permafrost/dist/index.css";
26
+ @import '@indico-data/permafrost/dist/index.css';
23
27
  ```
24
28
 
25
-
26
29
  ## Usage
27
30
 
28
31
  ### Overriding Variables
32
+
29
33
  You are able to override any of the variables in the design system. We currently support `light` and `dark` themes. If you would like to override a variable in the dark theme, try this approach:
30
34
 
31
35
  ```css
@@ -37,7 +41,8 @@ You are able to override any of the variables in the design system. We currently
37
41
  This pattern applies to all of our variables which you can find in the CSS variables directory in the project.
38
42
 
39
43
  ### Theming
40
- In order to switch between the light and dark themes, you can simply add the `data-theme` attribute to the `html` element. *Note* If no theme is provided, it will default to `:root` which is the dark theme.
44
+
45
+ In order to switch between the light and dark themes, you can simply add the `data-theme` attribute to the `html` element. _Note_ If no theme is provided, it will default to `:root` which is the dark theme.
41
46
 
42
47
  ```html
43
48
  <html data-theme="light">
@@ -47,18 +52,22 @@ In order to switch between the light and dark themes, you can simply add the `da
47
52
 
48
53
  In the example above, it will leverage the `light` theme to render our styles with the `light mode` variables. It is important to note that while Permafrost natively supports `light` and `dark` values for data-theme, these can be extended and even overridden by your project to support additional themes.
49
54
 
50
-
51
55
  ### Importing Components
56
+
52
57
  Using components from Permafrost is as simple as importing them from the package and using them in your project.
53
58
 
54
59
  ```tsx
55
- import {Icon} from '@indico-data/design-system';
60
+ import { Icon } from '@indico-data/design-system';
56
61
 
57
-
58
- <Icon name="indico-o" />
62
+ <Icon name="indico-o" />;
59
63
  ```
60
64
 
65
+ ### Utility Classes
66
+
67
+ Utility classes are pre-defined CSS classes that provide quick and easy styling options for common design patterns. They help maintain consistency and speed up development by offering ready-to-use styles for margins, typography, and more. For a complete list of available utility classes and their usage, see our [Utility Classes documentation](/docs/utility-classes-overview--docs).
68
+
61
69
  ### CSS Only
70
+
62
71
  We have tried to provide as much support as possible for those who wish to implement Permafrost without using our React components. This is where the CSS only approach comes in. We have wrapped the components in a way that allows you to use the same styles with a different library. In order to use the CSS only approach, you can import the css file that sets the styles for the components.
63
72
 
64
73
  You can do this by going into the project and running the following command:
@@ -70,11 +79,13 @@ yarn build
70
79
  This will create an `index.css` file in the `dist` directory that you can then copy and import into your project.
71
80
 
72
81
  #### SASS
82
+
73
83
  If you prefer to use SASS, you can copy the entire `/styles` directory and import the `index.scss` file into your project.
74
84
 
75
85
  **Note:** This will only give you the styling of our design system, none of the interactivity.
76
86
 
77
87
  ### CSS Only Usage
88
+
78
89
  If you wish to do the CSS only approach, you can do so by applying the CSS classes to your components. For example, if you have an input you wish to have styled with our design system, you can do the following:
79
90
 
80
91
  ```tsx
@@ -83,10 +94,10 @@ If you wish to do the CSS only approach, you can do so by applying the CSS class
83
94
 
84
95
  We are as generic as possible with our CSS classes, so you can easily override them if needed.
85
96
 
86
-
87
97
  ## Testing
98
+
88
99
  All of our components have been tested with React Testing Library. You can view the tests for each component by looking in the `__tests__` directory in each component. To run them, you can simply run the following command:
89
100
 
90
101
  ```bash
91
102
  yarn jest
92
- ```
103
+ ```
@@ -3,7 +3,8 @@ $values: var(--pf-border-thin), var(--pf-border-sm), var(--pf-border-md), var(--
3
3
  var(--pf-border-xl);
4
4
  $directions: ('t', top), ('b', bottom), ('l', left), ('r', right);
5
5
  $styles: dashed, dotted, double, solid;
6
- $color-names: 'primary', 'secondary', 'gray', 'steel', 'green', 'orange', 'red';
6
+ $color-names: 'primary', 'secondary', 'tertiary', 'gray', 'red', 'orange', 'yellow', 'green',
7
+ 'purple';
7
8
  $color-grades: '100', '200', '300', '400', '500', '600', '700', '800', '900';
8
9
  $radiusSizes: 0, sm, lg, md, xl, pill, circle, shaped;
9
10
  $radiusValues: var(--pf-rounded-0), var(--pf-rounded-sm), var(--pf-rounded-md), var(--pf-rounded-lg),
@@ -18,12 +18,12 @@ export const BorderColor = () => {
18
18
  <p className="text-align--center">border-secondary</p>
19
19
  </div>
20
20
  <div>
21
- <div className="sb__square bg-gray-800 border border-lg border-gray"></div>
22
- <p className="text-align--center">border-gray</p>
21
+ <div className="sb__square bg-gray-800 border border-lg border-tertiary"></div>
22
+ <p className="text-align--center">border-tertiary</p>
23
23
  </div>
24
24
  <div>
25
- <div className="sb__square bg-gray-800 border border-lg border-green"></div>
26
- <p className="text-align--center">border-green</p>
25
+ <div className="sb__square bg-gray-800 border border-lg border-gray"></div>
26
+ <p className="text-align--center">border-gray</p>
27
27
  </div>
28
28
  <div>
29
29
  <div className="sb__square bg-gray-800 border border-lg border-red"></div>
@@ -34,8 +34,16 @@ export const BorderColor = () => {
34
34
  <p className="text-align--center">border-orange</p>
35
35
  </div>
36
36
  <div>
37
- <div className="sb__square bg-gray-800 border border-lg border-steel"></div>
38
- <p className="text-align--center">border-steel</p>
37
+ <div className="sb__square bg-gray-800 border border-lg border-yellow"></div>
38
+ <p className="text-align--center">border-yellow</p>
39
+ </div>
40
+ <div>
41
+ <div className="sb__square bg-gray-800 border border-lg border-green"></div>
42
+ <p className="text-align--center">border-green</p>
43
+ </div>
44
+ <div>
45
+ <div className="sb__square bg-gray-800 border border-lg border-purple"></div>
46
+ <p className="text-align--center">border-purple</p>
39
47
  </div>
40
48
  </div>
41
49
  );
@@ -0,0 +1,24 @@
1
+ import { Meta, Canvas } from '@storybook/blocks';
2
+ import * as UtilityClassesStories from './UtilityClassesTable.stories';
3
+
4
+ <Meta title="Utility Classes/Overview" />
5
+
6
+ # Utility Classes Overview
7
+
8
+ Utility classes are designed to provide quick and easy styling options for common design patterns. They help maintain consistency and speed up development by offering predefined styles for borders, colors, typography, and more.
9
+
10
+ ## Example Usage
11
+
12
+ Here's a brief example of how you can use utility classes in your project:
13
+
14
+ ```tsx
15
+ <div className="mb-4 text-uppercase">
16
+ This will have a bottom margin of 16px and the text will be uppercase
17
+ </div>
18
+ ```
19
+
20
+ **Note:** If you find yourself adding more than a few utility classes to a single element and it starts resembling Tailwind, consider using CSS (styled-components, SCSS, etc.) and leverage the design system variables directly.
21
+
22
+ ## Utility Classes
23
+
24
+ <Canvas of={UtilityClassesStories.Default} />
@@ -0,0 +1,230 @@
1
+ export type UtilityClassData = {
2
+ className: string;
3
+ css: string;
4
+ category: string;
5
+ resolvedCss?: string;
6
+ };
7
+
8
+ export const utilityClassesData: UtilityClassData[] = [
9
+ // Border Utilities
10
+ {
11
+ className: 'border-primary',
12
+ css: 'border-color: var(--pf-primary-color);',
13
+ category: 'Border',
14
+ },
15
+ {
16
+ className: 'border-secondary',
17
+ css: 'border-color: var(--pf-secondary-color);',
18
+ category: 'Border',
19
+ },
20
+ {
21
+ className: 'border-tertiary',
22
+ css: 'border-color: var(--pf-tertiary-color);',
23
+ category: 'Border',
24
+ },
25
+ { className: 'border-gray', css: 'border-color: var(--pf-gray-color);', category: 'Border' },
26
+ { className: 'border-red', css: 'border-color: var(--pf-red-color);', category: 'Border' },
27
+ { className: 'border-orange', css: 'border-color: var(--pf-orange-color);', category: 'Border' },
28
+ { className: 'border-yellow', css: 'border-color: var(--pf-yellow-color);', category: 'Border' },
29
+ { className: 'border-green', css: 'border-color: var(--pf-green-color);', category: 'Border' },
30
+ { className: 'border-purple', css: 'border-color: var(--pf-purple-color);', category: 'Border' },
31
+ { className: 'border-thin', css: 'border-width: var(--pf-border-thin);', category: 'Border' },
32
+ { className: 'border-sm', css: 'border-width: var(--pf-border-sm);', category: 'Border' },
33
+ { className: 'border-md', css: 'border-width: var(--pf-border-md);', category: 'Border' },
34
+ { className: 'border-lg', css: 'border-width: var(--pf-border-lg);', category: 'Border' },
35
+ { className: 'border-xl', css: 'border-width: var(--pf-border-xl);', category: 'Border' },
36
+ { className: 'border-dashed', css: 'border-style: dashed;', category: 'Border' },
37
+ { className: 'border-dotted', css: 'border-style: dotted;', category: 'Border' },
38
+ { className: 'border-double', css: 'border-style: double;', category: 'Border' },
39
+ { className: 'border-solid', css: 'border-style: solid;', category: 'Border' },
40
+ { className: 'rounded', css: 'border-radius: var(--pf-rounded);', category: 'Border' },
41
+ { className: 'rounded-0', css: 'border-radius: var(--pf-rounded-0);', category: 'Border' },
42
+ { className: 'rounded-sm', css: 'border-radius: var(--pf-rounded-sm);', category: 'Border' },
43
+ { className: 'rounded-md', css: 'border-radius: var(--pf-rounded-md);', category: 'Border' },
44
+ { className: 'rounded-lg', css: 'border-radius: var(--pf-rounded-lg);', category: 'Border' },
45
+ { className: 'rounded-xl', css: 'border-radius: var(--pf-rounded-xl);', category: 'Border' },
46
+ { className: 'rounded-pill', css: 'border-radius: var(--pf-rounded-pill);', category: 'Border' },
47
+ {
48
+ className: 'rounded-circle',
49
+ css: 'border-radius: var(--pf-rounded-circle);',
50
+ category: 'Border',
51
+ },
52
+ {
53
+ className: 'rounded-shaped',
54
+ css: 'border-radius: var(--pf-rounded-shaped);',
55
+ category: 'Border',
56
+ },
57
+
58
+ // Color Utilities
59
+ { className: 'color-primary', css: 'color: var(--pf-primary-color);', category: 'Color' },
60
+ { className: 'color-secondary', css: 'color: var(--pf-secondary-color);', category: 'Color' },
61
+ { className: 'color-tertiary', css: 'color: var(--pf-tertiary-color);', category: 'Color' },
62
+ { className: 'color-gray', css: 'color: var(--pf-gray-color);', category: 'Color' },
63
+ { className: 'color-red', css: 'color: var(--pf-red-color);', category: 'Color' },
64
+ { className: 'color-orange', css: 'color: var(--pf-orange-color);', category: 'Color' },
65
+ { className: 'color-yellow', css: 'color: var(--pf-yellow-color);', category: 'Color' },
66
+ { className: 'color-green', css: 'color: var(--pf-green-color);', category: 'Color' },
67
+ { className: 'color-purple', css: 'color: var(--pf-purple-color);', category: 'Color' },
68
+ { className: 'color-success', css: 'color: var(--pf-success-color);', category: 'Color' },
69
+ { className: 'color-info', css: 'color: var(--pf-info-color);', category: 'Color' },
70
+ { className: 'color-neutral', css: 'color: var(--pf-neutral-color);', category: 'Color' },
71
+ { className: 'color-warning', css: 'color: var(--pf-warning-color);', category: 'Color' },
72
+ { className: 'color-error', css: 'color: var(--pf-error-color);', category: 'Color' },
73
+ { className: 'color-brand', css: 'color: var(--pf-brand-color);', category: 'Color' },
74
+
75
+ // Typography Utilities
76
+ {
77
+ className: 'text-h1',
78
+ css: 'font-size: var(--pf-font-size-h1); font-weight: var(--pf-font-weight-bold);',
79
+ category: 'Typography',
80
+ },
81
+ {
82
+ className: 'text-h2',
83
+ css: 'font-size: var(--pf-font-size-h2); font-weight: var(--pf-font-weight-bold);',
84
+ category: 'Typography',
85
+ },
86
+ {
87
+ className: 'text-h3',
88
+ css: 'font-size: var(--pf-font-size-h3); font-weight: var(--pf-font-weight-bold);',
89
+ category: 'Typography',
90
+ },
91
+ {
92
+ className: 'text-h4',
93
+ css: 'font-size: var(--pf-font-size-h4); font-weight: var(--pf-font-weight-bold);',
94
+ category: 'Typography',
95
+ },
96
+ {
97
+ className: 'text-h5',
98
+ css: 'font-size: var(--pf-font-size-h5); font-weight: var(--pf-font-weight-bold);',
99
+ category: 'Typography',
100
+ },
101
+ { className: 'text-body', css: 'font-size: var(--pf-font-size-body);', category: 'Typography' },
102
+ {
103
+ className: 'text-body-2',
104
+ css: 'font-size: var(--pf-font-size-body2);',
105
+ category: 'Typography',
106
+ },
107
+ {
108
+ className: 'subtitle',
109
+ css: 'font-size: var(--pf-font-size-subtitle);',
110
+ category: 'Typography',
111
+ },
112
+ {
113
+ className: 'subtitle-2',
114
+ css: 'font-size: var(--pf-font-size-subtitle2);',
115
+ category: 'Typography',
116
+ },
117
+ {
118
+ className: 'text-caption',
119
+ css: 'font-size: var(--pf-font-size-caption);',
120
+ category: 'Typography',
121
+ },
122
+ {
123
+ className: 'text-overline',
124
+ css: 'font-size: var(--pf-font-size-overline); text-transform: uppercase;',
125
+ category: 'Typography',
126
+ },
127
+ { className: 'text-capitalize', css: 'text-transform: capitalize;', category: 'Typography' },
128
+ { className: 'text-uppercase', css: 'text-transform: uppercase;', category: 'Typography' },
129
+ { className: 'text-lowercase', css: 'text-transform: lowercase;', category: 'Typography' },
130
+ { className: 'text-decoration--none', css: 'text-decoration: none;', category: 'Typography' },
131
+ {
132
+ className: 'text-decoration--underline',
133
+ css: 'text-decoration: underline;',
134
+ category: 'Typography',
135
+ },
136
+ {
137
+ className: 'text-decoration--line-through',
138
+ css: 'text-decoration: line-through;',
139
+ category: 'Typography',
140
+ },
141
+ {
142
+ className: 'text-decoration--overline',
143
+ css: 'text-decoration: overline;',
144
+ category: 'Typography',
145
+ },
146
+ {
147
+ className: 'text-weight--thin',
148
+ css: 'font-weight: var(--pf-font-weight-thin);',
149
+ category: 'Typography',
150
+ },
151
+ {
152
+ className: 'text-weight--light',
153
+ css: 'font-weight: var(--pf-font-weight-light);',
154
+ category: 'Typography',
155
+ },
156
+ {
157
+ className: 'text-weight--regular',
158
+ css: 'font-weight: var(--pf-font-weight-regular);',
159
+ category: 'Typography',
160
+ },
161
+ {
162
+ className: 'text-weight--medium',
163
+ css: 'font-weight: var(--pf-font-weight-medium);',
164
+ category: 'Typography',
165
+ },
166
+ {
167
+ className: 'text-weight--bold',
168
+ css: 'font-weight: var(--pf-font-weight-bold);',
169
+ category: 'Typography',
170
+ },
171
+ {
172
+ className: 'text-weight--heavy',
173
+ css: 'font-weight: var(--pf-font-weight-heavy);',
174
+ category: 'Typography',
175
+ },
176
+ { className: 'text-align--left', css: 'text-align: left;', category: 'Typography' },
177
+ { className: 'text-align--center', css: 'text-align: center;', category: 'Typography' },
178
+ { className: 'text-align--right', css: 'text-align: right;', category: 'Typography' },
179
+ { className: 'text-opacity--0', css: 'opacity: 0;', category: 'Typography' },
180
+ { className: 'text-opacity--50', css: 'opacity: 0.5;', category: 'Typography' },
181
+ { className: 'text-opacity--100', css: 'opacity: 1;', category: 'Typography' },
182
+ { className: 'text-break--word', css: 'overflow-wrap: break-word;', category: 'Typography' },
183
+
184
+ // Sizing Utilities
185
+ { className: 'ma-auto', css: 'margin: auto;', category: 'Sizing' },
186
+ { className: 'ma-0', css: 'margin: var(--pf-margin-0);', category: 'Sizing' },
187
+ { className: 'ma-1', css: 'margin: var(--pf-margin-1);', category: 'Sizing' },
188
+ { className: 'ma-2', css: 'margin: var(--pf-margin-2);', category: 'Sizing' },
189
+ { className: 'ma-3', css: 'margin: var(--pf-margin-3);', category: 'Sizing' },
190
+ { className: 'ma-4', css: 'margin: var(--pf-margin-4);', category: 'Sizing' },
191
+ { className: 'ma-5', css: 'margin: var(--pf-margin-5);', category: 'Sizing' },
192
+ { className: 'ma-6', css: 'margin: var(--pf-margin-6);', category: 'Sizing' },
193
+ { className: 'ma-7', css: 'margin: var(--pf-margin-7);', category: 'Sizing' },
194
+ { className: 'ma-8', css: 'margin: var(--pf-margin-8);', category: 'Sizing' },
195
+ { className: 'ma-9', css: 'margin: var(--pf-margin-9);', category: 'Sizing' },
196
+ { className: 'ma-10', css: 'margin: var(--pf-margin-10);', category: 'Sizing' },
197
+ { className: 'ma-11', css: 'margin: var(--pf-margin-11);', category: 'Sizing' },
198
+ { className: 'ma-12', css: 'margin: var(--pf-margin-12);', category: 'Sizing' },
199
+ { className: 'ma-13', css: 'margin: var(--pf-margin-13);', category: 'Sizing' },
200
+ { className: 'ma-14', css: 'margin: var(--pf-margin-14);', category: 'Sizing' },
201
+ { className: 'ma-15', css: 'margin: var(--pf-margin-15);', category: 'Sizing' },
202
+ { className: 'ma-16', css: 'margin: var(--pf-margin-16);', category: 'Sizing' },
203
+ { className: 'pa-0', css: 'padding: var(--pf-padding-0);', category: 'Sizing' },
204
+ { className: 'pa-1', css: 'padding: var(--pf-padding-1);', category: 'Sizing' },
205
+ { className: 'pa-2', css: 'padding: var(--pf-padding-2);', category: 'Sizing' },
206
+ { className: 'pa-3', css: 'padding: var(--pf-padding-3);', category: 'Sizing' },
207
+ { className: 'pa-4', css: 'padding: var(--pf-padding-4);', category: 'Sizing' },
208
+ { className: 'pa-5', css: 'padding: var(--pf-padding-5);', category: 'Sizing' },
209
+ { className: 'pa-6', css: 'padding: var(--pf-padding-6);', category: 'Sizing' },
210
+ { className: 'pa-7', css: 'padding: var(--pf-padding-7);', category: 'Sizing' },
211
+ { className: 'pa-8', css: 'padding: var(--pf-padding-8);', category: 'Sizing' },
212
+ { className: 'pa-9', css: 'padding: var(--pf-padding-9);', category: 'Sizing' },
213
+ { className: 'pa-10', css: 'padding: var(--pf-padding-10);', category: 'Sizing' },
214
+ { className: 'pa-11', css: 'padding: var(--pf-padding-11);', category: 'Sizing' },
215
+ { className: 'pa-12', css: 'padding: var(--pf-padding-12);', category: 'Sizing' },
216
+ { className: 'pa-13', css: 'padding: var(--pf-padding-13);', category: 'Sizing' },
217
+ { className: 'pa-14', css: 'padding: var(--pf-padding-14);', category: 'Sizing' },
218
+ { className: 'pa-15', css: 'padding: var(--pf-padding-15);', category: 'Sizing' },
219
+ { className: 'pa-16', css: 'padding: var(--pf-padding-16);', category: 'Sizing' },
220
+
221
+ // Icon Sizes
222
+ { className: 'icon-xs', css: 'font-size: var(--pf-icon-size-xs);', category: 'Icon' },
223
+ { className: 'icon-sm', css: 'font-size: var(--pf-icon-size-sm);', category: 'Icon' },
224
+ { className: 'icon-md', css: 'font-size: var(--pf-icon-size-md);', category: 'Icon' },
225
+ { className: 'icon-lg', css: 'font-size: var(--pf-icon-size-lg);', category: 'Icon' },
226
+ { className: 'icon-xl', css: 'font-size: var(--pf-icon-size-xl);', category: 'Icon' },
227
+
228
+ // Drop Shadows
229
+ { className: 'dropshadow', css: 'box-shadow: var(--pf-dropshadow);', category: 'Effect' },
230
+ ];
@@ -0,0 +1,13 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { UtilityClassesTable } from './UtilityClassesTable';
3
+
4
+ const meta: Meta<typeof UtilityClassesTable> = {
5
+ title: 'remove/Utility Classes/Table',
6
+ component: UtilityClassesTable,
7
+ };
8
+
9
+ export default meta;
10
+
11
+ type Story = StoryObj<typeof UtilityClassesTable>;
12
+
13
+ export const Default: Story = {};
@@ -0,0 +1,146 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { Table, Select, Input, Container, Row, Col } from '@/components';
3
+ import { MultiValue, SingleValue, ActionMeta } from 'react-select';
4
+ import { UtilityClassData, utilityClassesData } from './UtilityClassesData';
5
+
6
+ const categories = Array.from(new Set(utilityClassesData.map((item) => item.category)));
7
+
8
+ // Resolve CSS variables using getComputedStyle
9
+ const resolveCssVariables = (css: string): string => {
10
+ const tempElement = document.createElement('div');
11
+ document.body.appendChild(tempElement);
12
+ const style = getComputedStyle(tempElement);
13
+
14
+ const resolvedCss = css.replace(/var\((--pf-[\w-]+)\)/g, (_, variable) => {
15
+ return style.getPropertyValue(variable).trim() || variable;
16
+ });
17
+
18
+ document.body.removeChild(tempElement);
19
+ return resolvedCss;
20
+ };
21
+
22
+ const formatCss = (css: string): string => {
23
+ return css
24
+ .split(';')
25
+ .filter(Boolean)
26
+ .map((line) => line.trim() + ';')
27
+ .join('\n');
28
+ };
29
+
30
+ export const UtilityClassesTable = () => {
31
+ const [classNameSearch, setClassNameSearch] = useState('');
32
+ const [cssSearch, setCssSearch] = useState('');
33
+ const [selectedCategories, setSelectedCategories] = useState<string[]>([]);
34
+ const [rowData, setRowData] = useState<UtilityClassData[]>([]);
35
+
36
+ useEffect(() => {
37
+ const resolved = utilityClassesData.map((item) => ({
38
+ ...item,
39
+ resolvedCss: resolveCssVariables(item.css),
40
+ }));
41
+ setRowData(resolved);
42
+ }, []);
43
+
44
+ const handleCategoryChange = (
45
+ newValue:
46
+ | MultiValue<{ value: string; label: string }>
47
+ | SingleValue<{ value: string; label: string }>,
48
+ ) => {
49
+ setSelectedCategories(Array.isArray(newValue) ? newValue.map((option) => option.value) : []);
50
+ };
51
+
52
+ const filteredData = rowData.filter(
53
+ (item) =>
54
+ (selectedCategories.length === 0 || selectedCategories.includes(item.category)) &&
55
+ item.className.toLowerCase().includes(classNameSearch.toLowerCase()) &&
56
+ (item.css.toLowerCase().includes(cssSearch.toLowerCase()) ||
57
+ item.resolvedCss?.toLowerCase().includes(cssSearch.toLowerCase())),
58
+ );
59
+
60
+ return (
61
+ <Container>
62
+ <Row className="mb-4">
63
+ <Col sm={4}>
64
+ <Input
65
+ id="classNameSearch"
66
+ name="classNameSearch"
67
+ label="Class Name"
68
+ value={classNameSearch}
69
+ onChange={(e) => setClassNameSearch(e.target.value)}
70
+ />
71
+ </Col>
72
+ <Col sm={4}>
73
+ <Input
74
+ id="cssSearch"
75
+ name="cssSearch"
76
+ label="CSS"
77
+ value={cssSearch}
78
+ onChange={(e) => setCssSearch(e.target.value)}
79
+ />
80
+ </Col>
81
+ <Col sm={4}>
82
+ <div className="form-control">
83
+ <div data-testid={`category-label`} className={`form-label mb-2`}>
84
+ <label htmlFor={`categoryFilter`}>Category</label>
85
+ </div>
86
+ <Select
87
+ id="categoryFilter"
88
+ name="categoryFilter"
89
+ options={categories.map((category) => ({ value: category, label: category }))}
90
+ onChange={handleCategoryChange}
91
+ value={categories
92
+ .filter((category) => selectedCategories.includes(category))
93
+ .map((category) => ({ value: category, label: category }))}
94
+ placeholder=""
95
+ isMulti
96
+ isClearable
97
+ />
98
+ </div>
99
+ </Col>
100
+ </Row>
101
+
102
+ <Table
103
+ columns={[
104
+ { name: 'Class Name', selector: (row) => row.className, sortable: true, width: '225px' },
105
+ {
106
+ name: 'CSS Applied',
107
+ selector: (row) => formatCss(row.css),
108
+ sortable: true,
109
+ cell: (row) => (
110
+ <pre
111
+ style={{
112
+ fontFamily: 'monospace',
113
+ whiteSpace: 'pre-wrap',
114
+ fontSize: '12px',
115
+ }}
116
+ >
117
+ {formatCss(row.css)}
118
+ </pre>
119
+ ),
120
+ },
121
+ {
122
+ name: 'Resolved CSS',
123
+ selector: (row) => formatCss(row.resolvedCss || ''),
124
+ sortable: true,
125
+ cell: (row) => (
126
+ <pre
127
+ style={{
128
+ fontFamily: 'monospace',
129
+ whiteSpace: 'pre-wrap',
130
+ fontSize: '12px',
131
+ }}
132
+ >
133
+ {formatCss(row.resolvedCss || '')}
134
+ </pre>
135
+ ),
136
+ },
137
+ { name: 'Category', selector: (row) => row.category, sortable: true, width: '114px' },
138
+ ]}
139
+ data={filteredData}
140
+ dense
141
+ noDataComponent="-- No Classes Found --"
142
+ pagination={false}
143
+ />
144
+ </Container>
145
+ );
146
+ };