@revikornmann/muka-ui 0.6.0 → 0.8.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 (100) hide show
  1. package/dist/cjs/components/Alert/Alert.css +7 -0
  2. package/dist/cjs/components/DataPieChart/DataPieChart.css +29 -0
  3. package/dist/cjs/components/DataPieChart/DataPieChart.js +20 -3
  4. package/dist/cjs/components/DataPieChart/DataPieChart.js.map +1 -1
  5. package/dist/cjs/components/Dialog/Dialog.js +64 -7
  6. package/dist/cjs/components/Dialog/Dialog.js.map +1 -1
  7. package/dist/cjs/components/NavigationTransition/NavigationTransition.js +25 -8
  8. package/dist/cjs/components/NavigationTransition/NavigationTransition.js.map +1 -1
  9. package/dist/cjs/components/PhotoUploader/PhotoUploader.css +125 -0
  10. package/dist/cjs/components/PhotoUploader/PhotoUploader.js +257 -0
  11. package/dist/cjs/components/PhotoUploader/PhotoUploader.js.map +1 -0
  12. package/dist/cjs/components/PhotoUploader/index.js +6 -0
  13. package/dist/cjs/components/PhotoUploader/index.js.map +1 -0
  14. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.css +32 -2
  15. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.js +13 -2
  16. package/dist/cjs/components/ProgressAccordeon/ProgressAccordeon.js.map +1 -1
  17. package/dist/cjs/components/SpecList/SpecList.css +34 -21
  18. package/dist/cjs/components/SpecList/SpecList.js +9 -3
  19. package/dist/cjs/components/SpecList/SpecList.js.map +1 -1
  20. package/dist/cjs/components/Thumbnail/Thumbnail.css +171 -0
  21. package/dist/cjs/components/Thumbnail/Thumbnail.js +55 -0
  22. package/dist/cjs/components/Thumbnail/Thumbnail.js.map +1 -0
  23. package/dist/cjs/components/Thumbnail/index.js +6 -0
  24. package/dist/cjs/components/Thumbnail/index.js.map +1 -0
  25. package/dist/cjs/components/index.js +5 -1
  26. package/dist/cjs/components/index.js.map +1 -1
  27. package/dist/esm/components/Alert/Alert.css +7 -0
  28. package/dist/esm/components/DataPieChart/DataPieChart.css +29 -0
  29. package/dist/esm/components/DataPieChart/DataPieChart.js +20 -3
  30. package/dist/esm/components/DataPieChart/DataPieChart.js.map +1 -1
  31. package/dist/esm/components/Dialog/Dialog.js +31 -7
  32. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  33. package/dist/esm/components/NavigationTransition/NavigationTransition.js +25 -8
  34. package/dist/esm/components/NavigationTransition/NavigationTransition.js.map +1 -1
  35. package/dist/esm/components/PhotoUploader/PhotoUploader.css +125 -0
  36. package/dist/esm/components/PhotoUploader/PhotoUploader.js +254 -0
  37. package/dist/esm/components/PhotoUploader/PhotoUploader.js.map +1 -0
  38. package/dist/esm/components/PhotoUploader/index.js +2 -0
  39. package/dist/esm/components/PhotoUploader/index.js.map +1 -0
  40. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.css +32 -2
  41. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.js +13 -2
  42. package/dist/esm/components/ProgressAccordeon/ProgressAccordeon.js.map +1 -1
  43. package/dist/esm/components/SpecList/SpecList.css +34 -21
  44. package/dist/esm/components/SpecList/SpecList.js +9 -3
  45. package/dist/esm/components/SpecList/SpecList.js.map +1 -1
  46. package/dist/esm/components/Thumbnail/Thumbnail.css +171 -0
  47. package/dist/esm/components/Thumbnail/Thumbnail.js +52 -0
  48. package/dist/esm/components/Thumbnail/Thumbnail.js.map +1 -0
  49. package/dist/esm/components/Thumbnail/index.js +2 -0
  50. package/dist/esm/components/Thumbnail/index.js.map +1 -0
  51. package/dist/esm/components/index.js +2 -0
  52. package/dist/esm/components/index.js.map +1 -1
  53. package/dist/styles/components/Alert.css +7 -0
  54. package/dist/styles/components/DataPieChart.css +29 -0
  55. package/dist/styles/components/PhotoUploader.css +125 -0
  56. package/dist/styles/components/ProgressAccordeon.css +32 -2
  57. package/dist/styles/components/SpecList.css +34 -21
  58. package/dist/styles/components/Thumbnail.css +171 -0
  59. package/dist/styles/index.css +867 -449
  60. package/dist/styles/muka-dark.css +867 -449
  61. package/dist/styles/muka-light.css +867 -449
  62. package/dist/styles/tokens-bouwplan-dark.css +37 -0
  63. package/dist/styles/tokens-bouwplan-light.css +37 -0
  64. package/dist/styles/tokens-fscl-dark.css +37 -0
  65. package/dist/styles/tokens-fscl-light.css +37 -0
  66. package/dist/styles/tokens-grip-dark.css +37 -0
  67. package/dist/styles/tokens-grip-light.css +37 -0
  68. package/dist/styles/tokens-muka-dark.css +37 -0
  69. package/dist/styles/tokens-muka-light.css +37 -0
  70. package/dist/styles/tokens-wireframe-dark.css +37 -0
  71. package/dist/styles/tokens-wireframe-light.css +37 -0
  72. package/dist/styles/wireframe-dark.css +867 -449
  73. package/dist/styles/wireframe-light.css +867 -449
  74. package/dist/types/components/DataPieChart/DataPieChart.d.ts +7 -0
  75. package/dist/types/components/DataPieChart/DataPieChart.d.ts.map +1 -1
  76. package/dist/types/components/Dialog/Dialog.d.ts.map +1 -1
  77. package/dist/types/components/FileUpload/FileUpload.d.ts +1 -1
  78. package/dist/types/components/FileUpload/FileUpload.d.ts.map +1 -1
  79. package/dist/types/components/FileUpload/FileUploadItem.d.ts +1 -1
  80. package/dist/types/components/FileUpload/FileUploadItem.d.ts.map +1 -1
  81. package/dist/types/components/NavigationTransition/NavigationTransition.d.ts +3 -1
  82. package/dist/types/components/NavigationTransition/NavigationTransition.d.ts.map +1 -1
  83. package/dist/types/components/PhotoUploader/PhotoUploader.d.ts +71 -0
  84. package/dist/types/components/PhotoUploader/PhotoUploader.d.ts.map +1 -0
  85. package/dist/types/components/PhotoUploader/index.d.ts +2 -0
  86. package/dist/types/components/PhotoUploader/index.d.ts.map +1 -0
  87. package/dist/types/components/ProgressAccordeon/ProgressAccordeon.d.ts.map +1 -1
  88. package/dist/types/components/SpecList/SpecList.d.ts +13 -5
  89. package/dist/types/components/SpecList/SpecList.d.ts.map +1 -1
  90. package/dist/types/components/Thumbnail/Thumbnail.d.ts +77 -0
  91. package/dist/types/components/Thumbnail/Thumbnail.d.ts.map +1 -0
  92. package/dist/types/components/Thumbnail/index.d.ts +2 -0
  93. package/dist/types/components/Thumbnail/index.d.ts.map +1 -0
  94. package/dist/types/components/index.d.ts +2 -0
  95. package/dist/types/components/index.d.ts.map +1 -1
  96. package/package.json +1 -1
  97. package/scripts/build-tokens.js +12 -1
  98. package/tokens/t1-primitives/motion.json +21 -0
  99. package/tokens/t2-alias/base.json +17 -0
  100. package/tokens/t3-semantics/ui.json +12 -0
