@solfacil/girassol 0.17.1 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/components.d.ts +1 -0
  2. package/dist/components.json +1 -1
  3. package/dist/girassol.es.js +5058 -4927
  4. package/dist/girassol.umd.js +6 -6
  5. package/dist/style.css +1 -1
  6. package/dist/tsconfig.app.tsbuildinfo +1 -0
  7. package/dist/types/components/accordion/Accordion.vue.d.ts +19 -76
  8. package/dist/types/components/breadcrumb/Breadcrumb.vue.d.ts +42 -0
  9. package/dist/types/components/breadcrumb/index.d.ts +2 -0
  10. package/dist/types/components/breadcrumb/types.d.ts +12 -0
  11. package/dist/types/components/collapsible/Collapsible.vue.d.ts +25 -90
  12. package/dist/types/components/empty-state/EmptyState.vue.d.ts +17 -74
  13. package/dist/types/components/filters/chip/removable-chip/RemovableChip.vue.d.ts +21 -92
  14. package/dist/types/components/filters/chip/selectable-chip/SelectableChip.vue.d.ts +23 -97
  15. package/dist/types/components/forms/button/button/Button.vue.d.ts +25 -94
  16. package/dist/types/components/forms/button/button-destructive/ButtonDestructive.vue.d.ts +17 -74
  17. package/dist/types/components/forms/checkbox/checkbox-group/CheckboxGroup.vue.d.ts +37 -131
  18. package/dist/types/components/forms/inputs/input-text/InputText.vue.d.ts +35 -134
  19. package/dist/types/components/forms/inputs/input-textarea/InputTextarea.vue.d.ts +2 -2
  20. package/dist/types/components/forms/radio/radio-group/RadioGroup.vue.d.ts +37 -131
  21. package/dist/types/components/forms/select/ListOption.vue.d.ts +18 -81
  22. package/dist/types/components/forms/select/Select.vue.d.ts +65 -216
  23. package/dist/types/components/forms/switch/Switch.vue.d.ts +2 -2
  24. package/dist/types/components/informations/alert/Alert.vue.d.ts +22 -97
  25. package/dist/types/components/informations/tag/Tag.vue.d.ts +21 -92
  26. package/dist/types/components/informations/text-value/TextValue.vue.d.ts +22 -81
  27. package/dist/types/components/list/List.vue.d.ts +63 -174
  28. package/dist/types/components/list/ListItem.vue.d.ts +61 -132
  29. package/dist/types/components/list/ListItemTextValue.vue.d.ts +21 -82
  30. package/dist/types/components/menus/menu/Menu.vue.d.ts +35 -94
  31. package/dist/types/components/menus/menu-item/menu-item/MenuItem.vue.d.ts +13 -64
  32. package/dist/types/components/menus/menu-item/menu-item-link/MenuItemLink.vue.d.ts +24 -85
  33. package/dist/types/components/menus/menu-navigation-links/MenuNavigationLinks.vue.d.ts +22 -69
  34. package/dist/types/components/modals/modal/Modal.vue.d.ts +44 -164
  35. package/dist/types/components/tabs/TabItem.vue.d.ts +19 -70
  36. package/dist/types/composables/use-toast/Toast.vue.d.ts +36 -133
  37. package/dist/types/index.d.ts +66 -21
  38. package/package.json +24 -23
  39. package/theme/safelist.ts +157 -21
  40. package/dist/cli/src/cli.d.ts +0 -1
  41. package/dist/cli/src/commands/create:component.d.ts +0 -1
  42. package/dist/cli/src/commands/generate:plugin.d.ts +0 -1
  43. package/dist/cli/src/commands/generate:types.d.ts +0 -7
  44. package/dist/cli/src/commands/girassol-cli.d.ts +0 -1
  45. package/dist/cli/src/extensions/cli-extension.d.ts +0 -1
  46. package/dist/cli/src/types.d.ts +0 -0
  47. package/dist/theme/solfacil/borders.d.ts +0 -18
  48. package/dist/theme/solfacil/colors.d.ts +0 -63
  49. package/dist/theme/solfacil/effects.d.ts +0 -17
  50. package/dist/theme/solfacil/index.d.ts +0 -18
  51. package/dist/theme/solfacil/miscs.d.ts +0 -144
  52. package/dist/theme/solfacil/screens.d.ts +0 -29
  53. package/dist/theme/solfacil/spacing.d.ts +0 -64
  54. package/dist/theme/solfacil/typography.d.ts +0 -41
  55. package/dist/theme/solfacil/utilities.d.ts +0 -8
  56. package/dist/types/components/accordion/accordion.spec.d.ts +0 -1
  57. package/dist/types/components/collapsible/collapsible.spec.d.ts +0 -1
  58. package/dist/types/components/date-picker/datepicker.spec.d.ts +0 -1
  59. package/dist/types/components/empty-state/empty-state.spec.d.ts +0 -1
  60. package/dist/types/components/file-upload/file-upload.spec.d.ts +0 -1
  61. package/dist/types/components/filters/chip/removable-chip/removable-chip.spec.d.ts +0 -1
  62. package/dist/types/components/filters/chip/selectable-chip/selectable-chip.spec.d.ts +0 -1
  63. package/dist/types/components/forms/button/button/button.spec.d.ts +0 -1
  64. package/dist/types/components/forms/checkbox/checkbox/checkbox.spec.d.ts +0 -1
  65. package/dist/types/components/forms/checkbox/checkbox-group/checkbox-group.spec.d.ts +0 -1
  66. package/dist/types/components/forms/inputs/input-core/input.spec.d.ts +0 -1
  67. package/dist/types/components/forms/inputs/input-password/input-password.spec.d.ts +0 -1
  68. package/dist/types/components/forms/inputs/input-text/input-text.spec.d.ts +0 -1
  69. package/dist/types/components/forms/inputs/input-textarea/textarea.spec.d.ts +0 -1
  70. package/dist/types/components/forms/radio/radio/radio.spec.d.ts +0 -1
  71. package/dist/types/components/forms/radio/radio-group/radio-group.spec.d.ts +0 -1
  72. package/dist/types/components/forms/select/select.spec.d.ts +0 -1
  73. package/dist/types/components/forms/switch/switch.spec.d.ts +0 -1
  74. package/dist/types/components/informations/alert/alert.spec.d.ts +0 -1
  75. package/dist/types/components/informations/tag/tag.spec.d.ts +0 -1
  76. package/dist/types/components/informations/text-value/text-value.spec.d.ts +0 -1
  77. package/dist/types/components/list/list.spec.d.ts +0 -1
  78. package/dist/types/components/menus/menu/menu.spec.d.ts +0 -1
  79. package/dist/types/components/modals/modal/modal.spec.d.ts +0 -1
  80. package/dist/types/components/modals/onboarding/onboading.spec.d.ts +0 -1
  81. package/dist/types/components/pagination/pagination.spec.d.ts +0 -1
  82. package/dist/types/components/search/search.spec.d.ts +0 -1
  83. package/dist/types/components/steps/steps.spec.d.ts +0 -1
  84. package/dist/types/components/tabs/tabs.spec.d.ts +0 -1
  85. package/dist/types/composables/use-filters/use-filters.spec.d.ts +0 -1
  86. package/dist/types/composables/use-toast/use-toast.spec.d.ts +0 -1
  87. package/dist/vite-modules/generate-component-types.d.ts +0 -3
  88. package/dist/vite.config.d.ts +0 -2
  89. package/dist/windi.config.d.ts +0 -2
