@visitwonders/assembly 0.11.0 → 0.12.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 (48) hide show
  1. package/declarations/form/combobox-field.d.ts +2 -0
  2. package/declarations/form/combobox-field.d.ts.map +1 -1
  3. package/declarations/form/control.d.ts +3 -1
  4. package/declarations/form/control.d.ts.map +1 -1
  5. package/declarations/form/country-select-field.d.ts +2 -0
  6. package/declarations/form/country-select-field.d.ts.map +1 -1
  7. package/declarations/form/date-picker-field.d.ts +2 -0
  8. package/declarations/form/date-picker-field.d.ts.map +1 -1
  9. package/declarations/form/date-range-picker-field.d.ts +2 -0
  10. package/declarations/form/date-range-picker-field.d.ts.map +1 -1
  11. package/declarations/form/display-field.d.ts +2 -0
  12. package/declarations/form/display-field.d.ts.map +1 -1
  13. package/declarations/form/label.d.ts +1 -1
  14. package/declarations/form/label.d.ts.map +1 -1
  15. package/declarations/form/money-field.d.ts +2 -0
  16. package/declarations/form/money-field.d.ts.map +1 -1
  17. package/declarations/form/multi-combobox-field.d.ts +2 -0
  18. package/declarations/form/multi-combobox-field.d.ts.map +1 -1
  19. package/declarations/form/number-field.d.ts +2 -0
  20. package/declarations/form/number-field.d.ts.map +1 -1
  21. package/declarations/form/select-field.d.ts +2 -0
  22. package/declarations/form/select-field.d.ts.map +1 -1
  23. package/declarations/form/text-field.d.ts +2 -0
  24. package/declarations/form/text-field.d.ts.map +1 -1
  25. package/declarations/form/time-picker-field.d.ts +2 -0
  26. package/declarations/form/time-picker-field.d.ts.map +1 -1
  27. package/dist/form/combobox-field.js +1 -1
  28. package/dist/form/combobox-field.js.map +1 -1
  29. package/dist/form/control.js +1 -1
  30. package/dist/form/country-select-field.js +1 -1
  31. package/dist/form/country-select-field.js.map +1 -1
  32. package/dist/form/date-picker-field.js +1 -1
  33. package/dist/form/date-picker-field.js.map +1 -1
  34. package/dist/form/date-range-picker-field.js +1 -1
  35. package/dist/form/date-range-picker-field.js.map +1 -1
  36. package/dist/form/display-field.js +1 -1
  37. package/dist/form/label.css +2 -1
  38. package/dist/form/label.js +1 -1
  39. package/dist/form/money-field.js +1 -1
  40. package/dist/form/multi-combobox-field.js +1 -1
  41. package/dist/form/multi-combobox-field.js.map +1 -1
  42. package/dist/form/number-field.js +1 -1
  43. package/dist/form/select-field.js +1 -1
  44. package/dist/form/select-field.js.map +1 -1
  45. package/dist/form/text-field.js +1 -1
  46. package/dist/form/time-picker-field.js +1 -1
  47. package/dist/form/time-picker-field.js.map +1 -1
  48. package/package.json +16 -17
