@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 +160 -80
- package/lib/index.esm.css +160 -80
- package/lib/stylesAndAnimations/utilityClasses/UtilityClassesData.d.ts +7 -0
- package/lib/stylesAndAnimations/utilityClasses/UtilityClassesTable.d.ts +1 -0
- package/lib/stylesAndAnimations/utilityClasses/UtilityClassesTable.stories.d.ts +6 -0
- package/package.json +1 -1
- package/src/storybookDocs/Permafrost.mdx +22 -11
- package/src/styles/_borders.scss +2 -1
- package/src/stylesAndAnimations/borders/BorderColor.tsx +14 -6
- package/src/stylesAndAnimations/utilityClasses/UtilityClasses.mdx +24 -0
- package/src/stylesAndAnimations/utilityClasses/UtilityClassesData.ts +230 -0
- package/src/stylesAndAnimations/utilityClasses/UtilityClassesTable.stories.tsx +13 -0
- package/src/stylesAndAnimations/utilityClasses/UtilityClassesTable.tsx +146 -0
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-
|
|
4208
|
-
border-color: var(--pf-
|
|
4207
|
+
.border-tertiary {
|
|
4208
|
+
border-color: var(--pf-tertiary-color);
|
|
4209
4209
|
}
|
|
4210
4210
|
|
|
4211
|
-
.border-
|
|
4212
|
-
border-color: var(--pf-
|
|
4211
|
+
.border-tertiary-100 {
|
|
4212
|
+
border-color: var(--pf-tertiary-color-100);
|
|
4213
4213
|
}
|
|
4214
4214
|
|
|
4215
|
-
.border-
|
|
4216
|
-
border-color: var(--pf-
|
|
4215
|
+
.border-tertiary-200 {
|
|
4216
|
+
border-color: var(--pf-tertiary-color-200);
|
|
4217
4217
|
}
|
|
4218
4218
|
|
|
4219
|
-
.border-
|
|
4220
|
-
border-color: var(--pf-
|
|
4219
|
+
.border-tertiary-300 {
|
|
4220
|
+
border-color: var(--pf-tertiary-color-300);
|
|
4221
4221
|
}
|
|
4222
4222
|
|
|
4223
|
-
.border-
|
|
4224
|
-
border-color: var(--pf-
|
|
4223
|
+
.border-tertiary-400 {
|
|
4224
|
+
border-color: var(--pf-tertiary-color-400);
|
|
4225
4225
|
}
|
|
4226
4226
|
|
|
4227
|
-
.border-
|
|
4228
|
-
border-color: var(--pf-
|
|
4227
|
+
.border-tertiary-500 {
|
|
4228
|
+
border-color: var(--pf-tertiary-color-500);
|
|
4229
4229
|
}
|
|
4230
4230
|
|
|
4231
|
-
.border-
|
|
4232
|
-
border-color: var(--pf-
|
|
4231
|
+
.border-tertiary-600 {
|
|
4232
|
+
border-color: var(--pf-tertiary-color-600);
|
|
4233
4233
|
}
|
|
4234
4234
|
|
|
4235
|
-
.border-
|
|
4236
|
-
border-color: var(--pf-
|
|
4235
|
+
.border-tertiary-700 {
|
|
4236
|
+
border-color: var(--pf-tertiary-color-700);
|
|
4237
4237
|
}
|
|
4238
4238
|
|
|
4239
|
-
.border-
|
|
4240
|
-
border-color: var(--pf-
|
|
4239
|
+
.border-tertiary-800 {
|
|
4240
|
+
border-color: var(--pf-tertiary-color-800);
|
|
4241
4241
|
}
|
|
4242
4242
|
|
|
4243
|
-
.border-
|
|
4244
|
-
border-color: var(--pf-
|
|
4243
|
+
.border-tertiary-900 {
|
|
4244
|
+
border-color: var(--pf-tertiary-color-900);
|
|
4245
4245
|
}
|
|
4246
4246
|
|
|
4247
|
-
.border-
|
|
4248
|
-
border-color: var(--pf-
|
|
4247
|
+
.border-gray {
|
|
4248
|
+
border-color: var(--pf-gray-color);
|
|
4249
4249
|
}
|
|
4250
4250
|
|
|
4251
|
-
.border-
|
|
4252
|
-
border-color: var(--pf-
|
|
4251
|
+
.border-gray-100 {
|
|
4252
|
+
border-color: var(--pf-gray-color-100);
|
|
4253
4253
|
}
|
|
4254
4254
|
|
|
4255
|
-
.border-
|
|
4256
|
-
border-color: var(--pf-
|
|
4255
|
+
.border-gray-200 {
|
|
4256
|
+
border-color: var(--pf-gray-color-200);
|
|
4257
4257
|
}
|
|
4258
4258
|
|
|
4259
|
-
.border-
|
|
4260
|
-
border-color: var(--pf-
|
|
4259
|
+
.border-gray-300 {
|
|
4260
|
+
border-color: var(--pf-gray-color-300);
|
|
4261
4261
|
}
|
|
4262
4262
|
|
|
4263
|
-
.border-
|
|
4264
|
-
border-color: var(--pf-
|
|
4263
|
+
.border-gray-400 {
|
|
4264
|
+
border-color: var(--pf-gray-color-400);
|
|
4265
4265
|
}
|
|
4266
4266
|
|
|
4267
|
-
.border-
|
|
4268
|
-
border-color: var(--pf-
|
|
4267
|
+
.border-gray-500 {
|
|
4268
|
+
border-color: var(--pf-gray-color-500);
|
|
4269
4269
|
}
|
|
4270
4270
|
|
|
4271
|
-
.border-
|
|
4272
|
-
border-color: var(--pf-
|
|
4271
|
+
.border-gray-600 {
|
|
4272
|
+
border-color: var(--pf-gray-color-600);
|
|
4273
4273
|
}
|
|
4274
4274
|
|
|
4275
|
-
.border-
|
|
4276
|
-
border-color: var(--pf-
|
|
4275
|
+
.border-gray-700 {
|
|
4276
|
+
border-color: var(--pf-gray-color-700);
|
|
4277
4277
|
}
|
|
4278
4278
|
|
|
4279
|
-
.border-
|
|
4280
|
-
border-color: var(--pf-
|
|
4279
|
+
.border-gray-800 {
|
|
4280
|
+
border-color: var(--pf-gray-color-800);
|
|
4281
4281
|
}
|
|
4282
4282
|
|
|
4283
|
-
.border-
|
|
4284
|
-
border-color: var(--pf-
|
|
4283
|
+
.border-gray-900 {
|
|
4284
|
+
border-color: var(--pf-gray-color-900);
|
|
4285
4285
|
}
|
|
4286
4286
|
|
|
4287
|
-
.border-
|
|
4288
|
-
border-color: var(--pf-
|
|
4287
|
+
.border-red {
|
|
4288
|
+
border-color: var(--pf-red-color);
|
|
4289
4289
|
}
|
|
4290
4290
|
|
|
4291
|
-
.border-
|
|
4292
|
-
border-color: var(--pf-
|
|
4291
|
+
.border-red-100 {
|
|
4292
|
+
border-color: var(--pf-red-color-100);
|
|
4293
4293
|
}
|
|
4294
4294
|
|
|
4295
|
-
.border-
|
|
4296
|
-
border-color: var(--pf-
|
|
4295
|
+
.border-red-200 {
|
|
4296
|
+
border-color: var(--pf-red-color-200);
|
|
4297
4297
|
}
|
|
4298
4298
|
|
|
4299
|
-
.border-
|
|
4300
|
-
border-color: var(--pf-
|
|
4299
|
+
.border-red-300 {
|
|
4300
|
+
border-color: var(--pf-red-color-300);
|
|
4301
4301
|
}
|
|
4302
4302
|
|
|
4303
|
-
.border-
|
|
4304
|
-
border-color: var(--pf-
|
|
4303
|
+
.border-red-400 {
|
|
4304
|
+
border-color: var(--pf-red-color-400);
|
|
4305
4305
|
}
|
|
4306
4306
|
|
|
4307
|
-
.border-
|
|
4308
|
-
border-color: var(--pf-
|
|
4307
|
+
.border-red-500 {
|
|
4308
|
+
border-color: var(--pf-red-color-500);
|
|
4309
4309
|
}
|
|
4310
4310
|
|
|
4311
|
-
.border-
|
|
4312
|
-
border-color: var(--pf-
|
|
4311
|
+
.border-red-600 {
|
|
4312
|
+
border-color: var(--pf-red-color-600);
|
|
4313
4313
|
}
|
|
4314
4314
|
|
|
4315
|
-
.border-
|
|
4316
|
-
border-color: var(--pf-
|
|
4315
|
+
.border-red-700 {
|
|
4316
|
+
border-color: var(--pf-red-color-700);
|
|
4317
4317
|
}
|
|
4318
4318
|
|
|
4319
|
-
.border-
|
|
4320
|
-
border-color: var(--pf-
|
|
4319
|
+
.border-red-800 {
|
|
4320
|
+
border-color: var(--pf-red-color-800);
|
|
4321
4321
|
}
|
|
4322
4322
|
|
|
4323
|
-
.border-
|
|
4324
|
-
border-color: var(--pf-
|
|
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-
|
|
4368
|
-
border-color: var(--pf-
|
|
4367
|
+
.border-yellow {
|
|
4368
|
+
border-color: var(--pf-yellow-color);
|
|
4369
4369
|
}
|
|
4370
4370
|
|
|
4371
|
-
.border-
|
|
4372
|
-
border-color: var(--pf-
|
|
4371
|
+
.border-yellow-100 {
|
|
4372
|
+
border-color: var(--pf-yellow-color-100);
|
|
4373
4373
|
}
|
|
4374
4374
|
|
|
4375
|
-
.border-
|
|
4376
|
-
border-color: var(--pf-
|
|
4375
|
+
.border-yellow-200 {
|
|
4376
|
+
border-color: var(--pf-yellow-color-200);
|
|
4377
4377
|
}
|
|
4378
4378
|
|
|
4379
|
-
.border-
|
|
4380
|
-
border-color: var(--pf-
|
|
4379
|
+
.border-yellow-300 {
|
|
4380
|
+
border-color: var(--pf-yellow-color-300);
|
|
4381
4381
|
}
|
|
4382
4382
|
|
|
4383
|
-
.border-
|
|
4384
|
-
border-color: var(--pf-
|
|
4383
|
+
.border-yellow-400 {
|
|
4384
|
+
border-color: var(--pf-yellow-color-400);
|
|
4385
4385
|
}
|
|
4386
4386
|
|
|
4387
|
-
.border-
|
|
4388
|
-
border-color: var(--pf-
|
|
4387
|
+
.border-yellow-500 {
|
|
4388
|
+
border-color: var(--pf-yellow-color-500);
|
|
4389
4389
|
}
|
|
4390
4390
|
|
|
4391
|
-
.border-
|
|
4392
|
-
border-color: var(--pf-
|
|
4391
|
+
.border-yellow-600 {
|
|
4392
|
+
border-color: var(--pf-yellow-color-600);
|
|
4393
4393
|
}
|
|
4394
4394
|
|
|
4395
|
-
.border-
|
|
4396
|
-
border-color: var(--pf-
|
|
4395
|
+
.border-yellow-700 {
|
|
4396
|
+
border-color: var(--pf-yellow-color-700);
|
|
4397
4397
|
}
|
|
4398
4398
|
|
|
4399
|
-
.border-
|
|
4400
|
-
border-color: var(--pf-
|
|
4399
|
+
.border-yellow-800 {
|
|
4400
|
+
border-color: var(--pf-yellow-color-800);
|
|
4401
4401
|
}
|
|
4402
4402
|
|
|
4403
|
-
.border-
|
|
4404
|
-
border-color: var(--pf-
|
|
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-
|
|
4208
|
-
border-color: var(--pf-
|
|
4207
|
+
.border-tertiary {
|
|
4208
|
+
border-color: var(--pf-tertiary-color);
|
|
4209
4209
|
}
|
|
4210
4210
|
|
|
4211
|
-
.border-
|
|
4212
|
-
border-color: var(--pf-
|
|
4211
|
+
.border-tertiary-100 {
|
|
4212
|
+
border-color: var(--pf-tertiary-color-100);
|
|
4213
4213
|
}
|
|
4214
4214
|
|
|
4215
|
-
.border-
|
|
4216
|
-
border-color: var(--pf-
|
|
4215
|
+
.border-tertiary-200 {
|
|
4216
|
+
border-color: var(--pf-tertiary-color-200);
|
|
4217
4217
|
}
|
|
4218
4218
|
|
|
4219
|
-
.border-
|
|
4220
|
-
border-color: var(--pf-
|
|
4219
|
+
.border-tertiary-300 {
|
|
4220
|
+
border-color: var(--pf-tertiary-color-300);
|
|
4221
4221
|
}
|
|
4222
4222
|
|
|
4223
|
-
.border-
|
|
4224
|
-
border-color: var(--pf-
|
|
4223
|
+
.border-tertiary-400 {
|
|
4224
|
+
border-color: var(--pf-tertiary-color-400);
|
|
4225
4225
|
}
|
|
4226
4226
|
|
|
4227
|
-
.border-
|
|
4228
|
-
border-color: var(--pf-
|
|
4227
|
+
.border-tertiary-500 {
|
|
4228
|
+
border-color: var(--pf-tertiary-color-500);
|
|
4229
4229
|
}
|
|
4230
4230
|
|
|
4231
|
-
.border-
|
|
4232
|
-
border-color: var(--pf-
|
|
4231
|
+
.border-tertiary-600 {
|
|
4232
|
+
border-color: var(--pf-tertiary-color-600);
|
|
4233
4233
|
}
|
|
4234
4234
|
|
|
4235
|
-
.border-
|
|
4236
|
-
border-color: var(--pf-
|
|
4235
|
+
.border-tertiary-700 {
|
|
4236
|
+
border-color: var(--pf-tertiary-color-700);
|
|
4237
4237
|
}
|
|
4238
4238
|
|
|
4239
|
-
.border-
|
|
4240
|
-
border-color: var(--pf-
|
|
4239
|
+
.border-tertiary-800 {
|
|
4240
|
+
border-color: var(--pf-tertiary-color-800);
|
|
4241
4241
|
}
|
|
4242
4242
|
|
|
4243
|
-
.border-
|
|
4244
|
-
border-color: var(--pf-
|
|
4243
|
+
.border-tertiary-900 {
|
|
4244
|
+
border-color: var(--pf-tertiary-color-900);
|
|
4245
4245
|
}
|
|
4246
4246
|
|
|
4247
|
-
.border-
|
|
4248
|
-
border-color: var(--pf-
|
|
4247
|
+
.border-gray {
|
|
4248
|
+
border-color: var(--pf-gray-color);
|
|
4249
4249
|
}
|
|
4250
4250
|
|
|
4251
|
-
.border-
|
|
4252
|
-
border-color: var(--pf-
|
|
4251
|
+
.border-gray-100 {
|
|
4252
|
+
border-color: var(--pf-gray-color-100);
|
|
4253
4253
|
}
|
|
4254
4254
|
|
|
4255
|
-
.border-
|
|
4256
|
-
border-color: var(--pf-
|
|
4255
|
+
.border-gray-200 {
|
|
4256
|
+
border-color: var(--pf-gray-color-200);
|
|
4257
4257
|
}
|
|
4258
4258
|
|
|
4259
|
-
.border-
|
|
4260
|
-
border-color: var(--pf-
|
|
4259
|
+
.border-gray-300 {
|
|
4260
|
+
border-color: var(--pf-gray-color-300);
|
|
4261
4261
|
}
|
|
4262
4262
|
|
|
4263
|
-
.border-
|
|
4264
|
-
border-color: var(--pf-
|
|
4263
|
+
.border-gray-400 {
|
|
4264
|
+
border-color: var(--pf-gray-color-400);
|
|
4265
4265
|
}
|
|
4266
4266
|
|
|
4267
|
-
.border-
|
|
4268
|
-
border-color: var(--pf-
|
|
4267
|
+
.border-gray-500 {
|
|
4268
|
+
border-color: var(--pf-gray-color-500);
|
|
4269
4269
|
}
|
|
4270
4270
|
|
|
4271
|
-
.border-
|
|
4272
|
-
border-color: var(--pf-
|
|
4271
|
+
.border-gray-600 {
|
|
4272
|
+
border-color: var(--pf-gray-color-600);
|
|
4273
4273
|
}
|
|
4274
4274
|
|
|
4275
|
-
.border-
|
|
4276
|
-
border-color: var(--pf-
|
|
4275
|
+
.border-gray-700 {
|
|
4276
|
+
border-color: var(--pf-gray-color-700);
|
|
4277
4277
|
}
|
|
4278
4278
|
|
|
4279
|
-
.border-
|
|
4280
|
-
border-color: var(--pf-
|
|
4279
|
+
.border-gray-800 {
|
|
4280
|
+
border-color: var(--pf-gray-color-800);
|
|
4281
4281
|
}
|
|
4282
4282
|
|
|
4283
|
-
.border-
|
|
4284
|
-
border-color: var(--pf-
|
|
4283
|
+
.border-gray-900 {
|
|
4284
|
+
border-color: var(--pf-gray-color-900);
|
|
4285
4285
|
}
|
|
4286
4286
|
|
|
4287
|
-
.border-
|
|
4288
|
-
border-color: var(--pf-
|
|
4287
|
+
.border-red {
|
|
4288
|
+
border-color: var(--pf-red-color);
|
|
4289
4289
|
}
|
|
4290
4290
|
|
|
4291
|
-
.border-
|
|
4292
|
-
border-color: var(--pf-
|
|
4291
|
+
.border-red-100 {
|
|
4292
|
+
border-color: var(--pf-red-color-100);
|
|
4293
4293
|
}
|
|
4294
4294
|
|
|
4295
|
-
.border-
|
|
4296
|
-
border-color: var(--pf-
|
|
4295
|
+
.border-red-200 {
|
|
4296
|
+
border-color: var(--pf-red-color-200);
|
|
4297
4297
|
}
|
|
4298
4298
|
|
|
4299
|
-
.border-
|
|
4300
|
-
border-color: var(--pf-
|
|
4299
|
+
.border-red-300 {
|
|
4300
|
+
border-color: var(--pf-red-color-300);
|
|
4301
4301
|
}
|
|
4302
4302
|
|
|
4303
|
-
.border-
|
|
4304
|
-
border-color: var(--pf-
|
|
4303
|
+
.border-red-400 {
|
|
4304
|
+
border-color: var(--pf-red-color-400);
|
|
4305
4305
|
}
|
|
4306
4306
|
|
|
4307
|
-
.border-
|
|
4308
|
-
border-color: var(--pf-
|
|
4307
|
+
.border-red-500 {
|
|
4308
|
+
border-color: var(--pf-red-color-500);
|
|
4309
4309
|
}
|
|
4310
4310
|
|
|
4311
|
-
.border-
|
|
4312
|
-
border-color: var(--pf-
|
|
4311
|
+
.border-red-600 {
|
|
4312
|
+
border-color: var(--pf-red-color-600);
|
|
4313
4313
|
}
|
|
4314
4314
|
|
|
4315
|
-
.border-
|
|
4316
|
-
border-color: var(--pf-
|
|
4315
|
+
.border-red-700 {
|
|
4316
|
+
border-color: var(--pf-red-color-700);
|
|
4317
4317
|
}
|
|
4318
4318
|
|
|
4319
|
-
.border-
|
|
4320
|
-
border-color: var(--pf-
|
|
4319
|
+
.border-red-800 {
|
|
4320
|
+
border-color: var(--pf-red-color-800);
|
|
4321
4321
|
}
|
|
4322
4322
|
|
|
4323
|
-
.border-
|
|
4324
|
-
border-color: var(--pf-
|
|
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-
|
|
4368
|
-
border-color: var(--pf-
|
|
4367
|
+
.border-yellow {
|
|
4368
|
+
border-color: var(--pf-yellow-color);
|
|
4369
4369
|
}
|
|
4370
4370
|
|
|
4371
|
-
.border-
|
|
4372
|
-
border-color: var(--pf-
|
|
4371
|
+
.border-yellow-100 {
|
|
4372
|
+
border-color: var(--pf-yellow-color-100);
|
|
4373
4373
|
}
|
|
4374
4374
|
|
|
4375
|
-
.border-
|
|
4376
|
-
border-color: var(--pf-
|
|
4375
|
+
.border-yellow-200 {
|
|
4376
|
+
border-color: var(--pf-yellow-color-200);
|
|
4377
4377
|
}
|
|
4378
4378
|
|
|
4379
|
-
.border-
|
|
4380
|
-
border-color: var(--pf-
|
|
4379
|
+
.border-yellow-300 {
|
|
4380
|
+
border-color: var(--pf-yellow-color-300);
|
|
4381
4381
|
}
|
|
4382
4382
|
|
|
4383
|
-
.border-
|
|
4384
|
-
border-color: var(--pf-
|
|
4383
|
+
.border-yellow-400 {
|
|
4384
|
+
border-color: var(--pf-yellow-color-400);
|
|
4385
4385
|
}
|
|
4386
4386
|
|
|
4387
|
-
.border-
|
|
4388
|
-
border-color: var(--pf-
|
|
4387
|
+
.border-yellow-500 {
|
|
4388
|
+
border-color: var(--pf-yellow-color-500);
|
|
4389
4389
|
}
|
|
4390
4390
|
|
|
4391
|
-
.border-
|
|
4392
|
-
border-color: var(--pf-
|
|
4391
|
+
.border-yellow-600 {
|
|
4392
|
+
border-color: var(--pf-yellow-color-600);
|
|
4393
4393
|
}
|
|
4394
4394
|
|
|
4395
|
-
.border-
|
|
4396
|
-
border-color: var(--pf-
|
|
4395
|
+
.border-yellow-700 {
|
|
4396
|
+
border-color: var(--pf-yellow-color-700);
|
|
4397
4397
|
}
|
|
4398
4398
|
|
|
4399
|
-
.border-
|
|
4400
|
-
border-color: var(--pf-
|
|
4399
|
+
.border-yellow-800 {
|
|
4400
|
+
border-color: var(--pf-yellow-color-800);
|
|
4401
4401
|
}
|
|
4402
4402
|
|
|
4403
|
-
.border-
|
|
4404
|
-
border-color: var(--pf-
|
|
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 @@
|
|
|
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
|
@@ -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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
+
```
|
package/src/styles/_borders.scss
CHANGED
|
@@ -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', '
|
|
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-
|
|
22
|
-
<p className="text-align--center">border-
|
|
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-
|
|
26
|
-
<p className="text-align--center">border-
|
|
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-
|
|
38
|
-
<p className="text-align--center">border-
|
|
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
|
+
};
|