@@ -27,6 +27,7 @@ import { SolSearch } from './components/search';
27
27
  import { SolDatePicker } from './components/date-picker';
28
28
  import { SolCollapsible } from './components/collapsible';
29
29
  import { SolFileUpload } from './components/file-upload';
30
+ import { SolBreadcrumb } from './components/breadcrumb';
30
31
  import 'virtual:windi-base.css';
31
32
  import 'virtual:windi-components.css';
32
33
  import 'virtual:windi-utilities.css';
@@ -375,7 +376,7 @@ export declare const components: {
375
376
  type: import("vue").PropType<Partial<import("vee-validate").FieldOptions<string>>>;
376
377
  };
377
378
  resize: {
378
- type: import("vue").PropType<"none" | "both" | "horizontal" | "vertical">;
379
+ type: import("vue").PropType<"none" | "vertical" | "both" | "horizontal">;
379
380
  } & {
380
381
  default: string;
381
382
  };
@@ -430,7 +431,7 @@ export declare const components: {
430
431
  type: import("vue").PropType<Partial<import("vee-validate").FieldOptions<string>>>;
431
432
  };
432
433
  resize: {
433
- type: import("vue").PropType<"none" | "both" | "horizontal" | "vertical">;
434
+ type: import("vue").PropType<"none" | "vertical" | "both" | "horizontal">;
434
435
  } & {
435
436
  default: string;
436
437
  };