@@ -44,6 +44,8 @@ export interface ComboBoxFieldSignature {
44
44
  isClearable?: boolean;
45
45
  /** Info tooltip text shown next to the label. */
46
46
  labelInfo?: string;
47
+ /** Optional indicator - shows "optional" or custom text next to the label. */
48
+ optionalIndicator?: boolean | string;
47
49
  /** Label visibility. */
48
50
  labelVisibility?: LabelVisibility;
49
51
  /** Input name for forms. */
@@ -1 +1 @@
1
- {"version":3,"file":"combobox-field.d.ts","sourceRoot":"","sources":["../../src/form/combobox-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAI3C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,6BAA6B;QAC7B,KAAK,EAAE,MAAM,CAAC;QAEd,8CAA8C;QAC9C,KAAK,EAAE,aAAa,CAAC;QAErB,2CAA2C;QAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAEtB,wCAAwC;QACxC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;QAEzE,iDAAiD;QACjD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;QAErD,qCAAqC;QACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAE1B,+BAA+B;QAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;QAEpB,iDAAiD;QACjD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAEzC,wBAAwB;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,yBAAyB;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,wBAAwB;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QAEvB,4DAA4D;QAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;QAEtB,oDAAoD;QACpD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAEnC,kCAAkC;QAClC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;QAExC,6CAA6C;QAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,+CAA+C;QAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,yBAAyB;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,yBAAyB;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,iDAAiD;QACjD,WAAW,CAAC,EAAE,OAAO,CAAC;QAEtB,iDAAiD;QACjD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,wBAAwB;QACxB,eAAe,CAAC,EAAE,eAAe,CAAC;QAElC,4BAA4B;QAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,0BAA0B;QAC1B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAErC,2BAA2B;QAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAEtC,qCAAqC;QACrC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;QAEpB,sCAAsC;QACtC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN,oDAAoD;QACpD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS,CAAC,sBAAsB,CAAC;IAC1E,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,yEAAyE;IACzE,kBAAkB,cAAe,MAAM,KAAG,MAAM,GAAG,SAAS,CAS1D;CAkEH"}
1
+ {"version":3,"file":"combobox-field.d.ts","sourceRoot":"","sources":["../../src/form/combobox-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAI3C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,6BAA6B;QAC7B,KAAK,EAAE,MAAM,CAAC;QAEd,8CAA8C;QAC9C,KAAK,EAAE,aAAa,CAAC;QAErB,2CAA2C;QAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAEtB,wCAAwC;QACxC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;QAEzE,iDAAiD;QACjD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;QAErD,qCAAqC;QACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAE1B,+BAA+B;QAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;QAEpB,iDAAiD;QACjD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAEzC,wBAAwB;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,yBAAyB;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,wBAAwB;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QAEvB,4DAA4D;QAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;QAEtB,oDAAoD;QACpD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAEnC,kCAAkC;QAClC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;QAExC,6CAA6C;QAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,+CAA+C;QAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,yBAAyB;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,yBAAyB;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,iDAAiD;QACjD,WAAW,CAAC,EAAE,OAAO,CAAC;QAEtB,iDAAiD;QACjD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,8EAA8E;QAC9E,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAErC,wBAAwB;QACxB,eAAe,CAAC,EAAE,eAAe,CAAC;QAElC,4BAA4B;QAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,0BAA0B;QAC1B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAErC,2BAA2B;QAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAEtC,qCAAqC;QACrC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;QAEpB,sCAAsC;QACtC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN,oDAAoD;QACpD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS,CAAC,sBAAsB,CAAC;IAC1E,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,yEAAyE;IACzE,kBAAkB,cAAe,MAAM,KAAG,MAAM,GAAG,SAAS,CAS1D;CAkEH"}
@@ -23,13 +23,15 @@ export interface ControlSignature {
23
23
  orientation?: ControlOrientation;
24
24
  /** Info tooltip text shown next to the label */
25
25
  labelInfo?: string;
26
+ /** Optional indicator - shows "optional" or custom text next to the label */
27
+ optionalIndicator?: boolean | string;
26
28
  /** Maximum width constraint */
27
29
  maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
28
30
  };
29
31
  Blocks: {
30
32
  default: [
31
33
  {
32
- Label: WithBoundArgs<typeof Label, 'for' | 'isRequired' | 'isDisabled' | 'info'>;
34
+ Label: WithBoundArgs<typeof Label, 'for' | 'isRequired' | 'isDisabled' | 'info' | 'optionalIndicator'>;
33
35
  Input: WithBoundArgs<typeof Input, 'id' | 'isDisabled' | 'isRequired' | 'isReadOnly' | 'isInvalid' | 'aria-describedby'>;
34
36
  Textarea: WithBoundArgs<typeof Textarea, 'id' | 'isDisabled' | 'isRequired' | 'isReadOnly' | 'isInvalid' | 'aria-describedby'>;
35
37
  HelpText: WithBoundArgs<typeof HelpText, 'id'>;
@@ -1 +1 @@
1
- {"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/form/control.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAG3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,yDAAyD;QACzD,EAAE,CAAC,EAAE,MAAM,CAAC;QAEZ,uBAAuB;QACvB,SAAS,CAAC,EAAE,OAAO,CAAC;QAEpB,4CAA4C;QAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,qBAAqB;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,sBAAsB;QACtB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,yBAAyB;QACzB,WAAW,CAAC,EAAE,kBAAkB,CAAC;QAEjC,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,+BAA+B;QAC/B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;KACtD,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,aAAa,CAClB,OAAO,KAAK,EACZ,KAAK,GAAG,YAAY,GAAG,YAAY,GAAG,MAAM,CAC7C,CAAC;gBACF,KAAK,EAAE,aAAa,CAClB,OAAO,KAAK,EACV,IAAI,GACJ,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,kBAAkB,CACrB,CAAC;gBACF,QAAQ,EAAE,aAAa,CACrB,OAAO,QAAQ,EACb,IAAI,GACJ,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,kBAAkB,CACrB,CAAC;gBACF,QAAQ,EAAE,aAAa,CAAC,OAAO,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC/C,YAAY,EAAE,aAAa,CAAC,OAAO,YAAY,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC;gBACrE,EAAE,EAAE,MAAM,CAAC;gBACX,SAAS,EAAE,OAAO,CAAC;gBACnB,UAAU,EAAE,OAAO,CAAC;gBACpB,UAAU,EAAE,OAAO,CAAC;gBACpB,UAAU,EAAE,OAAO,CAAC;aACrB;SACF,CAAC;KACH,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,SAAS,CAAC,gBAAgB,CAAC;IAC9D,EAAE,SAAiC;IAEnC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,WAAW,IAAI,kBAAkB,CAEpC;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;CAoCF"}
1
+ {"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/form/control.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAG3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,yDAAyD;QACzD,EAAE,CAAC,EAAE,MAAM,CAAC;QAEZ,uBAAuB;QACvB,SAAS,CAAC,EAAE,OAAO,CAAC;QAEpB,4CAA4C;QAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,qBAAqB;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,sBAAsB;QACtB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,yBAAyB;QACzB,WAAW,CAAC,EAAE,kBAAkB,CAAC;QAEjC,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,6EAA6E;QAC7E,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAErC,+BAA+B;QAC/B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;KACtD,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,aAAa,CAClB,OAAO,KAAK,EACZ,KAAK,GAAG,YAAY,GAAG,YAAY,GAAG,MAAM,GAAG,mBAAmB,CACnE,CAAC;gBACF,KAAK,EAAE,aAAa,CAClB,OAAO,KAAK,EACV,IAAI,GACJ,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,kBAAkB,CACrB,CAAC;gBACF,QAAQ,EAAE,aAAa,CACrB,OAAO,QAAQ,EACb,IAAI,GACJ,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,kBAAkB,CACrB,CAAC;gBACF,QAAQ,EAAE,aAAa,CAAC,OAAO,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC/C,YAAY,EAAE,aAAa,CAAC,OAAO,YAAY,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC;gBACrE,EAAE,EAAE,MAAM,CAAC;gBACX,SAAS,EAAE,OAAO,CAAC;gBACnB,UAAU,EAAE,OAAO,CAAC;gBACpB,UAAU,EAAE,OAAO,CAAC;gBACpB,UAAU,EAAE,OAAO,CAAC;aACrB;SACF,CAAC;KACH,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,SAAS,CAAC,gBAAgB,CAAC;IAC9D,EAAE,SAAiC;IAEnC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,WAAW,IAAI,kBAAkB,CAEpC;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;CAoCF"}
@@ -19,6 +19,8 @@ export interface CountrySelectFieldSignature {
19
19
  isDisabled?: boolean;
20
20
  /** Info tooltip text shown next to the label */
21
21
  labelInfo?: string;
22
+ /** Optional indicator - shows "optional" or custom text next to the label */
23
+ optionalIndicator?: boolean | string;
22
24
  /** Label visibility */
23
25
  labelVisibility?: LabelVisibility;
24
26
  /** Input name for forms */
@@ -1 +1 @@
1
- {"version":3,"file":"country-select-field.d.ts","sourceRoot":"","sources":["../../src/form/country-select-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAK3C,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,4BAA4B;QAC5B,KAAK,EAAE,MAAM,CAAC;QAEd,gDAAgD;QAChD,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,2CAA2C;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,8CAA8C;QAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,uBAAuB;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAElC,2BAA2B;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,6DAA6D;QAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;QAEnB,gCAAgC;QAChC,YAAY,CAAC,EAAE,OAAO,CAAC;QAEvB,mDAAmD;QACnD,eAAe,CAAC,EAAE,OAAO,CAAC;QAE1B,4CAA4C;QAC5C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;QAE9B,4DAA4D;QAC5D,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAE7B,4CAA4C;QAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QAEvB,uCAAuC;QACvC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAEnB,2BAA2B;QAC3B,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;QAEhD,yBAAyB;QACzB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAErC,0BAA0B;QAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;KACvC,CAAC;IACF,MAAM,EAAE;QACN,mDAAmD;QACnD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS,CAAC,2BAA2B,CAAC;IACpF,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,gFAAgF;IAChF,kBAAkB,cAAe,MAAM,KAAG,MAAM,GAAG,SAAS,CAS1D;CAkEH"}
1
+ {"version":3,"file":"country-select-field.d.ts","sourceRoot":"","sources":["../../src/form/country-select-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAK3C,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,4BAA4B;QAC5B,KAAK,EAAE,MAAM,CAAC;QAEd,gDAAgD;QAChD,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,2CAA2C;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,8CAA8C;QAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,6EAA6E;QAC7E,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAErC,uBAAuB;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAElC,2BAA2B;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,6DAA6D;QAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;QAEnB,gCAAgC;QAChC,YAAY,CAAC,EAAE,OAAO,CAAC;QAEvB,mDAAmD;QACnD,eAAe,CAAC,EAAE,OAAO,CAAC;QAE1B,4CAA4C;QAC5C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;QAE9B,4DAA4D;QAC5D,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAE7B,4CAA4C;QAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QAEvB,uCAAuC;QACvC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAEnB,2BAA2B;QAC3B,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;QAEhD,yBAAyB;QACzB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAErC,0BAA0B;QAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;KACvC,CAAC;IACF,MAAM,EAAE;QACN,mDAAmD;QACnD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS,CAAC,2BAA2B,CAAC;IACpF,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,gFAAgF;IAChF,kBAAkB,cAAe,MAAM,KAAG,MAAM,GAAG,SAAS,CAS1D;CAkEH"}
@@ -48,6 +48,8 @@ export interface DatePickerFieldSignature {
48
48
  isReadOnly?: boolean;
49
49
  /** Info tooltip text shown next to the label */
50
50
  labelInfo?: string;
51
+ /** Optional indicator - shows "optional" or custom text next to the label */
52
+ optionalIndicator?: boolean | string;
51
53
  /** Label visibility */
52
54
  labelVisibility?: LabelVisibility;
53
55
  /** Input name for forms */
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker-field.d.ts","sourceRoot":"","sources":["../../src/form/date-picker-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAG3C,OAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,4BAA4B;QAC5B,KAAK,EAAE,MAAM,CAAC;QAEd,kCAAkC;QAClC,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QAEpB,mCAAmC;QACnC,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QAE3B,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,4DAA4D;QAC5D,MAAM,CAAC,EAAE,UAAU,CAAC;QAEpB,2BAA2B;QAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;QAEf,2BAA2B;QAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;QAEf,2EAA2E;QAC3E,aAAa,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;QAEnD,6DAA6D;QAC7D,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;QAE9B,8DAA8D;QAC9D,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzC,qCAAqC;QACrC,eAAe,CAAC,EAAE,OAAO,CAAC;QAE1B,2BAA2B;QAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;QAEpB,gCAAgC;QAChC,cAAc,CAAC,EAAE,OAAO,CAAC;QAEzB,6CAA6C;QAC7C,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB,yBAAyB;QACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;QAEnB,+CAA+C;QAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;QAEpB,0CAA0C;QAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,8CAA8C;QAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,yBAAyB;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,uBAAuB;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAElC,2BAA2B;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,2BAA2B;QAC3B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;QAExC,yBAAyB;QACzB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAErC,0BAA0B;QAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAEtC,gCAAgC;QAChC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;KACxC,CAAC;IACF,MAAM,EAAE;QACN,mDAAmD;QACnD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,SAAS,CAAC,wBAAwB,CAAC;IAC9E,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,gFAAgF;IAChF,kBAAkB,cAAe,MAAM,KAAG,MAAM,GAAG,SAAS,CAS1D;CAkEH"}
1
+ {"version":3,"file":"date-picker-field.d.ts","sourceRoot":"","sources":["../../src/form/date-picker-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAG3C,OAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,4BAA4B;QAC5B,KAAK,EAAE,MAAM,CAAC;QAEd,kCAAkC;QAClC,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QAEpB,mCAAmC;QACnC,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QAE3B,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,4DAA4D;QAC5D,MAAM,CAAC,EAAE,UAAU,CAAC;QAEpB,2BAA2B;QAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;QAEf,2BAA2B;QAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;QAEf,2EAA2E;QAC3E,aAAa,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;QAEnD,6DAA6D;QAC7D,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;QAE9B,8DAA8D;QAC9D,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzC,qCAAqC;QACrC,eAAe,CAAC,EAAE,OAAO,CAAC;QAE1B,2BAA2B;QAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;QAEpB,gCAAgC;QAChC,cAAc,CAAC,EAAE,OAAO,CAAC;QAEzB,6CAA6C;QAC7C,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB,yBAAyB;QACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;QAEnB,+CAA+C;QAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;QAEpB,0CAA0C;QAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,8CAA8C;QAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,yBAAyB;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,6EAA6E;QAC7E,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAErC,uBAAuB;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAElC,2BAA2B;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,2BAA2B;QAC3B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;QAExC,yBAAyB;QACzB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAErC,0BAA0B;QAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAEtC,gCAAgC;QAChC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;KACxC,CAAC;IACF,MAAM,EAAE;QACN,mDAAmD;QACnD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,SAAS,CAAC,wBAAwB,CAAC;IAC9E,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,gFAAgF;IAChF,kBAAkB,cAAe,MAAM,KAAG,MAAM,GAAG,SAAS,CAS1D;CAkEH"}
@@ -50,6 +50,8 @@ export interface DateRangePickerFieldSignature {
50
50
  isReadOnly?: boolean;
51
51
  /** Info tooltip text shown next to the label */
52
52
  labelInfo?: string;
53
+ /** Optional indicator - shows "optional" or custom text next to the label */
54
+ optionalIndicator?: boolean | string;
53
55
  /** Label visibility */
54
56
  labelVisibility?: LabelVisibility;
55
57
  /** Input name prefix for forms (creates {name}_start and {name}_end) */
@@ -1 +1 @@
1
- {"version":3,"file":"date-range-picker-field.d.ts","sourceRoot":"","sources":["../../src/form/date-range-picker-field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date-range-picker-field.d.ts","sourceRoot":"","sources":["../../src/form/date-range-picker-field.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ export interface DisplayFieldSignature {
10
10
  editing?: boolean;
11
11
  /** Info tooltip text shown next to the label */
12
12
  labelInfo?: string;
13
+ /** Optional indicator - shows "optional" or custom text next to the label (edit mode only) */
14
+ optionalIndicator?: boolean | string;
13
15
  /** Unique identifier (auto-generated if not provided) */
14
16
  id?: string;
15
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"display-field.d.ts","sourceRoot":"","sources":["../../src/form/display-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAK3C,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,4BAA4B;QAC5B,KAAK,EAAE,MAAM,CAAC;QAEd,0DAA0D;QAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,wCAAwC;QACxC,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,yDAAyD;QACzD,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,MAAM,EAAE;QACN,uDAAuD;QACvD,KAAK,EAAE,EAAE,CAAC;QACV,kEAAkE;QAClE,MAAM,EAAE,EAAE,CAAC;QACX,0EAA0E;QAC1E,KAAK,EAAE,EAAE,CAAC;QACV,mDAAmD;QACnD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS,CAAC,qBAAqB,CAAC;IACxE,EAAE,SAAiC;IAEnC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;CAiGF"}
1
+ {"version":3,"file":"display-field.d.ts","sourceRoot":"","sources":["../../src/form/display-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAK3C,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,4BAA4B;QAC5B,KAAK,EAAE,MAAM,CAAC;QAEd,0DAA0D;QAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,wCAAwC;QACxC,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,8FAA8F;QAC9F,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAErC,yDAAyD;QACzD,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,MAAM,EAAE;QACN,uDAAuD;QACvD,KAAK,EAAE,EAAE,CAAC;QACV,kEAAkE;QAClE,MAAM,EAAE,EAAE,CAAC;QACX,0EAA0E;QAC1E,KAAK,EAAE,EAAE,CAAC;QACV,mDAAmD;QACnD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS,CAAC,qBAAqB,CAAC;IACxE,EAAE,SAAiC;IAEnC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;CAiGF"}
@@ -7,7 +7,7 @@ export interface LabelSignature {
7
7
  for?: string;
8
8
  /** Required indicator - shows asterisk or custom text when required */
9
9
  requiredIndicator?: boolean | string;
10
- /** Optional indicator - shows "(optional)" or custom text when not required */
10
+ /** Optional indicator - shows "optional" or custom text when not required */
11
11
  optionalIndicator?: boolean | string;
12
12
  /** Secondary label text (e.g., "recommended") */
13
13
  secondaryLabel?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../src/form/label.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAK3C,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE;QACJ,4CAA4C;QAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;QAEb,uEAAuE;QACvE,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAErC,+EAA+E;QAC/E,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAErC,iDAAiD;QACjD,cAAc,CAAC,EAAE,MAAM,CAAC;QAExB,iEAAiE;QACjE,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,gEAAgE;QAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAE3B,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC;QAEjB,qBAAqB;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,uBAAuB;QACvB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,CAAC;QACZ,mEAAmE;QACnE,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC1D,IAAI,IAAI,IAAI,SAAS,CAEpB;IAED,IAAI,qBAAqB,IAAI,OAAO,CAGnC;IAED,IAAI,qBAAqB,IAAI,MAAM,CAMlC;IAED,IAAI,qBAAqB,IAAI,OAAO,CAGnC;IAED,IAAI,qBAAqB,IAAI,MAAM,CAMlC;CAyGF"}
1
+ {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../src/form/label.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAK3C,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE;QACJ,4CAA4C;QAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;QAEb,uEAAuE;QACvE,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAErC,6EAA6E;QAC7E,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAErC,iDAAiD;QACjD,cAAc,CAAC,EAAE,MAAM,CAAC;QAExB,iEAAiE;QACjE,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,gEAAgE;QAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAE3B,mBAAmB;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC;QAEjB,qBAAqB;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,uBAAuB;QACvB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,CAAC;QACZ,mEAAmE;QACnE,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC1D,IAAI,IAAI,IAAI,SAAS,CAEpB;IAED,IAAI,qBAAqB,IAAI,OAAO,CAGnC;IAED,IAAI,qBAAqB,IAAI,MAAM,CAMlC;IAED,IAAI,qBAAqB,IAAI,OAAO,CAGnC;IAED,IAAI,qBAAqB,IAAI,MAAM,CAMlC;CAyGF"}
@@ -37,6 +37,8 @@ export interface MoneyFieldSignature {
37
37
  currencyPosition?: CurrencyPosition;
38
38
  /** Info tooltip text shown next to the label */
39
39
  labelInfo?: string;
40
+ /** Optional indicator - shows "optional" or custom text next to the label */
41
+ optionalIndicator?: boolean | string;
40
42
  /** Label visibility */
41
43
  labelVisibility?: LabelVisibility;
42
44
  /** Input name for forms */
@@ -1 +1 @@
1
- {"version":3,"file":"money-field.d.ts","sourceRoot":"","sources":["../../src/form/money-field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"money-field.d.ts","sourceRoot":"","sources":["../../src/form/money-field.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,8 @@ export interface MultiComboBoxFieldSignature {
46
46
  isClearable?: boolean;
47
47
  /** Info tooltip text shown next to the label. */
48
48
  labelInfo?: string;
49
+ /** Optional indicator - shows "optional" or custom text next to the label. */
50
+ optionalIndicator?: boolean | string;
49
51
  /** Label visibility. */
50
52
  labelVisibility?: LabelVisibility;
51
53
  /** Input name — one hidden input is rendered per selected value. */
@@ -1 +1 @@
1
- {"version":3,"file":"multi-combobox-field.d.ts","sourceRoot":"","sources":["../../src/form/multi-combobox-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAI3C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,6BAA6B;QAC7B,KAAK,EAAE,MAAM,CAAC;QAEd,8CAA8C;QAC9C,KAAK,EAAE,aAAa,CAAC;QAErB,4CAA4C;QAC5C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAElB,wCAAwC;QACxC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;QAEjE,oBAAoB;QACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;QAErD,qCAAqC;QACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAE1B,+BAA+B;QAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;QAEpB,iDAAiD;QACjD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAEzC,wBAAwB;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,iDAAiD;QACjD,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,wBAAwB;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QAEvB,4DAA4D;QAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;QAEtB,oDAAoD;QACpD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAEnC,kCAAkC;QAClC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;QAExC,kDAAkD;QAClD,eAAe,CAAC,EAAE,MAAM,CAAC;QAEzB,6CAA6C;QAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,+CAA+C;QAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,yBAAyB;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,yBAAyB;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,qDAAqD;QACrD,WAAW,CAAC,EAAE,OAAO,CAAC;QAEtB,iDAAiD;QACjD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,wBAAwB;QACxB,eAAe,CAAC,EAAE,eAAe,CAAC;QAElC,oEAAoE;QACpE,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,0BAA0B;QAC1B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAErC,2BAA2B;QAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAEtC,qCAAqC;QACrC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;QAEpB,sCAAsC;QACtC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN,oDAAoD;QACpD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS,CAAC,2BAA2B,CAAC;IACpF,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,kBAAkB,cAAe,MAAM,KAAG,MAAM,GAAG,SAAS,CAS1D;CAkEH"}
1
+ {"version":3,"file":"multi-combobox-field.d.ts","sourceRoot":"","sources":["../../src/form/multi-combobox-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAI3C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,6BAA6B;QAC7B,KAAK,EAAE,MAAM,CAAC;QAEd,8CAA8C;QAC9C,KAAK,EAAE,aAAa,CAAC;QAErB,4CAA4C;QAC5C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAElB,wCAAwC;QACxC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;QAEjE,oBAAoB;QACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;QAErD,qCAAqC;QACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAE1B,+BAA+B;QAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;QAEpB,iDAAiD;QACjD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAEzC,wBAAwB;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,iDAAiD;QACjD,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,wBAAwB;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QAEvB,4DAA4D;QAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;QAEtB,oDAAoD;QACpD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAEnC,kCAAkC;QAClC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;QAExC,kDAAkD;QAClD,eAAe,CAAC,EAAE,MAAM,CAAC;QAEzB,6CAA6C;QAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,+CAA+C;QAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,yBAAyB;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,yBAAyB;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,qDAAqD;QACrD,WAAW,CAAC,EAAE,OAAO,CAAC;QAEtB,iDAAiD;QACjD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,8EAA8E;QAC9E,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAErC,wBAAwB;QACxB,eAAe,CAAC,EAAE,eAAe,CAAC;QAElC,oEAAoE;QACpE,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,0BAA0B;QAC1B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAErC,2BAA2B;QAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAEtC,qCAAqC;QACrC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;QAEpB,sCAAsC;QACtC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN,oDAAoD;QACpD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS,CAAC,2BAA2B,CAAC;IACpF,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,kBAAkB,cAAe,MAAM,KAAG,MAAM,GAAG,SAAS,CAS1D;CAkEH"}
@@ -35,6 +35,8 @@ export interface NumberFieldSignature {
35
35
  suffix?: string;
36
36
  /** Info tooltip text shown next to the label */
37
37
  labelInfo?: string;
38
+ /** Optional indicator - shows "optional" or custom text next to the label */
39
+ optionalIndicator?: boolean | string;
38
40
  /** Label visibility */
39
41
  labelVisibility?: LabelVisibility;
40
42
  /** Input mode for mobile keyboard */
@@ -1 +1 @@
1
- {"version":3,"file":"number-field.d.ts","sourceRoot":"","sources":["../../src/form/number-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAO3C,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,SAAS,CAAC;AACzD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AACnD,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAEtE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,4BAA4B;QAC5B,KAAK,EAAE,MAAM,CAAC;QAEd,oBAAoB;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,4BAA4B;QAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;QAEb,4BAA4B;QAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;QAEb,kCAAkC;QAClC,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,uBAAuB;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,sCAAsC;QACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,8CAA8C;QAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,yBAAyB;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,uDAAuD;QACvD,WAAW,CAAC,EAAE,OAAO,CAAC;QAEtB,oCAAoC;QACpC,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,yCAAyC;QACzC,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,uBAAuB;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAElC,qCAAqC;QACrC,SAAS,CAAC,EAAE,oBAAoB,CAAC;QAEjC,+BAA+B;QAC/B,QAAQ,CAAC,EAAE,aAAa,CAAC;QAEzB,2BAA2B;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,0BAA0B;QAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QAEvD,sDAAsD;QACtD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QAExD,yBAAyB;QACzB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAErC,0BAA0B;QAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;KACvC,CAAC;IACF,MAAM,EAAE;QACN,mDAAmD;QACnD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,SAAS,CAAC,oBAAoB,CAAC;IACtE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,gEAAgE;IAChE,IAAI,SAAS,IAAI,oBAAoB,CAMpC;IAED,kCAAkC;IAClC,IAAI,YAAY,IAAI,MAAM,CAMzB;IAED,gCAAgC;IAChC,IAAI,OAAO,IAAI,OAAO,CAGrB;IAED,gCAAgC;IAChC,IAAI,OAAO,IAAI,OAAO,CAGrB;IAED,oCAAoC;IACpC,KAAK,UAAW,MAAM,KAAG,MAAM,CAE7B;IAEF,6DAA6D;IAC7D,WAAW,UAAW,MAAM,KAAG,MAAM,CAInC;IAEF,SAAS,UAAW,KAAK,KAAG,IAAI,CAO9B;IAEF,SAAS,UAAW,KAAK,KAAG,IAAI,CAO9B;IAEF,WAAW,UAAW,KAAK,KAAG,IAAI,CAahC;IAEF,WAAW,UAAW,UAAU,KAAG,IAAI,CAErC;IAEF,UAAU,UAAW,UAAU,KAAG,IAAI,CAWpC;IAEF,gFAAgF;IAChF,kBAAkB,cAAe,MAAM,KAAG,MAAM,GAAG,SAAS,CAS1D;IAEF,wDAAwD;IACxD,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,uDAAuD;IACvD,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,0DAA0D;IAC1D,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,aAAa,UAAW,aAAa,KAAG,IAAI,CA6C1C;CAmKH"}
1
+ {"version":3,"file":"number-field.d.ts","sourceRoot":"","sources":["../../src/form/number-field.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,8 @@ export interface SelectFieldSignature {
21
21
  isDisabled?: boolean;
22
22
  /** Info tooltip text shown next to the label */
23
23
  labelInfo?: string;
24
+ /** Optional indicator - shows "optional" or custom text next to the label */
25
+ optionalIndicator?: boolean | string;
24
26
  /** Label visibility */
25
27
  labelVisibility?: LabelVisibility;
26
28
  /** Input name for forms */
@@ -1 +1 @@
1
- {"version":3,"file":"select-field.d.ts","sourceRoot":"","sources":["../../src/form/select-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,4BAA4B;QAC5B,KAAK,EAAE,MAAM,CAAC;QAEd,6BAA6B;QAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,2CAA2C;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,8CAA8C;QAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,uBAAuB;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAElC,2BAA2B;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,2BAA2B;QAC3B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAEnC,yBAAyB;QACzB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAErC,0BAA0B;QAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;KACvC,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE;YACP;gBACE,MAAM,EAAE,aAAa,CAAC,OAAO,YAAY,EAAE,KAAK,CAAC,CAAC;gBAClD,WAAW,EAAE,OAAO,iBAAiB,CAAC;aACvC;SACF,CAAC;QACF,mDAAmD;QACnD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,SAAS,CAAC,oBAAoB,CAAC;IACtE,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,gFAAgF;IAChF,kBAAkB,cAAe,MAAM,KAAG,MAAM,GAAG,SAAS,CAS1D;CA0EH"}
1
+ {"version":3,"file":"select-field.d.ts","sourceRoot":"","sources":["../../src/form/select-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,4BAA4B;QAC5B,KAAK,EAAE,MAAM,CAAC;QAEd,6BAA6B;QAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,2CAA2C;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,8CAA8C;QAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,6EAA6E;QAC7E,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAErC,uBAAuB;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAElC,2BAA2B;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,2BAA2B;QAC3B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAEnC,yBAAyB;QACzB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAErC,0BAA0B;QAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;KACvC,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE;YACP;gBACE,MAAM,EAAE,aAAa,CAAC,OAAO,YAAY,EAAE,KAAK,CAAC,CAAC;gBAClD,WAAW,EAAE,OAAO,iBAAiB,CAAC;aACvC;SACF,CAAC;QACF,mDAAmD;QACnD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,SAAS,CAAC,oBAAoB,CAAC;IACtE,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,gFAAgF;IAChF,kBAAkB,cAAe,MAAM,KAAG,MAAM,GAAG,SAAS,CAS1D;CA0EH"}
@@ -48,6 +48,8 @@ export interface TextFieldSignature {
48
48
  suffix?: string;
49
49
  /** Info tooltip text shown next to the label */
50
50
  labelInfo?: string;
51
+ /** Optional indicator - shows "optional" or custom text next to the label */
52
+ optionalIndicator?: boolean | string;
51
53
  /** Label visibility */
52
54
  labelVisibility?: LabelVisibility;
53
55
  /** Autocomplete hint */
@@ -1 +1 @@
1
- {"version":3,"file":"text-field.d.ts","sourceRoot":"","sources":["../../src/form/text-field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-field.d.ts","sourceRoot":"","sources":["../../src/form/text-field.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,8 @@ export interface TimePickerFieldSignature {
42
42
  isReadOnly?: boolean;
43
43
  /** Info tooltip text shown next to the label */
44
44
  labelInfo?: string;
45
+ /** Optional indicator - shows "optional" or custom text next to the label */
46
+ optionalIndicator?: boolean | string;
45
47
  /** Label visibility */
46
48
  labelVisibility?: LabelVisibility;
47
49
  /** Input name for forms */
@@ -1 +1 @@
1
- {"version":3,"file":"time-picker-field.d.ts","sourceRoot":"","sources":["../../src/form/time-picker-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAG3C,OAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,4BAA4B;QAC5B,KAAK,EAAE,MAAM,CAAC;QAEd,iDAAiD;QACjD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAEtB,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,+BAA+B;QAC/B,MAAM,CAAC,EAAE,UAAU,CAAC;QAEpB,4CAA4C;QAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,0CAA0C;QAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,0CAA0C;QAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,mCAAmC;QACnC,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB,gCAAgC;QAChC,cAAc,CAAC,EAAE,OAAO,CAAC;QAEzB,6CAA6C;QAC7C,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB,sBAAsB;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;QAEnB,8CAA8C;QAC9C,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAE9B,yDAAyD;QACzD,cAAc,CAAC,EAAE,OAAO,CAAC;QAEzB,0CAA0C;QAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,8CAA8C;QAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,yBAAyB;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,uBAAuB;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAElC,2BAA2B;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,2BAA2B;QAC3B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;QAE1C,yBAAyB;QACzB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAErC,0BAA0B;QAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;KACvC,CAAC;IACF,MAAM,EAAE;QACN,mDAAmD;QACnD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,SAAS,CAAC,wBAAwB,CAAC;IAC9E,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,gFAAgF;IAChF,kBAAkB,cAAe,MAAM,KAAG,MAAM,GAAG,SAAS,CAS1D;CAkEH"}
1
+ {"version":3,"file":"time-picker-field.d.ts","sourceRoot":"","sources":["../../src/form/time-picker-field.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAG3C,OAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,4BAA4B;QAC5B,KAAK,EAAE,MAAM,CAAC;QAEd,iDAAiD;QACjD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAEtB,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,+BAA+B;QAC/B,MAAM,CAAC,EAAE,UAAU,CAAC;QAEpB,4CAA4C;QAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,0CAA0C;QAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,0CAA0C;QAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,mCAAmC;QACnC,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB,gCAAgC;QAChC,cAAc,CAAC,EAAE,OAAO,CAAC;QAEzB,6CAA6C;QAC7C,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB,sBAAsB;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;QAEnB,8CAA8C;QAC9C,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAE9B,yDAAyD;QACzD,cAAc,CAAC,EAAE,OAAO,CAAC;QAEzB,0CAA0C;QAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB,8CAA8C;QAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,wBAAwB;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,yBAAyB;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;QAErB,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,6EAA6E;QAC7E,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAErC,uBAAuB;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAElC,2BAA2B;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,2BAA2B;QAC3B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;QAE1C,yBAAyB;QACzB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAErC,0BAA0B;QAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;KACvC,CAAC;IACF,MAAM,EAAE;QACN,mDAAmD;QACnD,IAAI,EAAE,EAAE,CAAC;KACV,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,SAAS,CAAC,wBAAwB,CAAC;IAC9E,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,gFAAgF;IAChF,kBAAkB,cAAe,MAAM,KAAG,MAAM,GAAG,SAAS,CAS1D;CAkEH"}
@@ -23,7 +23,7 @@ class ComboBoxField extends Component {
23
23
  return parts.length > 0 ? parts.join(' ') : undefined;
24
24
  };
25
25
  static {
26
- setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @labelInfo={{@labelInfo}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <ComboBox @id={{ctrl.id}} @name={{@name}} @items={{@items}} @value={{@value}} @placeholder={{@placeholder}} @noResultsText={{@noResultsText}} @onSearch={{@onSearch}} @searchDebounceMs={{@searchDebounceMs}} @isLoading={{@isLoading}} @onSearchError={{@onSearchError}} @loadingText={{@loadingText}} @isCreatable={{@isCreatable}} @onCreate={{@onCreate}} @createLabel={{@createLabel}} @isDisabled={{@isDisabled}} @isInvalid={{this.isInvalid}} @isRequired={{@isRequired}} @isClearable={{@isClearable}} @aria-describedby={{this.getAriaDescribedBy ctrl.id}} @onChange={{@onChange}} @onBlur={{@onBlur}} @onFocus={{@onFocus}} @onOpen={{@onOpen}} @onClose={{@onClose}} data-test-combobox-field />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
26
+ setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @labelInfo={{@labelInfo}} @optionalIndicator={{@optionalIndicator}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <ComboBox @id={{ctrl.id}} @name={{@name}} @items={{@items}} @value={{@value}} @placeholder={{@placeholder}} @noResultsText={{@noResultsText}} @onSearch={{@onSearch}} @searchDebounceMs={{@searchDebounceMs}} @isLoading={{@isLoading}} @onSearchError={{@onSearchError}} @loadingText={{@loadingText}} @isCreatable={{@isCreatable}} @onCreate={{@onCreate}} @createLabel={{@createLabel}} @isDisabled={{@isDisabled}} @isInvalid={{this.isInvalid}} @isRequired={{@isRequired}} @isClearable={{@isClearable}} @aria-describedby={{this.getAriaDescribedBy ctrl.id}} @onChange={{@onChange}} @onBlur={{@onBlur}} @onFocus={{@onFocus}} @onOpen={{@onOpen}} @onClose={{@onClose}} data-test-combobox-field />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
27
27
  strictMode: true,
28
28
  scope: () => ({
29
29
  Control,
@@ -1 +1 @@
1
- {"version":3,"file":"combobox-field.js","sources":["../../src/form/combobox-field.gts"],"sourcesContent":["import Component from '@glimmer/component';\n\nimport Control from './control.gts';\nimport ComboBox from './combobox.gts';\nimport type { ComboBoxItems, ComboBoxOption } from './combobox-shared.ts';\n\nexport type LabelVisibility = 'visible' | 'hidden';\n\nexport interface ComboBoxFieldSignature {\n Element: HTMLDivElement;\n Args: {\n /** Label text (required). */\n label: string;\n\n /** Available options. Flat or pre-grouped. */\n items: ComboBoxItems;\n\n /** Current selected value (controlled). */\n value?: string | null;\n\n /** Fires when the selection changes. */\n onChange?: (value: string | null, option: ComboBoxOption | null) => void;\n\n /** Async search (passed through to ComboBox). */\n onSearch?: (query: string) => Promise<ComboBoxItems>;\n\n /** Debounce for `onSearch` in ms. */\n searchDebounceMs?: number;\n\n /** Force the loading state. */\n isLoading?: boolean;\n\n /** Called when an `onSearch` promise rejects. */\n onSearchError?: (error: unknown) => void;\n\n /** Loading row text. */\n loadingText?: string;\n\n /** Input placeholder. */\n placeholder?: string;\n\n /** Empty state text. */\n noResultsText?: string;\n\n /** Allow creating new options from a non-matching query. */\n isCreatable?: boolean;\n\n /** Fires when the user activates the create row. */\n onCreate?: (query: string) => void;\n\n /** Build the create-row label. */\n createLabel?: (query: string) => string;\n\n /** Help text displayed below the control. */\n helpText?: string;\n\n /** Error message (also sets invalid state). */\n error?: string;\n\n /** Field is required. */\n isRequired?: boolean;\n\n /** Field is disabled. */\n isDisabled?: boolean;\n\n /** Show the clear button when a value is set. */\n isClearable?: boolean;\n\n /** Info tooltip text shown next to the label. */\n labelInfo?: string;\n\n /** Label visibility. */\n labelVisibility?: LabelVisibility;\n\n /** Input name for forms. */\n name?: string;\n\n /** Blur event handler. */\n onBlur?: (event: FocusEvent) => void;\n\n /** Focus event handler. */\n onFocus?: (event: FocusEvent) => void;\n\n /** Fires when the dropdown opens. */\n onOpen?: () => void;\n\n /** Fires when the dropdown closes. */\n onClose?: () => void;\n };\n Blocks: {\n /** Rich tooltip content shown next to the label. */\n info: [];\n };\n}\n\nexport default class ComboBoxField extends Component<ComboBoxFieldSignature> {\n get isInvalid(): boolean {\n return !!this.args.error;\n }\n\n get isLabelHidden(): boolean {\n return this.args.labelVisibility === 'hidden';\n }\n\n /** Build aria-describedby from the control's help text and error IDs. */\n getAriaDescribedBy = (controlId: string): string | undefined => {\n const parts: string[] = [];\n if (this.args.helpText) {\n parts.push(`${controlId}-help-text`);\n }\n if (this.args.error) {\n parts.push(`${controlId}-error-message`);\n }\n return parts.length > 0 ? parts.join(' ') : undefined;\n };\n\n <template>\n <Control\n @isInvalid={{this.isInvalid}}\n @isDisabled={{@isDisabled}}\n @isRequired={{@isRequired}}\n @labelInfo={{@labelInfo}}\n ...attributes\n as |ctrl|\n >\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <ComboBox\n @id={{ctrl.id}}\n @name={{@name}}\n @items={{@items}}\n @value={{@value}}\n @placeholder={{@placeholder}}\n @noResultsText={{@noResultsText}}\n @onSearch={{@onSearch}}\n @searchDebounceMs={{@searchDebounceMs}}\n @isLoading={{@isLoading}}\n @onSearchError={{@onSearchError}}\n @loadingText={{@loadingText}}\n @isCreatable={{@isCreatable}}\n @onCreate={{@onCreate}}\n @createLabel={{@createLabel}}\n @isDisabled={{@isDisabled}}\n @isInvalid={{this.isInvalid}}\n @isRequired={{@isRequired}}\n @isClearable={{@isClearable}}\n @aria-describedby={{this.getAriaDescribedBy ctrl.id}}\n @onChange={{@onChange}}\n @onBlur={{@onBlur}}\n @onFocus={{@onFocus}}\n @onOpen={{@onOpen}}\n @onClose={{@onClose}}\n data-test-combobox-field\n />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n </Control>\n </template>\n}\n"],"names":["ComboBoxField","Component","isInvalid","args","error","isLabelHidden","labelVisibility","getAriaDescribedBy","controlId","parts","helpText","push","length","join","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","Control","ComboBox"],"mappings":";;;;;;AA+Fe,MAAMA,sBAAsBC,SAAA,CAAU;EACnD,IAAIC,SAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK;AAC1B,EAAA;EAEA,IAAIC,aAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,eAAe,KAAK,QAAA;AACvC,EAAA;AAEA;EACAC,qBAAsBC,SAAiB,IAAqB;IAC1D,MAAMC,KAAa,GAAK,EAAE;AAC1B,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,QAAQ,EAAE;AACtBD,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,YAAqB,CAAA;AACrC,IAAA;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACC,KAAK,EAAE;AACnBK,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,gBAAyB,CAAA;AACzC,IAAA;AACA,IAAA,OAAOC,MAAMG,MAAM,GAAG,IAAIH,KAAA,CAAMI,IAAI,CAAC,GAAA,CAAA,GAAOC,SAAA;EAC9C,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,ozCAAA,EAwDA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"combobox-field.js","sources":["../../src/form/combobox-field.gts"],"sourcesContent":["import Component from '@glimmer/component';\n\nimport Control from './control.gts';\nimport ComboBox from './combobox.gts';\nimport type { ComboBoxItems, ComboBoxOption } from './combobox-shared.ts';\n\nexport type LabelVisibility = 'visible' | 'hidden';\n\nexport interface ComboBoxFieldSignature {\n Element: HTMLDivElement;\n Args: {\n /** Label text (required). */\n label: string;\n\n /** Available options. Flat or pre-grouped. */\n items: ComboBoxItems;\n\n /** Current selected value (controlled). */\n value?: string | null;\n\n /** Fires when the selection changes. */\n onChange?: (value: string | null, option: ComboBoxOption | null) => void;\n\n /** Async search (passed through to ComboBox). */\n onSearch?: (query: string) => Promise<ComboBoxItems>;\n\n /** Debounce for `onSearch` in ms. */\n searchDebounceMs?: number;\n\n /** Force the loading state. */\n isLoading?: boolean;\n\n /** Called when an `onSearch` promise rejects. */\n onSearchError?: (error: unknown) => void;\n\n /** Loading row text. */\n loadingText?: string;\n\n /** Input placeholder. */\n placeholder?: string;\n\n /** Empty state text. */\n noResultsText?: string;\n\n /** Allow creating new options from a non-matching query. */\n isCreatable?: boolean;\n\n /** Fires when the user activates the create row. */\n onCreate?: (query: string) => void;\n\n /** Build the create-row label. */\n createLabel?: (query: string) => string;\n\n /** Help text displayed below the control. */\n helpText?: string;\n\n /** Error message (also sets invalid state). */\n error?: string;\n\n /** Field is required. */\n isRequired?: boolean;\n\n /** Field is disabled. */\n isDisabled?: boolean;\n\n /** Show the clear button when a value is set. */\n isClearable?: boolean;\n\n /** Info tooltip text shown next to the label. */\n labelInfo?: string;\n\n /** Optional indicator - shows \"optional\" or custom text next to the label. */\n optionalIndicator?: boolean | string;\n\n /** Label visibility. */\n labelVisibility?: LabelVisibility;\n\n /** Input name for forms. */\n name?: string;\n\n /** Blur event handler. */\n onBlur?: (event: FocusEvent) => void;\n\n /** Focus event handler. */\n onFocus?: (event: FocusEvent) => void;\n\n /** Fires when the dropdown opens. */\n onOpen?: () => void;\n\n /** Fires when the dropdown closes. */\n onClose?: () => void;\n };\n Blocks: {\n /** Rich tooltip content shown next to the label. */\n info: [];\n };\n}\n\nexport default class ComboBoxField extends Component<ComboBoxFieldSignature> {\n get isInvalid(): boolean {\n return !!this.args.error;\n }\n\n get isLabelHidden(): boolean {\n return this.args.labelVisibility === 'hidden';\n }\n\n /** Build aria-describedby from the control's help text and error IDs. */\n getAriaDescribedBy = (controlId: string): string | undefined => {\n const parts: string[] = [];\n if (this.args.helpText) {\n parts.push(`${controlId}-help-text`);\n }\n if (this.args.error) {\n parts.push(`${controlId}-error-message`);\n }\n return parts.length > 0 ? parts.join(' ') : undefined;\n };\n\n <template>\n <Control\n @isInvalid={{this.isInvalid}}\n @isDisabled={{@isDisabled}}\n @isRequired={{@isRequired}}\n @labelInfo={{@labelInfo}}\n @optionalIndicator={{@optionalIndicator}}\n ...attributes\n as |ctrl|\n >\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <ComboBox\n @id={{ctrl.id}}\n @name={{@name}}\n @items={{@items}}\n @value={{@value}}\n @placeholder={{@placeholder}}\n @noResultsText={{@noResultsText}}\n @onSearch={{@onSearch}}\n @searchDebounceMs={{@searchDebounceMs}}\n @isLoading={{@isLoading}}\n @onSearchError={{@onSearchError}}\n @loadingText={{@loadingText}}\n @isCreatable={{@isCreatable}}\n @onCreate={{@onCreate}}\n @createLabel={{@createLabel}}\n @isDisabled={{@isDisabled}}\n @isInvalid={{this.isInvalid}}\n @isRequired={{@isRequired}}\n @isClearable={{@isClearable}}\n @aria-describedby={{this.getAriaDescribedBy ctrl.id}}\n @onChange={{@onChange}}\n @onBlur={{@onBlur}}\n @onFocus={{@onFocus}}\n @onOpen={{@onOpen}}\n @onClose={{@onClose}}\n data-test-combobox-field\n />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n </Control>\n </template>\n}\n"],"names":["ComboBoxField","Component","isInvalid","args","error","isLabelHidden","labelVisibility","getAriaDescribedBy","controlId","parts","helpText","push","length","join","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","Control","ComboBox"],"mappings":";;;;;;AAkGe,MAAMA,sBAAsBC,SAAA,CAAU;EACnD,IAAIC,SAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK;AAC1B,EAAA;EAEA,IAAIC,aAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,eAAe,KAAK,QAAA;AACvC,EAAA;AAEA;EACAC,qBAAsBC,SAAiB,IAAqB;IAC1D,MAAMC,KAAa,GAAK,EAAE;AAC1B,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,QAAQ,EAAE;AACtBD,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,YAAqB,CAAA;AACrC,IAAA;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACC,KAAK,EAAE;AACnBK,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,gBAAyB,CAAA;AACzC,IAAA;AACA,IAAA,OAAOC,MAAMG,MAAM,GAAG,IAAIH,KAAA,CAAMI,IAAI,CAAC,GAAA,CAAA,GAAOC,SAAA;EAC9C,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,81CAAA,EAyDA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -39,7 +39,7 @@ class Control extends Component {
39
39
  return this.args.isReadOnly ?? false;
40
40
  }
41
41
  static {
42
- setComponentTemplate(precompileTemplate("\n\n<div class=\"assembly-control_e529e8199\" data-orientation={{this.orientation}} data-invalid={{if this.isInvalid \"true\" \"false\"}} data-disabled={{if this.isDisabled \"true\" \"false\"}} data-required={{if this.isRequired \"true\" \"false\"}} data-readonly={{if this.isReadOnly \"true\" \"false\"}} data-test-form-control ...attributes>\n {{yield (hash Label=(component Label for=this.id isRequired=this.isRequired isDisabled=this.isDisabled info=@labelInfo) Input=(component Input id=this.id isDisabled=this.isDisabled isRequired=this.isRequired isReadOnly=this.isReadOnly isInvalid=this.isInvalid aria-describedby=this.ariaDescribedBy) Textarea=(component Textarea id=this.id isDisabled=this.isDisabled isRequired=this.isRequired isReadOnly=this.isReadOnly isInvalid=this.isInvalid aria-describedby=this.ariaDescribedBy) HelpText=(component HelpText id=this.helpTextId) ErrorMessage=(component ErrorMessage id=this.errorMessageId isInvalid=this.isInvalid) id=this.id isInvalid=this.isInvalid isDisabled=this.isDisabled isRequired=this.isRequired isReadOnly=this.isReadOnly)}}\n</div>", {
42
+ setComponentTemplate(precompileTemplate("\n\n<div class=\"assembly-control_e529e8199\" data-orientation={{this.orientation}} data-invalid={{if this.isInvalid \"true\" \"false\"}} data-disabled={{if this.isDisabled \"true\" \"false\"}} data-required={{if this.isRequired \"true\" \"false\"}} data-readonly={{if this.isReadOnly \"true\" \"false\"}} data-test-form-control ...attributes>\n {{yield (hash Label=(component Label for=this.id isRequired=this.isRequired isDisabled=this.isDisabled info=@labelInfo optionalIndicator=@optionalIndicator) Input=(component Input id=this.id isDisabled=this.isDisabled isRequired=this.isRequired isReadOnly=this.isReadOnly isInvalid=this.isInvalid aria-describedby=this.ariaDescribedBy) Textarea=(component Textarea id=this.id isDisabled=this.isDisabled isRequired=this.isRequired isReadOnly=this.isReadOnly isInvalid=this.isInvalid aria-describedby=this.ariaDescribedBy) HelpText=(component HelpText id=this.helpTextId) ErrorMessage=(component ErrorMessage id=this.errorMessageId isInvalid=this.isInvalid) id=this.id isInvalid=this.isInvalid isDisabled=this.isDisabled isRequired=this.isRequired isReadOnly=this.isReadOnly)}}\n</div>", {
43
43
  strictMode: true,
44
44
  scope: () => ({
45
45
  hash,
@@ -23,7 +23,7 @@ class CountrySelectField extends Component {
23
23
  return parts.length > 0 ? parts.join(' ') : undefined;
24
24
  };
25
25
  static {
26
- setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @labelInfo={{@labelInfo}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <CountrySelect @id={{ctrl.id}} @name={{@name}} @value={{@value}} @placeholder={{@placeholder}} @isDisabled={{@isDisabled}} @isInvalid={{this.isInvalid}} @isRequired={{@isRequired}} @aria-describedby={{this.getAriaDescribedBy ctrl.id}} @showFlag={{@showFlag}} @showDialCode={{@showDialCode}} @displayDialCode={{@displayDialCode}} @suggestedCountries={{@suggestedCountries}} @prioritizeByLocale={{@prioritizeByLocale}} @includeOnly={{@includeOnly}} @exclude={{@exclude}} @onChange={{@onChange}} @onBlur={{@onBlur}} @onFocus={{@onFocus}} data-test-country-select-field />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
26
+ setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @labelInfo={{@labelInfo}} @optionalIndicator={{@optionalIndicator}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <CountrySelect @id={{ctrl.id}} @name={{@name}} @value={{@value}} @placeholder={{@placeholder}} @isDisabled={{@isDisabled}} @isInvalid={{this.isInvalid}} @isRequired={{@isRequired}} @aria-describedby={{this.getAriaDescribedBy ctrl.id}} @showFlag={{@showFlag}} @showDialCode={{@showDialCode}} @displayDialCode={{@displayDialCode}} @suggestedCountries={{@suggestedCountries}} @prioritizeByLocale={{@prioritizeByLocale}} @includeOnly={{@includeOnly}} @exclude={{@exclude}} @onChange={{@onChange}} @onBlur={{@onBlur}} @onFocus={{@onFocus}} data-test-country-select-field />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
27
27
  strictMode: true,
28
28
  scope: () => ({
29
29
  Control,
@@ -1 +1 @@
1
- {"version":3,"file":"country-select-field.js","sources":["../../src/form/country-select-field.gts"],"sourcesContent":["import Component from '@glimmer/component';\n\nimport Control from './control.gts';\nimport CountrySelect from './country-select.gts';\n\nexport type LabelVisibility = 'visible' | 'hidden';\n\nexport interface CountrySelectFieldSignature {\n Element: HTMLDivElement;\n Args: {\n /** Label text (required) */\n label: string;\n\n /** Current selected value (ISO country code) */\n value?: string;\n\n /** Placeholder text shown when no value is selected */\n placeholder?: string;\n\n /** Help text displayed below the select */\n helpText?: string;\n\n /** Error message (also sets invalid state) */\n error?: string;\n\n /** Field is required */\n isRequired?: boolean;\n\n /** Field is disabled */\n isDisabled?: boolean;\n\n /** Info tooltip text shown next to the label */\n labelInfo?: string;\n\n /** Label visibility */\n labelVisibility?: LabelVisibility;\n\n /** Input name for forms */\n name?: string;\n\n /** Show flag emoji in options and trigger (default: true) */\n showFlag?: boolean;\n\n /** Show dial code in options */\n showDialCode?: boolean;\n\n /** Show dial code in the selected value display */\n displayDialCode?: boolean;\n\n /** ISO codes to show at top as suggested */\n suggestedCountries?: string[];\n\n /** Auto-suggest based on browser locale (default: false) */\n prioritizeByLocale?: boolean;\n\n /** Only show these countries (ISO codes) */\n includeOnly?: string[];\n\n /** Hide these countries (ISO codes) */\n exclude?: string[];\n\n /** Change event handler */\n onChange?: (countryCode: string | null) => void;\n\n /** Blur event handler */\n onBlur?: (event: FocusEvent) => void;\n\n /** Focus event handler */\n onFocus?: (event: FocusEvent) => void;\n };\n Blocks: {\n /** Rich tooltip content shown next to the label */\n info: [];\n };\n}\n\nexport default class CountrySelectField extends Component<CountrySelectFieldSignature> {\n get isInvalid(): boolean {\n return !!this.args.error;\n }\n\n get isLabelHidden(): boolean {\n return this.args.labelVisibility === 'hidden';\n }\n\n /** Build aria-describedby from the control's help text and error message IDs */\n getAriaDescribedBy = (controlId: string): string | undefined => {\n const parts: string[] = [];\n if (this.args.helpText) {\n parts.push(`${controlId}-help-text`);\n }\n if (this.args.error) {\n parts.push(`${controlId}-error-message`);\n }\n return parts.length > 0 ? parts.join(' ') : undefined;\n };\n\n <template>\n <Control\n @isInvalid={{this.isInvalid}}\n @isDisabled={{@isDisabled}}\n @isRequired={{@isRequired}}\n @labelInfo={{@labelInfo}}\n ...attributes\n as |ctrl|\n >\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <CountrySelect\n @id={{ctrl.id}}\n @name={{@name}}\n @value={{@value}}\n @placeholder={{@placeholder}}\n @isDisabled={{@isDisabled}}\n @isInvalid={{this.isInvalid}}\n @isRequired={{@isRequired}}\n @aria-describedby={{this.getAriaDescribedBy ctrl.id}}\n @showFlag={{@showFlag}}\n @showDialCode={{@showDialCode}}\n @displayDialCode={{@displayDialCode}}\n @suggestedCountries={{@suggestedCountries}}\n @prioritizeByLocale={{@prioritizeByLocale}}\n @includeOnly={{@includeOnly}}\n @exclude={{@exclude}}\n @onChange={{@onChange}}\n @onBlur={{@onBlur}}\n @onFocus={{@onFocus}}\n data-test-country-select-field\n />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n </Control>\n </template>\n}\n"],"names":["CountrySelectField","Component","isInvalid","args","error","isLabelHidden","labelVisibility","getAriaDescribedBy","controlId","parts","helpText","push","length","join","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","Control","CountrySelect"],"mappings":";;;;;;AA4Ee,MAAMA,2BAA2BC,SAAA,CAAU;EACxD,IAAIC,SAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK;AAC1B,EAAA;EAEA,IAAIC,aAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,eAAe,KAAK,QAAA;AACvC,EAAA;AAEA;EACAC,qBAAsBC,SAAiB,IAAqB;IAC1D,MAAMC,KAAa,GAAK,EAAE;AAC1B,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,QAAQ,EAAE;AACtBD,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,YAAqB,CAAA;AACrC,IAAA;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACC,KAAK,EAAE;AACnBK,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,gBAAyB,CAAA;AACzC,IAAA;AACA,IAAA,OAAOC,MAAMG,MAAM,GAAG,IAAIH,KAAA,CAAMI,IAAI,CAAC,GAAA,CAAA,GAAOC,SAAA;EAC9C,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,+rCAAA,EAkDA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"country-select-field.js","sources":["../../src/form/country-select-field.gts"],"sourcesContent":["import Component from '@glimmer/component';\n\nimport Control from './control.gts';\nimport CountrySelect from './country-select.gts';\n\nexport type LabelVisibility = 'visible' | 'hidden';\n\nexport interface CountrySelectFieldSignature {\n Element: HTMLDivElement;\n Args: {\n /** Label text (required) */\n label: string;\n\n /** Current selected value (ISO country code) */\n value?: string;\n\n /** Placeholder text shown when no value is selected */\n placeholder?: string;\n\n /** Help text displayed below the select */\n helpText?: string;\n\n /** Error message (also sets invalid state) */\n error?: string;\n\n /** Field is required */\n isRequired?: boolean;\n\n /** Field is disabled */\n isDisabled?: boolean;\n\n /** Info tooltip text shown next to the label */\n labelInfo?: string;\n\n /** Optional indicator - shows \"optional\" or custom text next to the label */\n optionalIndicator?: boolean | string;\n\n /** Label visibility */\n labelVisibility?: LabelVisibility;\n\n /** Input name for forms */\n name?: string;\n\n /** Show flag emoji in options and trigger (default: true) */\n showFlag?: boolean;\n\n /** Show dial code in options */\n showDialCode?: boolean;\n\n /** Show dial code in the selected value display */\n displayDialCode?: boolean;\n\n /** ISO codes to show at top as suggested */\n suggestedCountries?: string[];\n\n /** Auto-suggest based on browser locale (default: false) */\n prioritizeByLocale?: boolean;\n\n /** Only show these countries (ISO codes) */\n includeOnly?: string[];\n\n /** Hide these countries (ISO codes) */\n exclude?: string[];\n\n /** Change event handler */\n onChange?: (countryCode: string | null) => void;\n\n /** Blur event handler */\n onBlur?: (event: FocusEvent) => void;\n\n /** Focus event handler */\n onFocus?: (event: FocusEvent) => void;\n };\n Blocks: {\n /** Rich tooltip content shown next to the label */\n info: [];\n };\n}\n\nexport default class CountrySelectField extends Component<CountrySelectFieldSignature> {\n get isInvalid(): boolean {\n return !!this.args.error;\n }\n\n get isLabelHidden(): boolean {\n return this.args.labelVisibility === 'hidden';\n }\n\n /** Build aria-describedby from the control's help text and error message IDs */\n getAriaDescribedBy = (controlId: string): string | undefined => {\n const parts: string[] = [];\n if (this.args.helpText) {\n parts.push(`${controlId}-help-text`);\n }\n if (this.args.error) {\n parts.push(`${controlId}-error-message`);\n }\n return parts.length > 0 ? parts.join(' ') : undefined;\n };\n\n <template>\n <Control\n @isInvalid={{this.isInvalid}}\n @isDisabled={{@isDisabled}}\n @isRequired={{@isRequired}}\n @labelInfo={{@labelInfo}}\n @optionalIndicator={{@optionalIndicator}}\n ...attributes\n as |ctrl|\n >\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <CountrySelect\n @id={{ctrl.id}}\n @name={{@name}}\n @value={{@value}}\n @placeholder={{@placeholder}}\n @isDisabled={{@isDisabled}}\n @isInvalid={{this.isInvalid}}\n @isRequired={{@isRequired}}\n @aria-describedby={{this.getAriaDescribedBy ctrl.id}}\n @showFlag={{@showFlag}}\n @showDialCode={{@showDialCode}}\n @displayDialCode={{@displayDialCode}}\n @suggestedCountries={{@suggestedCountries}}\n @prioritizeByLocale={{@prioritizeByLocale}}\n @includeOnly={{@includeOnly}}\n @exclude={{@exclude}}\n @onChange={{@onChange}}\n @onBlur={{@onBlur}}\n @onFocus={{@onFocus}}\n data-test-country-select-field\n />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n </Control>\n </template>\n}\n"],"names":["CountrySelectField","Component","isInvalid","args","error","isLabelHidden","labelVisibility","getAriaDescribedBy","controlId","parts","helpText","push","length","join","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","Control","CountrySelect"],"mappings":";;;;;;AA+Ee,MAAMA,2BAA2BC,SAAA,CAAU;EACxD,IAAIC,SAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK;AAC1B,EAAA;EAEA,IAAIC,aAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,eAAe,KAAK,QAAA;AACvC,EAAA;AAEA;EACAC,qBAAsBC,SAAiB,IAAqB;IAC1D,MAAMC,KAAa,GAAK,EAAE;AAC1B,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,QAAQ,EAAE;AACtBD,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,YAAqB,CAAA;AACrC,IAAA;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACC,KAAK,EAAE;AACnBK,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,gBAAyB,CAAA;AACzC,IAAA;AACA,IAAA,OAAOC,MAAMG,MAAM,GAAG,IAAIH,KAAA,CAAMI,IAAI,CAAC,GAAA,CAAA,GAAOC,SAAA;EAC9C,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,yuCAAA,EAmDA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -23,7 +23,7 @@ class DatePickerField extends Component {
23
23
  return parts.length > 0 ? parts.join(' ') : undefined;
24
24
  };
25
25
  static {
26
- setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @labelInfo={{@labelInfo}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <DatePicker @id={{ctrl.id}} @name={{@name}} @value={{@value}} @defaultValue={{@defaultValue}} @placeholder={{@placeholder}} @format={{@format}} @minDate={{@minDate}} @maxDate={{@maxDate}} @disabledDates={{@disabledDates}} @disabledDaysOfWeek={{@disabledDaysOfWeek}} @weekStartsOn={{@weekStartsOn}} @showOutsideDays={{@showOutsideDays}} @showToday={{@showToday}} @allowTextInput={{@allowTextInput}} @closeOnSelect={{@closeOnSelect}} @showIcon={{@showIcon}} @clearable={{@clearable}} @isDisabled={{@isDisabled}} @isInvalid={{this.isInvalid}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @aria-describedby={{this.getAriaDescribedBy ctrl.id}} @onChange={{@onChange}} @onBlur={{@onBlur}} @onFocus={{@onFocus}} @onOpenChange={{@onOpenChange}} data-test-date-picker-field />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
26
+ setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @labelInfo={{@labelInfo}} @optionalIndicator={{@optionalIndicator}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <DatePicker @id={{ctrl.id}} @name={{@name}} @value={{@value}} @defaultValue={{@defaultValue}} @placeholder={{@placeholder}} @format={{@format}} @minDate={{@minDate}} @maxDate={{@maxDate}} @disabledDates={{@disabledDates}} @disabledDaysOfWeek={{@disabledDaysOfWeek}} @weekStartsOn={{@weekStartsOn}} @showOutsideDays={{@showOutsideDays}} @showToday={{@showToday}} @allowTextInput={{@allowTextInput}} @closeOnSelect={{@closeOnSelect}} @showIcon={{@showIcon}} @clearable={{@clearable}} @isDisabled={{@isDisabled}} @isInvalid={{this.isInvalid}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @aria-describedby={{this.getAriaDescribedBy ctrl.id}} @onChange={{@onChange}} @onBlur={{@onBlur}} @onFocus={{@onFocus}} @onOpenChange={{@onOpenChange}} data-test-date-picker-field />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
27
27
  strictMode: true,
28
28
  scope: () => ({
29
29
  Control,
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker-field.js","sources":["../../src/form/date-picker-field.gts"],"sourcesContent":["import Component from '@glimmer/component';\n\nimport Control from './control.gts';\nimport DatePicker, { type DateFormat } from './date-picker.gts';\n\nexport type LabelVisibility = 'visible' | 'hidden';\n\nexport interface DatePickerFieldSignature {\n Element: HTMLDivElement;\n Args: {\n /** Label text (required) */\n label: string;\n\n /** Current selected date value */\n value?: Date | null;\n\n /** Default value (uncontrolled) */\n defaultValue?: Date | null;\n\n /** Placeholder text shown when no value is selected */\n placeholder?: string;\n\n /** Date format for display and parsing (date-fns format) */\n format?: DateFormat;\n\n /** Minimum allowed date */\n minDate?: Date;\n\n /** Maximum allowed date */\n maxDate?: Date;\n\n /** Array of disabled dates or a function to check if a date is disabled */\n disabledDates?: Date[] | ((date: Date) => boolean);\n\n /** Array of day numbers (0-6, Sunday-Saturday) to disable */\n disabledDaysOfWeek?: number[];\n\n /** Day to start the week on (0 = Sunday, 1 = Monday, etc.) */\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\n /** Show days from adjacent months */\n showOutsideDays?: boolean;\n\n /** Show today indicator */\n showToday?: boolean;\n\n /** Allow typing in the input */\n allowTextInput?: boolean;\n\n /** Close dropdown when a date is selected */\n closeOnSelect?: boolean;\n\n /** Show calendar icon */\n showIcon?: boolean;\n\n /** Show clear button when value is selected */\n clearable?: boolean;\n\n /** Help text displayed below the input */\n helpText?: string;\n\n /** Error message (also sets invalid state) */\n error?: string;\n\n /** Field is required */\n isRequired?: boolean;\n\n /** Field is disabled */\n isDisabled?: boolean;\n\n /** Field is read-only */\n isReadOnly?: boolean;\n\n /** Info tooltip text shown next to the label */\n labelInfo?: string;\n\n /** Label visibility */\n labelVisibility?: LabelVisibility;\n\n /** Input name for forms */\n name?: string;\n\n /** Change event handler */\n onChange?: (value: Date | null) => void;\n\n /** Blur event handler */\n onBlur?: (event: FocusEvent) => void;\n\n /** Focus event handler */\n onFocus?: (event: FocusEvent) => void;\n\n /** Open state change handler */\n onOpenChange?: (open: boolean) => void;\n };\n Blocks: {\n /** Rich tooltip content shown next to the label */\n info: [];\n };\n}\n\nexport default class DatePickerField extends Component<DatePickerFieldSignature> {\n get isInvalid(): boolean {\n return !!this.args.error;\n }\n\n get isLabelHidden(): boolean {\n return this.args.labelVisibility === 'hidden';\n }\n\n /** Build aria-describedby from the control's help text and error message IDs */\n getAriaDescribedBy = (controlId: string): string | undefined => {\n const parts: string[] = [];\n if (this.args.helpText) {\n parts.push(`${controlId}-help-text`);\n }\n if (this.args.error) {\n parts.push(`${controlId}-error-message`);\n }\n return parts.length > 0 ? parts.join(' ') : undefined;\n };\n\n <template>\n <Control\n @isInvalid={{this.isInvalid}}\n @isDisabled={{@isDisabled}}\n @isRequired={{@isRequired}}\n @isReadOnly={{@isReadOnly}}\n @labelInfo={{@labelInfo}}\n ...attributes\n as |ctrl|\n >\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <DatePicker\n @id={{ctrl.id}}\n @name={{@name}}\n @value={{@value}}\n @defaultValue={{@defaultValue}}\n @placeholder={{@placeholder}}\n @format={{@format}}\n @minDate={{@minDate}}\n @maxDate={{@maxDate}}\n @disabledDates={{@disabledDates}}\n @disabledDaysOfWeek={{@disabledDaysOfWeek}}\n @weekStartsOn={{@weekStartsOn}}\n @showOutsideDays={{@showOutsideDays}}\n @showToday={{@showToday}}\n @allowTextInput={{@allowTextInput}}\n @closeOnSelect={{@closeOnSelect}}\n @showIcon={{@showIcon}}\n @clearable={{@clearable}}\n @isDisabled={{@isDisabled}}\n @isInvalid={{this.isInvalid}}\n @isRequired={{@isRequired}}\n @isReadOnly={{@isReadOnly}}\n @aria-describedby={{this.getAriaDescribedBy ctrl.id}}\n @onChange={{@onChange}}\n @onBlur={{@onBlur}}\n @onFocus={{@onFocus}}\n @onOpenChange={{@onOpenChange}}\n data-test-date-picker-field\n />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n </Control>\n </template>\n}\n"],"names":["DatePickerField","Component","isInvalid","args","error","isLabelHidden","labelVisibility","getAriaDescribedBy","controlId","parts","helpText","push","length","join","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","Control","DatePicker"],"mappings":";;;;;;AAoGe,MAAMA,wBAAwBC,SAAA,CAAU;EACrD,IAAIC,SAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK;AAC1B,EAAA;EAEA,IAAIC,aAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,eAAe,KAAK,QAAA;AACvC,EAAA;AAEA;EACAC,qBAAsBC,SAAiB,IAAqB;IAC1D,MAAMC,KAAa,GAAK,EAAE;AAC1B,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,QAAQ,EAAE;AACtBD,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,YAAqB,CAAA;AACrC,IAAA;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACC,KAAK,EAAE;AACnBK,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,gBAAyB,CAAA;AACzC,IAAA;AACA,IAAA,OAAOC,MAAMG,MAAM,GAAG,IAAIH,KAAA,CAAMI,IAAI,CAAC,GAAA,CAAA,GAAOC,SAAA;EAC9C,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,66CAAA,EA2DA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"date-picker-field.js","sources":["../../src/form/date-picker-field.gts"],"sourcesContent":["import Component from '@glimmer/component';\n\nimport Control from './control.gts';\nimport DatePicker, { type DateFormat } from './date-picker.gts';\n\nexport type LabelVisibility = 'visible' | 'hidden';\n\nexport interface DatePickerFieldSignature {\n Element: HTMLDivElement;\n Args: {\n /** Label text (required) */\n label: string;\n\n /** Current selected date value */\n value?: Date | null;\n\n /** Default value (uncontrolled) */\n defaultValue?: Date | null;\n\n /** Placeholder text shown when no value is selected */\n placeholder?: string;\n\n /** Date format for display and parsing (date-fns format) */\n format?: DateFormat;\n\n /** Minimum allowed date */\n minDate?: Date;\n\n /** Maximum allowed date */\n maxDate?: Date;\n\n /** Array of disabled dates or a function to check if a date is disabled */\n disabledDates?: Date[] | ((date: Date) => boolean);\n\n /** Array of day numbers (0-6, Sunday-Saturday) to disable */\n disabledDaysOfWeek?: number[];\n\n /** Day to start the week on (0 = Sunday, 1 = Monday, etc.) */\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\n /** Show days from adjacent months */\n showOutsideDays?: boolean;\n\n /** Show today indicator */\n showToday?: boolean;\n\n /** Allow typing in the input */\n allowTextInput?: boolean;\n\n /** Close dropdown when a date is selected */\n closeOnSelect?: boolean;\n\n /** Show calendar icon */\n showIcon?: boolean;\n\n /** Show clear button when value is selected */\n clearable?: boolean;\n\n /** Help text displayed below the input */\n helpText?: string;\n\n /** Error message (also sets invalid state) */\n error?: string;\n\n /** Field is required */\n isRequired?: boolean;\n\n /** Field is disabled */\n isDisabled?: boolean;\n\n /** Field is read-only */\n isReadOnly?: boolean;\n\n /** Info tooltip text shown next to the label */\n labelInfo?: string;\n\n /** Optional indicator - shows \"optional\" or custom text next to the label */\n optionalIndicator?: boolean | string;\n\n /** Label visibility */\n labelVisibility?: LabelVisibility;\n\n /** Input name for forms */\n name?: string;\n\n /** Change event handler */\n onChange?: (value: Date | null) => void;\n\n /** Blur event handler */\n onBlur?: (event: FocusEvent) => void;\n\n /** Focus event handler */\n onFocus?: (event: FocusEvent) => void;\n\n /** Open state change handler */\n onOpenChange?: (open: boolean) => void;\n };\n Blocks: {\n /** Rich tooltip content shown next to the label */\n info: [];\n };\n}\n\nexport default class DatePickerField extends Component<DatePickerFieldSignature> {\n get isInvalid(): boolean {\n return !!this.args.error;\n }\n\n get isLabelHidden(): boolean {\n return this.args.labelVisibility === 'hidden';\n }\n\n /** Build aria-describedby from the control's help text and error message IDs */\n getAriaDescribedBy = (controlId: string): string | undefined => {\n const parts: string[] = [];\n if (this.args.helpText) {\n parts.push(`${controlId}-help-text`);\n }\n if (this.args.error) {\n parts.push(`${controlId}-error-message`);\n }\n return parts.length > 0 ? parts.join(' ') : undefined;\n };\n\n <template>\n <Control\n @isInvalid={{this.isInvalid}}\n @isDisabled={{@isDisabled}}\n @isRequired={{@isRequired}}\n @isReadOnly={{@isReadOnly}}\n @labelInfo={{@labelInfo}}\n @optionalIndicator={{@optionalIndicator}}\n ...attributes\n as |ctrl|\n >\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <DatePicker\n @id={{ctrl.id}}\n @name={{@name}}\n @value={{@value}}\n @defaultValue={{@defaultValue}}\n @placeholder={{@placeholder}}\n @format={{@format}}\n @minDate={{@minDate}}\n @maxDate={{@maxDate}}\n @disabledDates={{@disabledDates}}\n @disabledDaysOfWeek={{@disabledDaysOfWeek}}\n @weekStartsOn={{@weekStartsOn}}\n @showOutsideDays={{@showOutsideDays}}\n @showToday={{@showToday}}\n @allowTextInput={{@allowTextInput}}\n @closeOnSelect={{@closeOnSelect}}\n @showIcon={{@showIcon}}\n @clearable={{@clearable}}\n @isDisabled={{@isDisabled}}\n @isInvalid={{this.isInvalid}}\n @isRequired={{@isRequired}}\n @isReadOnly={{@isReadOnly}}\n @aria-describedby={{this.getAriaDescribedBy ctrl.id}}\n @onChange={{@onChange}}\n @onBlur={{@onBlur}}\n @onFocus={{@onFocus}}\n @onOpenChange={{@onOpenChange}}\n data-test-date-picker-field\n />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n </Control>\n </template>\n}\n"],"names":["DatePickerField","Component","isInvalid","args","error","isLabelHidden","labelVisibility","getAriaDescribedBy","controlId","parts","helpText","push","length","join","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","Control","DatePicker"],"mappings":";;;;;;AAuGe,MAAMA,wBAAwBC,SAAA,CAAU;EACrD,IAAIC,SAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK;AAC1B,EAAA;EAEA,IAAIC,aAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,eAAe,KAAK,QAAA;AACvC,EAAA;AAEA;EACAC,qBAAsBC,SAAiB,IAAqB;IAC1D,MAAMC,KAAa,GAAK,EAAE;AAC1B,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,QAAQ,EAAE;AACtBD,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,YAAqB,CAAA;AACrC,IAAA;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACC,KAAK,EAAE;AACnBK,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,gBAAyB,CAAA;AACzC,IAAA;AACA,IAAA,OAAOC,MAAMG,MAAM,GAAG,IAAIH,KAAA,CAAMI,IAAI,CAAC,GAAA,CAAA,GAAOC,SAAA;EAC9C,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,u9CAAA,EA4DA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -23,7 +23,7 @@ class DateRangePickerField extends Component {
23
23
  return parts.length > 0 ? parts.join(' ') : undefined;
24
24
  };
25
25
  static {
26
- setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @labelInfo={{@labelInfo}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <DateRangePicker @id={{ctrl.id}} @name={{@name}} @value={{@value}} @defaultValue={{@defaultValue}} @startPlaceholder={{@startPlaceholder}} @endPlaceholder={{@endPlaceholder}} @format={{@format}} @minDate={{@minDate}} @maxDate={{@maxDate}} @disabledDates={{@disabledDates}} @disabledDaysOfWeek={{@disabledDaysOfWeek}} @weekStartsOn={{@weekStartsOn}} @showOutsideDays={{@showOutsideDays}} @showToday={{@showToday}} @presets={{@presets}} @allowTextInput={{@allowTextInput}} @showIcon={{@showIcon}} @clearable={{@clearable}} @isDisabled={{@isDisabled}} @isInvalid={{this.isInvalid}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @aria-describedby={{this.getAriaDescribedBy ctrl.id}} @onChange={{@onChange}} @onBlur={{@onBlur}} @onFocus={{@onFocus}} @onOpenChange={{@onOpenChange}} data-test-date-range-picker-field />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
26
+ setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @labelInfo={{@labelInfo}} @optionalIndicator={{@optionalIndicator}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <DateRangePicker @id={{ctrl.id}} @name={{@name}} @value={{@value}} @defaultValue={{@defaultValue}} @startPlaceholder={{@startPlaceholder}} @endPlaceholder={{@endPlaceholder}} @format={{@format}} @minDate={{@minDate}} @maxDate={{@maxDate}} @disabledDates={{@disabledDates}} @disabledDaysOfWeek={{@disabledDaysOfWeek}} @weekStartsOn={{@weekStartsOn}} @showOutsideDays={{@showOutsideDays}} @showToday={{@showToday}} @presets={{@presets}} @allowTextInput={{@allowTextInput}} @showIcon={{@showIcon}} @clearable={{@clearable}} @isDisabled={{@isDisabled}} @isInvalid={{this.isInvalid}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @aria-describedby={{this.getAriaDescribedBy ctrl.id}} @onChange={{@onChange}} @onBlur={{@onBlur}} @onFocus={{@onFocus}} @onOpenChange={{@onOpenChange}} data-test-date-range-picker-field />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
27
27
  strictMode: true,
28
28
  scope: () => ({
29
29
  Control,
@@ -1 +1 @@
1
- {"version":3,"file":"date-range-picker-field.js","sources":["../../src/form/date-range-picker-field.gts"],"sourcesContent":["import Component from '@glimmer/component';\n\nimport Control from './control.gts';\nimport DateRangePicker, {\n type DateFormat,\n type DateRangePreset,\n type DateRange,\n} from './date-range-picker.gts';\n\nexport type LabelVisibility = 'visible' | 'hidden';\n\nexport interface DateRangePickerFieldSignature {\n Element: HTMLDivElement;\n Args: {\n /** Label text (required) */\n label: string;\n\n /** Current selected date range value */\n value?: DateRange | null;\n\n /** Default value (uncontrolled) */\n defaultValue?: DateRange | null;\n\n /** Placeholder text for start date */\n startPlaceholder?: string;\n\n /** Placeholder text for end date */\n endPlaceholder?: string;\n\n /** Date format for display and parsing (date-fns format) */\n format?: DateFormat;\n\n /** Minimum allowed date */\n minDate?: Date;\n\n /** Maximum allowed date */\n maxDate?: Date;\n\n /** Array of disabled dates or a function to check if a date is disabled */\n disabledDates?: Date[] | ((date: Date) => boolean);\n\n /** Array of day numbers (0-6, Sunday-Saturday) to disable */\n disabledDaysOfWeek?: number[];\n\n /** Day to start the week on (0 = Sunday, 1 = Monday, etc.) */\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\n /** Show days from adjacent months */\n showOutsideDays?: boolean;\n\n /** Show today indicator */\n showToday?: boolean;\n\n /** Preset date range options */\n presets?: DateRangePreset[];\n\n /** Allow typing in the inputs */\n allowTextInput?: boolean;\n\n /** Show calendar icon */\n showIcon?: boolean;\n\n /** Show clear button when value is selected */\n clearable?: boolean;\n\n /** Help text displayed below the input */\n helpText?: string;\n\n /** Error message (also sets invalid state) */\n error?: string;\n\n /** Field is required */\n isRequired?: boolean;\n\n /** Field is disabled */\n isDisabled?: boolean;\n\n /** Field is read-only */\n isReadOnly?: boolean;\n\n /** Info tooltip text shown next to the label */\n labelInfo?: string;\n\n /** Label visibility */\n labelVisibility?: LabelVisibility;\n\n /** Input name prefix for forms (creates {name}_start and {name}_end) */\n name?: string;\n\n /** Change event handler */\n onChange?: (value: DateRange | null) => void;\n\n /** Blur event handler */\n onBlur?: (event: FocusEvent) => void;\n\n /** Focus event handler */\n onFocus?: (event: FocusEvent) => void;\n\n /** Open state change handler */\n onOpenChange?: (open: boolean) => void;\n };\n Blocks: {\n /** Rich tooltip content shown next to the label */\n info: [];\n };\n}\n\nexport default class DateRangePickerField extends Component<DateRangePickerFieldSignature> {\n get isInvalid(): boolean {\n return !!this.args.error;\n }\n\n get isLabelHidden(): boolean {\n return this.args.labelVisibility === 'hidden';\n }\n\n /** Build aria-describedby from the control's help text and error message IDs */\n getAriaDescribedBy = (controlId: string): string | undefined => {\n const parts: string[] = [];\n if (this.args.helpText) {\n parts.push(`${controlId}-help-text`);\n }\n if (this.args.error) {\n parts.push(`${controlId}-error-message`);\n }\n return parts.length > 0 ? parts.join(' ') : undefined;\n };\n\n <template>\n <Control\n @isInvalid={{this.isInvalid}}\n @isDisabled={{@isDisabled}}\n @isRequired={{@isRequired}}\n @isReadOnly={{@isReadOnly}}\n @labelInfo={{@labelInfo}}\n ...attributes\n as |ctrl|\n >\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <DateRangePicker\n @id={{ctrl.id}}\n @name={{@name}}\n @value={{@value}}\n @defaultValue={{@defaultValue}}\n @startPlaceholder={{@startPlaceholder}}\n @endPlaceholder={{@endPlaceholder}}\n @format={{@format}}\n @minDate={{@minDate}}\n @maxDate={{@maxDate}}\n @disabledDates={{@disabledDates}}\n @disabledDaysOfWeek={{@disabledDaysOfWeek}}\n @weekStartsOn={{@weekStartsOn}}\n @showOutsideDays={{@showOutsideDays}}\n @showToday={{@showToday}}\n @presets={{@presets}}\n @allowTextInput={{@allowTextInput}}\n @showIcon={{@showIcon}}\n @clearable={{@clearable}}\n @isDisabled={{@isDisabled}}\n @isInvalid={{this.isInvalid}}\n @isRequired={{@isRequired}}\n @isReadOnly={{@isReadOnly}}\n @aria-describedby={{this.getAriaDescribedBy ctrl.id}}\n @onChange={{@onChange}}\n @onBlur={{@onBlur}}\n @onFocus={{@onFocus}}\n @onOpenChange={{@onOpenChange}}\n data-test-date-range-picker-field\n />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n </Control>\n </template>\n}\n"],"names":["DateRangePickerField","Component","isInvalid","args","error","isLabelHidden","labelVisibility","getAriaDescribedBy","controlId","parts","helpText","push","length","join","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","Control","DateRangePicker"],"mappings":";;;;;;AA2Ge,MAAMA,6BAA6BC,SAAA,CAAU;EAC1D,IAAIC,SAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK;AAC1B,EAAA;EAEA,IAAIC,aAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,eAAe,KAAK,QAAA;AACvC,EAAA;AAEA;EACAC,qBAAsBC,SAAiB,IAAqB;IAC1D,MAAMC,KAAa,GAAK,EAAE;AAC1B,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,QAAQ,EAAE;AACtBD,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,YAAqB,CAAA;AACrC,IAAA;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACC,KAAK,EAAE;AACnBK,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,gBAAyB,CAAA;AACzC,IAAA;AACA,IAAA,OAAOC,MAAMG,MAAM,GAAG,IAAIH,KAAA,CAAMI,IAAI,CAAC,GAAA,CAAA,GAAOC,SAAA;EAC9C,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,09CAAA,EA4DA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"date-range-picker-field.js","sources":["../../src/form/date-range-picker-field.gts"],"sourcesContent":["import Component from '@glimmer/component';\n\nimport Control from './control.gts';\nimport DateRangePicker, {\n type DateFormat,\n type DateRangePreset,\n type DateRange,\n} from './date-range-picker.gts';\n\nexport type LabelVisibility = 'visible' | 'hidden';\n\nexport interface DateRangePickerFieldSignature {\n Element: HTMLDivElement;\n Args: {\n /** Label text (required) */\n label: string;\n\n /** Current selected date range value */\n value?: DateRange | null;\n\n /** Default value (uncontrolled) */\n defaultValue?: DateRange | null;\n\n /** Placeholder text for start date */\n startPlaceholder?: string;\n\n /** Placeholder text for end date */\n endPlaceholder?: string;\n\n /** Date format for display and parsing (date-fns format) */\n format?: DateFormat;\n\n /** Minimum allowed date */\n minDate?: Date;\n\n /** Maximum allowed date */\n maxDate?: Date;\n\n /** Array of disabled dates or a function to check if a date is disabled */\n disabledDates?: Date[] | ((date: Date) => boolean);\n\n /** Array of day numbers (0-6, Sunday-Saturday) to disable */\n disabledDaysOfWeek?: number[];\n\n /** Day to start the week on (0 = Sunday, 1 = Monday, etc.) */\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\n /** Show days from adjacent months */\n showOutsideDays?: boolean;\n\n /** Show today indicator */\n showToday?: boolean;\n\n /** Preset date range options */\n presets?: DateRangePreset[];\n\n /** Allow typing in the inputs */\n allowTextInput?: boolean;\n\n /** Show calendar icon */\n showIcon?: boolean;\n\n /** Show clear button when value is selected */\n clearable?: boolean;\n\n /** Help text displayed below the input */\n helpText?: string;\n\n /** Error message (also sets invalid state) */\n error?: string;\n\n /** Field is required */\n isRequired?: boolean;\n\n /** Field is disabled */\n isDisabled?: boolean;\n\n /** Field is read-only */\n isReadOnly?: boolean;\n\n /** Info tooltip text shown next to the label */\n labelInfo?: string;\n\n /** Optional indicator - shows \"optional\" or custom text next to the label */\n optionalIndicator?: boolean | string;\n\n /** Label visibility */\n labelVisibility?: LabelVisibility;\n\n /** Input name prefix for forms (creates {name}_start and {name}_end) */\n name?: string;\n\n /** Change event handler */\n onChange?: (value: DateRange | null) => void;\n\n /** Blur event handler */\n onBlur?: (event: FocusEvent) => void;\n\n /** Focus event handler */\n onFocus?: (event: FocusEvent) => void;\n\n /** Open state change handler */\n onOpenChange?: (open: boolean) => void;\n };\n Blocks: {\n /** Rich tooltip content shown next to the label */\n info: [];\n };\n}\n\nexport default class DateRangePickerField extends Component<DateRangePickerFieldSignature> {\n get isInvalid(): boolean {\n return !!this.args.error;\n }\n\n get isLabelHidden(): boolean {\n return this.args.labelVisibility === 'hidden';\n }\n\n /** Build aria-describedby from the control's help text and error message IDs */\n getAriaDescribedBy = (controlId: string): string | undefined => {\n const parts: string[] = [];\n if (this.args.helpText) {\n parts.push(`${controlId}-help-text`);\n }\n if (this.args.error) {\n parts.push(`${controlId}-error-message`);\n }\n return parts.length > 0 ? parts.join(' ') : undefined;\n };\n\n <template>\n <Control\n @isInvalid={{this.isInvalid}}\n @isDisabled={{@isDisabled}}\n @isRequired={{@isRequired}}\n @isReadOnly={{@isReadOnly}}\n @labelInfo={{@labelInfo}}\n @optionalIndicator={{@optionalIndicator}}\n ...attributes\n as |ctrl|\n >\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <DateRangePicker\n @id={{ctrl.id}}\n @name={{@name}}\n @value={{@value}}\n @defaultValue={{@defaultValue}}\n @startPlaceholder={{@startPlaceholder}}\n @endPlaceholder={{@endPlaceholder}}\n @format={{@format}}\n @minDate={{@minDate}}\n @maxDate={{@maxDate}}\n @disabledDates={{@disabledDates}}\n @disabledDaysOfWeek={{@disabledDaysOfWeek}}\n @weekStartsOn={{@weekStartsOn}}\n @showOutsideDays={{@showOutsideDays}}\n @showToday={{@showToday}}\n @presets={{@presets}}\n @allowTextInput={{@allowTextInput}}\n @showIcon={{@showIcon}}\n @clearable={{@clearable}}\n @isDisabled={{@isDisabled}}\n @isInvalid={{this.isInvalid}}\n @isRequired={{@isRequired}}\n @isReadOnly={{@isReadOnly}}\n @aria-describedby={{this.getAriaDescribedBy ctrl.id}}\n @onChange={{@onChange}}\n @onBlur={{@onBlur}}\n @onFocus={{@onFocus}}\n @onOpenChange={{@onOpenChange}}\n data-test-date-range-picker-field\n />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n </Control>\n </template>\n}\n"],"names":["DateRangePickerField","Component","isInvalid","args","error","isLabelHidden","labelVisibility","getAriaDescribedBy","controlId","parts","helpText","push","length","join","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","Control","DateRangePicker"],"mappings":";;;;;;AA8Ge,MAAMA,6BAA6BC,SAAA,CAAU;EAC1D,IAAIC,SAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK;AAC1B,EAAA;EAEA,IAAIC,aAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,eAAe,KAAK,QAAA;AACvC,EAAA;AAEA;EACAC,qBAAsBC,SAAiB,IAAqB;IAC1D,MAAMC,KAAa,GAAK,EAAE;AAC1B,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,QAAQ,EAAE;AACtBD,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,YAAqB,CAAA;AACrC,IAAA;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACC,KAAK,EAAE;AACnBK,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,gBAAyB,CAAA;AACzC,IAAA;AACA,IAAA,OAAOC,MAAMG,MAAM,GAAG,IAAIH,KAAA,CAAMI,IAAI,CAAC,GAAA,CAAA,GAAOC,SAAA;EAC9C,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,ogDAAA,EA6DA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -16,7 +16,7 @@ class DisplayField extends Component {
16
16
  return this.args.editing ?? false;
17
17
  }
18
18
  static {
19
- setComponentTemplate(precompileTemplate("\n\n<div class=\"display-field_e03c8ad71\" data-editing={{if this.isEditing \"true\" \"false\"}} data-test-display-field ...attributes>\n {{#if this.isEditing}}\n {{#if (has-block \"info\")}}\n <Label @info={{@labelInfo}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </Label>\n {{else}}\n <Label @info={{@labelInfo}}>\n {{@label}}\n </Label>\n {{/if}}\n <div class=\"display-field-input_e03c8ad71\">\n {{yield to=\"input\"}}\n </div>\n {{else}}\n <div class=\"display-field-inline_e03c8ad71\" data-test-display-field-content>\n <span class=\"display-field-label_e03c8ad71\">{{@label}}</span>\n <span class=\"display-field-value_e03c8ad71\" data-test-display-field-value>\n {{yield to=\"value\"}}\n </span>\n {{#if (has-block \"action\")}}\n <span data-test-display-field-action>\n {{yield to=\"action\"}}\n </span>\n {{/if}}\n </div>\n {{/if}}\n\n {{#if @description}}\n <span class=\"display-field-description_e03c8ad71\" id={{this.descriptionId}} data-test-display-field-description>\n {{@description}}\n </span>\n {{/if}}\n</div>", {
19
+ setComponentTemplate(precompileTemplate("\n\n<div class=\"display-field_e03c8ad71\" data-editing={{if this.isEditing \"true\" \"false\"}} data-test-display-field ...attributes>\n {{#if this.isEditing}}\n {{#if (has-block \"info\")}}\n <Label @info={{@labelInfo}} @optionalIndicator={{@optionalIndicator}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </Label>\n {{else}}\n <Label @info={{@labelInfo}} @optionalIndicator={{@optionalIndicator}}>\n {{@label}}\n </Label>\n {{/if}}\n <div class=\"display-field-input_e03c8ad71\">\n {{yield to=\"input\"}}\n </div>\n {{else}}\n <div class=\"display-field-inline_e03c8ad71\" data-test-display-field-content>\n <span class=\"display-field-label_e03c8ad71\">{{@label}}</span>\n <span class=\"display-field-value_e03c8ad71\" data-test-display-field-value>\n {{yield to=\"value\"}}\n </span>\n {{#if (has-block \"action\")}}\n <span data-test-display-field-action>\n {{yield to=\"action\"}}\n </span>\n {{/if}}\n </div>\n {{/if}}\n\n {{#if @description}}\n <span class=\"display-field-description_e03c8ad71\" id={{this.descriptionId}} data-test-display-field-description>\n {{@description}}\n </span>\n {{/if}}\n</div>", {
20
20
  strictMode: true,
21
21
  scope: () => ({
22
22
  Label
@@ -47,8 +47,9 @@
47
47
 
48
48
  /* Optional indicator */
49
49
  .label-optional_e7fa6e7a3 {
50
- color: var(--color-text-secondary);
50
+ color: var(--color-text-tertiary);
51
51
  font-weight: var(--font-weight-regular);
52
+ font-size: var(--font-size-xs);
52
53
  }
53
54
 
54
55
  /* Secondary label */
@@ -42,7 +42,7 @@ class Label extends Component {
42
42
  if (typeof optionalIndicator === 'string') {
43
43
  return optionalIndicator;
44
44
  }
45
- return '(optional)';
45
+ return 'optional';
46
46
  }
47
47
  static {
48
48
  setComponentTemplate(precompileTemplate("<label class=\"label_e7fa6e7a3\" for={{@for}} data-size={{this.size}} data-disabled={{if @isDisabled \"true\"}} data-visually-hidden={{if @isVisuallyHidden \"true\"}} data-test-form-label ...attributes>\n <span class=\"label-text\" data-test-label-text>{{yield}}</span>\n {{#if this.showRequiredIndicator}}\n <span class=\"label-required_e7fa6e7a3\" data-test-label-required aria-hidden=\"true\">{{this.requiredIndicatorText}}</span>\n {{/if}}\n {{#if this.showOptionalIndicator}}\n <span class=\"label-optional_e7fa6e7a3\" data-test-label-optional>{{this.optionalIndicatorText}}</span>\n {{/if}}\n {{#if @secondaryLabel}}\n <span class=\"label-secondary_e7fa6e7a3\" data-test-label-secondary>{{@secondaryLabel}}</span>\n {{/if}}\n {{#if (has-block \"info\")}}\n <Tooltip @side=\"top\" @showArrow={{false}} data-test-label-info>\n <:default>\n <span class=\"label-info-trigger_e7fa6e7a3\">\n <Icon @icon={{Info}} @size=\"xs\" @label=\"More information\" />\n </span>\n </:default>\n <:content>\n {{yield to=\"info\"}}\n </:content>\n </Tooltip>\n {{else if @info}}\n <Tooltip @content={{@info}} @side=\"top\" @showArrow={{false}} data-test-label-info>\n <span class=\"label-info-trigger_e7fa6e7a3\">\n <Icon @icon={{Info}} @size=\"xs\" @label=\"More information\" />\n </span>\n </Tooltip>\n {{/if}}\n</label>", {
@@ -188,7 +188,7 @@ class MoneyField extends Component {
188
188
  n(this.prototype, "handleFocus", [action]);
189
189
  }
190
190
  static {
191
- setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @labelInfo={{@labelInfo}} data-currency={{@currency}} data-test-money-field ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <ctrl.Input @prefix={{if this.showPrefix this.currencySymbol}} @suffix={{if this.showSuffix this.currencySymbol}} @inputMode=\"decimal\" @placeholder={{this.placeholder}} @name={{@name}} @value={{this.displayValue}} data-money-field {{on \"input\" this.handleInput}} {{on \"blur\" this.handleBlur}} {{on \"focus\" this.handleFocus}} />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage @errors={{array @error}} />\n {{/if}}\n</Control>", {
191
+ setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @labelInfo={{@labelInfo}} @optionalIndicator={{@optionalIndicator}} data-currency={{@currency}} data-test-money-field ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <ctrl.Input @prefix={{if this.showPrefix this.currencySymbol}} @suffix={{if this.showSuffix this.currencySymbol}} @inputMode=\"decimal\" @placeholder={{this.placeholder}} @name={{@name}} @value={{this.displayValue}} data-money-field {{on \"input\" this.handleInput}} {{on \"blur\" this.handleBlur}} {{on \"focus\" this.handleFocus}} />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage @errors={{array @error}} />\n {{/if}}\n</Control>", {
192
192
  strictMode: true,
193
193
  scope: () => ({
194
194
  Control,
@@ -22,7 +22,7 @@ class MultiComboBoxField extends Component {
22
22
  return parts.length > 0 ? parts.join(' ') : undefined;
23
23
  };
24
24
  static {
25
- setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @labelInfo={{@labelInfo}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <MultiComboBox @id={{ctrl.id}} @name={{@name}} @items={{@items}} @values={{@values}} @placeholder={{@placeholder}} @noResultsText={{@noResultsText}} @onSearch={{@onSearch}} @searchDebounceMs={{@searchDebounceMs}} @isLoading={{@isLoading}} @onSearchError={{@onSearchError}} @loadingText={{@loadingText}} @isCreatable={{@isCreatable}} @onCreate={{@onCreate}} @createLabel={{@createLabel}} @maxVisibleChips={{@maxVisibleChips}} @isDisabled={{@isDisabled}} @isInvalid={{this.isInvalid}} @isRequired={{@isRequired}} @isClearable={{@isClearable}} @aria-describedby={{this.getAriaDescribedBy ctrl.id}} @onChange={{@onChange}} @onBlur={{@onBlur}} @onFocus={{@onFocus}} @onOpen={{@onOpen}} @onClose={{@onClose}} data-test-multi-combobox-field />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
25
+ setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @labelInfo={{@labelInfo}} @optionalIndicator={{@optionalIndicator}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <MultiComboBox @id={{ctrl.id}} @name={{@name}} @items={{@items}} @values={{@values}} @placeholder={{@placeholder}} @noResultsText={{@noResultsText}} @onSearch={{@onSearch}} @searchDebounceMs={{@searchDebounceMs}} @isLoading={{@isLoading}} @onSearchError={{@onSearchError}} @loadingText={{@loadingText}} @isCreatable={{@isCreatable}} @onCreate={{@onCreate}} @createLabel={{@createLabel}} @maxVisibleChips={{@maxVisibleChips}} @isDisabled={{@isDisabled}} @isInvalid={{this.isInvalid}} @isRequired={{@isRequired}} @isClearable={{@isClearable}} @aria-describedby={{this.getAriaDescribedBy ctrl.id}} @onChange={{@onChange}} @onBlur={{@onBlur}} @onFocus={{@onFocus}} @onOpen={{@onOpen}} @onClose={{@onClose}} data-test-multi-combobox-field />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
26
26
  strictMode: true,
27
27
  scope: () => ({
28
28
  Control,
@@ -1 +1 @@
1
- {"version":3,"file":"multi-combobox-field.js","sources":["../../src/form/multi-combobox-field.gts"],"sourcesContent":["import Component from '@glimmer/component';\n\nimport Control from './control.gts';\nimport MultiComboBox from './multi-combobox.gts';\nimport type { ComboBoxItems, ComboBoxOption } from './combobox-shared.ts';\n\nexport type LabelVisibility = 'visible' | 'hidden';\n\nexport interface MultiComboBoxFieldSignature {\n Element: HTMLDivElement;\n Args: {\n /** Label text (required). */\n label: string;\n\n /** Available options. Flat or pre-grouped. */\n items: ComboBoxItems;\n\n /** Current selected values (controlled). */\n values?: string[];\n\n /** Fires when the selection changes. */\n onChange?: (values: string[], options: ComboBoxOption[]) => void;\n\n /** Async search. */\n onSearch?: (query: string) => Promise<ComboBoxItems>;\n\n /** Debounce for `onSearch` in ms. */\n searchDebounceMs?: number;\n\n /** Force the loading state. */\n isLoading?: boolean;\n\n /** Called when an `onSearch` promise rejects. */\n onSearchError?: (error: unknown) => void;\n\n /** Loading row text. */\n loadingText?: string;\n\n /** Input placeholder when no values selected. */\n placeholder?: string;\n\n /** Empty state text. */\n noResultsText?: string;\n\n /** Allow creating new options from a non-matching query. */\n isCreatable?: boolean;\n\n /** Fires when the user activates the create row. */\n onCreate?: (query: string) => void;\n\n /** Build the create-row label. */\n createLabel?: (query: string) => string;\n\n /** Chips shown before collapsing to \"+N more\". */\n maxVisibleChips?: number;\n\n /** Help text displayed below the control. */\n helpText?: string;\n\n /** Error message (also sets invalid state). */\n error?: string;\n\n /** Field is required. */\n isRequired?: boolean;\n\n /** Field is disabled. */\n isDisabled?: boolean;\n\n /** Show the clear-all button when values are set. */\n isClearable?: boolean;\n\n /** Info tooltip text shown next to the label. */\n labelInfo?: string;\n\n /** Label visibility. */\n labelVisibility?: LabelVisibility;\n\n /** Input name — one hidden input is rendered per selected value. */\n name?: string;\n\n /** Blur event handler. */\n onBlur?: (event: FocusEvent) => void;\n\n /** Focus event handler. */\n onFocus?: (event: FocusEvent) => void;\n\n /** Fires when the dropdown opens. */\n onOpen?: () => void;\n\n /** Fires when the dropdown closes. */\n onClose?: () => void;\n };\n Blocks: {\n /** Rich tooltip content shown next to the label. */\n info: [];\n };\n}\n\nexport default class MultiComboBoxField extends Component<MultiComboBoxFieldSignature> {\n get isInvalid(): boolean {\n return !!this.args.error;\n }\n\n get isLabelHidden(): boolean {\n return this.args.labelVisibility === 'hidden';\n }\n\n getAriaDescribedBy = (controlId: string): string | undefined => {\n const parts: string[] = [];\n if (this.args.helpText) {\n parts.push(`${controlId}-help-text`);\n }\n if (this.args.error) {\n parts.push(`${controlId}-error-message`);\n }\n return parts.length > 0 ? parts.join(' ') : undefined;\n };\n\n <template>\n <Control\n @isInvalid={{this.isInvalid}}\n @isDisabled={{@isDisabled}}\n @isRequired={{@isRequired}}\n @labelInfo={{@labelInfo}}\n ...attributes\n as |ctrl|\n >\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <MultiComboBox\n @id={{ctrl.id}}\n @name={{@name}}\n @items={{@items}}\n @values={{@values}}\n @placeholder={{@placeholder}}\n @noResultsText={{@noResultsText}}\n @onSearch={{@onSearch}}\n @searchDebounceMs={{@searchDebounceMs}}\n @isLoading={{@isLoading}}\n @onSearchError={{@onSearchError}}\n @loadingText={{@loadingText}}\n @isCreatable={{@isCreatable}}\n @onCreate={{@onCreate}}\n @createLabel={{@createLabel}}\n @maxVisibleChips={{@maxVisibleChips}}\n @isDisabled={{@isDisabled}}\n @isInvalid={{this.isInvalid}}\n @isRequired={{@isRequired}}\n @isClearable={{@isClearable}}\n @aria-describedby={{this.getAriaDescribedBy ctrl.id}}\n @onChange={{@onChange}}\n @onBlur={{@onBlur}}\n @onFocus={{@onFocus}}\n @onOpen={{@onOpen}}\n @onClose={{@onClose}}\n data-test-multi-combobox-field\n />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n </Control>\n </template>\n}\n"],"names":["MultiComboBoxField","Component","isInvalid","args","error","isLabelHidden","labelVisibility","getAriaDescribedBy","controlId","parts","helpText","push","length","join","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","Control","MultiComboBox"],"mappings":";;;;;;AAkGe,MAAMA,2BAA2BC,SAAA,CAAU;EACxD,IAAIC,SAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK;AAC1B,EAAA;EAEA,IAAIC,aAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,eAAe,KAAK,QAAA;AACvC,EAAA;EAEAC,kBAAA,GAAsBC,SAAiB,IAAqB;IAC1D,MAAMC,KAAa,GAAK,EAAE;AAC1B,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,QAAQ,EAAE;AACtBD,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,YAAqB,CAAA;AACrC,IAAA;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACC,KAAK,EAAE;AACnBK,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,gBAAyB,CAAA;AACzC,IAAA;AACA,IAAA,OAAOC,MAAMG,MAAM,GAAG,IAAIH,KAAA,CAAMI,IAAI,CAAC,GAAA,CAAA,GAAOC,SAAA;EAC9C,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,u2CAAA,EAyDA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"multi-combobox-field.js","sources":["../../src/form/multi-combobox-field.gts"],"sourcesContent":["import Component from '@glimmer/component';\n\nimport Control from './control.gts';\nimport MultiComboBox from './multi-combobox.gts';\nimport type { ComboBoxItems, ComboBoxOption } from './combobox-shared.ts';\n\nexport type LabelVisibility = 'visible' | 'hidden';\n\nexport interface MultiComboBoxFieldSignature {\n Element: HTMLDivElement;\n Args: {\n /** Label text (required). */\n label: string;\n\n /** Available options. Flat or pre-grouped. */\n items: ComboBoxItems;\n\n /** Current selected values (controlled). */\n values?: string[];\n\n /** Fires when the selection changes. */\n onChange?: (values: string[], options: ComboBoxOption[]) => void;\n\n /** Async search. */\n onSearch?: (query: string) => Promise<ComboBoxItems>;\n\n /** Debounce for `onSearch` in ms. */\n searchDebounceMs?: number;\n\n /** Force the loading state. */\n isLoading?: boolean;\n\n /** Called when an `onSearch` promise rejects. */\n onSearchError?: (error: unknown) => void;\n\n /** Loading row text. */\n loadingText?: string;\n\n /** Input placeholder when no values selected. */\n placeholder?: string;\n\n /** Empty state text. */\n noResultsText?: string;\n\n /** Allow creating new options from a non-matching query. */\n isCreatable?: boolean;\n\n /** Fires when the user activates the create row. */\n onCreate?: (query: string) => void;\n\n /** Build the create-row label. */\n createLabel?: (query: string) => string;\n\n /** Chips shown before collapsing to \"+N more\". */\n maxVisibleChips?: number;\n\n /** Help text displayed below the control. */\n helpText?: string;\n\n /** Error message (also sets invalid state). */\n error?: string;\n\n /** Field is required. */\n isRequired?: boolean;\n\n /** Field is disabled. */\n isDisabled?: boolean;\n\n /** Show the clear-all button when values are set. */\n isClearable?: boolean;\n\n /** Info tooltip text shown next to the label. */\n labelInfo?: string;\n\n /** Optional indicator - shows \"optional\" or custom text next to the label. */\n optionalIndicator?: boolean | string;\n\n /** Label visibility. */\n labelVisibility?: LabelVisibility;\n\n /** Input name — one hidden input is rendered per selected value. */\n name?: string;\n\n /** Blur event handler. */\n onBlur?: (event: FocusEvent) => void;\n\n /** Focus event handler. */\n onFocus?: (event: FocusEvent) => void;\n\n /** Fires when the dropdown opens. */\n onOpen?: () => void;\n\n /** Fires when the dropdown closes. */\n onClose?: () => void;\n };\n Blocks: {\n /** Rich tooltip content shown next to the label. */\n info: [];\n };\n}\n\nexport default class MultiComboBoxField extends Component<MultiComboBoxFieldSignature> {\n get isInvalid(): boolean {\n return !!this.args.error;\n }\n\n get isLabelHidden(): boolean {\n return this.args.labelVisibility === 'hidden';\n }\n\n getAriaDescribedBy = (controlId: string): string | undefined => {\n const parts: string[] = [];\n if (this.args.helpText) {\n parts.push(`${controlId}-help-text`);\n }\n if (this.args.error) {\n parts.push(`${controlId}-error-message`);\n }\n return parts.length > 0 ? parts.join(' ') : undefined;\n };\n\n <template>\n <Control\n @isInvalid={{this.isInvalid}}\n @isDisabled={{@isDisabled}}\n @isRequired={{@isRequired}}\n @labelInfo={{@labelInfo}}\n @optionalIndicator={{@optionalIndicator}}\n ...attributes\n as |ctrl|\n >\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <MultiComboBox\n @id={{ctrl.id}}\n @name={{@name}}\n @items={{@items}}\n @values={{@values}}\n @placeholder={{@placeholder}}\n @noResultsText={{@noResultsText}}\n @onSearch={{@onSearch}}\n @searchDebounceMs={{@searchDebounceMs}}\n @isLoading={{@isLoading}}\n @onSearchError={{@onSearchError}}\n @loadingText={{@loadingText}}\n @isCreatable={{@isCreatable}}\n @onCreate={{@onCreate}}\n @createLabel={{@createLabel}}\n @maxVisibleChips={{@maxVisibleChips}}\n @isDisabled={{@isDisabled}}\n @isInvalid={{this.isInvalid}}\n @isRequired={{@isRequired}}\n @isClearable={{@isClearable}}\n @aria-describedby={{this.getAriaDescribedBy ctrl.id}}\n @onChange={{@onChange}}\n @onBlur={{@onBlur}}\n @onFocus={{@onFocus}}\n @onOpen={{@onOpen}}\n @onClose={{@onClose}}\n data-test-multi-combobox-field\n />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n </Control>\n </template>\n}\n"],"names":["MultiComboBoxField","Component","isInvalid","args","error","isLabelHidden","labelVisibility","getAriaDescribedBy","controlId","parts","helpText","push","length","join","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","Control","MultiComboBox"],"mappings":";;;;;;AAqGe,MAAMA,2BAA2BC,SAAA,CAAU;EACxD,IAAIC,SAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK;AAC1B,EAAA;EAEA,IAAIC,aAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,eAAe,KAAK,QAAA;AACvC,EAAA;EAEAC,kBAAA,GAAsBC,SAAiB,IAAqB;IAC1D,MAAMC,KAAa,GAAK,EAAE;AAC1B,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,QAAQ,EAAE;AACtBD,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,YAAqB,CAAA;AACrC,IAAA;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACC,KAAK,EAAE;AACnBK,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,gBAAyB,CAAA;AACzC,IAAA;AACA,IAAA,OAAOC,MAAMG,MAAM,GAAG,IAAIH,KAAA,CAAMI,IAAI,CAAC,GAAA,CAAA,GAAOC,SAAA;EAC9C,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,i5CAAA,EA0DA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -167,7 +167,7 @@ class NumberField extends Component {
167
167
  }
168
168
  };
169
169
  static {
170
- setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @labelInfo={{@labelInfo}} data-max-width={{@maxWidth}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <div class=\"number-field-input-wrapper_e9ff3bd72\" data-invalid={{if this.isInvalid \"true\" \"false\"}} data-disabled={{if @isDisabled \"true\" \"false\"}} data-readonly={{if @isReadOnly \"true\" \"false\"}} data-at-min={{if this.isAtMin \"true\" \"false\"}} data-at-max={{if this.isAtMax \"true\" \"false\"}} data-has-stepper={{if this.showStepper \"true\" \"false\"}} data-test-number-field-wrapper>\n {{#if @prefix}}\n <span class=\"number-field-affix_e9ff3bd72 number-field-prefix_e9ff3bd72\" data-test-number-field-prefix>\n {{@prefix}}\n </span>\n {{/if}}\n\n {{!-- template-lint-disable no-redundant-role --}}\n <input id={{ctrl.id}} class=\"number-field-input_e9ff3bd72\" type=\"text\" inputmode={{this.inputMode}} role=\"spinbutton\" name={{@name}} value={{this.displayValue}} placeholder={{@placeholder}} disabled={{@isDisabled}} readonly={{@isReadOnly}} aria-invalid={{if this.isInvalid \"true\"}} aria-required={{if @isRequired \"true\"}} aria-describedby={{this.getAriaDescribedBy ctrl.id}} aria-valuenow={{this.ariaValueNow}} aria-valuemin={{this.ariaValueMin}} aria-valuemax={{this.ariaValueMax}} {{on \"input\" this.handleInput}} {{on \"blur\" this.handleBlur}} {{on \"focus\" this.handleFocus}} {{on \"keydown\" this.handleKeyDown}} data-test-number-field-input />\n\n {{#if @suffix}}\n <span class=\"number-field-affix_e9ff3bd72 number-field-suffix_e9ff3bd72\" data-test-number-field-suffix>\n {{@suffix}}\n </span>\n {{/if}}\n\n {{#if this.showStepper}}\n <div class=\"number-field-stepper_e9ff3bd72\" data-test-number-field-stepper>\n <button type=\"button\" class=\"number-field-stepper-button_e9ff3bd72\" tabindex=\"-1\" aria-label=\"Increase\" disabled={{if @isDisabled true (if @isReadOnly true this.isAtMax)}} {{on \"click\" this.increment}} data-test-number-field-increment>\n <Icon @icon={{ChevronUp}} @size=\"xs\" />\n </button>\n <button type=\"button\" class=\"number-field-stepper-button_e9ff3bd72\" tabindex=\"-1\" aria-label=\"Decrease\" disabled={{if @isDisabled true (if @isReadOnly true this.isAtMin)}} {{on \"click\" this.decrement}} data-test-number-field-decrement>\n <Icon @icon={{ChevronDown}} @size=\"xs\" />\n </button>\n </div>\n {{/if}}\n </div>\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
170
+ setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @labelInfo={{@labelInfo}} @optionalIndicator={{@optionalIndicator}} data-max-width={{@maxWidth}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <div class=\"number-field-input-wrapper_e9ff3bd72\" data-invalid={{if this.isInvalid \"true\" \"false\"}} data-disabled={{if @isDisabled \"true\" \"false\"}} data-readonly={{if @isReadOnly \"true\" \"false\"}} data-at-min={{if this.isAtMin \"true\" \"false\"}} data-at-max={{if this.isAtMax \"true\" \"false\"}} data-has-stepper={{if this.showStepper \"true\" \"false\"}} data-test-number-field-wrapper>\n {{#if @prefix}}\n <span class=\"number-field-affix_e9ff3bd72 number-field-prefix_e9ff3bd72\" data-test-number-field-prefix>\n {{@prefix}}\n </span>\n {{/if}}\n\n {{!-- template-lint-disable no-redundant-role --}}\n <input id={{ctrl.id}} class=\"number-field-input_e9ff3bd72\" type=\"text\" inputmode={{this.inputMode}} role=\"spinbutton\" name={{@name}} value={{this.displayValue}} placeholder={{@placeholder}} disabled={{@isDisabled}} readonly={{@isReadOnly}} aria-invalid={{if this.isInvalid \"true\"}} aria-required={{if @isRequired \"true\"}} aria-describedby={{this.getAriaDescribedBy ctrl.id}} aria-valuenow={{this.ariaValueNow}} aria-valuemin={{this.ariaValueMin}} aria-valuemax={{this.ariaValueMax}} {{on \"input\" this.handleInput}} {{on \"blur\" this.handleBlur}} {{on \"focus\" this.handleFocus}} {{on \"keydown\" this.handleKeyDown}} data-test-number-field-input />\n\n {{#if @suffix}}\n <span class=\"number-field-affix_e9ff3bd72 number-field-suffix_e9ff3bd72\" data-test-number-field-suffix>\n {{@suffix}}\n </span>\n {{/if}}\n\n {{#if this.showStepper}}\n <div class=\"number-field-stepper_e9ff3bd72\" data-test-number-field-stepper>\n <button type=\"button\" class=\"number-field-stepper-button_e9ff3bd72\" tabindex=\"-1\" aria-label=\"Increase\" disabled={{if @isDisabled true (if @isReadOnly true this.isAtMax)}} {{on \"click\" this.increment}} data-test-number-field-increment>\n <Icon @icon={{ChevronUp}} @size=\"xs\" />\n </button>\n <button type=\"button\" class=\"number-field-stepper-button_e9ff3bd72\" tabindex=\"-1\" aria-label=\"Decrease\" disabled={{if @isDisabled true (if @isReadOnly true this.isAtMin)}} {{on \"click\" this.decrement}} data-test-number-field-decrement>\n <Icon @icon={{ChevronDown}} @size=\"xs\" />\n </button>\n </div>\n {{/if}}\n </div>\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
171
171
  strictMode: true,
172
172
  scope: () => ({
173
173
  Control,
@@ -24,7 +24,7 @@ class SelectField extends Component {
24
24
  return parts.length > 0 ? parts.join(' ') : undefined;
25
25
  };
26
26
  static {
27
- setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @labelInfo={{@labelInfo}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <Select @id={{ctrl.id}} @name={{@name}} @value={{@value}} @placeholder={{@placeholder}} @isDisabled={{@isDisabled}} @isInvalid={{this.isInvalid}} @isRequired={{@isRequired}} @aria-describedby={{this.getAriaDescribedBy ctrl.id}} @onChange={{@onChange}} @onBlur={{@onBlur}} @onFocus={{@onFocus}} data-test-select-field as |select|>\n {{yield (hash Option=select.Option OptionGroup=select.OptionGroup)}}\n </Select>\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
27
+ setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @labelInfo={{@labelInfo}} @optionalIndicator={{@optionalIndicator}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <Select @id={{ctrl.id}} @name={{@name}} @value={{@value}} @placeholder={{@placeholder}} @isDisabled={{@isDisabled}} @isInvalid={{this.isInvalid}} @isRequired={{@isRequired}} @aria-describedby={{this.getAriaDescribedBy ctrl.id}} @onChange={{@onChange}} @onBlur={{@onBlur}} @onFocus={{@onFocus}} data-test-select-field as |select|>\n {{yield (hash Option=select.Option OptionGroup=select.OptionGroup)}}\n </Select>\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
28
28
  strictMode: true,
29
29
  scope: () => ({
30
30
  Control,
@@ -1 +1 @@
1
- {"version":3,"file":"select-field.js","sources":["../../src/form/select-field.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { hash } from '@ember/helper';\nimport type { WithBoundArgs } from '@glint/template';\n\nimport Control from './control.gts';\nimport Select, { SelectOption, SelectOptionGroup } from './select.gts';\n\nexport type LabelVisibility = 'visible' | 'hidden';\n\nexport interface SelectFieldSignature {\n Element: HTMLDivElement;\n Args: {\n /** Label text (required) */\n label: string;\n\n /** Current selected value */\n value?: string;\n\n /** Placeholder text shown when no value is selected */\n placeholder?: string;\n\n /** Help text displayed below the select */\n helpText?: string;\n\n /** Error message (also sets invalid state) */\n error?: string;\n\n /** Field is required */\n isRequired?: boolean;\n\n /** Field is disabled */\n isDisabled?: boolean;\n\n /** Info tooltip text shown next to the label */\n labelInfo?: string;\n\n /** Label visibility */\n labelVisibility?: LabelVisibility;\n\n /** Input name for forms */\n name?: string;\n\n /** Change event handler */\n onChange?: (value: string) => void;\n\n /** Blur event handler */\n onBlur?: (event: FocusEvent) => void;\n\n /** Focus event handler */\n onFocus?: (event: FocusEvent) => void;\n };\n Blocks: {\n default: [\n {\n Option: WithBoundArgs<typeof SelectOption, 'ctx'>;\n OptionGroup: typeof SelectOptionGroup;\n },\n ];\n /** Rich tooltip content shown next to the label */\n info: [];\n };\n}\n\nexport default class SelectField extends Component<SelectFieldSignature> {\n get isInvalid(): boolean {\n return !!this.args.error;\n }\n\n get isLabelHidden(): boolean {\n return this.args.labelVisibility === 'hidden';\n }\n\n /** Build aria-describedby from the control's help text and error message IDs */\n getAriaDescribedBy = (controlId: string): string | undefined => {\n const parts: string[] = [];\n if (this.args.helpText) {\n parts.push(`${controlId}-help-text`);\n }\n if (this.args.error) {\n parts.push(`${controlId}-error-message`);\n }\n return parts.length > 0 ? parts.join(' ') : undefined;\n };\n\n <template>\n <Control\n @isInvalid={{this.isInvalid}}\n @isDisabled={{@isDisabled}}\n @isRequired={{@isRequired}}\n @labelInfo={{@labelInfo}}\n ...attributes\n as |ctrl|\n >\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <Select\n @id={{ctrl.id}}\n @name={{@name}}\n @value={{@value}}\n @placeholder={{@placeholder}}\n @isDisabled={{@isDisabled}}\n @isInvalid={{this.isInvalid}}\n @isRequired={{@isRequired}}\n @aria-describedby={{this.getAriaDescribedBy ctrl.id}}\n @onChange={{@onChange}}\n @onBlur={{@onBlur}}\n @onFocus={{@onFocus}}\n data-test-select-field\n as |select|\n >\n {{yield (hash Option=select.Option OptionGroup=select.OptionGroup)}}\n </Select>\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n </Control>\n </template>\n}\n"],"names":["SelectField","Component","isInvalid","args","error","isLabelHidden","labelVisibility","getAriaDescribedBy","controlId","parts","helpText","push","length","join","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","Control","Select","hash"],"mappings":";;;;;;;AA+De,MAAMA,oBAAoBC,SAAA,CAAU;EACjD,IAAIC,SAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK;AAC1B,EAAA;EAEA,IAAIC,aAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,eAAe,KAAK,QAAA;AACvC,EAAA;AAEA;EACAC,qBAAsBC,SAAiB,IAAqB;IAC1D,MAAMC,KAAa,GAAK,EAAE;AAC1B,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,QAAQ,EAAE;AACtBD,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,YAAqB,CAAA;AACrC,IAAA;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACC,KAAK,EAAE;AACnBK,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,gBAAyB,CAAA;AACzC,IAAA;AACA,IAAA,OAAOC,MAAMG,MAAM,GAAG,IAAIH,KAAA,CAAMI,IAAI,CAAC,GAAA,CAAA,GAAOC,SAAA;EAC9C,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,uiCAAA,EA8CA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;QAAAC,MAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"select-field.js","sources":["../../src/form/select-field.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { hash } from '@ember/helper';\nimport type { WithBoundArgs } from '@glint/template';\n\nimport Control from './control.gts';\nimport Select, { SelectOption, SelectOptionGroup } from './select.gts';\n\nexport type LabelVisibility = 'visible' | 'hidden';\n\nexport interface SelectFieldSignature {\n Element: HTMLDivElement;\n Args: {\n /** Label text (required) */\n label: string;\n\n /** Current selected value */\n value?: string;\n\n /** Placeholder text shown when no value is selected */\n placeholder?: string;\n\n /** Help text displayed below the select */\n helpText?: string;\n\n /** Error message (also sets invalid state) */\n error?: string;\n\n /** Field is required */\n isRequired?: boolean;\n\n /** Field is disabled */\n isDisabled?: boolean;\n\n /** Info tooltip text shown next to the label */\n labelInfo?: string;\n\n /** Optional indicator - shows \"optional\" or custom text next to the label */\n optionalIndicator?: boolean | string;\n\n /** Label visibility */\n labelVisibility?: LabelVisibility;\n\n /** Input name for forms */\n name?: string;\n\n /** Change event handler */\n onChange?: (value: string) => void;\n\n /** Blur event handler */\n onBlur?: (event: FocusEvent) => void;\n\n /** Focus event handler */\n onFocus?: (event: FocusEvent) => void;\n };\n Blocks: {\n default: [\n {\n Option: WithBoundArgs<typeof SelectOption, 'ctx'>;\n OptionGroup: typeof SelectOptionGroup;\n },\n ];\n /** Rich tooltip content shown next to the label */\n info: [];\n };\n}\n\nexport default class SelectField extends Component<SelectFieldSignature> {\n get isInvalid(): boolean {\n return !!this.args.error;\n }\n\n get isLabelHidden(): boolean {\n return this.args.labelVisibility === 'hidden';\n }\n\n /** Build aria-describedby from the control's help text and error message IDs */\n getAriaDescribedBy = (controlId: string): string | undefined => {\n const parts: string[] = [];\n if (this.args.helpText) {\n parts.push(`${controlId}-help-text`);\n }\n if (this.args.error) {\n parts.push(`${controlId}-error-message`);\n }\n return parts.length > 0 ? parts.join(' ') : undefined;\n };\n\n <template>\n <Control\n @isInvalid={{this.isInvalid}}\n @isDisabled={{@isDisabled}}\n @isRequired={{@isRequired}}\n @labelInfo={{@labelInfo}}\n @optionalIndicator={{@optionalIndicator}}\n ...attributes\n as |ctrl|\n >\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <Select\n @id={{ctrl.id}}\n @name={{@name}}\n @value={{@value}}\n @placeholder={{@placeholder}}\n @isDisabled={{@isDisabled}}\n @isInvalid={{this.isInvalid}}\n @isRequired={{@isRequired}}\n @aria-describedby={{this.getAriaDescribedBy ctrl.id}}\n @onChange={{@onChange}}\n @onBlur={{@onBlur}}\n @onFocus={{@onFocus}}\n data-test-select-field\n as |select|\n >\n {{yield (hash Option=select.Option OptionGroup=select.OptionGroup)}}\n </Select>\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n </Control>\n </template>\n}\n"],"names":["SelectField","Component","isInvalid","args","error","isLabelHidden","labelVisibility","getAriaDescribedBy","controlId","parts","helpText","push","length","join","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","Control","Select","hash"],"mappings":";;;;;;;AAkEe,MAAMA,oBAAoBC,SAAA,CAAU;EACjD,IAAIC,SAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK;AAC1B,EAAA;EAEA,IAAIC,aAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,eAAe,KAAK,QAAA;AACvC,EAAA;AAEA;EACAC,qBAAsBC,SAAiB,IAAqB;IAC1D,MAAMC,KAAa,GAAK,EAAE;AAC1B,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,QAAQ,EAAE;AACtBD,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,YAAqB,CAAA;AACrC,IAAA;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACC,KAAK,EAAE;AACnBK,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,gBAAyB,CAAA;AACzC,IAAA;AACA,IAAA,OAAOC,MAAMG,MAAM,GAAG,IAAIH,KAAA,CAAMI,IAAI,CAAC,GAAA,CAAA,GAAOC,SAAA;EAC9C,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,ilCAAA,EA+CA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;QAAAC,MAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -123,7 +123,7 @@ class TextField extends Component {
123
123
  n(this.prototype, "handleBlur", [action]);
124
124
  }
125
125
  static {
126
- setComponentTemplate(precompileTemplate("\n\n<div class=\"text-field_e2680f9ba\" data-invalid={{if this.isInvalid \"true\" \"false\"}} data-disabled={{if this.isDisabled \"true\" \"false\"}} data-readonly={{if this.isReadOnly \"true\" \"false\"}} data-over-limit={{if this.isOverLimit \"true\" \"false\"}} data-monospace={{if @monospace \"true\" \"false\"}} data-max-width={{@maxWidth}} data-test-text-field ...attributes>\n {{#if (has-block \"info\")}}\n <Label @for={{this.id}} @isRequired={{this.isRequired}} @isDisabled={{this.isDisabled}} @isVisuallyHidden={{this.isLabelHidden}} @info={{@labelInfo}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </Label>\n {{else}}\n <Label @for={{this.id}} @isRequired={{this.isRequired}} @isDisabled={{this.isDisabled}} @isVisuallyHidden={{this.isLabelHidden}} @info={{@labelInfo}}>\n {{@label}}\n </Label>\n {{/if}}\n\n {{#if @multiline}}\n <FormTextarea id={{this.id}} @size={{@size}} @variant={{@variant}} @value={{this.currentValue}} @placeholder={{@placeholder}} @isDisabled={{this.isDisabled}} @isReadOnly={{this.isReadOnly}} @isRequired={{this.isRequired}} @isInvalid={{this.isInvalid}} @rows={{this.rows}} @autoGrow={{@autoResize}} @maxLength={{@maxLength}} @name={{@name}} @onInput={{this.handleTextareaInput}} @onChange={{this.handleTextareaChange}} @onFocus={{this.handleFocus}} @onBlur={{this.handleBlur}} aria-describedby={{if this.ariaDescribedBy this.ariaDescribedBy}} />\n {{else}}\n <FormInput id={{this.id}} @type={{@type}} @size={{@size}} @variant={{@variant}} @value={{this.currentValue}} @placeholder={{@placeholder}} @isDisabled={{this.isDisabled}} @isReadOnly={{this.isReadOnly}} @isRequired={{this.isRequired}} @isInvalid={{this.isInvalid}} @maxLength={{@maxLength}} @autoComplete={{@autoComplete}} @name={{@name}} aria-describedby={{if this.ariaDescribedBy this.ariaDescribedBy}} {{on \"input\" this.handleInputEvent}} {{on \"change\" this.handleChangeEvent}} {{on \"focus\" this.handleFocus}} {{on \"blur\" this.handleBlur}}>\n <:prefix>{{yield to=\"prefix\"}}{{@prefix}}</:prefix>\n <:suffix>{{yield to=\"suffix\"}}{{@suffix}}</:suffix>\n </FormInput>\n {{/if}}\n\n {{#if this.showFooter}}\n <div class=\"text-field-footer_e2680f9ba\" data-test-text-field-footer>\n {{#if @error}}\n <ErrorMessage id={{this.errorMessageId}} @isInvalid={{this.isInvalid}}>\n {{@error}}\n </ErrorMessage>\n {{else if @helpText}}\n <HelpText id={{this.helpTextId}}>\n {{@helpText}}\n </HelpText>\n {{/if}}\n\n {{#if @showCharacterCount}}\n <span class=\"text-field-character-count_e2680f9ba\" aria-live=\"polite\" data-test-character-count>\n {{this.characterCount}}{{#if @maxLength}}/{{@maxLength}}{{/if}}\n </span>\n {{/if}}\n </div>\n {{/if}}\n</div>", {
126
+ setComponentTemplate(precompileTemplate("\n\n<div class=\"text-field_e2680f9ba\" data-invalid={{if this.isInvalid \"true\" \"false\"}} data-disabled={{if this.isDisabled \"true\" \"false\"}} data-readonly={{if this.isReadOnly \"true\" \"false\"}} data-over-limit={{if this.isOverLimit \"true\" \"false\"}} data-monospace={{if @monospace \"true\" \"false\"}} data-max-width={{@maxWidth}} data-test-text-field ...attributes>\n {{#if (has-block \"info\")}}\n <Label @for={{this.id}} @isRequired={{this.isRequired}} @isDisabled={{this.isDisabled}} @isVisuallyHidden={{this.isLabelHidden}} @info={{@labelInfo}} @optionalIndicator={{@optionalIndicator}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </Label>\n {{else}}\n <Label @for={{this.id}} @isRequired={{this.isRequired}} @isDisabled={{this.isDisabled}} @isVisuallyHidden={{this.isLabelHidden}} @info={{@labelInfo}} @optionalIndicator={{@optionalIndicator}}>\n {{@label}}\n </Label>\n {{/if}}\n\n {{#if @multiline}}\n <FormTextarea id={{this.id}} @size={{@size}} @variant={{@variant}} @value={{this.currentValue}} @placeholder={{@placeholder}} @isDisabled={{this.isDisabled}} @isReadOnly={{this.isReadOnly}} @isRequired={{this.isRequired}} @isInvalid={{this.isInvalid}} @rows={{this.rows}} @autoGrow={{@autoResize}} @maxLength={{@maxLength}} @name={{@name}} @onInput={{this.handleTextareaInput}} @onChange={{this.handleTextareaChange}} @onFocus={{this.handleFocus}} @onBlur={{this.handleBlur}} aria-describedby={{if this.ariaDescribedBy this.ariaDescribedBy}} />\n {{else}}\n <FormInput id={{this.id}} @type={{@type}} @size={{@size}} @variant={{@variant}} @value={{this.currentValue}} @placeholder={{@placeholder}} @isDisabled={{this.isDisabled}} @isReadOnly={{this.isReadOnly}} @isRequired={{this.isRequired}} @isInvalid={{this.isInvalid}} @maxLength={{@maxLength}} @autoComplete={{@autoComplete}} @name={{@name}} aria-describedby={{if this.ariaDescribedBy this.ariaDescribedBy}} {{on \"input\" this.handleInputEvent}} {{on \"change\" this.handleChangeEvent}} {{on \"focus\" this.handleFocus}} {{on \"blur\" this.handleBlur}}>\n <:prefix>{{yield to=\"prefix\"}}{{@prefix}}</:prefix>\n <:suffix>{{yield to=\"suffix\"}}{{@suffix}}</:suffix>\n </FormInput>\n {{/if}}\n\n {{#if this.showFooter}}\n <div class=\"text-field-footer_e2680f9ba\" data-test-text-field-footer>\n {{#if @error}}\n <ErrorMessage id={{this.errorMessageId}} @isInvalid={{this.isInvalid}}>\n {{@error}}\n </ErrorMessage>\n {{else if @helpText}}\n <HelpText id={{this.helpTextId}}>\n {{@helpText}}\n </HelpText>\n {{/if}}\n\n {{#if @showCharacterCount}}\n <span class=\"text-field-character-count_e2680f9ba\" aria-live=\"polite\" data-test-character-count>\n {{this.characterCount}}{{#if @maxLength}}/{{@maxLength}}{{/if}}\n </span>\n {{/if}}\n </div>\n {{/if}}\n</div>", {
127
127
  strictMode: true,
128
128
  scope: () => ({
129
129
  Label,
@@ -23,7 +23,7 @@ class TimePickerField extends Component {
23
23
  return parts.length > 0 ? parts.join(' ') : undefined;
24
24
  };
25
25
  static {
26
- setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @labelInfo={{@labelInfo}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <TimePicker @id={{ctrl.id}} @name={{@name}} @value={{@value}} @placeholder={{@placeholder}} @format={{@format}} @interval={{@interval}} @minTime={{@minTime}} @maxTime={{@maxTime}} @showNow={{@showNow}} @allowTextInput={{@allowTextInput}} @closeOnSelect={{@closeOnSelect}} @showIcon={{@showIcon}} @hideDisabledOptions={{@hideDisabledOptions}} @snapToInterval={{@snapToInterval}} @isDisabled={{@isDisabled}} @isInvalid={{this.isInvalid}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @aria-describedby={{this.getAriaDescribedBy ctrl.id}} @onChange={{@onChange}} @onBlur={{@onBlur}} @onFocus={{@onFocus}} data-test-time-picker-field />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
26
+ setComponentTemplate(precompileTemplate("<Control @isInvalid={{this.isInvalid}} @isDisabled={{@isDisabled}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @labelInfo={{@labelInfo}} @optionalIndicator={{@optionalIndicator}} ...attributes as |ctrl|>\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <TimePicker @id={{ctrl.id}} @name={{@name}} @value={{@value}} @placeholder={{@placeholder}} @format={{@format}} @interval={{@interval}} @minTime={{@minTime}} @maxTime={{@maxTime}} @showNow={{@showNow}} @allowTextInput={{@allowTextInput}} @closeOnSelect={{@closeOnSelect}} @showIcon={{@showIcon}} @hideDisabledOptions={{@hideDisabledOptions}} @snapToInterval={{@snapToInterval}} @isDisabled={{@isDisabled}} @isInvalid={{this.isInvalid}} @isRequired={{@isRequired}} @isReadOnly={{@isReadOnly}} @aria-describedby={{this.getAriaDescribedBy ctrl.id}} @onChange={{@onChange}} @onBlur={{@onBlur}} @onFocus={{@onFocus}} data-test-time-picker-field />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n</Control>", {
27
27
  strictMode: true,
28
28
  scope: () => ({
29
29
  Control,
@@ -1 +1 @@
1
- {"version":3,"file":"time-picker-field.js","sources":["../../src/form/time-picker-field.gts"],"sourcesContent":["import Component from '@glimmer/component';\n\nimport Control from './control.gts';\nimport TimePicker, { type TimeFormat } from './time-picker.gts';\n\nexport type LabelVisibility = 'visible' | 'hidden';\n\nexport interface TimePickerFieldSignature {\n Element: HTMLDivElement;\n Args: {\n /** Label text (required) */\n label: string;\n\n /** Current selected time value (HH:mm format) */\n value?: string | null;\n\n /** Placeholder text shown when no value is selected */\n placeholder?: string;\n\n /** Time format (12h or 24h) */\n format?: TimeFormat;\n\n /** Minutes between options (default: 15) */\n interval?: number;\n\n /** Minimum allowed time (HH:mm format) */\n minTime?: string;\n\n /** Maximum allowed time (HH:mm format) */\n maxTime?: string;\n\n /** Show \"Now\" option at the top */\n showNow?: boolean;\n\n /** Allow typing in the input */\n allowTextInput?: boolean;\n\n /** Close dropdown when a time is selected */\n closeOnSelect?: boolean;\n\n /** Show clock icon */\n showIcon?: boolean;\n\n /** Hide disabled options from the dropdown */\n hideDisabledOptions?: boolean;\n\n /** Round typed values to the nearest interval on blur */\n snapToInterval?: boolean;\n\n /** Help text displayed below the input */\n helpText?: string;\n\n /** Error message (also sets invalid state) */\n error?: string;\n\n /** Field is required */\n isRequired?: boolean;\n\n /** Field is disabled */\n isDisabled?: boolean;\n\n /** Field is read-only */\n isReadOnly?: boolean;\n\n /** Info tooltip text shown next to the label */\n labelInfo?: string;\n\n /** Label visibility */\n labelVisibility?: LabelVisibility;\n\n /** Input name for forms */\n name?: string;\n\n /** Change event handler */\n onChange?: (value: string | null) => void;\n\n /** Blur event handler */\n onBlur?: (event: FocusEvent) => void;\n\n /** Focus event handler */\n onFocus?: (event: FocusEvent) => void;\n };\n Blocks: {\n /** Rich tooltip content shown next to the label */\n info: [];\n };\n}\n\nexport default class TimePickerField extends Component<TimePickerFieldSignature> {\n get isInvalid(): boolean {\n return !!this.args.error;\n }\n\n get isLabelHidden(): boolean {\n return this.args.labelVisibility === 'hidden';\n }\n\n /** Build aria-describedby from the control's help text and error message IDs */\n getAriaDescribedBy = (controlId: string): string | undefined => {\n const parts: string[] = [];\n if (this.args.helpText) {\n parts.push(`${controlId}-help-text`);\n }\n if (this.args.error) {\n parts.push(`${controlId}-error-message`);\n }\n return parts.length > 0 ? parts.join(' ') : undefined;\n };\n\n <template>\n <Control\n @isInvalid={{this.isInvalid}}\n @isDisabled={{@isDisabled}}\n @isRequired={{@isRequired}}\n @isReadOnly={{@isReadOnly}}\n @labelInfo={{@labelInfo}}\n ...attributes\n as |ctrl|\n >\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <TimePicker\n @id={{ctrl.id}}\n @name={{@name}}\n @value={{@value}}\n @placeholder={{@placeholder}}\n @format={{@format}}\n @interval={{@interval}}\n @minTime={{@minTime}}\n @maxTime={{@maxTime}}\n @showNow={{@showNow}}\n @allowTextInput={{@allowTextInput}}\n @closeOnSelect={{@closeOnSelect}}\n @showIcon={{@showIcon}}\n @hideDisabledOptions={{@hideDisabledOptions}}\n @snapToInterval={{@snapToInterval}}\n @isDisabled={{@isDisabled}}\n @isInvalid={{this.isInvalid}}\n @isRequired={{@isRequired}}\n @isReadOnly={{@isReadOnly}}\n @aria-describedby={{this.getAriaDescribedBy ctrl.id}}\n @onChange={{@onChange}}\n @onBlur={{@onBlur}}\n @onFocus={{@onFocus}}\n data-test-time-picker-field\n />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n </Control>\n </template>\n}\n"],"names":["TimePickerField","Component","isInvalid","args","error","isLabelHidden","labelVisibility","getAriaDescribedBy","controlId","parts","helpText","push","length","join","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","Control","TimePicker"],"mappings":";;;;;;AAwFe,MAAMA,wBAAwBC,SAAA,CAAU;EACrD,IAAIC,SAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK;AAC1B,EAAA;EAEA,IAAIC,aAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,eAAe,KAAK,QAAA;AACvC,EAAA;AAEA;EACAC,qBAAsBC,SAAiB,IAAqB;IAC1D,MAAMC,KAAa,GAAK,EAAE;AAC1B,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,QAAQ,EAAE;AACtBD,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,YAAqB,CAAA;AACrC,IAAA;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACC,KAAK,EAAE;AACnBK,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,gBAAyB,CAAA;AACzC,IAAA;AACA,IAAA,OAAOC,MAAMG,MAAM,GAAG,IAAIH,KAAA,CAAMI,IAAI,CAAC,GAAA,CAAA,GAAOC,SAAA;EAC9C,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,qyCAAA,EAuDA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"time-picker-field.js","sources":["../../src/form/time-picker-field.gts"],"sourcesContent":["import Component from '@glimmer/component';\n\nimport Control from './control.gts';\nimport TimePicker, { type TimeFormat } from './time-picker.gts';\n\nexport type LabelVisibility = 'visible' | 'hidden';\n\nexport interface TimePickerFieldSignature {\n Element: HTMLDivElement;\n Args: {\n /** Label text (required) */\n label: string;\n\n /** Current selected time value (HH:mm format) */\n value?: string | null;\n\n /** Placeholder text shown when no value is selected */\n placeholder?: string;\n\n /** Time format (12h or 24h) */\n format?: TimeFormat;\n\n /** Minutes between options (default: 15) */\n interval?: number;\n\n /** Minimum allowed time (HH:mm format) */\n minTime?: string;\n\n /** Maximum allowed time (HH:mm format) */\n maxTime?: string;\n\n /** Show \"Now\" option at the top */\n showNow?: boolean;\n\n /** Allow typing in the input */\n allowTextInput?: boolean;\n\n /** Close dropdown when a time is selected */\n closeOnSelect?: boolean;\n\n /** Show clock icon */\n showIcon?: boolean;\n\n /** Hide disabled options from the dropdown */\n hideDisabledOptions?: boolean;\n\n /** Round typed values to the nearest interval on blur */\n snapToInterval?: boolean;\n\n /** Help text displayed below the input */\n helpText?: string;\n\n /** Error message (also sets invalid state) */\n error?: string;\n\n /** Field is required */\n isRequired?: boolean;\n\n /** Field is disabled */\n isDisabled?: boolean;\n\n /** Field is read-only */\n isReadOnly?: boolean;\n\n /** Info tooltip text shown next to the label */\n labelInfo?: string;\n\n /** Optional indicator - shows \"optional\" or custom text next to the label */\n optionalIndicator?: boolean | string;\n\n /** Label visibility */\n labelVisibility?: LabelVisibility;\n\n /** Input name for forms */\n name?: string;\n\n /** Change event handler */\n onChange?: (value: string | null) => void;\n\n /** Blur event handler */\n onBlur?: (event: FocusEvent) => void;\n\n /** Focus event handler */\n onFocus?: (event: FocusEvent) => void;\n };\n Blocks: {\n /** Rich tooltip content shown next to the label */\n info: [];\n };\n}\n\nexport default class TimePickerField extends Component<TimePickerFieldSignature> {\n get isInvalid(): boolean {\n return !!this.args.error;\n }\n\n get isLabelHidden(): boolean {\n return this.args.labelVisibility === 'hidden';\n }\n\n /** Build aria-describedby from the control's help text and error message IDs */\n getAriaDescribedBy = (controlId: string): string | undefined => {\n const parts: string[] = [];\n if (this.args.helpText) {\n parts.push(`${controlId}-help-text`);\n }\n if (this.args.error) {\n parts.push(`${controlId}-error-message`);\n }\n return parts.length > 0 ? parts.join(' ') : undefined;\n };\n\n <template>\n <Control\n @isInvalid={{this.isInvalid}}\n @isDisabled={{@isDisabled}}\n @isRequired={{@isRequired}}\n @isReadOnly={{@isReadOnly}}\n @labelInfo={{@labelInfo}}\n @optionalIndicator={{@optionalIndicator}}\n ...attributes\n as |ctrl|\n >\n {{#if (has-block \"info\")}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n <:default>{{@label}}</:default>\n <:info>{{yield to=\"info\"}}</:info>\n </ctrl.Label>\n {{else}}\n <ctrl.Label @isVisuallyHidden={{this.isLabelHidden}}>\n {{@label}}\n </ctrl.Label>\n {{/if}}\n\n <TimePicker\n @id={{ctrl.id}}\n @name={{@name}}\n @value={{@value}}\n @placeholder={{@placeholder}}\n @format={{@format}}\n @interval={{@interval}}\n @minTime={{@minTime}}\n @maxTime={{@maxTime}}\n @showNow={{@showNow}}\n @allowTextInput={{@allowTextInput}}\n @closeOnSelect={{@closeOnSelect}}\n @showIcon={{@showIcon}}\n @hideDisabledOptions={{@hideDisabledOptions}}\n @snapToInterval={{@snapToInterval}}\n @isDisabled={{@isDisabled}}\n @isInvalid={{this.isInvalid}}\n @isRequired={{@isRequired}}\n @isReadOnly={{@isReadOnly}}\n @aria-describedby={{this.getAriaDescribedBy ctrl.id}}\n @onChange={{@onChange}}\n @onBlur={{@onBlur}}\n @onFocus={{@onFocus}}\n data-test-time-picker-field\n />\n\n {{#if @helpText}}\n <ctrl.HelpText>{{@helpText}}</ctrl.HelpText>\n {{/if}}\n\n {{#if @error}}\n <ctrl.ErrorMessage>{{@error}}</ctrl.ErrorMessage>\n {{/if}}\n </Control>\n </template>\n}\n"],"names":["TimePickerField","Component","isInvalid","args","error","isLabelHidden","labelVisibility","getAriaDescribedBy","controlId","parts","helpText","push","length","join","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","Control","TimePicker"],"mappings":";;;;;;AA2Fe,MAAMA,wBAAwBC,SAAA,CAAU;EACrD,IAAIC,SAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK;AAC1B,EAAA;EAEA,IAAIC,aAAAA,GAAyB;AAC3B,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,eAAe,KAAK,QAAA;AACvC,EAAA;AAEA;EACAC,qBAAsBC,SAAiB,IAAqB;IAC1D,MAAMC,KAAa,GAAK,EAAE;AAC1B,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,QAAQ,EAAE;AACtBD,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,YAAqB,CAAA;AACrC,IAAA;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACC,KAAK,EAAE;AACnBK,MAAAA,KAAA,CAAME,IAAI,CAAC,CAAA,EAAGH,SAAA,gBAAyB,CAAA;AACzC,IAAA;AACA,IAAA,OAAOC,MAAMG,MAAM,GAAG,IAAIH,KAAA,CAAMI,IAAI,CAAC,GAAA,CAAA,GAAOC,SAAA;EAC9C,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,+0CAAA,EAwDA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visitwonders/assembly",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "The default blueprint for Embroider v2 addons.",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -77,21 +77,6 @@
77
77
  "declarations",
78
78
  "dist"
79
79
  ],
80
- "scripts": {
81
- "build": "rollup --config",
82
- "format": "prettier . --cache --write",
83
- "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\" --prefixColors auto",
84
- "lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\" --prefixColors auto && pnpm run format",
85
- "lint:format": "prettier . --cache --check",
86
- "lint:hbs": "ember-template-lint . --no-error-on-unmatched-pattern",
87
- "lint:hbs:fix": "ember-template-lint . --fix --no-error-on-unmatched-pattern",
88
- "lint:js": "eslint . --cache",
89
- "lint:js:fix": "eslint . --fix",
90
- "lint:types": "glint",
91
- "prepack": "rollup --config",
92
- "start": "rollup --config --watch",
93
- "test": "echo 'A v2 addon does not have tests, run tests in showcase'"
94
- },
95
80
  "dependencies": {
96
81
  "@arthur5005/dnd-kit-ember": "^0.1.2",
97
82
  "@embroider/addon-shim": "^1.8.9",
@@ -228,5 +213,19 @@
228
213
  "./typography/heading.js": "./dist/_app_/typography/heading.js",
229
214
  "./typography/text.js": "./dist/_app_/typography/text.js"
230
215
  }
216
+ },
217
+ "scripts": {
218
+ "build": "rollup --config",
219
+ "format": "prettier . --cache --write",
220
+ "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\" --prefixColors auto",
221
+ "lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\" --prefixColors auto && pnpm run format",
222
+ "lint:format": "prettier . --cache --check",
223
+ "lint:hbs": "ember-template-lint . --no-error-on-unmatched-pattern",
224
+ "lint:hbs:fix": "ember-template-lint . --fix --no-error-on-unmatched-pattern",
225
+ "lint:js": "eslint . --cache",
226
+ "lint:js:fix": "eslint . --fix",
227
+ "lint:types": "glint",
228
+ "start": "rollup --config --watch",
229
+ "test": "echo 'A v2 addon does not have tests, run tests in showcase'"
231
230
  }
232
- }
231
+ }