@@ -15,6 +15,13 @@ export interface DataPieChartProps {
15
15
  trackColor?: string;
16
16
  /** Render the percentage in the center (donut only) */
17
17
  showValue?: boolean;
18
+ /**
19
+ * Indeterminate (spinner) mode — donut only. Renders a fixed-length arc that
20
+ * spins continuously instead of a value-based segment. Shares the donut
21
+ * geometry so it can swap seamlessly with a progress donut (e.g. a photo
22
+ * thumbnail going from "processing" to "uploading").
23
+ */
24
+ indeterminate?: boolean;
18
25
  /** Additional CSS classes */
19
26
  className?: string;
20
27
  /** Accessible label; falls back to a generated summary */
@@ -1 +1 @@
1
- {"version":3,"file":"DataPieChart.d.ts","sourceRoot":"","sources":["../../../../components/DataPieChart/DataPieChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IAEd,0FAA0F;IAC1F,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAE1B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uDAAuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAQD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAoEpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"DataPieChart.d.ts","sourceRoot":"","sources":["../../../../components/DataPieChart/DataPieChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IAEd,0FAA0F;IAC1F,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAE1B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uDAAuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAQD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA8GpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../../components/Dialog/Dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoE,MAAM,OAAO,CAAC;AAIzF,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,IAAI,EAAE,OAAO,CAAC;IAEd,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,iCAAiC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,iFAAiF;IACjF,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAE1B,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE/B,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0DAA0D;IAC1D,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,kEAAkE;IAClE,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEhC,iDAAiD;IACjD,aAAa,CAAC,EAAE,SAAS,GAAG,kBAAkB,CAAC;IAE/C,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,yCAAyC;IACzC,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAElC,gEAAgE;IAChE,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEnC,uBAAuB;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,sEAAsE;IACtE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAErB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkBD,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA0QxC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../../components/Dialog/Dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoE,MAAM,OAAO,CAAC;AAIzF,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,IAAI,EAAE,OAAO,CAAC;IAEd,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,iCAAiC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,iFAAiF;IACjF,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAE1B,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE/B,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0DAA0D;IAC1D,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,kEAAkE;IAClE,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEhC,iDAAiD;IACjD,aAAa,CAAC,EAAE,SAAS,GAAG,kBAAkB,CAAC;IAE/C,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,yCAAyC;IACzC,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAElC,gEAAgE;IAChE,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEnC,uBAAuB;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,sEAAsE;IACtE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAErB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuCD,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAgRxC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -15,7 +15,7 @@ export interface FileWithStatus {
15
15
  file: File;
16
16
  id: string;
17
17
  progress?: number;
18
- status: 'pending' | 'uploading' | 'success' | 'error';
18
+ status: 'pending' | 'processing' | 'uploading' | 'success' | 'error';
19
19
  error?: string;
20
20
  previewUrl?: string;
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FileUpload.d.ts","sourceRoot":"","sources":["../../../../components/FileUpload/FileUpload.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,kBAAkB,CAAC;AAE1B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC1E,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,sCAAsC;IACtC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IAEzB,iCAAiC;IACjC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAElD,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAE3C,oCAAoC;IACpC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzF,qBAAqB;IACrB,OAAO,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAEhC,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAE1B,0BAA0B;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,uBAAuB;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAkBD,eAAO,MAAM,UAAU,wFAqUtB,CAAC;AAIF,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,CAAC;AACpD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"FileUpload.d.ts","sourceRoot":"","sources":["../../../../components/FileUpload/FileUpload.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,kBAAkB,CAAC;AAE1B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC1E,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,sCAAsC;IACtC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IAEzB,iCAAiC;IACjC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAElD,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAE3C,oCAAoC;IACpC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzF,qBAAqB;IACrB,OAAO,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAEhC,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAE1B,0BAA0B;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,uBAAuB;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAkBD,eAAO,MAAM,UAAU,wFAqUtB,CAAC;AAIF,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,CAAC;AACpD,eAAe,UAAU,CAAC"}
@@ -5,7 +5,7 @@ export interface FileUploadItemProps {
5
5
  /** Upload progress (0-100) */
6
6
  progress?: number;
7
7
  /** Upload status */
8
- status?: 'pending' | 'uploading' | 'success' | 'error';
8
+ status?: 'pending' | 'processing' | 'uploading' | 'success' | 'error';
9
9
  /** Error message if upload failed */
10
10
  error?: string;
11
11
  /** Preview URL for images */
@@ -1 +1 @@
1
- {"version":3,"file":"FileUploadItem.d.ts","sourceRoot":"","sources":["../../../../components/FileUpload/FileUploadItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,mBAAmB;IAClC,sBAAsB;IACtB,IAAI,EAAE,IAAI,CAAC;IAEX,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oBAAoB;IACpB,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;IAEvD,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAmBD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAsFxD,CAAC;AAIF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"FileUploadItem.d.ts","sourceRoot":"","sources":["../../../../components/FileUpload/FileUploadItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,mBAAmB;IAClC,sBAAsB;IACtB,IAAI,EAAE,IAAI,CAAC;IAEX,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oBAAoB;IACpB,MAAM,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;IAEtE,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAmBD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAsFxD,CAAC;AAIF,eAAe,cAAc,CAAC"}
@@ -7,8 +7,10 @@ export interface NavigationTransitionProps {
7
7
  activeKey: string;
8
8
  /** Direction of the navigation transition */
9
9
  direction: 'forward' | 'back';
10
- /** Animation duration in ms (default: 300) */
10
+ /** Animation duration in ms. Defaults to the --motion-duration-view token value. */
11
11
  duration?: number;
12
+ /** CSS easing string. Defaults to the spring easing (--motion-easing-enter token value). */
13
+ easing?: string;
12
14
  /** Additional CSS classes */
13
15
  className?: string;
14
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationTransition.d.ts","sourceRoot":"","sources":["../../../../components/NavigationTransition/NavigationTransition.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAC5E,OAAO,4BAA4B,CAAC;AAIpC,MAAM,WAAW,yBAAyB;IACxC,2CAA2C;IAC3C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAE5B,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAElB,6CAA6C;IAC7C,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC;IAE9B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAwGpE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"NavigationTransition.d.ts","sourceRoot":"","sources":["../../../../components/NavigationTransition/NavigationTransition.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAC5E,OAAO,4BAA4B,CAAC;AAKpC,MAAM,WAAW,yBAAyB;IACxC,2CAA2C;IAC3C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAE5B,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAElB,6CAA6C;IAC7C,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC;IAE9B,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA8GpE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,71 @@
1
+ import React from 'react';
2
+ import type { FileWithStatus, FileUploadError, UploadResult } from '../FileUpload';
3
+ import './PhotoUploader.css';
4
+ export type { FileWithStatus, FileUploadError, UploadResult, } from '../FileUpload';
5
+ export interface PhotoUploaderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onError'> {
6
+ /** Accepted file types (default: "image/*") */
7
+ accept?: string;
8
+ /** Allow multiple photo selection (default: true) */
9
+ multiple?: boolean;
10
+ /** Maximum file size in bytes */
11
+ maxSize?: number;
12
+ /** Maximum number of photos */
13
+ maxFiles?: number;
14
+ /** Disabled state */
15
+ disabled?: boolean;
16
+ /** Current photos (controlled mode) */
17
+ files?: FileWithStatus[];
18
+ /** Callback when the set of photos changes */
19
+ onFilesChange?: (files: FileWithStatus[]) => void;
20
+ /** Callback when a validation error occurs */
21
+ onError?: (error: FileUploadError) => void;
22
+ /** Upload function invoked for each photo; report progress via `onProgress` */
23
+ uploadFn?: (file: File, onProgress: (progress: number) => void) => Promise<UploadResult>;
24
+ /**
25
+ * Pre-upload transform run for each photo before `uploadFn` (e.g. HEIC
26
+ * conversion, image compression). The returned `File` is uploaded and its
27
+ * preview regenerated. Throwing marks the photo as errored/corrupt.
28
+ */
29
+ processFile?: (file: File) => Promise<File>;
30
+ /** Thumbnail shape / aspect ratio (default: "4:3") */
31
+ shape?: 'ellipse' | '1:1' | '4:3';
32
+ /** Label for the "choose photos" button (default: "Choose photos") */
33
+ chooseLabel?: string;
34
+ /** Text shown in the drop zone (default: "Or drag photos here") */
35
+ dropzoneLabel?: string;
36
+ /** Title shown in the enlarged-photo dialog */
37
+ dialogTitle?: string;
38
+ /** Enable click-to-enlarge in a dialog (default: true) */
39
+ enableDialog?: boolean;
40
+ /** Accessible label for the dialog's top-bar close (×) button (default: "Close") */
41
+ dialogCloseButtonLabel?: string;
42
+ /** Label for the dialog's "remove photo" footer button (default: "Delete photo") */
43
+ dialogRemoveLabel?: string;
44
+ /** Label for the dialog's "close" footer button (default: "Close") */
45
+ dialogCloseLabel?: string;
46
+ /** Show the inline error Alert summarising failed photos (default: true) */
47
+ showErrorAlert?: boolean;
48
+ /** Builds the error Alert title from the failed-photo count */
49
+ errorAlertTitle?: (count: number) => string;
50
+ /** Error Alert message (default: "Check if photos are fully downloaded and try again") */
51
+ errorAlertMessage?: string;
52
+ /** Accessible label for the drop zone */
53
+ 'aria-label'?: string;
54
+ /** Additional CSS classes */
55
+ className?: string;
56
+ }
57
+ /**
58
+ * PhotoUploader Component
59
+ *
60
+ * A photo-first uploader: a primary "choose photos" button, a grid of
61
+ * `Thumbnail` tiles for the selected photos, and a drop-zone card. Each
62
+ * thumbnail shows a progress donut while uploading, a remove (×) button once
63
+ * loaded, and — when `enableDialog` is set — opens the photo full-size in a
64
+ * `Dialog` (original aspect ratio preserved) on click.
65
+ *
66
+ * Photos can be supplied controlled (`files` + `onFilesChange`) or left
67
+ * uncontrolled. Provide `uploadFn` to drive per-photo upload progress.
68
+ */
69
+ export declare const PhotoUploader: React.ForwardRefExoticComponent<PhotoUploaderProps & React.RefAttributes<HTMLDivElement>>;
70
+ export default PhotoUploader;
71
+ //# sourceMappingURL=PhotoUploader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhotoUploader.d.ts","sourceRoot":"","sources":["../../../../components/PhotoUploader/PhotoUploader.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAMpF,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,YAAY,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,qBAAqB,CAAC;AAE7B,YAAY,EACV,cAAc,EACd,eAAe,EACf,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC1E,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,uCAAuC;IACvC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IAEzB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAElD,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAE3C,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzF;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;IAElC,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,oFAAoF;IACpF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,4EAA4E;IAC5E,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAE5C,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,2FAuczB,CAAC;AAIF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { PhotoUploader, type PhotoUploaderProps, type FileWithStatus, type FileUploadError, type UploadResult, } from './PhotoUploader';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/PhotoUploader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressAccordeon.d.ts","sourceRoot":"","sources":["../../../../components/ProgressAccordeon/ProgressAccordeon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,yBAAyB,CAAC;AAEjC,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,KAAK,EAAE,sBAAsB,CAAC;IAE9B,yFAAyF;IACzF,UAAU,EAAE,MAAM,CAAC;IAEnB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,uBAAuB,CAAC;IAExC,6EAA6E;IAC7E,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAE1C,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAuK9D,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ProgressAccordeon.d.ts","sourceRoot":"","sources":["../../../../components/ProgressAccordeon/ProgressAccordeon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,yBAAyB,CAAC;AAEjC,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,KAAK,EAAE,sBAAsB,CAAC;IAE9B,yFAAyF;IACzF,UAAU,EAAE,MAAM,CAAC;IAEnB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,uBAAuB,CAAC;IAExC,6EAA6E;IAC7E,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAE1C,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAgM9D,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -20,11 +20,18 @@ export interface SpecListProps {
20
20
  /** SpecRow children */
21
21
  children: React.ReactNode;
22
22
  /**
23
- * Visual density.
24
- * - `default` — comfortable spacing for scanning specs at a glance
25
- * - `compact` — denser for long lists
23
+ * Row layout.
24
+ * - `horizontal` — label and value side by side
25
+ * - `vertical` — label stacked above the value
26
26
  */
27
- density?: 'default' | 'compact';
27
+ stacking?: 'horizontal' | 'vertical';
28
+ /**
29
+ * Fixed label column width (horizontal stacking only).
30
+ * - `small` — 80px
31
+ * - `medium` — 120px
32
+ * - `large` — 160px
33
+ */
34
+ labelWidth?: 'small' | 'medium' | 'large';
28
35
  /** Additional CSS classes */
29
36
  className?: string;
30
37
  }
@@ -33,7 +40,8 @@ export interface SpecListProps {
33
40
  *
34
41
  * Mobile-friendly alternative to `Table` when displaying flat key/value data
35
42
  * (e.g. motorcycle specs, vehicle details). Each row is a `<dt>/<dd>` pair
36
- * inside a `<dl>` for semantic accessibility.
43
+ * inside a `<dl>` for semantic accessibility. Renders flat — no background,
44
+ * radius, or dividers — so it sits directly on the page surface.
37
45
  */
38
46
  export declare const SpecList: React.FC<SpecListProps>;
39
47
  export default SpecList;
@@ -1 +1 @@
1
- {"version":3,"file":"SpecList.d.ts","sourceRoot":"","sources":["../../../../components/SpecList/SpecList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,gBAAgB,CAAC;AAIxB,MAAM,WAAW,YAAY;IAC3B,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IAEd,kCAAkC;IAClC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IAEvB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAW1C,CAAC;AAIF,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAEhC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAS5C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"SpecList.d.ts","sourceRoot":"","sources":["../../../../components/SpecList/SpecList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,gBAAgB,CAAC;AAIxB,MAAM,WAAW,YAAY;IAC3B,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IAEd,kCAAkC;IAClC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IAEvB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAW1C,CAAC;AAIF,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAErC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAE1C,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAe5C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,77 @@
1
+ import React from 'react';
2
+ import './Thumbnail.css';
3
+ export interface ThumbnailProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onClick'> {
4
+ /** Image source URL */
5
+ src: string;
6
+ /** Alt text for the image */
7
+ alt?: string;
8
+ /**
9
+ * Tile shape / aspect ratio:
10
+ * - `'4:3'` — 160×120 rectangle (default)
11
+ * - `'1:1'` — 120×120 square
12
+ * - `'ellipse'` — 120×120 circle
13
+ */
14
+ shape?: 'ellipse' | '1:1' | '4:3';
15
+ /**
16
+ * When true the thumbnail shows an upload overlay with a progress donut.
17
+ * Interaction (hover zoom, click, remove) is suppressed while loading.
18
+ */
19
+ loading?: boolean;
20
+ /** Upload progress (0–100) rendered in the donut ring while `loading` */
21
+ progress?: number;
22
+ /**
23
+ * When true the thumbnail shows a pre-upload processing overlay with an
24
+ * indeterminate (spinning) donut. Swaps seamlessly into the `loading`
25
+ * progress donut. Interaction is suppressed while processing.
26
+ */
27
+ processing?: boolean;
28
+ /**
29
+ * When true the thumbnail shows an error/corrupt state: a red tile with an
30
+ * error icon and the `caption` (filename). The image is not shown and the
31
+ * tile is not interactive, but the remove (×) button remains.
32
+ */
33
+ error?: boolean;
34
+ /** Caption shown under the error icon (typically the filename) */
35
+ caption?: string;
36
+ /** Human-readable failure reason, exposed as the tile's `title` tooltip */
37
+ errorReason?: string;
38
+ /**
39
+ * Called when the remove (×) button is clicked. The button is shown when this
40
+ * handler is provided and the thumbnail is not loading/processing.
41
+ */
42
+ onRemove?: () => void;
43
+ /**
44
+ * Called when the thumbnail is activated (click / Enter / Space) — e.g. to
45
+ * open the photo in a dialog. Enables the interactive hover zoom.
46
+ */
47
+ onClick?: () => void;
48
+ /** Accessible label for the remove button (default: "Remove photo") */
49
+ removeLabel?: string;
50
+ /** Accessible label for the clickable image (default: "View photo") */
51
+ viewLabel?: string;
52
+ /** Additional CSS classes */
53
+ className?: string;
54
+ }
55
+ /**
56
+ * Thumbnail Component
57
+ *
58
+ * A single uploaded-photo tile used by `PhotoUploader`. Shows an image cropped
59
+ * to fill a fixed frame, with several behaviours driven by props:
60
+ *
61
+ * - **processing** — a dark overlay with an indeterminate (spinning) donut for
62
+ * pre-upload work (e.g. HEIC conversion / compression).
63
+ * - **loading** — a dark overlay with a `DataPieChart` progress donut; swaps
64
+ * seamlessly from `processing` (same ring).
65
+ * - **error** — a red tile with an error icon + caption (filename); the × stays.
66
+ * - **loaded, interactive** — hovering scales the image up ~8px (motion tokens)
67
+ * and clicking activates `onClick` (e.g. to enlarge in a dialog).
68
+ * - **removable** — a tertiary × button in the top-right corner calls
69
+ * `onRemove` to delete the photo.
70
+ *
71
+ * Tokens used: border-radius-lg, color-black-alpha-3, dialog-color-backdrop,
72
+ * button-color-tertiary-*, alias-color-state-error-*, alert-color-error-accent,
73
+ * motion-duration-micro, motion-easing-enter.
74
+ */
75
+ export declare const Thumbnail: React.ForwardRefExoticComponent<ThumbnailProps & React.RefAttributes<HTMLDivElement>>;
76
+ export default Thumbnail;
77
+ //# sourceMappingURL=Thumbnail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Thumbnail.d.ts","sourceRoot":"","sources":["../../../../components/Thumbnail/Thumbnail.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAG1C,OAAO,iBAAiB,CAAC;AAEzB,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC7D,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IAEZ,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;IAElC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,SAAS,uFAuGrB,CAAC;AAIF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Thumbnail, type ThumbnailProps } from './Thumbnail';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/Thumbnail/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -73,4 +73,6 @@ export { SwipeActions, type SwipeActionsProps, type SwipeActionConfig, } from '.
73
73
  export { PullToRefresh, type PullToRefreshProps } from './PullToRefresh';
74
74
  export { LicensePlateInput, type LicensePlateInputProps, } from './LicensePlateInput';
75
75
  export type { AccordionProps, AccordionItemProps, AccordionTriggerProps, AccordionContentProps, } from './Accordion';
76
+ export { Thumbnail, type ThumbnailProps } from './Thumbnail';
77
+ export { PhotoUploader, type PhotoUploaderProps, } from './PhotoUploader';
76
78
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACtD,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACzG,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EACL,UAAU,EACV,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,IAAI,EACJ,WAAW,EACX,WAAW,EACX,QAAQ,EACR,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,QAAQ,CAAC;AAChB,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,4BAA4B,EAC5B,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EACL,OAAO,EACP,cAAc,EACd,WAAW,EACX,cAAc,EACd,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,SAAS,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revikornmann/muka-ui",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "Muka Design System - Multi-brand design tokens and React components",
5
5
  "main": "dist/cjs/components/index.js",
6
6
  "module": "dist/esm/components/index.js",
@@ -239,7 +239,10 @@ class TokenBuilder {
239
239
 
240
240
  // Layout mode forcing (for Storybook / design tools)
241
241
  css += this.generateLayoutModeCSS(tokens);
242
-
242
+
243
+ // Accessibility: zero out motion durations when user prefers reduced motion
244
+ css += this.generateReducedMotionCSS(selector);
245
+
243
246
  // Add root fallback for default theme
244
247
  if (brand === 'muka' && theme === 'light') {
245
248
  css += '\n/* Default theme fallback */\n:root {\n';
@@ -255,6 +258,9 @@ class TokenBuilder {
255
258
 
256
259
  // Layout mode forcing for :root fallback
257
260
  css += this.generateLayoutModeCSS(tokens);
261
+
262
+ // Accessibility: reduced motion for :root fallback
263
+ css += this.generateReducedMotionCSS(':root');
258
264
  }
259
265
 
260
266
  return css;
@@ -386,6 +392,11 @@ class TokenBuilder {
386
392
  return css;
387
393
  }
388
394
 
395
+ // Generate @media (prefers-reduced-motion: reduce) block that zeros out motion durations
396
+ generateReducedMotionCSS(selector) {
397
+ return `\n/* Accessibility: disable motion for users who prefer reduced motion */\n@media (prefers-reduced-motion: reduce) {\n ${selector} {\n --motion-duration-micro: 0ms;\n --motion-duration-component: 0ms;\n --motion-duration-view: 0ms;\n }\n}\n`;
398
+ }
399
+
389
400
  // Build tokens for Storybook
390
401
  async build() {
391
402
  console.log('🚀 Building design tokens for Storybook...\n');
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": {
3
+ "$type": "other",
4
+ "$value": "https://design-tokens.org/schemas/1.0/schema.json"
5
+ },
6
+ "duration": {
7
+ "none": { "$type": "duration", "$value": "0ms" },
8
+ "instant": { "$type": "duration", "$value": "100ms" },
9
+ "fast": { "$type": "duration", "$value": "150ms" },
10
+ "normal": { "$type": "duration", "$value": "200ms" },
11
+ "slow": { "$type": "duration", "$value": "300ms" },
12
+ "slower": { "$type": "duration", "$value": "500ms" }
13
+ },
14
+ "easing": {
15
+ "standard": { "$type": "other", "$value": "cubic-bezier(0.4, 0, 0.2, 1)" },
16
+ "enter": { "$type": "other", "$value": "cubic-bezier(0, 0, 0.2, 1)" },
17
+ "exit": { "$type": "other", "$value": "cubic-bezier(0.4, 0, 1, 1)" },
18
+ "spring": { "$type": "other", "$value": "cubic-bezier(0.16, 1, 0.3, 1)" },
19
+ "linear": { "$type": "other", "$value": "linear" }
20
+ }
21
+ }
@@ -439,6 +439,23 @@
439
439
  "$type": "borderRadius",
440
440
  "$value": "{radius.full}"
441
441
  }
442
+ },
443
+ "motion": {
444
+ "duration": {
445
+ "none": { "$type": "duration", "$value": "{duration.none}" },
446
+ "instant": { "$type": "duration", "$value": "{duration.instant}" },
447
+ "fast": { "$type": "duration", "$value": "{duration.fast}" },
448
+ "normal": { "$type": "duration", "$value": "{duration.normal}" },
449
+ "slow": { "$type": "duration", "$value": "{duration.slow}" },
450
+ "slower": { "$type": "duration", "$value": "{duration.slower}" }
451
+ },
452
+ "easing": {
453
+ "standard": { "$type": "other", "$value": "{easing.standard}" },
454
+ "enter": { "$type": "other", "$value": "{easing.enter}" },
455
+ "exit": { "$type": "other", "$value": "{easing.exit}" },
456
+ "spring": { "$type": "other", "$value": "{easing.spring}" },
457
+ "linear": { "$type": "other", "$value": "{easing.linear}" }
458
+ }
442
459
  }
443
460
  }
444
461
  }
@@ -1358,5 +1358,17 @@
1358
1358
  }
1359
1359
  ]
1360
1360
  }
1361
+ },
1362
+ "motion": {
1363
+ "duration": {
1364
+ "micro": { "$type": "duration", "$value": "{alias.motion.duration.fast}" },
1365
+ "component": { "$type": "duration", "$value": "{alias.motion.duration.normal}" },
1366
+ "view": { "$type": "duration", "$value": "{alias.motion.duration.slow}" }
1367
+ },
1368
+ "easing": {
1369
+ "default": { "$type": "other", "$value": "{alias.motion.easing.standard}" },
1370
+ "enter": { "$type": "other", "$value": "{alias.motion.easing.spring}" },
1371
+ "exit": { "$type": "other", "$value": "{alias.motion.easing.exit}" }
1372
+ }
1361
1373
  }
1362
1374
  }