@@ -439,7 +440,7 @@ export declare const components: {
439
440
  }, {
440
441
  error: string | null;
441
442
  size: "small" | "medium";
442
- resize: "none" | "both" | "horizontal" | "vertical";
443
+ resize: "none" | "vertical" | "both" | "horizontal";
443
444
  }>;
444
445
  SolInputText: {
445
446
  new (...args: any[]): {
@@ -1590,7 +1591,7 @@ export declare const components: {
1590
1591
  type: import("vue").PropType<boolean>;
1591
1592
  };
1592
1593
  textDirection: {
1593
- type: import("vue").PropType<"right" | "left">;
1594
+ type: import("vue").PropType<"left" | "right">;
1594
1595
  } & {
1595
1596
  default: string;
1596
1597
  };
@@ -1629,7 +1630,7 @@ export declare const components: {
1629
1630
  type: import("vue").PropType<boolean>;
1630
1631
  };
1631
1632
  textDirection: {
1632
- type: import("vue").PropType<"right" | "left">;
1633
+ type: import("vue").PropType<"left" | "right">;
1633
1634
  } & {
1634
1635
  default: string;
1635
1636
  };
@@ -1642,7 +1643,7 @@ export declare const components: {
1642
1643
  onChange?: ((value: string | boolean) => any) | undefined;
1643
1644
  "onUpdate:checked"?: ((value: boolean) => any) | undefined;
1644
1645
  }, {
1645
- textDirection: "right" | "left";
1646
+ textDirection: "left" | "right";
1646
1647
  stretchLabel: boolean;
1647
1648
  }>;
1648
1649
  SolSelect: {
@@ -3287,7 +3288,7 @@ export declare const components: {
3287
3288
  $data: {};
3288
3289
  $props: Partial<{
3289
3290
  label: string;
3290
- position: ("bottom" | "top" | "center") | ("right" | "left");
3291
+ position: ("center" | "bottom" | "top") | ("left" | "right");
3291
3292
  }> & Omit<Readonly<import("vue").ExtractPropTypes<{
3292
3293
  id: {
3293
3294
  type: import("vue").PropType<string>;
@@ -3299,7 +3300,7 @@ export declare const components: {
3299
3300
  default: string;
3300
3301
  };
3301
3302
  position: {
3302
- type: import("vue").PropType<("bottom" | "top" | "center") | ("right" | "left")>;
3303
+ type: import("vue").PropType<("center" | "bottom" | "top") | ("left" | "right")>;
3303
3304
  } & {
3304
3305
  default: string;
3305
3306
  };
@@ -3328,13 +3329,13 @@ export declare const components: {
3328
3329
  default: string;
3329
3330
  };
3330
3331
  position: {
3331
- type: import("vue").PropType<("bottom" | "top" | "center") | ("right" | "left")>;
3332
+ type: import("vue").PropType<("center" | "bottom" | "top") | ("left" | "right")>;
3332
3333
  } & {
3333
3334
  default: string;
3334
3335
  };
3335
3336
  }>>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
3336
3337
  label: string;
3337
- position: ("bottom" | "top" | "center") | ("right" | "left");
3338
+ position: ("center" | "bottom" | "top") | ("left" | "right");
3338
3339
  }, {}, string> & {
3339
3340
  beforeCreate?: ((() => void) | (() => void)[]) | undefined;
3340
3341
  created?: ((() => void) | (() => void)[]) | undefined;
@@ -3366,7 +3367,7 @@ export declare const components: {
3366
3367
  default: string;
3367
3368
  };
3368
3369
  position: {
3369
- type: import("vue").PropType<("bottom" | "top" | "center") | ("right" | "left")>;
3370
+ type: import("vue").PropType<("center" | "bottom" | "top") | ("left" | "right")>;
3370
3371
  } & {
3371
3372
  default: string;
3372
3373
  };
@@ -3385,13 +3386,13 @@ export declare const components: {
3385
3386
  default: string;
3386
3387
  };
3387
3388
  position: {
3388
- type: import("vue").PropType<("bottom" | "top" | "center") | ("right" | "left")>;
3389
+ type: import("vue").PropType<("center" | "bottom" | "top") | ("left" | "right")>;
3389
3390
  } & {
3390
3391
  default: string;
3391
3392
  };
3392
3393
  }>>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
3393
3394
  label: string;
3394
- position: ("bottom" | "top" | "center") | ("right" | "left");
3395
+ position: ("center" | "bottom" | "top") | ("left" | "right");
3395
3396
  }, {}, string> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
3396
3397
  $slots: {
3397
3398
  trigger: (_: {
@@ -4675,7 +4676,7 @@ export declare const components: {
4675
4676
  $: import("vue").ComponentInternalInstance;
4676
4677
  $data: {};
4677
4678
  $props: Partial<{
4678
- align: "right" | "left";
4679
+ align: "left" | "right";
4679
4680
  }> & Omit<Readonly<import("vue").ExtractPropTypes<{
4680
4681
  id: {
4681
4682
  type: import("vue").PropType<string>;
@@ -4688,7 +4689,7 @@ export declare const components: {
4688
4689
  type: import("vue").PropType<string>;
4689
4690
  };
4690
4691
  align: {
4691
- type: import("vue").PropType<"right" | "left">;
4692
+ type: import("vue").PropType<"left" | "right">;
4692
4693
  } & {
4693
4694
  default: string;
4694
4695
  };
@@ -4721,7 +4722,7 @@ export declare const components: {
4721
4722
  type: import("vue").PropType<string>;
4722
4723
  };
4723
4724
  align: {
4724
- type: import("vue").PropType<"right" | "left">;
4725
+ type: import("vue").PropType<"left" | "right">;
4725
4726
  } & {
4726
4727
  default: string;
4727
4728
  };
@@ -4729,7 +4730,7 @@ export declare const components: {
4729
4730
  type: import("vue").PropType<string>;
4730
4731
  };
4731
4732
  }>>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
4732
- align: "right" | "left";
4733
+ align: "left" | "right";
4733
4734
  }, {}, string> & {
4734
4735
  beforeCreate?: ((() => void) | (() => void)[]) | undefined;
4735
4736
  created?: ((() => void) | (() => void)[]) | undefined;
@@ -4762,7 +4763,7 @@ export declare const components: {
4762
4763
  type: import("vue").PropType<string>;
4763
4764
  };
4764
4765
  align: {
4765
- type: import("vue").PropType<"right" | "left">;
4766
+ type: import("vue").PropType<"left" | "right">;
4766
4767
  } & {
4767
4768
  default: string;
4768
4769
  };
@@ -4785,7 +4786,7 @@ export declare const components: {
4785
4786
  type: import("vue").PropType<string>;
4786
4787
  };
4787
4788
  align: {
4788
- type: import("vue").PropType<"right" | "left">;
4789
+ type: import("vue").PropType<"left" | "right">;
4789
4790
  } & {
4790
4791
  default: string;
4791
4792
  };
@@ -4793,7 +4794,7 @@ export declare const components: {
4793
4794
  type: import("vue").PropType<string>;
4794
4795
  };
4795
4796
  }>>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
4796
- align: "right" | "left";
4797
+ align: "left" | "right";
4797
4798
  }, {}, string> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
4798
4799
  $slots: {
4799
4800
  label: (_: {}) => any;
@@ -4948,6 +4949,50 @@ export declare const components: {
4948
4949
  downloadMenu: import("./components/file-upload/types").DownloadMenu[];
4949
4950
  }>;
4950
4951
  SolMenuItemSeparator: any;
4952
+ SolBreadcrumb: import("vue").DefineComponent<{
4953
+ id: {
4954
+ type: import("vue").PropType<string>;
4955
+ };
4956
+ items: {
4957
+ type: import("vue").PropType<import("./components/breadcrumb/types").Item[]>;
4958
+ } & {
4959
+ default: () => {
4960
+ text: string;
4961
+ href: string;
4962
+ }[];
4963
+ };
4964
+ linkTag: {
4965
+ type: import("vue").PropType<"a" | "router-link" | "nuxt-link">;
4966
+ } & {
4967
+ default: string;
4968
+ };
4969
+ gtmId: {
4970
+ type: import("vue").PropType<string>;
4971
+ };
4972
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
4973
+ id: {
4974
+ type: import("vue").PropType<string>;
4975
+ };
4976
+ items: {
4977
+ type: import("vue").PropType<import("./components/breadcrumb/types").Item[]>;
4978
+ } & {
4979
+ default: () => {
4980
+ text: string;
4981
+ href: string;
4982
+ }[];
4983
+ };
4984
+ linkTag: {
4985
+ type: import("vue").PropType<"a" | "router-link" | "nuxt-link">;
4986
+ } & {
4987
+ default: string;
4988
+ };
4989
+ gtmId: {
4990
+ type: import("vue").PropType<string>;
4991
+ };
4992
+ }>>, {
4993
+ items: import("./components/breadcrumb/types").Item[];
4994
+ linkTag: "a" | "router-link" | "nuxt-link";
4995
+ }>;
4951
4996
  };
4952
4997
  export declare function install(App: App): void;
4953
- export { SolButton, SolButtonDestructive, SolInputTextarea, SolInputText, SolInputTextPassword, SolRadio, SolRadioGroup, SolCheckbox, SolCheckboxGroup, SolSwitch, SolSelect, SolRemovableChip, SolSelectableChip, SolTag, SolAlert, SolAccordion, SolList, SolTabs, SolMenu, SolMenuItem, SolMenuItemLink, SolMenuNavigationLinks, SolModal, SolOnboarding, SolPagination, SolEmptyState, SolSearch, SolDatePicker, SolCollapsible, SolSteps, SolTextValue, SolFileUpload, SolMenuItemSeparator, };
4998
+ export { SolButton, SolButtonDestructive, SolInputTextarea, SolInputText, SolInputTextPassword, SolRadio, SolRadioGroup, SolCheckbox, SolCheckboxGroup, SolSwitch, SolSelect, SolRemovableChip, SolSelectableChip, SolTag, SolAlert, SolAccordion, SolList, SolTabs, SolMenu, SolMenuItem, SolMenuItemLink, SolMenuNavigationLinks, SolModal, SolOnboarding, SolPagination, SolEmptyState, SolSearch, SolDatePicker, SolCollapsible, SolSteps, SolTextValue, SolFileUpload, SolMenuItemSeparator, SolBreadcrumb, };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@solfacil/girassol",
3
3
  "description": "Girassol design system",
4
- "version": "0.17.1",
4
+ "version": "0.19.0",
5
5
  "license": "MIT",
6
6
  "authors": [
7
7
  {
@@ -37,10 +37,10 @@
37
37
  },
38
38
  "types": "./dist/types/index.d.ts",
39
39
  "scripts": {
40
- "typecheck": "vue-tsc --noEmit",
40
+ "typecheck": "vue-tsc -p tsconfig.app.json --noEmit",
41
41
  "dev": "vite --port 3333 --host",
42
42
  "build:lib": "vue-tsc --noEmit && vite build",
43
- "build:lib:ts": "vite build && vue-tsc --emitDeclarationOnly && mv dist/src dist/types",
43
+ "build:lib:ts": "vite build && vue-tsc -p tsconfig.app.json --emitDeclarationOnly && mv dist/src dist/types",
44
44
  "preview": "vite preview",
45
45
  "lint": "eslint src/ --resolve-plugins-relative-to .",
46
46
  "lint:fix": "eslint src/ --fix --resolve-plugins-relative-to .",
@@ -60,49 +60,50 @@
60
60
  "semantic-release": "semantic-release"
61
61
  },
62
62
  "dependencies": {
63
- "@vuepic/vue-datepicker": "^3.6.1",
63
+ "@vuepic/vue-datepicker": "^3.6.3",
64
64
  "@vueuse/core": "^9.6.0",
65
65
  "gluegun": "latest",
66
- "maska": "^1.5.1",
66
+ "maska": "^1.5.2",
67
67
  "vee-validate": "^4.7.3",
68
68
  "vue": "^3.2.45"
69
69
  },
70
70
  "devDependencies": {
71
- "@antfu/eslint-config": "^0.33.0",
71
+ "@antfu/eslint-config": "^0.34.0",
72
72
  "@babel/core": "^7.20.5",
73
73
  "@babel/preset-env": "^7.20.2",
74
74
  "@commitlint/cli": "^17.3.0",
75
75
  "@commitlint/config-conventional": "^17.3.0",
76
- "@iconify/json": "^2.1.146",
76
+ "@iconify/json": "^2.1.151",
77
77
  "@semantic-release/changelog": "^6.0.2",
78
78
  "@semantic-release/git": "^10.0.1",
79
79
  "@semantic-release/npm": "^9.0.1",
80
80
  "@semantic-release/release-notes-generator": "^10.0.3",
81
- "@storybook/addon-a11y": "^6.5.13",
82
- "@storybook/addon-actions": "^6.5.13",
83
- "@storybook/addon-essentials": "^6.5.13",
84
- "@storybook/addon-links": "^6.5.13",
81
+ "@storybook/addon-a11y": "^6.5.14",
82
+ "@storybook/addon-actions": "^6.5.14",
83
+ "@storybook/addon-essentials": "^6.5.14",
84
+ "@storybook/addon-links": "^6.5.14",
85
85
  "@storybook/builder-vite": "^0.2.5",
86
- "@storybook/theming": "^6.5.13",
87
- "@storybook/vue3": "^6.5.13",
86
+ "@storybook/theming": "^6.5.14",
87
+ "@storybook/vue3": "^6.5.14",
88
88
  "@testing-library/jest-dom": "^5.16.5",
89
89
  "@testing-library/user-event": "^14.4.3",
90
90
  "@testing-library/vue": "^6.6.1",
91
91
  "@types/jest-axe": "^3.5.5",
92
92
  "@types/node": "18.11.9",
93
- "@typescript-eslint/eslint-plugin": "^5.45.0",
94
- "@typescript-eslint/parser": "^5.45.0",
93
+ "@types/react": "^16.0.0",
94
+ "@typescript-eslint/eslint-plugin": "^5.46.1",
95
+ "@typescript-eslint/parser": "^5.46.1",
95
96
  "@vitejs/plugin-vue": "^3.2.0",
96
97
  "@vitest/coverage-c8": "^0.25.3",
97
98
  "@vitest/ui": "^0.25.3",
98
99
  "babel-loader": "^9.1.0",
99
100
  "c8": "^7.12.0",
100
101
  "cli-spinner": "^0.2.10",
101
- "commitizen": "^4.2.5",
102
+ "commitizen": "^4.2.6",
102
103
  "conventional-changelog-conventionalcommits": "^5.0.0",
103
104
  "copyfiles": "^2.4.1",
104
105
  "critters": "^0.0.16",
105
- "eslint": "^8.28.0",
106
+ "eslint": "^8.29.0",
106
107
  "eslint-config-prettier": "^8.5.0",
107
108
  "eslint-plugin-html": "^7.1.0",
108
109
  "eslint-plugin-prettier": "^4.2.1",
@@ -114,19 +115,19 @@
114
115
  "sass": "^1.56.1",
115
116
  "semantic-release": "^19.0.5",
116
117
  "storybook-addon-designs": "^6.3.1",
117
- "stylelint": "^14.15.0",
118
+ "stylelint": "^14.16.0",
118
119
  "stylelint-config-prettier": "^9.0.4",
119
120
  "stylelint-config-property-sort-order-smacss": "^9.0.0",
120
121
  "stylelint-order": "^5.0.0",
121
122
  "ts-node": "^10.9.1",
122
- "typescript": "^4.9.3",
123
- "unplugin-icons": "^0.14.14",
123
+ "typescript": "^4.9.4",
124
+ "unplugin-icons": "^0.14.15",
124
125
  "vite": "^3.2.4",
125
- "vite-plugin-inspect": "^0.7.9",
126
- "vite-plugin-windicss": "^1.8.8",
126
+ "vite-plugin-inspect": "^0.7.10",
127
+ "vite-plugin-windicss": "^1.8.10",
127
128
  "vitest": "^0.25.3",
128
129
  "vue-loader": "^17.0.1",
129
- "vue-tsc": "^1.0.11",
130
+ "vue-tsc": "^1.0.13",
130
131
  "windicss": "^3.5.6"
131
132
  },
132
133
  "resolutions": {
package/theme/safelist.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  type Data = {
2
2
  colors: Record<string, any>
3
3
  spacing: Record<string, any>
4
+ effects: Record<string, any>
5
+ borders: Record<string, any>
4
6
  }
5
7
 
6
8
  type Args = {
@@ -10,18 +12,26 @@ type Args = {
10
12
 
11
13
  export function safelist({ activeSafeList = true, data }: Args): string[] {
12
14
  if (activeSafeList) {
13
- const colors = data.colors ? safelistElementColors(safelistColors(data.colors)) : []
15
+ const colors = data.colors
16
+ ? safelistElementColors(safelistColors(data.colors))
17
+ : []
14
18
  const spacing = data.spacing ? safelistSpacing(data.spacing) : []
15
19
 
16
- const gaps = range(20).map(i => `gap-${i}`)
17
- const gridRows = range(14).map(i => `grid-rows-${i}`)
18
- const gridCols = range(14).map(i => `grid-cols-${i}`)
19
- const rowsStart = range(14).map(i => `row-start-${i}`)
20
- const colsStart = range(14).map(i => `col-start-${i}`)
21
- const rowsSpan = range(14).map(i => `row-span-${i}`)
22
- const colsSpan = range(14).map(i => `col-span-${i}`)
20
+ const effects = safelistEffects(data.effects)
23
21
 
24
- return [
22
+ const gaps = range(20).map((i) => `gap-${i}`)
23
+ const gridRows = range(14).map((i) => `grid-rows-${i}`)
24
+ const gridCols = range(14).map((i) => `grid-cols-${i}`)
25
+ const rowsStart = range(14).map((i) => `row-start-${i}`)
26
+ const colsStart = range(14).map((i) => `col-start-${i}`)
27
+ const rowsSpan = range(14).map((i) => `row-span-${i}`)
28
+ const colsSpan = range(14).map((i) => `col-span-${i}`)
29
+
30
+ const maxLines = range(10).map((i) => `max-lines-${i}`)
31
+
32
+ const borders = safelistBorders(data.borders.borderRadius, data.borders.borderWidth)
33
+
34
+ return [
25
35
  'debug',
26
36
  'debug-all',
27
37
  ...colors,
@@ -33,10 +43,14 @@ export function safelist({ activeSafeList = true, data }: Args): string[] {
33
43
  ...colsStart,
34
44
  ...rowsSpan,
35
45
  ...colsSpan,
46
+ ...effects,
47
+ ...maxLines,
48
+ ...borders,
49
+ ...safelistTypography(),
50
+ ...safelistIconSizes(),
36
51
  ]
37
52
  }
38
53
 
39
-
40
54
  return []
41
55
  }
42
56
 
@@ -63,9 +77,22 @@ export function safelistColors(colors: Data['colors']) {
63
77
  }
64
78
 
65
79
  export function safelistElementColors(colorsNames: string[]) {
66
- const elements = ['text', 'bg', 'outline', 'fill', 'stroke', 'border', 'text-decoration-color', 'text-stroke-color']
80
+ const elements = [
81
+ 'text',
82
+ 'bg',
83
+ 'outline',
84
+ 'fill',
85
+ 'stroke',
86
+ 'border',
87
+ 'shadow',
88
+ 'text-decoration-color',
89
+ 'text-stroke-color',
90
+ ]
91
+
67
92
  const elementColors: string[] = []
68
93
 
94
+ elements.forEach((element) => elementColors.push(`${element}-transparent`))
95
+
69
96
  elements.forEach((element: string) => {
70
97
  colorsNames.forEach((color: string) => {
71
98
  elementColors.push(`${element}-${color}`)
@@ -75,19 +102,80 @@ export function safelistElementColors(colorsNames: string[]) {
75
102
  return elementColors
76
103
  }
77
104
 
105
+ export function safelistBorders(borderRadius: Data['spacing'], borderWidth: Data['spacing']): string[] {
106
+ const borderAxis = [
107
+ 'border',
108
+ 'border-a',
109
+ 'border-x',
110
+ 'border-y',
111
+ 'border-l',
112
+ 'border-r',
113
+ 'border-t',
114
+ 'border-b',
115
+ ]
116
+ const borderWidthAxis = [
117
+ 'rounded',
118
+ 'rounded-x',
119
+ 'rounded-y',
120
+ 'rounded-l',
121
+ 'rounded-r',
122
+ 'rounded-t',
123
+ 'rounded-b',
124
+ ]
125
+
126
+ const elementsBorder: string[] = []
127
+
128
+
129
+ Object.keys(borderWidth).forEach((element: string) => {
130
+ borderAxis.forEach((axis) => {
131
+ elementsBorder.push(`${axis}-${element}`)
132
+ })
133
+ })
134
+
135
+ Object.keys(borderRadius).forEach((element: string) => {
136
+ borderWidthAxis.forEach((axis) => {
137
+ elementsBorder.push(`${axis}-${element}`)
138
+ })
139
+ })
140
+
141
+ return elementsBorder
142
+ }
78
143
 
79
144
  export function safelistSpacing(spacing: Data['spacing']): string[] {
80
145
  const spacingTokenNames = Object.keys(spacing)
81
146
  const paddings = ['p', 'px', 'py', 'pl', 'pr', 'pt', 'pb']
82
147
  const margins = ['m', 'mx', 'my', 'ml', 'mr', 'mt', 'mb']
83
148
 
84
- const typos = ['text', 'tracking', 'decoration', 'underline-offset', 'indent', 'text-stroke']
149
+ const typos = [
150
+ 'text',
151
+ 'tracking',
152
+ 'decoration',
153
+ 'underline-offset',
154
+ 'indent',
155
+ 'text-stroke',
156
+ ]
85
157
  const svg = ['stroke']
86
- const border = ['border-a', 'border-x', 'border-y', 'border-l', 'border-r', 'border-t', 'border-b']
87
-
88
- const elements = [...paddings, ...margins, ...typos, ...svg, ...border]
89
-
90
- const elementSpacing: string[] = []
158
+ const border = [
159
+ 'border-a',
160
+ 'border-x',
161
+ 'border-y',
162
+ 'border-l',
163
+ 'border-r',
164
+ 'border-t',
165
+ 'border-b',
166
+ ]
167
+
168
+ const staticTokens = ['w-full', 'h-full', 'w-fit-content']
169
+
170
+ const elements = [
171
+ ...paddings,
172
+ ...margins,
173
+ ...typos,
174
+ ...svg,
175
+ ...border,
176
+ ]
177
+
178
+ const elementSpacing: string[] = staticTokens
91
179
 
92
180
  elements.forEach((element: string) => {
93
181
  spacingTokenNames.forEach((space: string) => {
@@ -95,12 +183,60 @@ export function safelistSpacing(spacing: Data['spacing']): string[] {
95
183
  })
96
184
  })
97
185
 
98
- margins.forEach(margin => elementSpacing.push(`${margin}-auto`))
99
- paddings.forEach(padding => elementSpacing.push(`${padding}-auto`))
186
+ margins.forEach((margin) => elementSpacing.push(`${margin}-auto`))
187
+ paddings.forEach((padding) => elementSpacing.push(`${padding}-auto`))
100
188
 
101
189
  return elementSpacing
102
190
  }
103
191
 
104
192
  export function range(size: number, startAt = 1) {
105
- return Array.from(Array(size).keys()).map(i => i + startAt)
106
- }
193
+ return Array.from(Array(size).keys()).map((i) => i + startAt)
194
+ }
195
+
196
+ export function safelistEffects(effects: Data['effects']) {
197
+ const opacitiesPrefix = ['text', 'bg', 'shadow']
198
+
199
+ const opacities = Object.keys(effects.opacity).flatMap((opacity) =>
200
+ opacitiesPrefix.map((prefix) => `${prefix}-${opacity}`),
201
+ )
202
+
203
+ const shadows = Object.keys(effects.boxShadow).flatMap(
204
+ (shadow) => `shadow-${shadow}`,
205
+ )
206
+
207
+ return [...opacities, ...shadows]
208
+ }
209
+
210
+ export function safelistIconSizes() {
211
+ return [
212
+ 'icon-size-small',
213
+ 'icon-size-medium',
214
+ 'icon-size-large',
215
+ 'icon-size-x-large',
216
+ 'icon-size-giga',
217
+ ]
218
+ }
219
+
220
+ export function safelistTypography() {
221
+ return [
222
+ 'fonts-display-large',
223
+ 'fonts-display-medium',
224
+ 'fonts-display-small',
225
+ 'fonts-heading-h1',
226
+ 'fonts-heading-h2',
227
+ 'fonts-heading-h3',
228
+ 'fonts-heading-h4',
229
+ 'fonts-body-x-large-regular',
230
+ 'fonts-body-x-large-bold',
231
+ 'fonts-body-large-regular',
232
+ 'fonts-body-large-bold',
233
+ 'fonts-body-medium-regular',
234
+ 'fonts-body-medium-bold',
235
+ 'fonts-body-small-regular',
236
+ 'fonts-body-small-bold',
237
+ 'fonts-link-inline-large',
238
+ 'fonts-link-inline-medium',
239
+ 'fonts-link-inline-small',
240
+ 'fonts-overline-small',
241
+ ]
242
+ }
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,7 +0,0 @@
1
- import type { GluegunToolbox } from 'gluegun';
2
- declare const _default: {
3
- name: string;
4
- description: string;
5
- run: (toolbox: GluegunToolbox) => Promise<void>;
6
- };
7
- export default _default;
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
File without changes
@@ -1,18 +0,0 @@
1
- declare const _default: {
2
- borderRadius: {
3
- none: number;
4
- sm: string;
5
- md: string;
6
- lg: string;
7
- full: string;
8
- half: string;
9
- };
10
- borderWidth: {
11
- none: number;
12
- xs: string;
13
- sm: string;
14
- md: string;
15
- lg: string;
16
- };
17
- };
18
- export default _default;