@ptlm-azulejo/loader 1.0.0 → 1.1.0-alpha.66

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/CHANGELOG.md ADDED
@@ -0,0 +1,40 @@
1
+ # Change Log
2
+
3
+ ## 1.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - eb0b0f8: Make components follow the brand typeface, add the medium (500) font weight, and
8
+ expose stable `data-testid` hooks.
9
+
10
+ - Each preset now names its brand's typeface in `--font-family`
11
+ (`presets/leroy-merlin.css` → LeroyMerlin, `presets/adeo.css` → Roboto), with
12
+ `Arial, sans-serif` as the fallback stack.
13
+ - Components apply that typeface on their root, so they follow the active brand
14
+ instead of inheriting the host page's font. Opt out per component by setting
15
+ `--font-family: inherit` on it.
16
+ - `base.css` adds `--font-weight-medium: 500`, alongside the existing regular
17
+ (400), semi-bold (600) and bold (700) weights.
18
+ - Every component now exposes `data-testid` on its root and on meaningful
19
+ sub-parts (`button` / `button-spinner`, `loader` / `loader-text`,
20
+ `datepicker` / `datepicker-clear`, `segmented-control` /
21
+ `segmented-control-segment`), so tests can target them without depending on
22
+ CSS class names.
23
+
24
+ As with upstream Mozaic, the presets **name** the typeface but ship no
25
+ `@font-face` and no font binaries — loading the files stays the app's job, so you
26
+ keep control of hosting, subsetting and preload. Until you load them the fallback
27
+ stack renders and nothing breaks. Install the font package matching your brand
28
+ alongside the preset:
29
+
30
+ ```bash
31
+ # Leroy Merlin
32
+ yarn add @ptlm-azulejo/themes @ptlm-azulejo/fonts-leroy-merlin
33
+ # Adeo
34
+ yarn add @ptlm-azulejo/themes @ptlm-azulejo/fonts-adeo
35
+ ```
36
+
37
+ See the Fonts section of `packages/themes/README.md` for the full recipe.
38
+
39
+ All notable changes to this project will be documented in this file.
40
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
package/dist/index.js CHANGED
@@ -1,9 +1,13 @@
1
- import { defineComponent as d, computed as s, openBlock as r, createElementBlock as c, normalizeClass as p, createElementVNode as o, toDisplayString as u, createCommentVNode as _ } from "vue";
2
- const x = { class: "az-loader__spinner" }, z = ["viewBox"], m = ["r"], h = {
1
+ import { defineComponent as n, computed as s, openBlock as r, createElementBlock as o, normalizeClass as p, createElementVNode as c, toDisplayString as u, createCommentVNode as x } from "vue";
2
+ const _ = {
3
+ "data-testid": "loader-spinner",
4
+ class: "az-loader__spinner"
5
+ }, z = ["viewBox"], m = ["r"], h = {
3
6
  key: 0,
7
+ "data-testid": "loader-text",
4
8
  class: "az-loader__text",
5
9
  role: "status"
6
- }, k = /* @__PURE__ */ d({
10
+ }, k = /* @__PURE__ */ n({
7
11
  __name: "index",
8
12
  props: {
9
13
  appearance: { default: "standard" },
@@ -11,11 +15,11 @@ const x = { class: "az-loader__spinner" }, z = ["viewBox"], m = ["r"], h = {
11
15
  text: {}
12
16
  },
13
17
  setup(t) {
14
- const a = t, l = s(() => ({
18
+ const a = t, d = s(() => ({
15
19
  [`az-loader--${a.size}`]: a.size && a.size !== "m",
16
20
  [`az-loader--${a.appearance}`]: a.appearance && a.appearance !== "standard",
17
21
  "az-loader--text-visible": a.text
18
- })), n = s(() => {
22
+ })), l = s(() => {
19
23
  let e;
20
24
  switch (a.size) {
21
25
  case "xs":
@@ -48,17 +52,20 @@ const x = { class: "az-loader__spinner" }, z = ["viewBox"], m = ["r"], h = {
48
52
  }
49
53
  return e;
50
54
  });
51
- return (e, v) => (r(), c("div", {
52
- class: p(["az-loader", l.value])
55
+ return (e, v) => (r(), o("div", {
56
+ "data-testid": "loader",
57
+ class: p(["az-loader", d.value])
53
58
  }, [
54
- o("span", x, [
55
- (r(), c("svg", {
59
+ c("span", _, [
60
+ (r(), o("svg", {
61
+ "data-testid": "loader-icon",
56
62
  class: "az-loader__icon",
57
63
  xmlns: "http://www.w3.org/2000/svg",
58
- viewBox: n.value,
64
+ viewBox: l.value,
59
65
  "aria-hidden": "true"
60
66
  }, [
61
- o("circle", {
67
+ c("circle", {
68
+ "data-testid": "loader-path",
62
69
  class: "az-loader__path",
63
70
  cx: "50%",
64
71
  cy: "50%",
@@ -66,7 +73,7 @@ const x = { class: "az-loader__spinner" }, z = ["viewBox"], m = ["r"], h = {
66
73
  }, null, 8, m)
67
74
  ], 8, z))
68
75
  ]),
69
- t.text ? (r(), c("p", h, u(t.text), 1)) : _("", !0)
76
+ t.text ? (r(), o("p", h, u(t.text), 1)) : x("", !0)
70
77
  ], 2));
71
78
  }
72
79
  });
@@ -1 +1 @@
1
- (function(s,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(s=typeof globalThis!="undefined"?globalThis:s||self,e(s.loader={},s.Vue))})(this,function(s,e){"use strict";const c={class:"az-loader__spinner"},n=["viewBox"],r=["r"],l={key:0,class:"az-loader__text",role:"status"},i=e.defineComponent({__name:"index",props:{appearance:{default:"standard"},size:{default:"m"},text:{}},setup(o){const a=o,d=e.computed(()=>({[`az-loader--${a.size}`]:a.size&&a.size!=="m",[`az-loader--${a.appearance}`]:a.appearance&&a.appearance!=="standard","az-loader--text-visible":a.text})),p=e.computed(()=>{let t;switch(a.size){case"xs":t="0 0 20 20";break;case"s":t="0 0 24 24";break;case"l":t="0 0 64 64";break;default:t="0 0 32 32"}return t}),u=e.computed(()=>{let t;switch(a.size){case"xs":t=6;break;case"s":t=6;break;case"l":t=19;break;default:t=9}return t});return(t,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["az-loader",d.value])},[e.createElementVNode("span",c,[(e.openBlock(),e.createElementBlock("svg",{class:"az-loader__icon",xmlns:"http://www.w3.org/2000/svg",viewBox:p.value,"aria-hidden":"true"},[e.createElementVNode("circle",{class:"az-loader__path",cx:"50%",cy:"50%",r:u.value},null,8,r)],8,n))]),o.text?(e.openBlock(),e.createElementBlock("p",l,e.toDisplayString(o.text),1)):e.createCommentVNode("",!0)],2))}});s.AzLoader=i,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
1
+ (function(s,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(s=typeof globalThis!="undefined"?globalThis:s||self,e(s.loader={},s.Vue))})(this,function(s,e){"use strict";const r={"data-testid":"loader-spinner",class:"az-loader__spinner"},n=["viewBox"],d=["r"],c={key:0,"data-testid":"loader-text",class:"az-loader__text",role:"status"},i=e.defineComponent({__name:"index",props:{appearance:{default:"standard"},size:{default:"m"},text:{}},setup(o){const a=o,l=e.computed(()=>({[`az-loader--${a.size}`]:a.size&&a.size!=="m",[`az-loader--${a.appearance}`]:a.appearance&&a.appearance!=="standard","az-loader--text-visible":a.text})),p=e.computed(()=>{let t;switch(a.size){case"xs":t="0 0 20 20";break;case"s":t="0 0 24 24";break;case"l":t="0 0 64 64";break;default:t="0 0 32 32"}return t}),u=e.computed(()=>{let t;switch(a.size){case"xs":t=6;break;case"s":t=6;break;case"l":t=19;break;default:t=9}return t});return(t,m)=>(e.openBlock(),e.createElementBlock("div",{"data-testid":"loader",class:e.normalizeClass(["az-loader",l.value])},[e.createElementVNode("span",r,[(e.openBlock(),e.createElementBlock("svg",{"data-testid":"loader-icon",class:"az-loader__icon",xmlns:"http://www.w3.org/2000/svg",viewBox:p.value,"aria-hidden":"true"},[e.createElementVNode("circle",{"data-testid":"loader-path",class:"az-loader__path",cx:"50%",cy:"50%",r:u.value},null,8,d)],8,n))]),o.text?(e.openBlock(),e.createElementBlock("p",c,e.toDisplayString(o.text),1)):e.createCommentVNode("",!0)],2))}});s.AzLoader=i,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
@@ -1 +1 @@
1
- {"version":3,"file":"index.stories.d.ts","sourceRoot":"","sources":["../../src/index.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,MAAM,CAqC7B,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,QAAQ,EAAE,KAAU,CAAC;AAElC,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAWrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAyBnB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC"}
1
+ {"version":3,"file":"index.stories.d.ts","sourceRoot":"","sources":["../../src/index.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,MAAM,CA6E7B,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,QAAQ,EAAE,KAAU,CAAC;AAElC,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAWrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAyBnB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC"}
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- /*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */:root{--loader-color-standard:var(--color-text-secondary);--loader-color-accent:var(--color-text-accent);--loader-color-inverse:var(--color-text-primary-inverse)}.az-loader{color:var(--loader-color-standard);flex-direction:column;align-items:center;display:inline-flex}.az-loader__spinner{height:calc(var(--spacing,.25rem) * 8);width:calc(var(--spacing,.25rem) * 8)}.az-loader--xs .az-loader__spinner{height:calc(var(--spacing,.25rem) * 5);width:calc(var(--spacing,.25rem) * 5)}.az-loader--s .az-loader__spinner{height:calc(var(--spacing,.25rem) * 6);width:calc(var(--spacing,.25rem) * 6)}.az-loader--l .az-loader__spinner{height:calc(var(--spacing,.25rem) * 16);width:calc(var(--spacing,.25rem) * 16)}.az-loader__path{stroke-width:4px}.az-loader--xs .az-loader__path{stroke-width:2px}.az-loader--l .az-loader__path{stroke-width:8px}.az-loader__spinner:not(:only-child){margin-bottom:calc(var(--spacing,.25rem) * 4)}.az-loader__icon{transform-origin:50%;animation:2s linear infinite rotate-loader}.az-loader__path{fill:none;stroke:currentColor;stroke-dasharray:1 200;stroke-dashoffset:0;stroke-linecap:round;animation:2s ease-in-out infinite animate-dash-loader}.az-loader__text{font-size:var(--font-size-05);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));color:currentColor}.az-loader--accent{color:var(--loader-color-accent)}.az-loader--inverse{color:var(--loader-color-inverse)}.az-loader:not(.az-loader--text-visible) .az-loader__text{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes rotate-loader{0%{transform:rotate(0)}to{transform:rotate(270deg)}}@keyframes animate-dash-loader{0%{stroke-dasharray:1 200;stroke-dashoffset:0}50%{stroke-dasharray:89 200;stroke-dashoffset:-35px}to{stroke-dasharray:89 200;stroke-dashoffset:-124px}}
1
+ /*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */:root{--loader-color-standard:var(--color-text-secondary);--loader-color-accent:var(--color-text-accent);--loader-color-inverse:var(--color-text-primary-inverse)}.az-loader{font-family:var(--font-family,ui-sans-serif, system-ui, sans-serif);color:var(--loader-color-standard);flex-direction:column;align-items:center;display:inline-flex}.az-loader__spinner{height:calc(var(--spacing,.25rem) * 8);width:calc(var(--spacing,.25rem) * 8)}.az-loader--xs .az-loader__spinner{height:calc(var(--spacing,.25rem) * 5);width:calc(var(--spacing,.25rem) * 5)}.az-loader--s .az-loader__spinner{height:calc(var(--spacing,.25rem) * 6);width:calc(var(--spacing,.25rem) * 6)}.az-loader--l .az-loader__spinner{height:calc(var(--spacing,.25rem) * 16);width:calc(var(--spacing,.25rem) * 16)}.az-loader__path{stroke-width:4px}.az-loader--xs .az-loader__path{stroke-width:2px}.az-loader--l .az-loader__path{stroke-width:8px}.az-loader__spinner:not(:only-child){margin-bottom:calc(var(--spacing,.25rem) * 4)}.az-loader__icon{transform-origin:50%;animation:2s linear infinite rotate-loader}.az-loader__path{fill:none;stroke:currentColor;stroke-dasharray:1 200;stroke-dashoffset:0;stroke-linecap:round;animation:2s ease-in-out infinite animate-dash-loader}.az-loader__text{font-size:var(--font-size-05);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));color:currentColor}.az-loader--accent{color:var(--loader-color-accent)}.az-loader--inverse{color:var(--loader-color-inverse)}.az-loader:not(.az-loader--text-visible) .az-loader__text{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes rotate-loader{0%{transform:rotate(0)}to{transform:rotate(270deg)}}@keyframes animate-dash-loader{0%{stroke-dasharray:1 200;stroke-dashoffset:0}50%{stroke-dasharray:89 200;stroke-dashoffset:-35px}to{stroke-dasharray:89 200;stroke-dashoffset:-124px}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ptlm-azulejo/loader",
3
- "version": "1.0.0",
3
+ "version": "1.1.0-alpha.66",
4
4
  "type": "module",
5
5
  "main": "./dist/index.umd.cjs",
6
6
  "module": "./dist/index.js",
@@ -27,11 +27,13 @@
27
27
  "dist/*"
28
28
  ],
29
29
  "devDependencies": {
30
+ "@ptlm-azulejo/fonts-adeo": "*",
31
+ "@ptlm-azulejo/fonts-leroy-merlin": "*",
32
+ "@ptlm-azulejo/themes": "*",
30
33
  "@storybook/addon-essentials": "^7.0.0",
31
34
  "@storybook/addon-interactions": "^7.0.0",
32
35
  "@storybook/vue3": "^7.0.0",
33
36
  "@storybook/vue3-vite": "^7.0.0",
34
- "@ptlm-azulejo/themes": "*",
35
37
  "@tailwindcss/vite": "^4.0.0",
36
38
  "storybook": "^7.0.0",
37
39
  "tailwindcss": "^4.0.0",